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=
MAIL_ADMIN_MANAGER=
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=
MAIL_ADMIN_MANAGER=
🚀 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:5000como 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