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

Última modificação September 15, 2025: Issue #358: FIX input cleanups after submition (b78e42a)