Este manual tem como objetivo orientar o processo de deploy de cinco componentes essenciais do sistema. Cada um deles possui etapas específicas de configuração e pode envolver ajustes em diferentes camadas da infraestrutura.
Os componentes a serem implementados são:
Foi fornecido um arquivo ZIP de deploy contendo cinco pastas, uma para cada um dos itens acima. Cada pasta contém os arquivos necessários para a instalação e configuração do respectivo componente.
As etapas de deploy incluem configuração de permissões, ajustes de ambiente, configuração de serviços e proxy reverso para garantir o funcionamento adequado de cada componente.
Os próximos tópicos detalham o passo a passo para a instalação e configuração de cada um desses elementos.
Antes de iniciar o processo de deploy, certifique-se de que os seguintes requisitos estão atendidos:
Instale as dependências necessárias para o funcionamento dos componentes:
sudo apt update
sudo apt install -y apache2 mysql-server dotnet-sdk-6.0 nodejs npm unzip
sudo dnf update
sudo dnf install -y httpd mariadb-server dotnet-sdk-6.0 nodejs npm unzip
sudo yum update
sudo yum install -y httpd mariadb-server dotnet-sdk-6.0 nodejs npm unzip
Habilite e inicie o serviço do Apache:
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl enable httpd
sudo systemctl start httpd
Verifique se o Apache está funcionando:
Acesse http://localhost no navegador ou use o comando:
curl http://localhost
Inicie e habilite o serviço do MySQL:
sudo systemctl enable mysql
sudo systemctl start mysql
sudo systemctl enable mariadb
sudo systemctl start mariadb
Execute o script de segurança do MySQL:
sudo mysql_secure_installation
node -v
npm -v
unzip arquivo_deploy.zip -d /caminho/da/pasta
Instale o MySQL:
sudo apt update
sudo apt install -y mysql-server
Inicie e habilite o serviço:
sudo systemctl start mysql
sudo systemctl enable mysql
Instale o MariaDB:
sudo dnf update
sudo dnf install -y mariadb-server
Inicie e habilite o serviço:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Instale o MariaDB:
sudo yum update
sudo yum install -y mariadb-server
Inicie e habilite o serviço:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Execute o script de segurança do MySQL (para todos os sistemas):
sudo mysql_secure_installation
Acesse o MySQL como root:
sudo mysql -u root -p
Crie os bancos de dados com codificação utf8mb4:
CREATE DATABASE db_fjpdados_auth CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE db_fjpdados_data CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Crie o usuário dbUsrFJP e conceda as permissões necessárias:
CREATE USER 'dbUsrFJP'@'localhost' IDENTIFIED BY 'aFbQ2&=,ISk/aG+M';
GRANT ALL PRIVILEGES ON db_fjpdados_auth.* TO 'dbUsrFJP'@'localhost';
GRANT ALL PRIVILEGES ON db_fjpdados_data.* TO 'dbUsrFJP'@'localhost';
FLUSH PRIVILEGES;
Importe os arquivos de banco de dados disponíveis na pasta databases do deploy:
mysql -u dbUsrFJP -p db_fjpdados_auth < /caminho/da/pasta/databases/db_fjpdados_auth.sql
mysql -u dbUsrFJP -p db_fjpdados_data < /caminho/da/pasta/databases/db_fjpdados_data.sql
Faça o backup dos bancos de dados existentes:
mysqldump -u dbUsrFJP -p db_fjpdados_auth > backup_db_fjpdados_auth.sql
mysqldump -u dbUsrFJP -p db_fjpdados_data > backup_db_fjpdados_data.sql
Restaure os backups no novo servidor:
mysql -u dbUsrFJP -p db_fjpdados_auth < backup_db_fjpdados_auth.sql
mysql -u dbUsrFJP -p db_fjpdados_data < backup_db_fjpdados_data.sql
As ferramentas do sistema utilizam as seguintes connection strings para se conectar ao MySQL:
AppConnection:
server=localhost;port=3306;database=db_fjpdados_data;user=dbUsrFJP;password=aFbQ2&=,ISk/aG+M;ConvertZeroDateTime=True;allowLoadLocalInfile=true;Allow User Variables=True;Pooling=true;
PainelWebConnection:
server=localhost;port=3306;database=db_fjpdados_auth;user=dbUsrFJP;password=aFbQ2&=,ISk/aG+M;ConvertZeroDateTime=True;
Certifique-se de que essas strings estejam corretamente configuradas nos arquivos de configuração das ferramentas.
Verifique se os bancos de dados foram criados e estão acessíveis:
mysql -u dbUsrFJP -p -e "SHOW DATABASES;"
Confirme se o usuário dbUsrFJP tem permissões adequadas:
mysql -u dbUsrFJP -p -e "SHOW GRANTS FOR 'dbUsrFJP'@'localhost';"
Crie o diretório para o Painel Administrativo:
sudo mkdir -p /var/www/html/adm
Copie os arquivos do Painel Administrativo (da pasta de deploy) para o diretório criado:
sudo cp -r /caminho/da/pasta/deploy/painel_adm/* /var/www/html/adm/
Ajuste as permissões do diretório para o usuário do serviço (ex: www-data para Apache no Ubuntu/Debian ou apache no Fedora/AlmaLinux/RockyLinux/CentOS):
sudo chown -R www-data:www-data /var/www/html/adm
sudo chmod -R 755 /var/www/html/adm
sudo chown -R apache:apache /var/www/html/adm
sudo chmod -R 755 /var/www/html/adm
appsettings.json) e atualize as connection strings:"ConnectionStrings": {
"AppConnection": "server=localhost;port=3306;database=db_fjpdados_data;user=dbUsrFJP;password=aFbQ2&=,ISk/aG+M;ConvertZeroDateTime=True;allowLoadLocalInfile=true;Allow User Variables=True;Pooling=true;",
"PainelWebConnection": "server=localhost;port=3306;database=db_fjpdados_auth;user=dbUsrFJP;password=aFbQ2&=,ISk/aG+M;ConvertZeroDateTime=True;"
}
Crie um arquivo de serviço para o Painel Administrativo:
sudo nano /etc/systemd/system/fjp.adm.service
Adicione o seguinte conteúdo ao arquivo:
[Unit]
Description=Serviço do Painel Administrativo FJP
After=network.target
[Service]
WorkingDirectory=/var/www/html/adm
ExecStart=/usr/bin/dotnet /var/www/html/adm/NomeDoProjeto.dll --urls=http://localhost:5001
Restart=always
RestartSec=10
User=www-data # Para Ubuntu/Debian
# User=apache # Para Fedora/AlmaLinux/RockyLinux/CentOS
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
Recarregue o systemd e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl start fjp.adm
sudo systemctl enable fjp.adm
Verifique o status do serviço:
sudo systemctl status fjp.adm
Crie um arquivo de configuração para o subdomínio panel.fjpdados.fjp.mg.gov.br:
sudo nano /etc/apache2/sites-available/panel.conf
sudo nano /etc/httpd/conf.d/panel.conf
Adicione o seguinte conteúdo ao arquivo:
<VirtualHost *:80>
ServerName panel.fjpdados.fjp.mg.gov.br
ProxyPreserveHost On
ProxyPass / http://localhost:5001/
ProxyPassReverse / http://localhost:5001/
ErrorLog ${APACHE_LOG_DIR}/panel_error.log
CustomLog ${APACHE_LOG_DIR}/panel_access.log combined
</VirtualHost>
Habilite o site e recarregue o Apache:
sudo a2ensite panel.conf
sudo systemctl reload apache2
sudo systemctl restart httpd
Acesse o Painel Administrativo pelo navegador:
https://panel.fjpdados.fjp.mg.gov.brVerifique os logs do serviço e do Apache em caso de erros:
sudo journalctl -u fjp.adm # Logs do serviço
sudo tail -f /var/log/apache2/panel_error.log # Logs do Apache (Ubuntu/Debian)
sudo tail -f /var/log/httpd/panel_error.log # Logs do Apache (Fedora/AlmaLinux/RockyLinux/CentOS)
Crie o diretório para a API de Consulta:
sudo mkdir -p /var/www/html/api
Copie os arquivos da API de Consulta (da pasta de deploy) para o diretório criado:
sudo cp -r /caminho/da/pasta/deploy/api_consulta/* /var/www/html/api/
Ajuste as permissões do diretório para o usuário do serviço (ex: www-data para Apache no Ubuntu/Debian ou apache no Fedora/AlmaLinux/RockyLinux/CentOS):
sudo chown -R www-data:www-data /var/www/html/api
sudo chmod -R 755 /var/www/html/api
sudo chown -R apache:apache /var/www/html/api
sudo chmod -R 755 /var/www/html/api
appsettings.json) e atualize as connection strings:"ConnectionStrings": {
"AppConnection": "server=localhost;port=3306;database=db_fjpdados_data;user=dbUsrFJP;password=aFbQ2&=,ISk/aG+M;ConvertZeroDateTime=True;allowLoadLocalInfile=true;Allow User Variables=True;Pooling=true;",
"PainelWebConnection": "server=localhost;port=3306;database=db_fjpdados_auth;user=dbUsrFJP;password=aFbQ2&=,ISk/aG+M;ConvertZeroDateTime=True;"
}
Crie um arquivo de serviço para a API de Consulta:
sudo nano /etc/systemd/system/fjp.api.service
Adicione o seguinte conteúdo ao arquivo:
[Unit]
Description=Serviço da API de Consulta FJP
After=network.target
[Service]
WorkingDirectory=/var/www/html/api
ExecStart=/usr/bin/dotnet /var/www/html/api/NomeDoProjeto.dll --urls=http://localhost:5002
Restart=always
RestartSec=10
User=www-data # Para Ubuntu/Debian
# User=apache # Para Fedora/AlmaLinux/RockyLinux/CentOS
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
Recarregue o systemd e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl start fjp.api
sudo systemctl enable fjp.api
Verifique o status do serviço:
sudo systemctl status fjp.api
Crie um arquivo de configuração para o subdomínio api.fjpdados.fjp.mg.gov.br:
sudo nano /etc/apache2/sites-available/api.conf
sudo nano /etc/httpd/conf.d/api.conf
Adicione o seguinte conteúdo ao arquivo:
<VirtualHost *:80>
ServerName api.fjpdados.fjp.mg.gov.br
ProxyPreserveHost On
ProxyPass / http://localhost:5002/
ProxyPassReverse / http://localhost:5002/
ErrorLog ${APACHE_LOG_DIR}/api_error.log
CustomLog ${APACHE_LOG_DIR}/api_access.log combined
</VirtualHost>
Habilite o site e recarregue o Apache:
sudo a2ensite api.conf
sudo systemctl reload apache2
sudo systemctl restart httpd
Acesse a API de Consulta pelo navegador ou via terminal:
http://api.fjpdados.fjp.mg.gov.brcurl:curl http://api.fjpdados.fjp.mg.gov.br/endpoint_de_teste
Verifique os logs do serviço e do Apache em caso de erros:
sudo journalctl -u fjp.api # Logs do serviço
sudo tail -f /var/log/apache2/api_error.log # Logs do Apache (Ubuntu/Debian)
sudo tail -f /var/log/httpd/api_error.log # Logs do Apache (Fedora/AlmaLinux/RockyLinux/CentOS)
Crie o diretório para o Painel de Consulta:
sudo mkdir -p /var/www/html/consulta
Copie os arquivos do Painel de Consulta (já buildados) para o diretório criado:
sudo cp -r /caminho/da/pasta/deploy/painel_consulta/* /var/www/html/consulta/
Ajuste as permissões do diretório para o usuário do Apache:
sudo chown -R www-data:www-data /var/www/html/consulta
sudo chmod -R 755 /var/www/html/consulta
sudo chown -R apache:apache /var/www/html/consulta
sudo chmod -R 755 /var/www/html/consulta
assets para apontar para o endereço correto da API: assets/app.config.json) e atualize o endereço da API: {
"apiUrl": "http://api.fjpdados.fjp.mg.gov.br"
}
Crie um arquivo de configuração para o subdomínio www.fjpdados.fjp.mg.gov.br/consulta:
sudo nano /etc/apache2/sites-available/consulta.conf # Para Ubuntu/Debian
sudo nano /etc/httpd/conf.d/consulta.conf # Para Fedora/AlmaLinux/RockyLinux/CentOS
Adicione o seguinte conteúdo ao arquivo:
<VirtualHost *:80>
ServerName www.fjpdados.fjp.mg.gov.br
DocumentRoot /var/www/html/consulta
<Directory /var/www/html/consulta>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/consulta_error.log
CustomLog ${APACHE_LOG_DIR}/consulta_access.log combined
</VirtualHost>
Habilite o site e recarregue o Apache:
sudo a2ensite consulta.conf
sudo systemctl reload apache2
sudo systemctl restart httpd
Acesse o Painel de Consulta pelo navegador:
http://www.fjpdados.fjp.mg.gov.br/consulta Verifique se o painel está carregando corretamente e se consegue se comunicar com a API.
Em caso de erros, verifique os logs do Apache:
sudo tail -f /var/log/apache2/consulta_error.log # Para Ubuntu/Debian
sudo tail -f /var/log/httpd/consulta_error.log # Para Fedora/AlmaLinux/RockyLinux/CentOS
Crie o diretório para o Painel de Documentação:
sudo mkdir -p /var/www/html/docs
Copie os arquivos do Painel de Documentação (já buildados) para o diretório criado:
sudo cp -r /caminho/da/pasta/deploy/painel_documentacao/* /var/www/html/docs/
Ajuste as permissões do diretório para o usuário do Apache:
sudo chown -R www-data:www-data /var/www/html/docs
sudo chmod -R 755 /var/www/html/docs
sudo chown -R apache:apache /var/www/html/docs
sudo chmod -R 755 /var/www/html/docs
Crie um arquivo de configuração para o subdomínio panel.fjpdados.fjp.mg.gov.br/docs:
sudo nano /etc/apache2/sites-available/docs.conf # Para Ubuntu/Debian
sudo nano /etc/httpd/conf.d/docs.conf # Para Fedora/AlmaLinux/RockyLinux/CentOS
Adicione o seguinte conteúdo ao arquivo, garantindo que não haja conflito com o Painel Administrativo:
<VirtualHost *:80>
ServerName panel.fjpdados.fjp.mg.gov.br
DocumentRoot /var/www/html/docs
<Directory /var/www/html/docs>
AllowOverride All
Require all granted
</Directory>
Alias /docs "/var/www/html/docs"
<Directory "/var/www/html/docs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/docs_error.log
CustomLog ${APACHE_LOG_DIR}/docs_access.log combined
</VirtualHost>
Habilite o site e recarregue o Apache:
sudo a2ensite docs.conf
sudo systemctl reload apache2
sudo systemctl restart httpd
Acesse o Painel de Documentação pelo navegador:
http://panel.fjpdados.fjp.mg.gov.br/docs Verifique se o painel está carregando corretamente e se todas as páginas estão acessíveis.
Em caso de erros, verifique os logs do Apache:
sudo tail -f /var/log/apache2/docs_error.log # Para Ubuntu/Debian
sudo tail -f /var/log/httpd/docs_error.log # Para Fedora/AlmaLinux/RockyLinux/CentOS