6.5 KiB
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 |
| IP Público | 185.194.141.70 |
| Domínio | redbull.rede5.com.br |
| Coolify Dashboard | https://redbull.rede5.com.br |
| API | https://redbull.rede5.com.br/api/v1 |
| 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 (DEV)
| Serviço | UUID | Porta | Domínio |
|---|---|---|---|
| Backend | iw4sow8s0kkg4cccsk08gsoo |
8521 | coolify-dev.gohorsejobs.com |
| Frontend | ao8g40scws0w4cgo8coc8o40 |
3000 | local.gohorsejobs.com |
| Backoffice | hg48wkw4wggwsswcwc8sooo4 |
3001 | backoffice-dev.gohorsejobs.com |
| Seeder | q4w48gos8cgssso00o8w8gck |
8080 | seeder-dev.gohorsejobs.com |
| Database | bgws48os8wgwk08o48wg8k80 |
5432 | Internal |
Subdomínios Locais (Cloudflare)
指向 Coolify (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 |
|---|---|---|---|
| Backend | ecso4woo4woo0ks84888k8ck |
8080 | api.rodiziosdaqui.rede5.com.br |
| Frontend | l4g4cc884gc04kg8s480gs48 |
3000 | rodiziosdaqui.rede5.com.br |
| Backoffice | s4kskw08400wcw8g40ossggo |
8082 | backoffice.rodiziosdaqui.rede5.com.br |
| Seeder | ko0kkw4kw8g80scksg8sk0wc |
8081 | seeder.rodiziosdaqui.rede5.com.br |
DNS Zone: rede5.com.br (Zone ID: 7eb6587a2c867bb9743719a8fabcd455)
Banco de Dados: PostgreSQL externo (Absam Cloud) - db-60604.dc-us-1.absamcloud.com:11985
Q1Food (DEV)
| Serviço | UUID | Porta | Domínio |
|---|---|---|---|
| Backend | eosgwscc4g044c884k0ws4gc |
8000 | api-dev.q1food.com |
| Frontend | g8w440g0w0oowo8skss440wk |
3000 | dev.q1food.com |
DNS Zone: q1food.com (Zone ID: 70cdac5cc9787719d548ac6d74c98896)
Banco de Dados: Supabase (externo)
Documentação
- Resumo de Projetos: Status, URLs, CI/CD e webhooks
- Inventário de Serviços: Tabela completa de apps, bancos, portas e domínios
- API Coolify: Endpoints e comandos da API
Quick Start
Deploy Manual via API
# Token de autenticação
TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9"
URL="https://redbull.rede5.com.br/api/v1"
# Deploy de uma aplicação
curl -s -H "Authorization: Bearer $TOKEN" \
"$URL/deploy?uuid=<APP_UUID>"
# Atualizar domínio (requer http:// ou https://)
curl -s -X PATCH -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
"$URL/applications/<UUID>" \
-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
# 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 do Coolify
O Coolify recebe webhooks do GitHub para deploy automático. Configure no repositório GitHub (Settings → Webhooks):
| App | Webhook URL | Secret |
|---|---|---|
| Backend | https://redbull.rede5.com.br/api/v1/webhooks/deploy?uuid=iw4sow8s0kkg4cccsk08gsoo |
oRTKAwXgHrIzIcXdVqa7BXPkzXVQAhwS |
| Frontend | https://redbull.rede5.com.br/api/v1/webhooks/deploy?uuid=ao8g40scws0w4cgo8coc8o40 |
H3CfQuM9Jnpv9Tl37WKupEMlaaIWFlU5 |
| Backoffice | https://redbull.rede5.com.br/api/v1/webhooks/deploy?uuid=hg48wkw4wggwsswcwc8sooo4 |
wvREqj94RRX60113cYb2nMCZf0pmg662 |
| Seeder | https://redbull.rede5.com.br/api/v1/webhooks/deploy?uuid=q4w48gos8cgssso00o8w8gck |
sa08PAj2RwyjW5VNmqKX0Ac9s7zIMyH2 |
Configuração do webhook no GitHub:
- Payload URL: URL do webhook acima
- Content type:
application/json - Secret: webhook secret da app
- Events:
Push events(branchdev)
Acesso SSH
# Conexão SSH
ssh redbull
# Verificar containers
docker ps --format 'table {{.Names}}\t{{.Status}}'
# Logs do Coolify
docker logs coolify -f
Boas Práticas
- Variáveis de Ambiente: Configure todas as variáveis antes do deploy
- Bancos de Dados: Utilize o PostgreSQL gerenciado ou bancos externos
- Logs: Monitore os logs após cada deploy
- Webhooks: Mantenha os secrets seguros
Comparação com Outros Servidores
| Servidor | Uso | Plataforma |
|---|---|---|
| Redbull | Desenvolvimento (DEV) | Coolify |
| Vim | Produção | Dokku |
| Apolo | Kubernetes | K3s |