Pular para o conteúdo principal

Rodar com Docker

Uma das formas de rodar todo o projeto em ambiente de produção é utilizando o docker e docker-compose. Caso não tenha instalado em sua máquina, execute o seguinte script presente na pasta principal do repositório oficial do projeto.

install_docker.sh
chmod +x ./install_docker.sh
./install_docker.sh

Configurando arquivo docker-compose

Para executar todos os contêineres, primeiramente realize a cópia do arquivo docker-compose-prod-only-api-example.yml, renomeando o mesmo para docker-compose-prod-only-api.yml.

cp docker-compose-prod-only-api-example.yml docker-compose-prod-only-api.yml
caution

Lembre-se de configurar os arquivos de hosts utilizados pelo Nginx. Clique aqui para visualizar a configuração.

Realizar deploy do Painel de Controle e API (Backend)

Com a utilização do script setup_all.sh é possivel colocar em produção tanto o Painel de Controle quanto a API com somente um comando. Este arquivo realizará os seguintes passos:

  • Instalação do docker e docker-compose.
  • Instalação e configuração da versão do node v16.0.0.
  • Realização do processo de build do Painel de Controle.
  • Realização do processo de build da API (Backend).
  • Instalação do Nginx.
  • Configuração do Proxy.
  • Configuração dos certificados SSL.
  • Agendamento mensal de renovação dos certificados SSL.
Atenção

Lembre-se de configurar as variáveis de ambiente do Painel de Controle e da API (Backend).

Por fim, basta executar os seguintes comandos:

Atenção

Será necessário informar o domínio utilizado para o Painel de Controle (Frontend) e para a API (Backend). Assim como, um e-mail para a configuração dos certificados SSL.

setup_all.sh
chmod +x ./setup_all.sh
./setup_all.sh

Realizar deploy somente do Painel de Controle

Com a utilização do script setup_only_frontend.sh é possivel colocar em produção o Painel de Controle com somente um comando. Este arquivo realizará os seguintes passos:

  • Instalação e configuração da versão do node v16.0.0.
  • Realização do processo de build do Painel de Controle.
  • Instalação do Nginx.
  • Configuração do Proxy.
  • Configuração dos certificados SSL.
  • Agendamento mensal de renovação dos certificados SSL.
Atenção

Lembre-se de configurar as variáveis de ambiente do Painel de Controle.

Por fim, basta executar os seguintes comandos:

Atenção

Será necessário informar o domínio utilizado para o Painel de Controle (Frontend). Assim como, um e-mail para a configuração dos certificados SSL.

setup_only_frontend.sh
chmod +x ./setup_only_frontend.sh
./setup_only_frontend.sh

Realizar deploy somente da API (Backend)

Com a utilização do script setup_only_backend.sh é possivel colocar em produção a API com somente um comando. Este arquivo realizará os seguintes passos:

  • Instalação do docker e docker-compose.
  • Instalação e configuração da versão do node v16.0.0.
  • Realização do processo de build da API (Backend).
  • Instalação do Nginx.
  • Configuração do Proxy.
  • Configuração dos certificados SSL.
  • Agendamento mensal de renovação dos certificados SSL.
Atenção

Lembre-se de configurar as variáveis de ambiente da API (Backend).

Por fim, basta executar os seguintes comandos:

Atenção

Será necessário informar o domínio utilizado para a API (Backend). Assim como, um e-mail para a configuração dos certificados SSL.

setup_only_backend.sh
chmod +x ./setup_only_backend.sh
./setup_only_backend.sh

Realizar build do Aplicativo Móvel

Atenção

Lembre-se de configurar as variáveis de ambiente para o Aplicativo Móvel.

Dica

Caso queira ver a documentação do próprio expo a respeito do build, clique aqui.

Utilizando o eas, realize o login com sua conta do expo.

Terminal
eas login

Realize a configuração do build.

Terminal
eas build:configure

E siga os passos necessários.

Por fim, basta rodar o comando que realiza o build

Para Android
eas build --platform android
Para IOS
eas build --platform ios
Para ambos
eas build --platform all

Será necessário aguardar um tempo para que o build seja finalizado. É possível verificar se já foi feito listando os builds finalizados.

Listando os builds
eas build:list

Atualizar deploy do Painel de Controle

Utilize o script update_frontend_production.sh para realizar a atualização do Painel de Controle caso efetue alguma modificação após o mesmo já estar funcionando no servidor. O script realiza as seguintes ações:

  • Instala as dependências caso exista alguma faltante.
  • Realiza o processo de build do Painel de Controle.
  • Copia os arquivos gerados para a pasta /var/www/html/quiz (pasta root padrão da configuração dos arquivos de hosts do Nginx).

Sendo assim, para executar o script, basta executar os seguintes comandos:

chmod +x ./update_frontend_production.sh
./update_frontend_production.sh

Atualizar deploy da API (Backend)

Utilize o script update_backend_production.sh para realizar a atualização da API (Backend) caso realize alguma modificação após a mesma já estar funcionando no servidor. O script realiza as seguintes ações:

  • Para o container da API (Backend).
  • Inicia novamente o container da API (Backend).

Sendo assim, para executar o script basta executar os seguintes comandos:

chmod +x ./update_backend_production.sh
./update_backend_production.sh