Produção
Para iniciar os serviços do sistema para produção, siga as instruções abaixo para cada um dos serviços.
Documentação
Atualmente a documentação não exige a utilização de um ambiente de produção específico, pois é servida através do GitHub Pages. Para mais informais sobre o pipeline de CI/CD da documentação, acesse o arquivo .github/workflows/pages.yml
no repositório do projeto.
Frontend
Para fazer o deploy do dashboard em um ambiente de produção, ou seja, criar o build do aplicativo e disponibilizá-lo para os usuários finais, siga as instruções:
-
Vá para o diretório do dashboard:
Terminal cd src/frontend -
Crie um arquivo
.env
com as variáveis de ambiente necessárias para o dashboard. Você pode copiar o arquivo de exemplo.env.example
e ajustar as configurações conforme necessário.Terminal cp .env.example .env -
Pegue o seu
EXPO_TOKEN
e oEAS_ID
do projeto. Para isso, acesse o tokens de acesso Expo e crie um novo token de acesso para pegar oEXPO_TOKEN
. Acesse o projetos Expo para criar e pegar oEAS_ID
do projeto. Adicione/Atualize essas informações no arquivo.env
. Segue o exemplo do arquivo.env
:.env # API URLAPI_URL = http://localhost:3000# Expo tokenEXPO_TOKEN=your-expo-token# EAS IDEAS_ID=your-eas-id -
Execute o comando para fazer o build do aplicativo:
Terminal docker compose -f docker-compose-prod.yml up --build -
Agora será necessário aguardar o término do build do aplicativo. Você pode acompanhar pelo terminal o progresso do build, ou acessar o projeto diretamente em projetos Expo, assim você pode baixar o build gerado.
Backend
Para iniciar o servidor do backend localmente, siga as instruções:
-
Vá para o diretório do backend:
Terminal cd src/backend -
Crie um arquivo
.env
com as variáveis de ambiente necessárias para o backend. Você pode copiar o arquivo de exemplo.env.example
e ajustar as configurações conforme necessário.Terminal cp .env.example .env -
Atualize as informações do
.env
para os dados de produção. Segue o exemplo do arquivo.env
:.env # Server log levelRUST_LOG=info# Database URLDATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres?schema=public"# Redis URLREDIS_URL="redis://localhost:6379" -
Execute o docker-compose para iniciar o servidor do backend:
Terminal docker compose -f docker-compose-prod.yml up --build -
Agora você pode acessar o backend em http://localhost:3000/ ou no endereço público do servidor de produção.
Pyxis
Atualmente o Pyxis não possui um ambiente de embarcado construido, ou seja, não é necessário de um dispositivo como o raspberry pi 5 para rodar o Pyxis, então é possível apenas rodar o Pyxis localmente. Para isso, siga as instruções:
-
Vá para o diretório do Pyxis:
Terminal cd src/pyxis -
Crie um arquivo
.env
com as variáveis de ambiente necessárias para o Pyxis. Você pode copiar o arquivo de exemplo.env.example
e ajustar as configurações conforme necessário.Terminal cp .env.example .env -
Atualize as informações do
.env
para os dados de produção. Segue o exemplo do arquivo.env
:.env # Bootstrap server for kafkaBOOTSTRAP_SERVER="localhost:29092"# Client id for kafkaCLIENT_ID="python-producer"# Kafka topicTOPIC="test-topic" -
Execute o docker-compose para iniciar o servidor do Pyxis:
Terminal docker compose -f docker-compose-prod.yml up --build -
Agora você pode verificar os logs do Pyxis no terminal e verificar que está sendo publicado no tópico do kafka. Exemplo de saída no terminal:
Terminal app-1 | Creating producer...app-1 | Producer created!app-1 | Starting to produce messages...app-1 | Generating mock transaction...app-1 | Generated mock transaction:app-1 | TransactionRequest(transaction_type=<TransactionType.OUT: 'OUT'>, employee_uuid='employee_123', patient_uuid='patient_456', pyxis_uuid='pyxis_789', medicine_id='med_789', quantity=5, created_at='2024-05-14T05:31:50.570284', validation_video_path='s3/path/to/video', open_at='2024-05-14T05:31:50.570293', finished_at='2024-05-14T05:31:52.571064')app-1 | transaction_request.is_valid(): Trueapp-1 | Mock transaction generated!app-1 | Producing message...app-1 | Message delivered to topic "test-topic"app-1 | Message produced!