From e9de34e853a0155a960adaf3373df26c652dee36 Mon Sep 17 00:00:00 2001 From: Tiago Yamamoto Date: Mon, 16 Feb 2026 20:46:36 -0600 Subject: [PATCH] docs: add Cloudflare/Coolify agent and update Redbull DNS config --- AGENT.md | 127 ++++++++++++++++++++++++++++++++++++++++++ vps/redbull/README.md | 57 ++++++++++++++++++- 2 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 AGENT.md diff --git a/AGENT.md b/AGENT.md new file mode 100644 index 0000000..be9ddae --- /dev/null +++ b/AGENT.md @@ -0,0 +1,127 @@ +# Agente de Infraestrutura - Cloudflare & Coolify + +Este documento contém os tokens e APIs necessárias para gerenciar a infraestrutura. + +## Tokens + +### Cloudflare +- **Arquivo**: `~/.ssh/cloudflare-token` +- **Email**: yamamoto@rede5.com.br +- **Zone ID (gohorsejobs.com)**: `5e7e9286849525abf7f30b451b7964ac` + +### Coolify (Redbull) +- **Arquivo**: `~/.ssh/coolify-redbull-token` +- **URL**: http://185.194.141.70:8000/api/v1 +- **Server UUID**: `m844o4gkwkwcc0k48swgs8c8` + +## Comandos Rápidos + +### Cloudflare DNS + +```bash +# Configurar variáveis +export CF_AUTH_EMAIL="yamamoto@rede5.com.br" +export CF_AUTH_KEY="5dcfd89a9d4ec330dede0d4074a518f26818e" +export CF_ZONE_ID="5e7e9286849525abf7f30b451b7964ac" + +# Listar registros DNS +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" + +# Buscar por subdomínio +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?name=gohorsejobs.com" | grep -o '"name":"[^"]*"' + +# Criar A 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.gohorsejobs.com","content":"185.194.141.70","proxied":false}' + +# Atualizar DNS record (precisa do ID) +curl -s -X PUT -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":"nome.gohorsejobs.com","content":"NOVO_IP","proxied":false}' + +# Deletar DNS record +curl -s -X DELETE -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/" + +# 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}' +``` + +### Coolify API + +```bash +# Configurar variáveis +export COOLIFY_TOKEN="tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9" +export COOLIFY_URL="http://185.194.141.70:8000/api/v1" + +# Listar aplicações +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" "$COOLIFY_URL/applications" + +# Ver aplicação específica +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" "$COOLIFY_URL/applications/" + +# Deploy aplicação +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" "$COOLIFY_URL/deploy?uuid=" + +# Atualizar domínio (importante: usar http:// ou https://) +curl -s -X PATCH -H "Authorization: Bearer $COOLIFY_TOKEN" \ + -H "Content-Type: application/json" \ + "$COOLIFY_URL/applications/" \ + -d '{"domains":"http://novo-dominio.gohorsejobs.com","instant_deploy":true}' + +# Ver domínios do servidor +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" \ + "$COOLIFY_URL/servers/m844o4gkwkwcc0k48swgs8c8/domains" + +# Listar deployments +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" "$COOLIFY_URL/deployments" + +# Ver status de deployment +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" \ + "$COOLIFY_URL/deployments/" + +# Listar databases +curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" "$COOLIFY_URL/databases" +``` + +## UUIDs GoHorseJobs (Redbull Coolify) + +| Serviço | UUID | +|---------|------| +| Backend | `iw4sow8s0kkg4cccsk08gsoo` | +| Frontend | `ao8g40scws0w4cgo8coc8o40` | +| Backoffice | `hg48wkw4wggwsswcwc8sooo4` | +| Seeder | `q4w48gos8cgssso00o8w8gck` | +| Database | `bgws48os8wgwk08o48wg8k80` | + +## Fluxo Padrão: Criar Novo Subdomínio + +1. **Criar DNS no Cloudflare:** +```bash +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":"nome.gohorsejobs.com","content":"185.194.141.70","proxied":false}' +``` + +2. **Atualizar domínio no Coolify:** +```bash +curl -s -X PATCH -H "Authorization: Bearer $COOLIFY_TOKEN" \ + -H "Content-Type: application/json" \ + "$COOLIFY_URL/applications/" \ + -d '{"domains":"http://nome.gohorsejobs.com","instant_deploy":true}' +``` + +## Referências + +- [Cloudflare API Docs](https://api.cloudflare.com/) +- [Coolify API Docs](https://coolify.io/docs/api-reference/authorization) +- Documentação: `../gohorsejobs/docs/DEVOPS.md` diff --git a/vps/redbull/README.md b/vps/redbull/README.md index 2dc1124..da96331 100644 --- a/vps/redbull/README.md +++ b/vps/redbull/README.md @@ -24,11 +24,24 @@ O servidor Redbull é uma infraestrutura de desenvolvimento que hospeda múltipl | Serviço | UUID | Porta | Domínio | |---------|------|:-----:|---------| | Backend | `iw4sow8s0kkg4cccsk08gsoo` | 8521 | coolify-dev.gohorsejobs.com | -| Frontend | `ao8g40scws0w4cgo8coc8o40` | 3000 | 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 | |---------|------|:-----:|---------| @@ -47,13 +60,53 @@ O servidor Redbull é uma infraestrutura de desenvolvimento que hospeda múltipl ## Quick Start ### Deploy Manual via API + ```bash # Token de autenticação TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9" +URL="http://185.194.141.70:8000/api/v1" # Deploy de uma aplicação curl -s -H "Authorization: Bearer $TOKEN" \ - "http://185.194.141.70:8000/api/v1/deploy?uuid=" + "$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