docs: adiciona documentação da API do Coolify e scripts de health check

This commit is contained in:
Tiago Yamamoto 2026-02-16 16:18:09 -06:00
parent c24c57fbd4
commit 543bf73248
3 changed files with 232 additions and 19 deletions

101
vps/redbull/coolify-api.md Normal file
View file

@ -0,0 +1,101 @@
# Coolify API Documentation
## Base URL
```
http://185.194.141.70:8000/api/v1
```
## Authentication
Use Bearer token authentication:
```bash
curl -H "Authorization: Bearer $TOKEN" ...
```
Token: `2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9`
## Quick Commands
### List all applications
```bash
curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "http://185.194.141.70:8000/api/v1/applications"
```
### Deploy by UUID
```bash
# Frontend
curl -s -X GET -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/deploy?uuid=ao8g40scws0w4cgo8coc8o40"
# Backend
curl -s -X GET -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/deploy?uuid=iw4sow8s0kkg4cccsk08gsoo"
```
### Check deployment status
```bash
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/deployments/{deployment_uuid}"
```
### Start/Stop/Restart application
```bash
# Start
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/applications/{uuid}/start"
# Stop
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/applications/{uuid}/stop"
# Restart
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/applications/{uuid}/restart"
```
## Application UUIDs
| App | UUID |
|-----|------|
| gohorsejobs-backend-dev | iw4sow8s0kkg4cccsk08gsoo |
| gohorsejobs-backoffice-dev | hg48wkw4wggwsswcwc8sooo4 |
| gohorsejobs-frontend-dev | ao8g40scws0w4cgo8coc8o40 |
| gohorsejobs-seeder-dev | q4w48gos8cgssso00o8w8gck |
| rodiziosdaqui-backend-dev | ecso4woo4woo0ks84888k8ck |
| rodiziosdaqui-backoffice-dev | s4kskw08400wcw8g40ossggo |
| rodiziosdaqui-frontend-dev | l4g4cc884gc04kg8s480gs48 |
| rodiziosdaqui-seeder-dev | ko0kkw4kw8g80scksg8sk0wc |
## Scripts
### Health Check Script
```bash
#!/bin/bash
TOKEN=$(cat ~/.ssh/coolify-redbull-token | tr -d '\n')
echo "=== Coolify Health Check ==="
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/applications" | python -c "
import json,sys
d = json.load(sys.stdin)
for a in d:
status = a.get('status','unknown')
icon = '✅' if 'running' in status else '❌'
print(f'{icon} {a[\"name\"]}: {status}')
"
```
### Restart All Services
```bash
#!/bin/bash
TOKEN=$(cat ~/.ssh/coolify-redbull-token | tr -d '\n')
UUIDS=(
"ao8g40scws0w4cgo8coc8o40"
"q4w48gos8cgssso00o8w8gck"
"iw4sow8s0kkg4cccsk08gsoo"
"hg48wkw4wggwsswcwc8sooo4"
"ecso4woo4woo0ks84888k8ck"
"s4kskw08400wcw8g40ossggo"
"l4g4cc884gc04kg8s480gs48"
"ko0kkw4kw8g80scksg8sk0wc"
)
for uuid in "${UUIDS[@]}"; do
echo "Deploying $uuid..."
curl -s -X GET -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/deploy?uuid=$uuid"
done
```
## Useful Links
- Coolify Docs: https://coolify.io/docs
- API Reference: https://coolify.io/docs/api-reference/authorization

View file

@ -0,0 +1,63 @@
#!/bin/bash
# Redbull Health Check Script
# Usage: ./health-check.sh
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9"
COOLIFY_URL="http://185.194.141.70:8000"
SSH_HOST="redbull"
echo "=============================================="
echo " REDBULL HEALTH CHECK"
echo "=============================================="
echo ""
# Check SSH connection
echo -n "🔌 SSH Connection: "
if ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no $SSH_HOST "echo ok" &>/dev/null; then
echo -e "${GREEN}OK${NC}"
else
echo -e "${RED}FAILED${NC}"
exit 1
fi
echo ""
echo "📦 Containers Docker:"
echo "-------------------------------------------"
ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no $SSH_HOST "docker ps --format '{{.Names}}:{{.Status}}'" 2>/dev/null | while read line; do
if echo "$line" | grep -q "healthy\|Up"; then
echo -e " ${GREEN}${NC} $line"
else
echo -e " ${RED}${NC} $line"
fi
done
echo ""
echo "🌐 Aplicações Coolify:"
echo "-------------------------------------------"
APPS=$(curl -s -H "Authorization: Bearer $TOKEN" "$COOLIFY_URL/api/v1/applications" 2>/dev/null || echo "[]")
echo "$APPS" | python -c "
import json,sys,os
try:
d = json.load(sys.stdin)
for a in d:
status = a.get('status','unknown')
if 'running' in status:
icon = '${GREEN}✓${NC}'
else:
icon = '${RED}✗${NC}'
print(f' {icon} {a[\"name\"]}: {status}')
except Exception as e:
print(f' Erro ao buscar dados: {e}')
" 2>/dev/null || echo -e " ${RED}Erro ao conectar com API${NC}"
echo ""
echo "=============================================="
echo " FIM DO HEALTH CHECK"
echo "=============================================="

