🏭 Guia de Entrega a Cliente - ECOSIF
📋 Visão Geral
Este guia detalha o processo completo de entrega do sistema ECOSIF para um cliente em ambiente de produção.
🎯 Objetivo
Preparar um ambiente de produção completo, seguro e pronto para uso do cliente, incluindo: - ✅ HTTPS com certificados SSL - ✅ Configuração de segurança - ✅ Backup automatizado - ✅ Monitoramento - ✅ Documentação de handover
📋 Checklist Pré-Entrega
✅ Ambiente e Infraestrutura
- [ ] Servidor preparado (mínimo 4GB RAM, 2 vCPUs, 50GB disco)
- [ ] Docker e Docker Compose instalados
- [ ] Domínio configurado e apontando para o servidor
- [ ] Portas 80 e 443 abertas no firewall
- [ ] Acesso SSH configurado
✅ Segurança
- [ ] Senhas fortes configuradas (32+ caracteres)
- [ ] HTTPS habilitado com Let's Encrypt
- [ ] Firewall configurado
- [ ] Acesso SSH restrito
- [ ] Backup automatizado configurado
✅ Configuração
- [ ] Variáveis de ambiente configuradas
- [ ] Banco de dados inicializado
- [ ] Dados iniciais importados (se necessário)
- [ ] URLs e domínios configurados
🚀 Passo a Passo de Entrega
Passo 1: Preparar Servidor
1.1 Conectar ao Servidor
ssh usuario@servidor-cliente.com
1.2 Instalar Docker
# Ubuntu/Debian
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Adicionar usuário ao grupo docker
sudo usermod -aG docker $USER
newgrp docker
# Verificar instalação
docker --version
docker compose version
1.3 Clonar Repositório
# Criar diretório
sudo mkdir -p /opt/ecosif
sudo chown $USER:$USER /opt/ecosif
cd /opt/ecosif
# Clonar repositório
git clone <repo-url> .
cd ecosif-structure
Passo 2: Configurar Ambiente
2.1 Executar Configurador
# Executar script Python
python3 scripts/setup-env.py
2.2 Configurar Variáveis de Produção
Durante o setup, configure:
Domínio e URLs:
ECOSIF_DOMAIN=ecosif.cliente.com
ECOSIF_API_BASE_URL=https://ecosif.cliente.com
Banco de Dados:
POSTGRES_DB=ecosif_prod
POSTGRES_USER=ecosif_user
POSTGRES_PASSWORD=<senha-forte-32-chars> # Gerar automaticamente
Segurança:
AUTH_TOKEN_SECRET=<chave-forte-32-chars> # Gerar automaticamente
TOKEN_EXPIRATION=1800000
SSL:
TRAEFIK_ACME_EMAIL=admin@cliente.com
TRAEFIK_ACME_ENABLED=true
AWS S3 (se aplicável):
AWS_ACCESS_KEY_ID=<chave-aws>
AWS_SECRET_ACCESS_KEY=<secret-aws>
AWS_DEFAULT_REGION=us-east-1
AWS_S3_BUCKET=ecosif-prod-bucket
2.3 Verificar Configuração
# Verificar arquivo .env
cat .env | grep -v PASSWORD | grep -v SECRET
# Verificar senhas foram geradas
grep -E "(PASSWORD|SECRET)" .env | wc -l # Deve retornar >= 2
Passo 3: Configurar SSL/HTTPS
3.1 Verificar Domínio
# Verificar se domínio aponta para o servidor
dig ecosif.cliente.com
# Verificar portas abertas
sudo netstat -tulpn | grep -E ':(80|443)'
3.2 Configurar Certificados
O Traefik configurará automaticamente via Let's Encrypt.
Certifique-se que no .env:
TRAEFIK_ACME_ENABLED=true
TRAEFIK_ACME_EMAIL=admin@cliente.com
ECOSIF_DOMAIN=ecosif.cliente.com
Passo 4: Inicializar Banco de Dados
4.1 Iniciar PostgreSQL
# Iniciar apenas PostgreSQL
./scripts/start.sh postgres
# Aguardar inicialização
sleep 30
# Verificar se está rodando
./scripts/status.sh | grep postgres
4.2 Inicializar Banco
# Executar script de inicialização
./scripts/init-database.sh
# Verificar logs
./scripts/logs.sh postgres | tail -20
Passo 5: Iniciar Todos os Serviços
# Iniciar em modo produção (HTTPS)
./scripts/start.sh --build
# Aguardar inicialização (2-3 minutos)
sleep 180
# Verificar status
./scripts/status.sh
Passo 6: Verificação e Testes
6.1 Testar Acessos HTTPS
# Frontend
curl -k https://ecosif.cliente.com
# API Auth
curl -k https://ecosif.cliente.com/ecosif-auth/actuator/health
# API Masterdata
curl -k https://ecosif.cliente.com/ecosif-masterdata/actuator/health
6.2 Testar Login
# Login via API
curl -X POST https://ecosif.cliente.com/ecosif-auth/api/auth/signin \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"senha-inicial"}'
6.3 Verificar Certificados SSL
# Verificar certificado
openssl s_client -connect ecosif.cliente.com:443 -servername ecosif.cliente.com < /dev/null
# Verificar validade
echo | openssl s_client -connect ecosif.cliente.com:443 2>/dev/null | openssl x509 -noout -dates
Passo 7: Configurar Backup Automatizado
7.1 Criar Script de Backup
# Criar diretório de backups
sudo mkdir -p /backup/ecosif
sudo chown $USER:$USER /backup/ecosif
# Criar script de backup diário
cat > /opt/ecosif/scripts/backup-diario.sh << 'EOF'
#!/bin/bash
cd /opt/ecosif/ecosif-structure
./scripts/backup-database.sh /backup/ecosif/ecosif-$(date +%Y%m%d).dump
# Manter apenas últimos 30 dias
find /backup/ecosif -name "*.dump" -mtime +30 -delete
EOF
chmod +x /opt/ecosif/scripts/backup-diario.sh
7.2 Configurar Cron
# Editar crontab
crontab -e
# Adicionar linha (backup diário às 2h da manhã)
0 2 * * * /opt/ecosif/scripts/backup-diario.sh >> /var/log/ecosif-backup.log 2>&1
Passo 8: Documentação de Handover
8.1 Criar Documento de Entrega
# Criar documento
cat > /opt/ecosif/HANDOVER.md << 'EOF'
# Documento de Handover - ECOSIF
## Informações do Ambiente
- **Servidor**: <IP ou hostname>
- **Domínio**: ecosif.cliente.com
- **Data de Entrega**: <data>
## Acessos
- **Frontend**: https://ecosif.cliente.com
- **API Auth**: https://ecosif.cliente.com/ecosif-auth
- **Dashboard Traefik**: https://ecosif.cliente.com/dashboard
## Credenciais
- **Usuário Admin**: admin
- **Senha Inicial**: <senha>
- **Banco de Dados**: ecosif_prod
- **Usuário BD**: ecosif_user
## Backup
- **Localização**: /backup/ecosif/
- **Frequência**: Diário às 2h
- **Retenção**: 30 dias
## Manutenção
Ver documentação em: /opt/ecosif/ecosif-structure/README.md
EOF
🔐 Segurança em Produção
Checklist de Segurança
- [ ] ✅ Senhas fortes (32+ caracteres)
- [ ] ✅ HTTPS habilitado
- [ ] ✅ Certificados SSL válidos
- [ ] ✅ Firewall configurado
- [ ] ✅ Acesso SSH restrito
- [ ] ✅ Backups automatizados
- [ ] ✅ Logs de auditoria
- [ ] ✅ Atualizações de segurança
Recomendações
- Alterar senhas padrão imediatamente após entrega
- Configurar monitoramento (Datadog, Prometheus)
- Estabelecer rotina de backup e teste de restauração
- Documentar procedimentos de manutenção
- Treinar equipe do cliente
📊 Monitoramento
Health Checks
# Verificar saúde de todos os serviços
./scripts/status.sh
# Ver logs de erro
./scripts/logs.sh | grep -i error
Métricas
- Health checks do Traefik:
https://ecosif.cliente.com/dashboard - Actuator endpoints:
https://ecosif.cliente.com/*/actuator/health
📝 Checklist Final de Entrega
- [ ] Todos os serviços rodando
- [ ] HTTPS funcionando
- [ ] Login testado
- [ ] Backup configurado
- [ ] Documentação entregue
- [ ] Credenciais documentadas
- [ ] Treinamento realizado (se aplicável)
Última Atualização: 2025-12-01