# 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# 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"- Vá para: Cloud Run > Seu serviço > "MANAGE CUSTOM DOMAINS"
- Adicione domínio:
api.seu-dominio.com - Configure SSL: Automático via Google
# /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;
}
}# 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# Permitir apenas HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw deny 8080/tcp- Acesse: Cloudflare Dashboard
- Adicione domínio:
seu-dominio.com - Configure DNS:
api→A→SEU_IP_SERVIDORwww→CNAME→seu-dominio.com
- Vá para: SSL/TLS
- Configure: "Full (strict)"
- Ative: "Always Use HTTPS"
- Vá para: DNS
- Ative: Proxy (nuvem laranja)
- Configure: Page Rules se necessário
// main.go - Atualizar CORS para produção
allowedOrigins := []string{
"https://seu-dominio.com",
"https://www.seu-dominio.com",
"https://api.seu-dominio.com",
}# .env
ALLOWED_ORIGINS=https://seu-dominio.com,https://www.seu-dominio.com
DOMAIN=seu-dominio.com
SSL_ENABLED=true# 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# 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# Configurar logs estruturados
export LOG_LEVEL=info
export LOG_FORMAT=json# Verificar certificado
openssl x509 -in /etc/letsencrypt/live/api.seu-dominio.com/fullchain.pem -text -noout# 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# Verificar DNS
nslookup api.seu-dominio.com
dig api.seu-dominio.com- Domínio registrado
- DNS configurado
- SSL configurado
- CORS atualizado
- Firewall configurado
- Monitoramento ativo
- Backup configurado
- Logs estruturados
🌐 Sistema acessível externamente com SSL!