mirror of
https://github.com/felipegcoutinho/openmonetis.git
synced 2026-03-10 04:51:47 +00:00
- Implementado o workflow GitHub Actions para build e push da imagem do OpenSheets para o Docker Hub. - Criado guia de deploy no Coolify, detalhando opções de uso e configuração. - Atualizados arquivos de configuração do Docker Compose para produção, incluindo serviços e variáveis de ambiente. - Adicionadas instruções para gerenciamento de versões e troubleshooting.
6.6 KiB
6.6 KiB
Deploy do OpenSheets no Coolify
Este guia mostra como fazer deploy do OpenSheets no Coolify usando Docker.
🚀 Resumo Rápido
Duas formas principais:
1. Com imagem do Docker Hub (MAIS RÁPIDO ⚡)
- Publicar imagem no Docker Hub primeiro
- Deploy em segundos (só faz pull)
- Ideal para produção e CI/CD
- Ver guia: DOCKER_HUB.md
2. Build direto no Coolify (MAIS SIMPLES)
- Usar
docker-compose.ymloriginal - Coolify faz build completo (2-5 min)
- Ideal para começar rápido
Qual opção escolher?
| Opção | Quando usar | Deploy | Complexidade |
|---|---|---|---|
| Opção 1: Imagem Docker Hub | Deploy rápido, CI/CD, produção | ⚡ Segundos | ⭐ Fácil |
| Opção 2: Build no Coolify | Começar rápido, teste | 🐢 2-5 min | ⭐ Fácil |
| Opção 3: PostgreSQL separado | Backups automáticos, melhor gestão | 🐢 2-5 min | ⭐⭐ Médio |
Recomendado para produção: Opção 1 (Docker Hub) ✅
Opção 1: Deploy com Docker Hub (Recomendado para Produção)
Vantagens:
- ✅ Deploy em segundos (vs minutos)
- ✅ Mesma imagem em múltiplos ambientes
- ✅ CI/CD automático via GitHub Actions
- ✅ Rollback fácil (trocar tag)
Passo 0: Publicar Imagem no Docker Hub
Siga o guia completo: DOCKER_HUB.md
Resumo rápido:
- Configurar secrets no GitHub (DOCKER_USERNAME e DOCKER_PASSWORD)
- Push para main ou criar tag → GitHub Actions publica automaticamente
- Verificar imagem em https://hub.docker.com/
Passo 1: Criar Aplicação no Coolify
- No Coolify: Projects → + New Resource → Docker Compose Empty
- Configure:
- Name:
opensheets - Source: Conecte ao seu repositório Git
- Branch:
main - Docker Compose Location:
docker-compose.prod.yml
- Name:
Passo 2: Configurar Variáveis de Ambiente
# Configuração da imagem do Docker Hub
DOCKER_USERNAME=seu-usuario-dockerhub
IMAGE_TAG=latest
# PostgreSQL
POSTGRES_USER=opensheets
POSTGRES_PASSWORD=SENHA_FORTE_AQUI
POSTGRES_DB=opensheets_db
DATABASE_URL=postgresql://opensheets:SENHA_FORTE_AQUI@db:5432/opensheets_db
# Better Auth (OBRIGATÓRIO)
BETTER_AUTH_SECRET=GERAR_COM_OPENSSL
BETTER_AUTH_URL=https://seu-dominio.com
# Opcionais: EMAIL, OAUTH, AI (ver abaixo)
Passo 3: Deploy
- Clique em Deploy
- Coolify vai fazer PULL da imagem (segundos) ⚡
- PostgreSQL sobe primeiro
- App executa migrations e inicia
Opção 2: Deploy com Build no Coolify (Mais Simples)
Use se: Quer começar rápido sem configurar Docker Hub
Passo 1: Criar Aplicação no Coolify
- Projects → + New Resource → Docker Compose Empty
- Configure:
- Name:
opensheets - Source: Conecte ao repositório
- Branch:
main - Docker Compose Location:
docker-compose.yml(ou deixe vazio)
- Name:
Passo 2: Variáveis de Ambiente
# PostgreSQL
POSTGRES_USER=opensheets
POSTGRES_PASSWORD=SENHA_FORTE_AQUI
POSTGRES_DB=opensheets_db
DATABASE_URL=postgresql://opensheets:MESMA_SENHA_ACIMA@db:5432/opensheets_db
# Better Auth
BETTER_AUTH_SECRET=GERAR_COM_OPENSSL
BETTER_AUTH_URL=https://seu-dominio.com
Gerar secrets:
openssl rand -base64 32 # Para POSTGRES_PASSWORD
openssl rand -base64 32 # Para BETTER_AUTH_SECRET
⚠️ IMPORTANTE: A senha em POSTGRES_PASSWORD e DATABASE_URL deve ser igual!
Passo 3: Deploy
- Clique em Deploy
- Coolify faz build completo (2-5 min) 🐢
- PostgreSQL e app sobem juntos
Opção 3: PostgreSQL Separado
Vantagens:
- ✅ Backups automáticos do Coolify
- ✅ Monitoring independente
- ✅ Melhor para produção
Ver instruções detalhadas
Passo 1: Criar PostgreSQL
- Databases → + New Database → PostgreSQL 18
- Configure nome, usuário, senha
- Copie a Internal Connection String
Passo 2: Criar Aplicação
- Docker Compose Empty → apontar para
docker-compose.coolify.yml - Configurar variáveis (DATABASE_URL aponta para PostgreSQL separado)
Variáveis de Ambiente Opcionais
# Email (Resend)
RESEND_API_KEY=re_...
EMAIL_FROM=noreply@seu-dominio.com
# OAuth Google
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
# OAuth GitHub
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
# AI Providers
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GOOGLE_GENERATIVE_AI_API_KEY=...
OPENROUTER_API_KEY=...
Configurar Domínio
- No Coolify: Domains
- Adicione seu domínio
- SSL automático via Let's Encrypt
Verificação de Deploy
-
Health Check:
https://seu-dominio.com/api/health{"status":"ok","timestamp":"...","service":"opensheets-app"} -
Logs: No Coolify → Logs
-
Database: Verificar se migrations rodaram
Comparação das Opções
| Docker Hub | Build no Coolify | PostgreSQL Separado | |
|---|---|---|---|
| Tempo de deploy | ⚡ Segundos | 🐢 2-5 min | 🐢 2-5 min |
| Complexidade | Médio (setup inicial) | Fácil | Médio |
| CI/CD | ✅ Automático | ❌ Manual | ✅ Possível |
| Rollback | ✅ Fácil (trocar tag) | ❌ Rebuild | ✅ Fácil |
| Backups DB | ❌ Manual | ❌ Manual | ✅ Automático |
| Ideal para | Produção | Desenvolvimento/Teste | Produção crítica |
Atualizações
Com Docker Hub (Opção 1):
# Fazer alterações
git add .
git commit -m "feat: nova funcionalidade"
git push origin main
# → GitHub Actions publica nova imagem automaticamente
# No Coolify: Redeploy (faz pull da nova imagem)
Com Build no Coolify (Opção 2):
git push origin main
# No Coolify: Redeploy (faz build novamente)
Troubleshooting
Deploy demora muito
Causa: Fazendo build completo Solução: Use Opção 1 (Docker Hub)
Erro de conexão com banco
Causa: DATABASE_URL incorreta
Solução: Verificar host (db para compose local, ou nome do serviço no Coolify)
Migrations não executam
Solução: Executar manualmente no terminal do container:
pnpm db:push
Recursos
Próximos Passos
- ✅ Configurar domínio personalizado
- ✅ Configurar OAuth (Google, GitHub)
- ✅ Configurar email (Resend)
- ✅ Configurar AI providers
- ✅ Configurar backups (se PostgreSQL separado)
- ✅ Configurar monitoring