docs: adiciona documentação da API do Coolify e scripts de health check
This commit is contained in:
parent
c24c57fbd4
commit
543bf73248
3 changed files with 232 additions and 19 deletions
101
vps/redbull/coolify-api.md
Normal file
101
vps/redbull/coolify-api.md
Normal 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
|
||||
63
vps/redbull/health-check.sh
Normal file
63
vps/redbull/health-check.sh
Normal 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 "=============================================="
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue