# Redbull - Servidor Coolify DEV Este repositório contém a documentação técnica e os guias de operação para o servidor Redbull, uma VPS dedicada ao ambiente de desenvolvimento utilizando a plataforma Coolify. ## Visão Geral O servidor Redbull é uma infraestrutura de desenvolvimento que hospeda múltiplos projetos web, seguindo uma arquitetura baseada em contêineres. A plataforma Coolify serve como camada de gerenciamento de aplicações, similar a um Heroku/Vercel self-hosted, permitindo deploys automáticos através de webhooks Git. O Traefik atua como proxy reverso com auto-descoberta de serviços. ## Especificações do Servidor | Recurso | Especificação | |---------|---------------| | **Hostname** | redbull.rede5.com.br | | **IP Público** | 185.194.141.70 | | **Plataforma** | VPS Ubuntu/Debian | | **Orquestrador** | Coolify v4 (PaaS self-hosted) | | **Container Runtime** | Docker | | **Proxy Reverso** | Traefik | | **Bancos de Dados** | PostgreSQL 16 (gerenciado) | ## Projetos Hospedados ### GoHorse Jobs (LOCAL) | Serviço | UUID | Porta | Domínio | CI/CD | Status | |---------|------|:-----:|---------|-------|:------:| | Backend | `iw4sow8s0kkg4cccsk08gsoo` | 8521 | test2.q1agenda.com.br | ✅ GitHub | ✅ | | Frontend | `ao8g40scws0w4cgo8coc8o40` | 3000 | local.gohorsejobs.com | ✅ GitHub | ✅ | | Backoffice | `hg48wkw4wggwsswcwc8sooo4` | 3001 | b-local.gohorsejobs.com | ✅ GitHub | ✅ | | Seeder | `q4w48gos8cgssso00o8w8gck` | 8080 | s-local.gohorsejobs.com | ✅ GitHub | ✅ Healthy | | Database | `bgws48os8wgwk08o48wg8k80` | 5432 | Internal | - | ✅ Healthy | ### Subdomínios Locais (Cloudflare) 指向 Coolify (redbull.rede5.com.br / 185.194.141.70): | Subdomínio | Tipo | UUID App | |------------|------|----------| | local.gohorsejobs.com | A → 185.194.141.70 | Frontend | | api-local.gohorsejobs.com | A → 185.194.141.70 | Backend | | b-local.gohorsejobs.com | A → 185.194.141.70 | Backoffice | | s-local.gohorsejobs.com | A → 185.194.141.70 | Seeder | > **Cloudflare Zone**: gohorsejobs.com (Zone ID: 5e7e9286849525abf7f30b451b7964ac) ### Rodizios Daqui (DEV) | Serviço | UUID | Porta | Domínio | CI/CD | Status | |---------|------|:-----:|---------|-------|:------:| | Backend | `ecso4woo4woo0ks84888k8ck` | 8080 | api.rodiziosdaqui.rede5.com.br | ✅ GitHub | ✅ | | Frontend | `l4g4cc884gc04kg8s480gs48` | 3000 | rodiziosdaqui.rede5.com.br | ✅ GitHub | ✅ | | Backoffice | `s4kskw08400wcw8g40ossggo` | 8082 | backoffice.rodiziosdaqui.rede5.com.br | ✅ GitHub | ✅ | | Seeder | `ko0kkw4kw8g80scksg8sk0wc` | 8081 | seeder.rodiziosdaqui.rede5.com.br | ✅ GitHub | ✅ Healthy | ### Q1 Agenda (DEV/HML) | Serviço | UUID | Domínio | CI/CD | Status | |---------|------|---------|-------|:------:| | backend-dev | `h8kkc0gw04sow8oo08ccg00s` | sem domínio | ❌ | ❌ Exited | | backend-hml | `bk0kcosgo0s8cogww8s4so0w` | sem domínio | ❌ | ❌ Exited | | frontend-dev | `wwgccg0o8g4ogowgowcw4gcg` | sem domínio | ❌ | ❌ Exited | | frontend-hml | `es0gg4gokssw8c88o4kg0c08` | sem domínio | ❌ | ❌ Exited | ### Q1 Food (DEV) | Serviço | UUID | Domínio | CI/CD | Status | |---------|------|---------|-------|:------:| | Backend | `eosgwscc4g044c884k0ws4gc` | api-dev.q1food.com | ✅ GitHub | ❌ Exited | | Frontend | `g8w440g0w0oowo8skss440wk` | dev.q1food.com | ✅ GitHub | ✅ Running | ### Sextando (DEV) | Serviço | UUID | Domínio | CI/CD | Status | |---------|------|---------|-------|:------:| | Backend | `h8c4sg0sg80c4o8kkcw4ogcg` | api-dev.sextando.com.br | ❌ | ❌ Exited | | Backoffice | `nsc0gw0og40g0c88soc0o0wc` | backoffice-dev.sextando.com.br | ❌ | ❌ Exited | | Frontend | `vggkcs880o8go0ws84wcggco` | dev.sextando.com.br | ❌ | ✅ Running | ### ObraMarket (DEV) — ⚠️ 4 duplicatas, todas paradas > Ver `services_inventory.md` para detalhe. Ação: limpar e manter apenas 1. > **DNS Zone**: rede5.com.br (Zone ID: 7eb6587a2c867bb9743719a8fabcd455) > **Banco de Dados**: PostgreSQL externo (Absam Cloud) - db-60604.dc-us-1.absamcloud.com:11985 ## Documentação - [Inventário de Serviços](./services_inventory.md): Tabela completa de apps, bancos, portas e domínios - [Guia de Deploy](./deployment_guide.md): Instruções passo a passo para deployment e manutenção ## Quick Start ### Deploy Manual via API ```bash # Token de autenticação TOKEN="fzz2xL0UUwpeVB1mObEwxE9GO8sTV8z2OHiOojmdf0e428be" URL="https://redbull.rede5.com.br/api/v1" # Deploy de uma aplicação curl -s -H "Authorization: Bearer $TOKEN" \ "$URL/deploy?uuid=" # Atualizar domínio (requer http:// ou https://) curl -s -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ "$URL/applications/" \ -d '{"domains":"http://local.gohorsejobs.com","instant_deploy":true}' # Listar aplicações curl -s -H "Authorization: Bearer $TOKEN" "$URL/applications" # Ver domínios do servidor curl -s -H "Authorization: Bearer $TOKEN" \ "$URL/servers/m844o4gkwkwcc0k48swgs8c8/domains" ``` ### Cloudflare DNS ```bash # Token em ~/.ssh/cloudflare-token export CF_AUTH_EMAIL="yamamoto@rede5.com.br" export CF_AUTH_KEY="5dcfd89a9d4ec330dede0d4074a518f26818e" export CF_ZONE_ID="5e7e9286849525abf7f30b451b7964ac" # Listar DNS records curl -s -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \ "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" # Criar DNS record curl -s -X POST -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \ -H "Content-Type: application/json" \ "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records" \ -d '{"type":"A","name":"novo-dominio.gohorsejobs.com","content":"185.194.141.70","proxied":false}' # Limpar cache curl -s -X DELETE -H "X-Auth-Email: $CF_AUTH_EMAIL" -H "X-Auth-Key: $CF_AUTH_KEY" \ -H "Content-Type: application/json" \ "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \ -d '{"purge_everything":true}' ``` ### CI/CD Automático via Webhook Os webhooks GitHub estão configurados para deploy automático: - Push na branch `dev` → Deploy automático no Coolify - URL do webhook: `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=&secret=` ## Acesso SSH ```bash # Conexão SSH (HostName aponta para 185.194.141.70 direto) ssh redbull # Verificar containers docker ps --format 'table {{.Names}}\t{{.Status}}' # Logs do Coolify docker logs coolify -f ``` > ⚠️ **Nota:** `redbull.rede5.com.br` está atrás do Cloudflare — porta 22 bloqueada. > O SSH config usa o IP `185.194.141.70` direto para contornar isso. ## Boas Práticas 1. **Variáveis de Ambiente**: Configure todas as variáveis antes do deploy 2. **Bancos de Dados**: Utilize o PostgreSQL gerenciado ou bancos externos 3. **Logs**: Monitore os logs após cada deploy 4. **Webhooks**: Mantenha os secrets seguros ## Comparação com Outros Servidores | Servidor | Uso | Plataforma | |----------|-----|------------| | **Redbull** | Desenvolvimento (DEV) | Coolify | | **Vim** | Produção | Dokku | | **Apolo** | Kubernetes | K3s |