Skip to content

Ambientes

O sistema tem dois ambientes: produção e desenvolvimento local.

Produção

ComponenteEndereço
Frontendhttps://crm.galdix.com.br
Backend APIhttps://apicrm.galdix.com.br
ServidorLinux, /home/crm/app
BancoPostgreSQL no container crm-galdix-postgres-1
RedisContainer crm-galdix-redis-1
SecretsAzure Key Vault

Características:

  • Read-only filesystem nos containers de app
  • Secrets NUNCA no código — todos no Azure Key Vault
  • TLS automático via Traefik + Let's Encrypt
  • Build com --no-cache sempre (sem artefatos stale)
  • Imagens tagueadas com timestamp local (sem :latest)

Desenvolvimento local

Não existe ambiente de staging. Desenvolvimento é feito localmente e deployado direto em produção.

Setup

bash
# 1. Clonar repositório
git clone git@github.com:DanielG-s/crm-galdix.git
cd crm-galdix

# 2. Copiar template de env
cp .env.secrets.example .env.secrets
# Preencher com suas credenciais locais

# 3. Instalar dependências
cd backend && npm install
cd ../frontend && npm install

# 4. Subir banco e redis localmente
docker compose up -d postgres redis

# 5. Rodar migrations
cd backend && npx prisma migrate dev

# 6. Iniciar backend
cd backend && npm run start:dev

# 7. Iniciar frontend
cd frontend && npm run dev

Diferenças produção vs local

AspectoProduçãoLocal
SecretsAzure Key Vault.env.secrets
Build frontenddocker build com --build-argnext dev sem build
NEXT_PUBLIC_*Injetadas no buildNo .env.local
Containers4 containers + TraefikApenas postgres + redis
TLSSim (Traefik + Let's Encrypt)Não (HTTP local)
RedisSenha obrigatóriaPode ser sem senha
Restart policyon-failure:5Sem restart

Variáveis de ambiente por ambiente

Produção — origem dos valores

VariávelFonte
DATABASE_URLAzure Key Vault (runtime)
MASTER_ENCRYPTION_KEYAzure Key Vault (runtime)
CLERK_SECRET_KEYAzure Key Vault (runtime)
CLERK_WEBHOOK_SECRETAzure Key Vault (runtime)
REDIS_PASSWORD.env do servidor
AZURE_CLIENT_SECRET/home/crm/.crm-secrets
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYAzure Key Vault (build-time, via deploy.sh)

Local — arquivo .env.secrets

Ver Variáveis de Ambiente para a lista completa.

Checklist antes de ir para produção

  • [ ] npm run build sem erros no frontend
  • [ ] npm run build sem erros no backend
  • [ ] Migrations testadas localmente com npx prisma migrate dev
  • [ ] Testes passando: npm test
  • [ ] Nenhuma variável hardcoded no código
  • [ ] Review de segurança se o endpoint é novo (ver checklist de código seguro)
  • [ ] Deploy via bash deploy.sh (nunca docker compose up diretamente)

Documentação interna — Galdix CRM