View file

@ -15,7 +15,7 @@ Este documento apresenta o inventário completo de serviços hospedados no servi
| **gohorsejobs-backend-dev** | `iw4sow8s0kkg4cccsk08gsoo` | 8521 | coolify-dev.gohorsejobs.com | ✅ Running |
| **gohorsejobs-frontend-dev** | `ao8g40scws0w4cgo8coc8o40` | 3000 | dev.gohorsejobs.com | ✅ Running |
| **gohorsejobs-backoffice-dev** | `hg48wkw4wggwsswcwc8sooo4` | 3001 | backoffice-dev.gohorsejobs.com | ✅ Running |
| **gohorsejobs-seeder-dev** | `q4w48gos8cgssso00o8w8gck` | 8080 | seeder-dev.gohorsejobs.com | ⚠️ Unhealthy |
| **gohorsejobs-seeder-dev** | `q4w48gos8cgssso00o8w8gck` | 8080 | seeder-dev.gohorsejobs.com | ✅ Running |
### Rodizios Daqui (DEV)
@ -55,12 +55,12 @@ Este documento apresenta o inventário completo de serviços hospedados no servi
| Container | Imagem | Porta | Notas |
|-----------|--------|:-----:|-------|
| coolify | ghcr.io/coollabsio/coolify:latest | 8000 | Painel Coolify |
| coolify-db | postgres:16-alpine | 5432 | Banco Coolify |
| coolify | ghcr.io/coollabsio/coolify:4.0.0-beta.463 | 8000 | Painel Coolify |
| coolify-db | postgres:15-alpine | 5432 | Banco Coolify |
| coolify-redis | redis:7-alpine | 6379 | Cache Coolify |
| coolify-realtime | soketi | 6001 | WebSocket |
| coolify-sentinel | coolify-sentinel | 8888 | Monitoramento |
| coolify-proxy | traefik:v3 | 80/443 | Proxy reverso |
| coolify-proxy | traefik:v3.6 | 80/443 | Proxy reverso |
## Portas do Sistema
@ -70,30 +70,79 @@ Este documento apresenta o inventário completo de serviços hospedados no servi
| 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 |
## Variáveis de Ambiente Comuns
## Comandos Rápidos
### GoHorse Jobs Backend
```
DATABASE_URL=postgres://gohorsejobs:****@bgws48os8wgwk08o48wg8k80:5432/gohorsejobs
JWT_SECRET=gohorsejobs-dev-jwt-secret-2024-very-secure-key-32ch
PORT=8521
### SSH Access
```bash
ssh redbull
```
### Rodizios Daqui Backend
```
DATABASE_URL=postgres://admin:****@db-60604.dc-us-1.absamcloud.com:11985/rodiziosdaqui?sslmode=require
JWT_SECRET=rodiziosdaqui-dev-jwt-secret-2024-very-secure
PORT=8080
### Check All Containers
```bash
ssh redbull "docker ps -a"
```
## Issues Conhecidas
### Health Check via API
```bash
TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9"
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/applications"
```
1. **gohorsejobs-seeder-dev**: Healthcheck ainda falhando (precisa de correção similar ao rodiziosdaqui)
2. **SSL**: Domínios ainda sem HTTPS configurado
3. **S3**: Rodiziosdaqui backend sem S3 configurado (uploads desabilitados)
### Deploy Application
```bash
# Via UUID
TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9"
curl -s -X GET -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/deploy?uuid={UUID}"
```
### View Logs
```bash
ssh redbull "docker logs {container_name}"
```
## Script de Health Check Automático
Execute no terminal local:
```bash
#!/bin/bash
echo "=== Redbull Health Check ==="
echo ""
# Check containers
echo "📦 Containers:"
ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no redbull "docker ps --format '{{.Names}}:{{.Status}}'" 2>/dev/null | while read line; do
if echo "$line" | grep -q "healthy\|Up"; then
echo " ✅ $line"
else
echo " ❌ $line"
fi
done
echo ""
echo "🌐 Aplicações Coolify:"
TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9"
curl -s -H "Authorization: Bearer $TOKEN" "http://185.194.141.70:8000/api/v1/applications" 2>/dev/null | python -c "
import json,sys
try:
d = json.load(sys.stdin)
for a in d:
status = a.get('status','unknown')
icon = '✅' if 'running' in status else '❌'
print(f' {icon} {a[\"name\"]}: {status}')
except: print(' Erro ao buscar dados')
"
```
## Issues Conhecidos
1. ~~gohorsejobs-seeder-dev~~ - ✅ CORRIGIDO
2. ~~gohorsejobs-frontend-dev~~ - ✅ CORRIGIDO (erro de tipagem TypeScript)
3. SSL: Domínios ainda sem HTTPS configurado
4. S3: Rodiziosdaqui backend sem S3 configurado (uploads desabilitados)