Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Latest commit

 

History

History
177 lines (145 loc) · 4.02 KB

File metadata and controls

177 lines (145 loc) · 4.02 KB

🌐 Configuração de Domínio e SSL

Opção 1: Google Cloud Run (Recomendado)

Passo 1: Build da Imagem Docker

# Build da imagem
docker build -t gcr.io/gestao-de-pessoas-v2/prime-people-system .

# Push para Google Container Registry
docker push gcr.io/gestao-de-pessoas-v2/prime-people-system

Passo 2: Deploy no Cloud Run

# Deploy do serviço
gcloud run deploy prime-people-system \
  --image gcr.io/gestao-de-pessoas-v2/prime-people-system \
  --platform managed \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars "GOOGLE_APPLICATION_CREDENTIALS=/secrets/credentials.json"

Passo 3: Configurar Domínio Customizado

  1. Vá para: Cloud Run > Seu serviço > "MANAGE CUSTOM DOMAINS"
  2. Adicione domínio: api.seu-dominio.com
  3. Configure SSL: Automático via Google

Opção 2: VPS com Nginx + Let's Encrypt

Passo 1: Configurar Nginx

# /etc/nginx/sites-available/prime-people-system
server {
    listen 80;
    server_name api.seu-dominio.com;
    
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Passo 2: Configurar SSL com Certbot

# Instalar Certbot
sudo apt install certbot python3-certbot-nginx

# Obter certificado SSL
sudo certbot --nginx -d api.seu-dominio.com

# Renovar automaticamente
sudo crontab -e
# Adicione: 0 12 * * * /usr/bin/certbot renew --quiet

Passo 3: Configurar Firewall

# Permitir apenas HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw deny 8080/tcp

Opção 3: Cloudflare (Mais Simples)

Passo 1: Configurar DNS

  1. Acesse: Cloudflare Dashboard
  2. Adicione domínio: seu-dominio.com
  3. Configure DNS:
    • apiASEU_IP_SERVIDOR
    • wwwCNAMEseu-dominio.com

Passo 2: Configurar SSL

  1. Vá para: SSL/TLS
  2. Configure: "Full (strict)"
  3. Ative: "Always Use HTTPS"

Passo 3: Configurar Proxy

  1. Vá para: DNS
  2. Ative: Proxy (nuvem laranja)
  3. Configure: Page Rules se necessário

🔧 Configurações de Produção

1. CORS Atualizado

// main.go - Atualizar CORS para produção
allowedOrigins := []string{
    "https://seu-dominio.com",
    "https://www.seu-dominio.com",
    "https://api.seu-dominio.com",
}

2. Variáveis de Ambiente

# .env
ALLOWED_ORIGINS=https://seu-dominio.com,https://www.seu-dominio.com
DOMAIN=seu-dominio.com
SSL_ENABLED=true

3. Health Check Externo

# Teste de conectividade
curl -I https://api.seu-dominio.com/health

# Teste de SSL
openssl s_client -connect api.seu-dominio.com:443 -servername api.seu-dominio.com

📊 Monitoramento

1. Uptime Monitoring

# Script de monitoramento
#!/bin/bash
while true; do
    if ! curl -f https://api.seu-dominio.com/health > /dev/null 2>&1; then
        echo "ALERTA: Servidor fora do ar!"
        # Enviar notificação
    fi
    sleep 60
done

2. Logs Centralizados

# Configurar logs estruturados
export LOG_LEVEL=info
export LOG_FORMAT=json

🚨 Troubleshooting

Erro: "SSL certificate not valid"

# Verificar certificado
openssl x509 -in /etc/letsencrypt/live/api.seu-dominio.com/fullchain.pem -text -noout

Erro: "CORS blocked"

# Verificar configuração CORS
curl -H "Origin: https://seu-dominio.com" \
  -H "Access-Control-Request-Method: GET" \
  -H "Access-Control-Request-Headers: X-Requested-With" \
  -X OPTIONS https://api.seu-dominio.com/health

Erro: "Domain not found"

# Verificar DNS
nslookup api.seu-dominio.com
dig api.seu-dominio.com

✅ Checklist de Domínio e SSL

  • Domínio registrado
  • DNS configurado
  • SSL configurado
  • CORS atualizado
  • Firewall configurado
  • Monitoramento ativo
  • Backup configurado
  • Logs estruturados

🌐 Sistema acessível externamente com SSL!