Configuração de Ambiente
Configuração de Ambiente e Variáveis .env
Este guia explica como preparar o ambiente de desenvolvimento e configurar os arquivos .env no backend e no frontend.
1. Visão Geral do Projeto
- Backend: Node.js, Express, Sequelize, testes com Jest e Supertest.
- Frontend: Next.js, TailwindCSS e componentes da biblioteca Shadcn UI.
- Banco de Dados: PostgreSQL (Sequelize).
- Armazenamento de arquivos: buckets em S3 compatível.
- Envio de e-mails: serviço configurado via variáveis
.env.
2. Pré-requisitos
Antes de iniciar, certifique-se de que as seguintes ferramentas estão instaladas:
Node.js (versão LTS, 18 ou superior) Download Node.js Verifique a instalação:
node -vpnpm (gerenciador de pacotes) Instalação:
npm install -g pnpmVerifique a instalação:
pnpm -vPostgreSQL (instalação local ou acesso a servidor remoto) Download PostgreSQL Verifique a instalação:
psql --versionHugo (Necessário para rodar a documentação) Download Hugo Verifique a instalação:
hugo versionOutras ferramentas úteis:
- Docker (opcional, para rodar banco ou serviços auxiliares em containers)
- pgAdmin ou DBeaver (clientes gráficos para PostgreSQL)
3. Arquivos .env
Cada parte do sistema possui um arquivo de variáveis de ambiente de exemplo.
Esses arquivos não devem ser versionados com dados reais, apenas mantidos como .env.example para referência.
Backend (.env.example)
PORT=
JWT_KEY=
BASE_URL=
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=
OP_ISSUER=
OP_AUTH=
OP_TOKEN=
OP_USER_INFO=
OP_CLIENT_ID=
OP_CLIENT_SECRET=
OP_CALLBACK=
FRONTEND_URL=
Frontend (.env.development.example)
NEXT_PUBLIC_API_BASE_URL="http://localhost:5000/api"
NEXT_PUBLIC_REDIRECT_URL=""
NEXT_PUBLIC_KEYCLOAK_LOGOUT=""
NEXT_PUBLIC_KEYCLOAK_CLIENT_ID=""
NEXT_PUBLIC_PLAUSIBLE_URL=""
NEXT_PUBLIC_DOCS_URL=""
4. Setup do Ambiente
4.1 Backend
Instale dependências:
pnpm installCopie o arquivo
.env.examplepara.enve preencha os valores locais:cp .env.example .envInicie o servidor em modo desenvolvimento:
pnpm start
4.2 Frontend
Instale dependências:
pnpm installCopie o arquivo
.env.development.examplepara.env.developmente preecha os valores locais:cp .env.development.example .env.developmentInicie o servidor de desenvolvimento do Next.js:
pnpm dev
O frontend será iniciado normalmente em http://localhost:3000 (ou na porta configurada).
4.3 Banco de Dados
O banco usado é PostgreSQL. Para acessar manualmente o ambiente de desenvolvimento:
psql -h <DB_HOST> -U <DB_USER> -d <DB_NAME>
Substitua <DB_HOST>, <DB_USER> e <DB_NAME> pelos valores definidos no .env.
4.4 Documentação
Para rodar a documentação localmente, basta acessar o diretorio específico e executar o comando:
hugo server
5. Boas Práticas
- Sempre mantenha arquivos
.env.exampleatualizados com todas as variáveis necessárias. - Nunca versione o arquivo
.envcom dados reais. - Utilize variáveis distintas para desenvolvimento, teste e produção.
- Em produção, as variáveis devem ser configuradas diretamente no ambiente (por exemplo, via secrets do GitLab CI/CD). Apenas maintainers do projeto têm acesso a essas configurações.
- Sempre que uma variável for criada ou alterada, comunique a equipe Root, que é responsável por atualizar os valores nas variáveis de ambiente do Kubernetes.