[resolvido] i-Diario - instalação em modo de produção

Segue o manual atualizado:

Atualização do nginx

#Para que o nginx tenha suporte ao Ruby, é necessário a sua reinstalação. Seguem os passos:

Cria cópias de segurança dos arquivos da pasta: /etc/nginx/sites-available/

Remove o nginx

Segue os passos da página: https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/ownserver/nginx/oss/install_passenger_main.html

Preparando a instalação

#Instalação das dependências:

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion libxslt-dev libxml2-dev zlib1g-dev tcl

#Recomendo remover a versão do Ruby que vem por padrão no Ubuntu pelo comando:

sudo apt-get remove ruby

#Instala o rvm. Para instalar o rvm, seguir os passos da página: https://github.com/rvm/ubuntu_rvm

#Instala a versão específica do Ruby (essa informação fica no arquivo ‘Gemfile’) é feita inserindo o comando abaixo:

rvm install ruby-<versão>

#Para que o rvm e Ruby estejam no PATH, inserir o comando abaixo:

echo "source <rvm path>/scripts/rvm" >> ~/.bash_profile

Após a instalação do Ruby, deve-se dar permissão de escrita pelo comando:

sudo chmod -R 777 /<pasta do usuário>/.rvm/gems/ruby-<versão>

O Ubuntu 18.04 vem com o apache ativado por padrão, para instalar e executar o nginx é necessário desabilitar o apache a partir dos comandos abaixo:

sudo systemctl stop apache2
sudo systemctl disable apache2

#Baixar o i-Diario. Os arquivos do i-Diário estão no endereço: https://github.com/portabilis/i-diario/releases . Deve ser baixado a última versão. O pacote pode ser descompactado na pasta raiz: /var/www/

Instalação do i-Diário

#atribuir como proprietário da pasta da aplicação o usuário do sistema, pelo comando:

sudo chown -R <usuario> <caminho do i-diario>

#criar a pasta de relatórios, pelo seguinte comando (talvez não seja necessário em versões mais recentes):

mkdir <pasta do i-diario>/public/relatorios/

conceder permisão de leitura e escrita para a pasta de relatórios pelo seguinte comando:

sudo chmod -R 777 <pasta do i-diario>/public/relatorios/

criar arquivo de configuração do banco de dados a partir do modelo:

cp config/database.sample.yml config/database.yml

informa o banco de dados de produção no arquivo ‘config/database.yml’ adicionando as seguintes linhas:

production:

<<: *default database: educacao

#no mesmo arquivo configura os campos: owner, username e password;

#executa os comandos:

export RAILS_ENV=production
bundle
bundle install --deployment --without development test

#configurar o arquivo config/secrets.yml , para gerar a senha, usa o comando:

bundle exec rake secret

production:
  secret_key_base: < senha gerada>

#executa os comandos:

bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake assets:precompile 
bundle exec rake entity:setup NAME=prefeitura DOMAIN=<ip público ou domínio> DATABASE=prefeitura_diario

bundle exec rails console

Entity.last.using_connection {
  User.create!(
    email: 'admin@domain.com.br',
    password: '123456789',
    password_confirmation: '123456789',
    status: 'actived',
    kind: 'employee',
    admin:  true
  )
}

adicionar ao arquivo de configuração do nginx (caso já tenha as informações do ieducar): /etc/nginx/sites-enabled/<arquivo de configuração>

server {
   listen       8080;
   listen [::]:8080;	
   server_name  _;
   root < caminho do idiario>/public;
   passenger_enabled on;
   passenger_app_root < caminho do idiario>;
   passenger_enabled on;
   passenger_app_env production;

   #serve static assets
   location ~ ^/assets/ {
     expires off;
     root < caminho do idiario>/public;
     add_header Cache-Control public;
     add_header ETag "";
     break;
   }
}

exit

reinicia o nginx

Sincronização com i-Educar

#instala o redis (talvez não seja necessário em versões mais recentes)

Para instalar o redis, seguir as instruções da página https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04

#Configura o arquivo de inicialização do sidekiq. Para configurar o arquivo de inicialização do sidekiq, cria o mesmo com o caminho ‘config/initializers/sidekiq.rb’ , na sequência, insere o conteúdo abaixo:

require 'sidekiq'

Sidekiq.configure_server do |config|
  config.redis = { url: 'redis://localhost:6379' }
end

Sidekiq.configure_client do |config|
  config.redis = { url: 'redis://localhost:6379' }
end

#Configurando a inicialização do sidekiq. Para que o sidekiq execute sempre que o computador reiniciar, será necessário criar um script, por exemplo: ‘run_sidekiq.sh’ com atributos de executável e o seguinte conteúdo:

#!/bin/sh
cd /<caminho do i-diario>    
bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production
exit 0

#Na sequência será necessário adicionar ao cron uma tarefa que rode o script a cada inicialização do sistema

1 curtida

Valeu meu amigo, irei usar pra dessa vez conseguir fazer minha primeira instalação. Qualquer coisa errada irei pedi socorro ROBSON.

1 curtida

deu erro ai… nao entendi.

Esse erro foi referente a qual etapa?

Essai… pq na minha VPS o caminho e /var/www/html/… ai ficou assim

sudo chmod -R 777 /var/www/html/.rvm/gems/ruby-2.2.6

entendi, creio que a pasta do usuário na vps seja /root/

1 curtida

deixar eu verificar se acho esse caminho todo do root ate chegar no ruby… nao achei aqui nao. tipo cd /root/

tenta o comando: cd ~

nao aconteceu nada

cd - ja aparece assim

