infracloud/invista/nexus/AGENT.md

9.1 KiB

Agente de Infraestrutura - Cloudflare & Coolify

Este documento contém os tokens e APIs necessárias para gerenciar a infraestrutura.

Tokens

Azure DevOps

  • Arquivo: ~/.ssh/azure_devops_auth.json
  • Organization: CN-Squad
  • Project: Invista FIDC - Nexus
  • PAT: Token de acesso pessoal para API Azure DevOps

Azure DevOps API

# Configurar PAT
export AZDO_PAT=$(cat ~/.ssh/azure_devops_auth.json | jq -r '.pat')
export AZDO_ORG="CN-Squad"
export AZDO_PROJECT="Invista FIDC - Nexus"

# Listar builds
curl -s -u ":$AZDO_PAT" "https://dev.azure.com/$AZDO_ORG/$AZDO_PROJECT/_apis/build/builds?api-version=7.0" | jq '.value[] | {id, buildNumber, result, status}'

# Ver logs de um build (substituir BUILD_ID e LOG_ID)
curl -s -u ":$AZDO_PAT" "https://dev.azure.com/$AZDO_ORG/_apis/build/builds/BUILD_ID/logs/LOG_ID"

# Obter timeline do build
curl -s -u ":$AZDO_PAT" "https://dev.azure.com/$AZDO_ORG/_apis/build/builds/BUILD_ID/timeline"

# Listar variable groups
curl -s -u ":$AZDO_PAT" "https://dev.azure.com/$AZDO_ORG/$AZDO_PROJECT/_apis/distributedtask/variablegroups?api-version=7.0"

# Triggerar build
curl -s -X POST -u ":$AZDO_PAT" \
  -H "Content-Type: application/json" \
  "https://dev.azure.com/$AZDO_ORG/$AZDO_PROJECT/_apis/build/builds?api-version=7.0" \
  -d '{"definition": {"id": 37}, "sourceBranch": "refs/heads/devops"}'

OCI (Oracle Cloud Infrastructure)

  • Arquivo: ~/.ssh/azure_devops_auth.json (mesmo arquivo, contém PAT)
  • Region: sa-saopaulo-1
  • Namespace: grbb7qzeuoag
  • Variable Group: oci-terraform

Compartimentos OCI

Ambiente Compartment OCID
Dev ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a
HML ocid1.compartment.oc1..aaaaaaaawc3hj6isbiibbiuokijw7le72ga3qa3qyblsdhrkj5gdygskzmwq
PROD ocid1.compartment.oc1..aaaaaaaazjxk5dkwleol3hjq7huojevotvnjhvy5ngro4jtwcqx2fn2ujara

OCI CLI (local)

# Verificar namespace
oci os ns get

# Listar buckets (dev)
oci os bucket list --compartment-id "ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a"

# Listar objetos no bucket
oci os object list --namespace-name "grbb7qzeuoag" --bucket-name "mfe-user-dev"

# Criar bucket
oci os bucket create \
  --namespace-name "grbb7qzeuoag" \
  --name "mfe-nome-dev" \
  --compartment-id "ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a"

# Upload arquivo
oci os object put \
  --namespace-name "grbb7qzeuoag" \
  --bucket-name "mfe-user-dev" \
  --file ./dist/browser/index.html \
  --name "index.html"

Cloudflare

  • Arquivo: ~/.ssh/cloudflare-token
  • Email: yamamoto@rede5.com.br
  • Zone ID (gohorsejobs.com): 5e7e9286849525abf7f30b451b7964ac
  • Zone ID (q1food.com): 70cdac5cc9787719d548ac6d74c98896

Coolify (Redbull)

Comandos Rápidos

Cloudflare DNS

# 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/<RECORD_ID>" \
  -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/<RECORD_ID>"

# 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

# Configurar variáveis
export COOLIFY_TOKEN="tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9"
export COOLIFY_URL="https://redbull.rede5.com.br/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/<UUID>"

# Deploy aplicação
curl -s -H "Authorization: Bearer $COOLIFY_TOKEN" "$COOLIFY_URL/deploy?uuid=<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/<UUID>" \
  -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/<DEPLOYMENT_UUID>"

# 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:
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}'
  1. Atualizar domínio no Coolify:
curl -s -X PATCH -H "Authorization: Bearer $COOLIFY_TOKEN" \
  -H "Content-Type: application/json" \
  "$COOLIFY_URL/applications/<UUID>" \
  -d '{"domains":"http://nome.gohorsejobs.com","instant_deploy":true}'

Referências


Rodizios Daqui (Coolify - Redbull)

URLs

UUIDs Coolify

Serviço UUID
Backend ecso4woo4woo0ks84888k8ck
Frontend l4g4cc884gc04kg8s480gs48
Backoffice s4kskw08400wcw8g40ossggo
Seeder ko0kkw4kw8g80scksg8sk0wc

Deploy

# Deploy all
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "https://redbull.rede5.com.br/api/v1/deploy?uuid=ecso4woo4woo0ks84888k8ck" # Backend
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "https://redbull.rede5.com.br/api/v1/deploy?uuid=l4g4cc884gc04kg8s480gs48" # Frontend
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "https://redbull.rede5.com.br/api/v1/deploy?uuid=s4kskw08400wcw8g40ossggo" # Backoffice
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "https://redbull.rede5.com.br/api/v1/deploy?uuid=ko0kkw4kw8g80scksg8sk0wc" # Seeder

Q1Food (Coolify - Redbull)

URLs

DNS Cloudflare (Zone ID: 70cdac5cc9787719d548ac6d74c98896)

Record Tipo IP
q1food.com A 185.194.141.70
dev.q1food.com A 185.194.141.70
api-dev.q1food.com A 185.194.141.70

UUIDs Coolify

Serviço UUID
Backend eosgwscc4g044c884k0ws4gc
Frontend g8w440g0w0oowo8skss440wk

Webhooks GitHub

Serviço Webhook Secret
Backend d66bac276faa04631124559d77199d0e
Frontend c512dc54933829d1cde381e2c9bf394a

Deploy

# Deploy backend
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "http://185.194.141.70:8000/api/v1/deploy?uuid=eosgwscc4g044c884k0ws4gc"

# Deploy frontend
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "http://185.194.141.70:8000/api/v1/deploy?uuid=g8w440g0w0oowo8skss440wk"

Deploy automático: Push na branch dev dispara webhook do GitHub → Coolify