Instalação do i-Diário

Boa tarde,

Alguém conseguiu e tem o processo de instalação do i-Diário, usando Docker.?

Fiz a instalação do i-Educar em um VPS com Docker, e gostaria de instalar nessa mesma maquina o i-Diário, criando um novo container do Docker, mas não entendo muito de Docker, e não encontrei referências de Instalação.

Olhando no README.md do i-diario não existe nenhuma instrução para uso com o docker!

Boa noite @ rohanbernartt, só de curioso fui instalar o i-diario, segue os passos, lembrando que é melhor aguardar alguém da portabilis postar um tuto sobre isso.

Lá no seu cloud da DigitalOcean faça o clone do i-diario:
git clone GitHub - portabilis/i-diario: Lançando o maior software livre de educação do Brasil!

Acessa a pasta i-diario que foi criada abra o arquivo Dockerfile, você pode abrir utilizando o nano:
Se não tiver o nano instalado basta rodar no terminal:
apt install nano
e após isso abra o arquivo:
nano Dockerfile

Esse arquivo Dockerfile contém os comandos para criar o container do app Rails, porém temos duas alterações para fazer aqui, a primeira é mudar o nome da biblioteca phantomjs para phantomjs-prebuilt e a segunda alteração é comentar a linha 11 com um # no inicio dela, esse arquivo Gemfile.lock ainda não existe na aplicação e vai dar erro ao levantar o container.
Feito isso pode fechar o arquivo pressionando as teclas Ctrl + x e digitar Y ou S quando perguntado.

Agora rode o comando para criar os containers:
docker-compose up -d

Aguarde a instalação, quando finalizar você faz uma cópia do arquivo config/database.sample.yml para config/database.yml
cp config/database.sample.yml config/database.yml

Abra esse arquivo config/database.yml e altere o valor de owner, username e password para postgres e embaixo de template adicione a linha host: postgres, pode fechar o arquivo.

Crie um arquivo chamado secrets.yml na pasta config:
touch config/secrets.yml
O conteúdo desse arquivo deve ser:

development:
secret_key_base: qualquerstringaqui

Feito isso você deve acessar o seu container:
docker exec -it novo-educacao bash

Dentro dele execute o comendo para criar as databases de testes/desenvolvimento:
bundle exec rake db:create

E também o comando para gravar as migrations dessas bases:
bundle exec rake db:migrate

Ainda dentro do seu container rode o comando para criar uma entidade:
bundle exec rake entity:setup NAME=prefeitura DOMAIN=127.0.0.1 DATABASE=prefeitura_diario
Nesse comando pode alterar o valor de NAME e DATABASE

Agora você vai criar um usuário, execute o seguinte comando para abrir o console do rails:
bundle exec rails console

Quando aberto esse console execute o seguinte:
Entity.last.using_connection { User.create!(email: ‘admin@domain.com.br’, password: ‘123456789’, password_confirmation: ‘123456789’, status: ‘actived’, kind: ‘employee’, admin: true) }
Nesse comando pode alterar o email, password e password_confirmation que deve ser igual ao password

Depois de executado esse comando pode sair do console do rails digitando exit e dando enter

Agora você vai iniciar a aplicação:
bundle exec rails server -b 0.0.0.0 -p 4000

Depois de iniciado pode acessar a URL do seu cloud com a porta no final:
https://999.99.999.999:4000

Se tudo der certo vai aparecer uma tela de login, acessa o sistema com o email e senha digitado no console do rails.

Bom, praticamente igual ao que esta no readme do repositório do i-diario.

Espero ter ajudado.

5 curtidas

Quero lembrar que o PhantomJS foi descontinuado.

Bom, neste caso economiza ir no github.

Abraços!

Travei nesse comando.

Aqui aparece assim:

The git source GitHub - ricardohsd/activerecord-connections: A new way to manage multi-tenant applications based on multiples databases is not yet checked out. Please run bundle install before trying to start your application

Está dizendo que não foi instalado o pacote, faça o seguinte, de dentro do container na pasta do projeto executa:
bundle install

Depois continua a instalação normal.

1 curtida

Certo,
passou.

Aí nesse comando:
bundle exec rails console

Deu esse erro:

Você precisa criar e configurar o arquivo:
config/secrets.yml

Veja como ele está aqui no readme do i-diario:

Esse arquivo deve ficar com a indentação igual a que está nesse link acima.

Screenshot_2

bundle exec rails server -b 0.0.0.0 -p 4000

Fiz todo o processo, no final depois de subir o servidor, ao tentar acessar a aplicação é redirecionada para:

https://999.99.999.999:4000/404

Você rodou?
bundle exec rake entity:setup NAME=prefeitura DOMAIN=127.0.0.1 DATABASE=prefeitura_diario

Rodei.

Quando rodo o comando
docker exec -it novo-educacao bash

Ele entra no container, mas antes de digitar o bundle exec rake db:create, eu precisei rodar bundle install, aí só depois consegui rodar os comandos abaixo.

Quando você rodar o bundle exec rails server -b 0.0.0.0 -p 4000 vai ficar aberto o console do Rails, ali vai ter o erro que está te levando para a página 404, tenta postar o erro aqui.

Lembro que quando aconteceu esse erro para mim foi ai no console que eu vi o que era.
talvez seja alguma query…

1 curtida

Colei a mensagem do console aqui:

Crie uma nova entidade informando esse endereço de IP 104.248.249.143 no lugar de 127.0.0.1
bundle exec rake entity:setup NAME=prefeitura DOMAIN=127.0.0.1 DATABASE=prefeitura_diario

1 curtida

Funcionou! :smiley:

Screenshot_1

Que bom :slight_smile:

1 curtida

Hey galera, que massa ver vocês se virando bem por aqui! Feliz por você @rohanbernartt e mais ainda por vc @Juchem, por estar contribuindo tão ativamente aqui na Comunidade. :hugs:

Abraço pessoal!

Obrigado @giustin,
Estudando bastante aqui o sistema.

Essa comunidade é show, ajudando bastante.

1 curtida

OLá @Juchem, bom dia. Gostaria de saber o motivo de só conseguir acessar a url (http://localhost:4000) após rodar esse comando bundle exec rails server -b 0.0.0.0 -p e com a tela aberta. Se saio da tela, o sistema não abre mais. Pode me ajudar entender o que ocorre?

Bom dia @netocazuza

No comando bundle exec rails server -b 0.0.0.0 -p 4000 você vai informar ao rails para ele iniciar um servidor local que vai responder pela porta 4000, você pode abrir o arquivo docker-compose.yml do projeto e ver que o app está configurado para responder nessa porta, você pode alterar essa porta no próprio docker-compose.yml para 3000:4000 por exemplo, nesse caso você vai acessar http://127.0.0.1:3000

Você pode rodar o comando bundle exec rails server -b 0.0.0.0 -p 4000 com o parametro -d no final, assim vai rodar em modo daemon.

Lembrando que você pode de um outro computador em sua rede acessar o i-diário informando o IP da sua máquina na rede + a porta que configurou no docker-compose.yml.
Ex.:
http://192.168.1.10:4000