278 lines
13 KiB
Markdown
278 lines
13 KiB
Markdown
# Inventário de Serviços Redbull
|
|
|
|
> Última atualização: 2026-02-26 — Audit completo via Coolify API + SSH
|
|
|
|
---
|
|
|
|
## Visão Geral
|
|
|
|
Servidor Redbull (`185.194.141.70`) gerenciado pelo Coolify v4. Proxy reverso: Traefik.
|
|
|
|
**SSH:** Conexão funciona via IP diretamente (`ssh redbull` → aponta para `185.194.141.70:22`).
|
|
> ⚠️ `redbull.rede5.com.br` está atrás do Cloudflare — porta 22 bloqueada. SSH usa IP direto.
|
|
|
|
---
|
|
|
|
## Aplicações — Status Completo
|
|
|
|
### Q1 Agenda (DEV / HML)
|
|
|
|
| Aplicação | UUID | Domínio | Branch | CI/CD | Status |
|
|
|-----------|------|---------|--------|-------|:------:|
|
|
| **backend-dev** | `h8kkc0gw04sow8oo08ccg00s` | sslip.io (sem domínio) | main | ❌ Sem webhook | ❌ Exited |
|
|
| **backend-hml** | `bk0kcosgo0s8cogww8s4so0w` | sslip.io (sem domínio) | main | ❌ Sem webhook | ❌ Exited |
|
|
| **frontend-dev** | `wwgccg0o8g4ogowgowcw4gcg` | sslip.io (sem domínio) | main | ❌ Sem webhook | ❌ Exited |
|
|
| **frontend-hml** | `es0gg4gokssw8c88o4kg0c08` | sslip.io (sem domínio) | main | ❌ Sem webhook | ❌ Exited |
|
|
|
|
**Repo:** `rede5/q1-agenda-backend.git` / `rede5/q1-agenda-frontend.git` (GitHub App)
|
|
**Issues:** Sem domínio configurado, sem CI/CD, todos parados. Precisam de revisão/limpeza.
|
|
|
|
---
|
|
|
|
### GoHorse Jobs (LOCAL / DEV)
|
|
|
|
| Aplicação | UUID | Domínio | Branch | CI/CD | Status |
|
|
|-----------|------|---------|--------|-------|:------:|
|
|
| **gohorsejobs-backend-local** | `iw4sow8s0kkg4cccsk08gsoo` | https://test2.q1agenda.com.br | dev | ✅ GitHub webhook | ✅ Running |
|
|
| **gohorsejobs-frontend-local** | `ao8g40scws0w4cgo8coc8o40` | https://local.gohorsejobs.com | dev | ✅ GitHub webhook | ✅ Running |
|
|
| **gohorsejobs-backoffice-local** | `hg48wkw4wggwsswcwc8sooo4` | https://b-local.gohorsejobs.com | dev | ✅ GitHub webhook | ✅ Running |
|
|
| **gohorsejobs-seeder-local** | `q4w48gos8cgssso00o8w8gck` | https://s-local.gohorsejobs.com | dev | ✅ GitHub webhook | ✅ Healthy |
|
|
| **gohorsejobs-frontend-dev** | `sowwg0scwkwooog0kggsosso` | sslip.io (sem domínio) | dev | ❌ Sem webhook | ❌ Exited |
|
|
|
|
**Repo:** `git@github.com:rede5/gohorsejobs.git`
|
|
**Issues:** `gohorsejobs-frontend-dev` duplicata da `frontend-local`, parada e sem CI/CD — candidata à remoção.
|
|
**Nota:** `gohorsejobs-backend-local` aponta para `test2.q1agenda.com.br` — revisar domínio.
|
|
|
|
---
|
|
|
|
### Rodizios Daqui (DEV)
|
|
|
|
| Aplicação | UUID | Domínio | Branch | CI/CD | Status |
|
|
|-----------|------|---------|--------|-------|:------:|
|
|
| **rodiziosdaqui-backend-dev** | `ecso4woo4woo0ks84888k8ck` | http://api.rodiziosdaqui.rede5.com.br | dev | ✅ GitHub webhook | ✅ Running |
|
|
| **rodiziosdaqui-frontend-dev** | `l4g4cc884gc04kg8s480gs48` | http://rodiziosdaqui.rede5.com.br | dev | ✅ GitHub webhook | ✅ Running |
|
|
| **rodiziosdaqui-backoffice-dev** | `s4kskw08400wcw8g40ossggo` | http://backoffice.rodiziosdaqui.rede5.com.br | dev | ✅ GitHub webhook | ✅ Running |
|
|
| **rodiziosdaqui-seeder-dev** | `ko0kkw4kw8g80scksg8sk0wc` | http://seeder.rodiziosdaqui.rede5.com.br | dev | ✅ GitHub webhook | ✅ Healthy |
|
|
|
|
**Repo:** `git@github.com:rede5/rodiziosdaqui.git`
|
|
**Projeto mais completo e estável** — todos rodando com CI/CD configurado.
|
|
|
|
---
|
|
|
|
### Q1 Food (DEV)
|
|
|
|
| Aplicação | UUID | Domínio | Branch | CI/CD | Status |
|
|
|-----------|------|---------|--------|-------|:------:|
|
|
| **q1food-backend-dev** | `eosgwscc4g044c884k0ws4gc` | http://api-dev.q1food.com | dev | ✅ GitHub webhook | ❌ Exited |
|
|
| **q1food-frontend-dev** | `g8w440g0w0oowo8skss440wk` | http://dev.q1food.com | dev | ✅ GitHub webhook | ✅ Running |
|
|
|
|
**Repos:** `rede5/food-backend.git` / `rede5/food-frontend.git`
|
|
**Issues:** Backend parado desde 18/02. CI/CD configurado mas deploy falhou.
|
|
|
|
---
|
|
|
|
### Sextando (DEV)
|
|
|
|
| Aplicação | UUID | Domínio | Branch | CI/CD | Status |
|
|
|-----------|------|---------|--------|-------|:------:|
|
|
| **sextando-backend** | `h8c4sg0sg80c4o8kkcw4ogcg` | https://api-dev.sextando.com.br | dev | ❌ Sem webhook | ❌ Exited |
|
|
| **sextando-backoffice** | `nsc0gw0og40g0c88soc0o0wc` | https://backoffice-dev.sextando.com.br | dev | ❌ Sem webhook | ❌ Exited |
|
|
| **sextando-frontend** | `vggkcs880o8go0ws84wcggco` | https://dev.sextando.com.br | dev | ❌ Sem webhook | ✅ Running |
|
|
|
|
**Repo:** `git@github.com:rede5/sextando.git`
|
|
**Build:** Frontend usa `nixpacks`, backend/backoffice usam `dockerfile`
|
|
**Issues:** Nenhum dos 3 tem webhook CI/CD. Backend e backoffice parados.
|
|
|
|
---
|
|
|
|
### ObraMarket (DEV) — DUPLICATAS ⚠️
|
|
|
|
| UUID | Repo Configurado | CI/CD | Status |
|
|
|------|-----------------|-------|:------:|
|
|
| `js8kkwgk8scwg0c4s44wc48s` | `git@forgejo.redbull:rede5/obramarket.git` | ❌ | ❌ Exited |
|
|
| `ws08owk8ocog0gswg8ogo8c4` | `git@github.com:rede5/obramarket.git` | ❌ | ❌ Exited |
|
|
| `ywk4w0o88ww0400s0gwogkw8` | `rede5/obramarket.git` (incompleto) | ❌ | ❌ Exited |
|
|
| `v44kk8s0cg8w4wgwoc0cc88w` | `http://10.0.1.9:3001/rede5/obramarket.git` (IP interno) | ❌ | ❌ Exited |
|
|
|
|
> **Ação necessária:** 4 instâncias duplicadas do mesmo backend, todas com repos diferentes e sem CI/CD. **Remover 3, manter apenas a que usar GitHub.**
|
|
|
|
---
|
|
|
|
## Resumo de Status
|
|
|
|
| Projeto | Rodando | Parado | CI/CD |
|
|
|---------|:-------:|:------:|-------|
|
|
| Q1Agenda | 0 | 4 | ❌ Nenhum |
|
|
| GoHorse Jobs | 4 | 1 | ✅ 4 de 5 |
|
|
| Rodizios Daqui | 4 | 0 | ✅ Todos |
|
|
| Q1Food | 1 | 1 | ✅ Ambos configurados |
|
|
| Sextando | 1 | 2 | ❌ Nenhum |
|
|
| ObraMarket | 0 | 4 | ❌ Nenhum |
|
|
| **Total** | **10** | **12** | |
|
|
|
|
---
|
|
|
|
## Bancos de Dados (Databases)
|
|
|
|
| Serviço | UUID | DB | Apps Vinculados | Status |
|
|
|---------|------|----|-----------------|:------:|
|
|
| **gohorsejobs-dev** | `bgws48os8wgwk08o48wg8k80` | PostgreSQL 16 | gohorsejobs-* | ✅ Healthy (10d) |
|
|
| **rodiziosdaqui-dev** | `e8ogwk008c8s8sok8wc00ow0` | PostgreSQL 16 | rodiziosdaqui-* | ✅ Healthy (10d) |
|
|
| **q1food-dev** | `vskkccs8880cg0ggckccsgww` | PostgreSQL | q1food-* | ✅ Healthy (8d) |
|
|
| **vaultwarden-db** | `sg0co4s44cs48o4kc4cgg844` | PostgreSQL | Vaultwarden | ✅ Healthy (8d) |
|
|
| **bookstack-db** | `mariadb-ogs4okgoosk48cswoo0s4k84` | MariaDB | BookStack | ✅ Up (3d) |
|
|
|
|
---
|
|
|
|
## Serviços (Coolify Services)
|
|
|
|
| Serviço | Domínio | Status |
|
|
|---------|---------|:------:|
|
|
| **BookStack** (`ogs4okgoosk48cswoo0s4k84`) | https://docs.rede5.com.br | ✅ Running (3d) |
|
|
| **Vaultwarden** (`h8wg0gogw44swosgk8wgc8cs`) | https://vault.rede5.com.br | ✅ Healthy |
|
|
| **Forgejo** (`zskgc8sck4w8g8w0o4w44o40`) | pipe.gohorsejobs.com | ⚠️ API=exited, Docker=Up 9d |
|
|
| **Supabase** (`hk0ogck8w0co0skc0c8g0ss0`) | - | ❌ Exited |
|
|
|
|
---
|
|
|
|
## Infraestrutura Coolify (containers internos)
|
|
|
|
| Container | Status |
|
|
|-----------|:------:|
|
|
| coolify | ✅ Up 9d (healthy) |
|
|
| coolify-proxy (Traefik) | ✅ Up 9d (healthy) |
|
|
| coolify-db | ✅ Up 10d (healthy) |
|
|
| coolify-redis | ✅ Up 10d (healthy) |
|
|
| coolify-realtime | ✅ Up 10d (healthy) |
|
|
| coolify-sentinel | ✅ Up 20h (healthy) |
|
|
|
|
---
|
|
|
|
## Conectividade SSH
|
|
|
|
| Método | Status | Observação |
|
|
|--------|:------:|------------|
|
|
| `ssh redbull` (via IP `185.194.141.70:22`) | ✅ OK | Funciona |
|
|
| `ssh root@redbull.rede5.com.br` (port 22) | ❌ Timeout | Cloudflare bloqueia porta 22 |
|
|
| Coolify API (`https://redbull.rede5.com.br`) | ✅ OK | Via Traefik HTTPS |
|
|
| Coolify API (`http://185.194.141.70:8000`) | ✅ OK | Acesso direto |
|
|
|
|
**SSH Config:** `~/.ssh/config` usa `HostName 185.194.141.70` (IP direto).
|
|
|
|
---
|
|
|
|
## Webhooks CI/CD
|
|
|
|
### GoHorse Jobs (`rede5/gohorsejobs` → branch `dev`)
|
|
|
|
| App | Webhook URL |
|
|
|-----|------------|
|
|
| Backend | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=iw4sow8s0kkg4cccsk08gsoo` |
|
|
| Frontend | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=ao8g40scws0w4cgo8coc8o40` |
|
|
| Backoffice | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=hg48wkw4wggwsswcwc8sooo4` |
|
|
| Seeder | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=q4w48gos8cgssso00o8w8gck` |
|
|
|
|
### Rodizios Daqui (`rede5/rodiziosdaqui` → branch `dev`)
|
|
|
|
| App | Webhook URL |
|
|
|-----|------------|
|
|
| Backend | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=ecso4woo4woo0ks84888k8ck` |
|
|
| Backoffice | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=s4kskw08400wcw8g40ossggo` |
|
|
| Frontend | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=l4g4cc884gc04kg8s480gs48` |
|
|
| Seeder | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=ko0kkw4kw8g80scksg8sk0wc` |
|
|
|
|
### Q1Food (`rede5/food-*` → branch `dev`)
|
|
|
|
| App | Webhook URL |
|
|
|-----|------------|
|
|
| Backend | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=eosgwscc4g044c884k0ws4gc` |
|
|
| Frontend | `https://redbull.rede5.com.br/api/v1/webhook/github?uuid=g8w440g0w0oowo8skss440wk` |
|
|
|
|
> **Secrets dos webhooks:** ver `services_inventory.md` seção anterior ou Coolify Dashboard.
|
|
|
|
---
|
|
|
|
## Portas do Sistema
|
|
|
|
| Porta | Serviço |
|
|
|:-----:|---------|
|
|
| 22 | SSH (acesso via IP direto) |
|
|
| 80 | Traefik HTTP |
|
|
| 443 | Traefik HTTPS |
|
|
| 8000 | Coolify Dashboard |
|
|
| 22222 | Forgejo SSH |
|
|
| 3000 | Frontends (Next.js) |
|
|
| 3001 | Backoffice |
|
|
| 8080 | Backends (Go) |
|
|
| 8081 | Seeders |
|
|
| 8521 | GoHorse Backend |
|
|
|
|
---
|
|
|
|
## Fixes Aplicados (2026-02-26)
|
|
|
|
| App | Problema | Fix | Status |
|
|
|-----|----------|-----|:------:|
|
|
| **q1food-backend** | Submodulo `.gitmodules` auto-referenciando o próprio repo via HTTPS | Deletado `.gitmodules` via GitHub API (commit `432e07d`) | ✅ Build OK |
|
|
| **sextando-backend** | `schema.sql` não copiado para container final (multi-stage) | Adicionado `COPY --from=builder /app/internal/database/schema.sql` no Dockerfile (commit `61d6b98`) | ✅ UP |
|
|
| **sextando-backend** | `base_directory=/` causava contexto errado (Go files em `/backend/`) | PATCH Coolify: `base_directory=/backend`, `dockerfile=/Dockerfile` | ✅ Fixado |
|
|
| **sextando-backoffice** | `base_directory=/` contexto errado (`prisma/` não encontrado) | PATCH Coolify: `base_directory=/backoffice`, `dockerfile=/Containerfile` | ✅ Fixado |
|
|
| **sextando-backoffice** | Containerfile usava `npm ci` sem `package-lock.json` (projeto usa pnpm) | Trocado para `npm install` (commit `84ca0d7`) | ✅ Build OK |
|
|
| **sextando-backoffice** | `dist/main` não encontrado — `tsconfig.json` sem `rootDir` → saída em `dist/src/main`. Prisma sem `DATABASE_URL` | CMD → `node dist/src/main` + `openssl` no final stage + `DATABASE_URL` configurada | ✅ UP |
|
|
|
|
## Issues Pendentes (Ação Manual Necessária)
|
|
|
|
| # | Problema | Severidade | Ação |
|
|
|---|----------|:----------:|------|
|
|
| 1 | **q1food-backend**: falta env vars `SUPABASE_URL`, `SUPABASE_KEY`, `SUPABASE_ANON_KEY` | 🔴 Alta | Configurar no Coolify Dashboard → App → Environment Variables |
|
|
| 2 | **ObraMarket: 4 apps duplicadas**, repos inconsistentes, todas paradas | 🔴 Alta | Remover 3, manter a que usar GitHub (`ws08owk8ocog0gswg8ogo8c4`) |
|
|
| 3 | **Q1Agenda: 4 apps sem CI/CD e paradas** — sem domínio real | 🟡 Média | Configurar webhook ou remover se projeto inativo |
|
|
| 4 | **Sextando: nenhum app tem webhook CI/CD** | 🟡 Média | Configurar webhook GitHub para todos (ver URLs abaixo) |
|
|
| 5 | **gohorsejobs-frontend-dev**: duplicata parada sem CI/CD | 🟡 Média | Remover do Coolify |
|
|
| 6 | **SSH hostname bloqueado** — porta 22 inacessível via `redbull.rede5.com.br` | 🟡 Média | Cloudflare bloqueia porta 22 — SSH config usa IP `185.194.141.70` |
|
|
| 7 | **gohorsejobs-backend-local** usa domínio `test2.q1agenda.com.br` — parece errado | 🟢 Baixa | Revisar domínio para `api-local.gohorsejobs.com` |
|
|
|
|
### q1food-backend — Env Vars necessárias
|
|
```bash
|
|
# Configurar no Coolify → App q1food-backend-dev → Environment Variables
|
|
SUPABASE_URL=https://xxxxx.supabase.co
|
|
SUPABASE_KEY=eyJhbGci... # Service role key
|
|
SUPABASE_ANON_KEY=eyJhbGci... # Anon public key
|
|
```
|
|
|
|
### Sextando — Webhooks CI/CD a configurar no GitHub
|
|
```
|
|
# Repositório: github.com/rede5/sextando → Settings → Webhooks
|
|
Backend URL: https://redbull.rede5.com.br/api/v1/webhook/github?uuid=h8c4sg0sg80c4o8kkcw4ogcg
|
|
Backoffice URL: https://redbull.rede5.com.br/api/v1/webhook/github?uuid=nsc0gw0og40g0c88soc0o0wc
|
|
Frontend URL: https://redbull.rede5.com.br/api/v1/webhook/github?uuid=vggkcs880o8go0ws84wcggco
|
|
```
|
|
|
|
---
|
|
|
|
## Comandos Rápidos
|
|
|
|
```bash
|
|
# SSH (usar IP direto)
|
|
ssh redbull
|
|
|
|
# Ver todos os containers
|
|
ssh redbull "docker ps --format 'table {{.Names}}\t{{.Status}}'"
|
|
|
|
# Ver logs de um app
|
|
ssh redbull "docker logs <container_name> --tail 50"
|
|
|
|
# Coolify API
|
|
TOKEN=$(cat ~/.ssh/coolify-redbull-token)
|
|
URL="https://redbull.rede5.com.br/api/v1"
|
|
|
|
# Listar apps com status
|
|
curl -s -H "Authorization: Bearer $TOKEN" "$URL/applications" | \
|
|
node -e "const c=[]; process.stdin.on('data',d=>c.push(d)); process.stdin.on('end',()=>{ JSON.parse(c.join('')).forEach(a=>console.log(a.status+' | '+a.name+' | '+a.fqdn)); })"
|
|
|
|
# Deploy por UUID
|
|
curl -s -H "Authorization: Bearer $TOKEN" "$URL/deploy?uuid=<UUID>"
|
|
|
|
# Reiniciar app
|
|
curl -s -H "Authorization: Bearer $TOKEN" "$URL/applications/<UUID>/restart"
|
|
```
|