Essa é uma visualização multi-página imprimível desta seção. Aperte aqui para imprimir a página.

Return to the regular view of this page.

Implantação

Implantação do Ademir

1 - Execução local com docker compose

Como executar o Ademir localmente

🛠️ 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:


📦 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


💅 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

Como implantar o Ademir

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).