Pise ROBSON, ate ai todos os comandos anteriores do seu tutorial deram certos, logicos com algumas mudancas pra minha realidade. Ficou tao perto de comecar a instalacao do i-Diario… kkkkkkkk… sera pq nao ta encontrando essa pasta???

Aqui não aconteceu nada por que já está na pasta do usuário ( ~# no final do prompt ). Agora digita ls e vê se a pasta de configuração do rvm aparece

1 curtida

Boa tarde,
Estou com alguns problemas em relação ao i-diário na ultima versão.
Algumas paginas apresentam o http error 500, segue o log

:~/i-diario$ tail -f log/production.log
5:
app/views/admin_synchronizations/index.html.erb:2:in parse' app/views/admin_synchronizations/index.html.erb:2:in _app_views_admin_synchronizations_index_html_erb___4382292772648687176_69918430247980’
app/controllers/application_controller.rb:337:in set_thread_origin_type' app/controllers/application_controller.rb:328:in set_user_current’
app/models/entity.rb:20:in using_connection' app/controllers/application_controller.rb:67:in handle_customer’

E, [2019-10-25T14:33:56.331189 #56122] ERROR – : ** [Honeybadger] Unable to send error report: API key is missing. id=5866b130-8c31-4f46-919a-2927a44aacf1 level=3 pid=56122

A sincronização está funcionando, porem algumas paginas como /admin-sincronizacoes, configuracoes-gerais/editar, entram no http error 500.

Outro ponto, não consigo criar logins, depois da atualização, também fiz uma nova instalação limpa e os mesmo problemas continuam.

Estou usando debian 9 em modo de produção.

Esses erros 500, aparecem aqui. Não sei o motivo e nem como resolver

esse erro talvez seja relacionado a ausência de um comando relativo ao que executo no i-Educar:

php artisan honeybadger:install project-api-key

Boa noite
@robson, rodei o comando, e problema continua segue o log.

app/views/general_configurations/edit.html.erb:50:in block in _app_views_general_configurations_edit_html_erb___4457972883070336198_70249740480180' app/helpers/application_helper.rb:50:in simple_form_for’
app/views/general_configurations/edit.html.erb:6:in _app_views_general_configurations_edit_html_erb___4457972883070336198_70249740480180' app/controllers/application_controller.rb:337:in set_thread_origin_type’
app/controllers/application_controller.rb:328:in set_user_current' app/models/entity.rb:20:in using_connection’
app/controllers/application_controller.rb:67:in `handle_customer’

E, [2019-10-27T22:27:10.918205 #1970] ERROR – : ** [Honeybadger] Unable to send error report: API key is missing. id=c2986ff5-8d16-4544-82ca-5acc592a713e level=3 pid=1970

Boa tarde, também segue o problema de não conseguir criar novas contas, segue os logs.

I, [2019-10-27T22:34:43.400042 #1970] INFO – : Rendered layouts/_not_logged_header.html.erb (4.1ms)
I, [2019-10-27T22:34:43.401734 #1970] INFO – : Completed 200 OK in 96ms (Views: 33.6ms | ActiveRecord: 45.0ms)
I, [2019-10-27T22:35:56.972396 #1970] INFO – : Started POST “/registro” for 192.x.x.x at 2019-10-27 22:35:56 -0300
I, [2019-10-27T22:35:56.975084 #1970] INFO – : Processing by RegistrationsController#create as HTML
I, [2019-10-27T22:35:56.975264 #1970] INFO – : Parameters: {“utf8”=>“✓”, “authenticity_token”=>“X5i1hSjUtHt276klfYAiVC8D/HhaNHnkkKZJLcqoSzPSiCbwE/M+PvHuuGB9sPwtFfKUrPQFx119RF+pjEYNkw==”, “signup”=>{“first_name”=>“Flávio “, “last_name”=>“Silva”, “email”=>“flavio@email.com”, “document”=>“051.123.411-22”, “password”=>”[FILTERED]”, “password_confirmation”=>"[FILTERED]", “employee_role”=>“0”}, “locale”=>“en”}
I, [2019-10-27T22:35:57.011466 #1970] INFO – : Rendered registrations/new.html.erb within layouts/registration (19.8ms)
I, [2019-10-27T22:35:57.012177 #1970] INFO – : Rendered layouts/_google_tag_manager_head.html.erb (0.2ms)
I, [2019-10-27T22:35:57.018740 #1970] INFO – : Rendered layouts/_google_tag_manager_body.html.erb (0.3ms)
I, [2019-10-27T22:35:57.022617 #1970] INFO – : Rendered layouts/_not_logged_header.html.erb (3.5ms)
I, [2019-10-27T22:35:57.024295 #1970] INFO – : Completed 200 OK in 49ms (Views: 32.3ms | ActiveRecord: 3.8ms)

oi @flavio , o comando acima só funciona no i-Educar. O erro acima é relacionado a um erro 500 no i-Diario ?

1 curtida

Oi @flavio, antes de criar novas contas é preciso ir em ‘Permissões’ e criar permissões para pais, alunos e servidores. Depois ir em ‘Administrativo -> Configurações gerais’ e configurar quais são as permissões desses usuários.

1 curtida

robson Ainda nao conseguir fazer a instalacao do i-Diario, ultima vez q tentti foi sexta-feira, ontem teve feriado nacional, vou ja tentar novamente. To precisando instalar e colocar pra funcionar os 2 (i-Educar e i-Diario). Pra comecar a rodar nas escolas aqui dom nosso municipio. Fe em Deus.

Oi @marcioro, onde você parou?