# \[i-Diário\] - INSTALAÇÃO COMPLETA E ATUALIZADA NO MODO DE PRODUÇÃO EM UMA VPS COM UBUNTU 22.04

**URL:** <https://forum.ieducar.org/t/i-diario-instalacao-completa-e-atualizada-no-modo-de-producao-em-uma-vps-com-ubuntu-22-04/2859>\
**Category:** Sem categoria\
**Created:** [Setembro 4, 2025, 1:59pm UTC](https://forum.ieducar.org/t/i-diario-instalacao-completa-e-atualizada-no-modo-de-producao-em-uma-vps-com-ubuntu-22-04/2859 "2025-09-04T13:59:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Douglas44](https://avatars.discourse-cdn.com/v4/letter/d/5fc32e/32.png) [@Douglas44](https://forum.ieducar.org/u/Douglas44)\
**Post date:** [Setembro 4, 2025, 1:59pm UTC](https://forum.ieducar.org/t/i-diario-instalacao-completa-e-atualizada-no-modo-de-producao-em-uma-vps-com-ubuntu-22-04/2859/1 "2025-09-04T13:59:28Z")

</div>

Este guia detalha o processo de instalação do i-Diario em um servidor VPS com Ubuntu 22.04, utilizando PostgreSQL 15 e Ruby 2.6.6, incluindo todas as dependências e configurações necessárias para evitar erros de compilação e conexão.

### **Passo 1: Configuração Inicial do Servidor**

Conecte-se ao seu servidor e atualize o sistema. Em seguida, configure o ambiente para evitar interrupções e aumentar os limites do sistema de arquivos.

# Atualiza os pacotes do sistema  
sudo apt update && sudo apt upgrade -y

# Configura o bash para execuções não interativas

echo ‘export DEBIAN\_FRONTEND=noninteractive’ \>\> ~/.bashrc  
source ~/.bashrc

# Aumenta o limite de monitoramento de arquivos (evita erros com Yarn/Webpack)

echo fs.inotify.max\_user\_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

### **Passo 2: Instalação de TODAS as Dependências do Sistema**

Instale de uma só vez todas as ferramentas de compilação e bibliotecas necessárias para o Ruby, PostgreSQL e outras gems. Esta etapa já inclui as correções para zlib e readline.

sudo apt install -y curl wget git build-essential libpq-dev shared-mime-info redis-server zlib1g-dev libreadline-dev

- **zlib1g-dev:** Necessário para o Ruby lidar com arquivos compactados (gems).

- **libreadline-dev:** Essencial para a interatividade do terminal em ferramentas como byebug.

### **Passo 3: Instalação e Configuração do PostgreSQL 15**

Adicione o repositório oficial do PostgreSQL para instalar a versão 15.

# Adiciona o repositório do PostgreSQL  
sudo sh -c ‘echo “deb [[Index of /pub/repos/apt/](http://apt.postgresql.org/pub/repos/apt) ]( [Index of /pub/repos/apt/](http://apt.postgresql.org/pub/repos/apt) ) $(lsb\_release -cs)-pgdg main” \> /etc/apt/sources.list.d/pgdg.list’  
wget --quiet -O - [[https://www.postgresql.org/media/keys/ACCC4CF8.asc\](https://www.postgresql.org/media/keys/ACCC4CF8.asc%5C)]([https://www.postgresql.org/media/keys/ACCC4CF8.asc](https://www.postgresql.org/media/keys/ACCC4CF8.asc)) | sudo apt-key add -

# Instala o PostgreSQL 15

sudo apt update  
sudo apt install -y postgresql-15 postgresql-contrib-15

# Habilita e inicia o serviço

sudo systemctl enable postgresql  
sudo systemctl start postgresql

# Cria o usuário ‘idiario’ no banco de dados

sudo -u postgres createuser idiario --superuser  
sudo -u postgres psql -c “ALTER USER idiario WITH PASSWORD ‘idiario’;”

### **Passo 4: Instalação do OpenSSL 1.1.1 (Compilação Manual)**

O Ruby 2.6.6 requer o OpenSSL 1.1, que não é o padrão no Ubuntu 22.04. Portanto, compilamos e instalamos manualmente.

mkdir ~/openssl  
cd ~/openssl  
wget [[https://www.openssl.org/source/openssl-1.1.1w.tar.gz\](https://www.openssl.org/source/openssl-1.1.1w.tar.gz%5C)]([https://www.openssl.org/source/openssl-1.1.1w.tar.gz](https://www.openssl.org/source/openssl-1.1.1w.tar.gz))  
tar -xzvf openssl-1.1.1w.tar.gz  
cd openssl-1.1.1w  
./config --prefix=/opt/openssl-1.1 --openssldir=/opt/openssl-1.1  
make -j$(nproc)  
sudo make install  
cd ~

### **Passo 5: Configuração do Ambiente Shell (.bashrc)**

Vamos configurar de uma vez só o rbenv e a variável de ambiente SSL\_CERT\_FILE para que o Ruby encontre os certificados de segurança do sistema.

# Adiciona as configurações do rbenv e a variável SSL ao .bashrc  
echo ‘’ \>\> ~/.bashrc  
echo ‘# RBENV CONFIG’ \>\> ~/.bashrc  
echo ‘export PATH=“$HOME/.rbenv/bin:$PATH”’ \>\> ~/.bashrc  
echo ‘eval “$(rbenv init -)”’ \>\> ~/.bashrc  
echo ‘’ \>\> ~/.bashrc  
echo ‘# SSL CERTIFICATE CONFIG FOR CUSTOM RUBY/OPENSSL’ \>\> ~/.bashrc  
echo ‘export SSL\_CERT\_FILE=/etc/ssl/certs/ca-certificates.crt’ \>\> ~/.bashrc

# Recarrega o shell

source ~/.bashrc

### **Passo 6: Instalação do Ruby 2.6.6 e Bundler**

Instale o rbenv e, em seguida, o Ruby, apontando para a versão correta do OpenSSL. Como as dependências já foram instaladas no Passo 2, a compilação ocorrerá sem erros.

# Instala o rbenv e o ruby-build  
git clone [[GitHub - rbenv/rbenv: Manage your app's Ruby environment](https://github.com/rbenv/rbenv.git) ]( [GitHub - rbenv/rbenv: Manage your app's Ruby environment](https://github.com/rbenv/rbenv.git) ) ~/.rbenv  
git clone [[GitHub - rbenv/ruby-build: A tool to download, compile, and install Ruby on Unix-like systems.](https://github.com/rbenv/ruby-build.git) ]( [GitHub - rbenv/ruby-build: A tool to download, compile, and install Ruby on Unix-like systems.](https://github.com/rbenv/ruby-build.git) ) ~/.rbenv/plugins/ruby-build  
source ~/.bashrc

# Instala o Ruby 2.6.6

RUBY\_CONFIGURE\_OPTS=“–with-openssl-dir=/opt/openssl-1.1” rbenv install 2.6.6  
rbenv global 2.6.6

# Atualiza o RubyGems e instala a versão correta do Bundler

gem update --system  
gem install bundler -v 2.4.22

# Verifica a versão do Ruby

ruby -v

### **Passo 7: Instalação do Node.js 14 e Yarn**

Instale a versão específica do Node.js requerida pelo i-Diario usando o NVM (Node Version Manager).

curl -o- [[https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh\](https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh%5C)]([https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh](https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh)) | bash  
source ~/.bashrc  
nvm install 14  
nvm use 14  
npm install -g yarn

### **Passo 8: Instalação do i-Diario**

Clone o repositório e instale as dependências do projeto com Bundler e Yarn.

git clone [[GitHub - portabilis/i-diario: Lançando o maior software livre de educação do Brasil!](https://github.com/portabilis/i-diario.git) ]( [GitHub - portabilis/i-diario: Lançando o maior software livre de educação do Brasil!](https://github.com/portabilis/i-diario.git) )  
cd i-diario  
bundle install  
yarn install

### **Passo 9: Configuração do Banco de Dados e Arquivos**

Copie os arquivos de exemplo e gere o secrets.yml com a chave da aplicação.

cp config/database.sample.yml config/database.yml  
cp public/404.html.sample public/404.html  
cp public/500.html.sample public/500.html

# Gera o arquivo de segredos (agora deve funcionar sem erros)

echo -e “development:\n secret\_key\_base: \`bundle exec rails secret\`\n REDIS\_URL: ‘redis://localhost:6379/0’” \> config/secrets.yml

### **Passo 10: Finalização da Instalação (Banco de Dados)**

Crie o banco de dados, execute as migrações e configure a entidade inicial.

bundle exec rails db:create  
bundle exec rails db:migrate  
bundle exec rails entity:setup NAME=idiario DOMAIN=$(hostname -I | awk ‘{print $1}’) DATABASE=idiario  
bundle exec rails entity:admin:create NAME=idiario ADMIN\_PASSWORD=A123456789$

### **Passo 11: Execução do i-Diario**

Para rodar a aplicação, você precisará de 3 terminais diferentes no seu servidor.

**Terminal 1: Puma (Servidor Web)**

cd ~/i-diario  
bundle exec rails server -b 0.0.0.0 -p 3000

**Terminal 2: Sidekiq (Sincronização)**

cd ~/i-diario  
bundle exec sidekiq -q synchronizer\_enqueue\_next\_job -c 1 --logfile log/sidekiq.log

**Terminal 3: Sidekiq (Demais Filas)**

cd ~/i-diario  
bundle exec sidekiq -c 10 --logfile log/sidekiq.log

### **Primeiro Acesso**

Acesse http://SEU\_IP\_DO\_SERVIDOR:3000 em seu navegador.

- **Usuário:** admin

- **Senha:** A123456789$
