Essa é uma visualização multi-página imprimível desta seção. Aperte aqui para imprimir a página.
Implantação
1 - Execução local com docker compose
🛠️ Como rodar o projeto Ademir localmente com Docker para o banco
Este guia explica como rodar o projeto Ademir localmente, utilizando o banco de dados PostgreSQL em Docker, enquanto a API e o frontend rodam diretamente na sua máquina.
✅ Pré-requisitos
Antes de começar, verifique se você tem instalado:
- Docker
- Docker Compose
- Node.js
- pnpm
- Cliente PostgreSQL (opcional, para testes via terminal)
📦 1. Suba o banco de dados com Docker
No diretório raiz do projeto, execute o comando abaixo para subir apenas o banco de dados:
docker compose up postgres -d
Isso iniciará o container ademir-db
na porta 5432
, pronto para ser utilizado pela API. Ao inicializar o banco de dados, será criado um usuário com nome “admin”, email “admin@mail.com” e senha “mudar123*”.
Se precisar executar também o serviço de arquivos, execute:
docker compose up postgres minio minio-setup
Caso deseje executar todos os serviços, utilize o comando:
docker compose up -d
Para que o comando funcione, antes deve ser configurado o backend/.env (seção 3). Para examinar possíveis erros, execute sem a flag -d
ou utilize:
docker compose logs
🧪 2. Verifique se o banco está rodando
Use o comando:
docker ps
Deve aparecer uma linha como:
postgres:bookworm ademir-db 0.0.0.0:5432->5432/tcp
Você também pode testar a conexão com:
docker exec -it ademir-db psql -U ademir -d ademir
⚙️ 3. Configure o arquivo .env
Na pasta backend
, crie um arquivo .env
com o seguinte conteúdo:
PORT=
JWT_KEY=
DB_SGBD=
DB_USER=
DB_PASSWORD=
DB_HOST=
DB_PORT=
DB_NAME=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
S3_ENDPOINT=
S3_DOCS_BUCKET=
S3_PS_BUCKET=
S3_IMAGE_BUCKET=
S3_CONTRACT_AMMENDMENTS_BUCKET=
MAIL_HOST=
MAIL_PORT=
MAIL_ADDRESS=
ADMIN_MANAGER_MAIL=
Caso você execute o docker compose up sem alterar variáveis no docker-compose.yml, o seu .env deve ser assim:
PORT=5000
JWT_KEY=
DB_SGBD=postgres
DB_USER=ademir
DB_PASSWORD=123mudar
DB_HOST=postgres # se rodar separadamente use localhost
DB_NAME=ademir
DB_PORT=5432
S3_ENDPOINT=http://minio:9000 # se rodar separadamente os serviços usar http://localhost:9000
S3_ACCESS_KEY_ID=appkey
S3_SECRET_ACCESS_KEY=appsecret
S3_DOCS_BUCKET=docs
S3_PS_BUCKET=psbucket
S3_IMAGE_BUCKET=images
S3_CONTRACT_AMMENDMENTS_BUCKET=contract-ammendments
MAIL_HOST=
MAIL_PORT=
MAIL_ADDRESS=
ADMIN_MANAGER_MAIL=
🚀 4. Rode o backend localmente
Acesse a pasta do backend:
cd backend
Instale as dependências e inicie a aplicação:
pnpm install
pnpm start
Isso vai:
- Compilar o TypeScript
- Conectar ao banco de dados rodando no Docker
- Iniciar a API na porta
5000
🌐 5. Acesse a API
- Documentação via Swagger: http://localhost:5000/api/docs
💅 6. Rode o frontend localmente
Acesse a pasta frontend
:
cd ../frontend
pnpm install
pnpm dev
Verifique se o frontend está configurado para usar
http://localhost:5000
como URL da API.
🧼 Para parar o ambiente
Parar apenas o banco de dados:
docker stop ademir-db
Parar tudo (caso tenha subido mais serviços):
docker compose down
Utilize a flag -v se quiser remover os volumes também, apagando os dados do banco e do minio
2 - Implantação no kubernetes
Implantação da Aplicação ADEMIR
Este guia descreve o processo completo para realizar o deploy da aplicação ADEMIR, incluindo clonagem do repositório, build das imagens Docker, envio ao registry Harbor e atualização do deployment no Kubernetes.
✅ 1. Clonar o Repositório
git clone https://gitlab.c3sl.ufpr.br/ademir/ademir-app.git
cd ademir-app
✅ 2. Gerar as Imagens Docker
Frontend
Containerfile (exemplo):
FROM harbor.c3sl.ufpr.br/ademir/node:21.6.1-bookworm
RUN npm install -g pnpm
WORKDIR /app
COPY package*.json ./
RUN pnpm install
COPY . .
RUN pnpm run build
EXPOSE 3000
CMD ["pnpm", "start"]
Build da imagem:
docker build -f frontend/Dockerfile -t harbor.c3sl.ufpr.br/ademir/frontend:latest frontend/
Backend
Containerfile (exemplo):
FROM harbor.c3sl.ufpr.br/ademir/node:21.6.1-bookworm
RUN apt-get update && apt-get -y install sendmail
COPY msmtprc /etc/msmtprc
RUN chmod 600 /etc/msmtprc
RUN npm install -g pnpm
WORKDIR /app
COPY package*.json ./
RUN pnpm install --strict-peer-dependencies=false
COPY . .
EXPOSE 5000
CMD ["pnpm", "start"]
Build da imagem:
docker build -f backend/Dockerfile -t harbor.c3sl.ufpr.br/ademir/backend:latest backend/
✅ 3. Publicar no Harbor
Login
Para enviar as imagens ao Harbor, é necessário estar autenticado. Solicite um login ao time root.
docker login harbor.c3sl.ufpr.br
Push das Imagens
docker push harbor.c3sl.ufpr.br/ademir/frontend:latest
docker push harbor.c3sl.ufpr.br/ademir/backend:latest
✅ 4. Atualizar o Deployment no Kubernetes
Importante: Apenas o time root possui permissão para realizar o reset dos deployments no cluster Kubernetes.
Solicite ao time root que execute:
kubectl rollout restart deployment/ademir-frontend -n ademir
kubectl rollout restart deployment/ademir-backend -n ademir
E para acompanhar o progresso:
kubectl rollout status deployment/ademir-frontend -n ademir
kubectl rollout status deployment/ademir-backend -n ademir
📅 Conclusão
Após essas etapas, a aplicação ADEMIR estará atualizada e rodando com as novas imagens Docker.
Para quaisquer dúvidas ou erros durante o processo, entre em contato com o time de infraestrutura (root@c3sl.ufpr.br).