From 6b3af3d962e34291a351dd3b829fb32582325257 Mon Sep 17 00:00:00 2001 From: Tiago Yamamoto Date: Tue, 17 Feb 2026 15:39:28 -0600 Subject: [PATCH] Atualiza doc Coolify API e configura Vaultwarden com PostgreSQL - Documentacao completa da API Coolify com endpoints corretos - Projeto renomeado de 'My first project' para 'Infraestrutura' - Banco PostgreSQL criado para Vaultwarden - VAULTWARDEN_DB_URL atualizado para usar PostgreSQL --- vps/redbull/coolify-api.md | 204 ++++++++++++++++++++++++------------- 1 file changed, 133 insertions(+), 71 deletions(-) diff --git a/vps/redbull/coolify-api.md b/vps/redbull/coolify-api.md index 3108b82..3f7722c 100644 --- a/vps/redbull/coolify-api.md +++ b/vps/redbull/coolify-api.md @@ -5,97 +5,159 @@ https://redbull.rede5.com.br/api/v1 ``` -## Authentication -Use Bearer token authentication: -```bash -curl -H "Authorization: Bearer $TOKEN" ... +## Authorization + +A API requer um token `Bearer` no header `Authorization`. + +### Gerar Token +1. Acesse `Keys & Tokens` / `API tokens` no painel Coolify +2. Defina um nome para o token e clique em `Create New Token` +3. Copie o token (so aparece uma vez) + +### Token Atual +``` +2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9 ``` -Token: `2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9` +### Permissoes +- `read-only` (default): apenas leitura +- `read:sensitive`: leitura + dados sensiveis +- `view:sensitive`: visualizar dados sensiveis +- `*`: acesso total -## Quick Commands +## Endpoints Principais -### List all applications +### Applications +| Metodo | Endpoint | Descricao | +|--------|----------|-----------| +| GET | `/applications` | Listar aplicacoes | +| GET | `/applications/{uuid}` | Obter aplicacao | +| GET | `/applications/{uuid}/start` | Iniciar aplicacao | +| GET | `/applications/{uuid}/stop` | Parar aplicacao | +| GET | `/applications/{uuid}/restart` | Reiniciar aplicacao | +| DELETE | `/applications/{uuid}` | Deletar aplicacao | +| PATCH | `/applications/{uuid}` | Atualizar aplicacao | + +### Databases +| Metodo | Endpoint | Descricao | +|--------|----------|-----------| +| GET | `/databases` | Listar bancos | +| GET | `/databases/{uuid}` | Obter banco | +| POST | `/databases/postgresql` | Criar PostgreSQL | +| POST | `/databases/mysql` | Criar MySQL | +| POST | `/databases/mariadb` | Criar MariaDB | +| POST | `/databases/mongodb` | Criar MongoDB | +| POST | `/databases/redis` | Criar Redis | +| GET | `/databases/{uuid}/start` | Iniciar banco | +| GET | `/databases/{uuid}/stop` | Parar banco | +| DELETE | `/databases/{uuid}` | Deletar banco | + +### Deployments +| Metodo | Endpoint | Descricao | +|--------|----------|-----------| +| GET | `/deployments` | Listar deployments | +| GET | `/deploy?uuid={uuid}` | Deploy por UUID | +| GET | `/deploy?tag={tag}` | Deploy por tag | + +### Projects +| Metodo | Endpoint | Descricao | +|--------|----------|-----------| +| GET | `/projects` | Listar projetos | +| POST | `/projects` | Criar projeto | +| GET | `/projects/{uuid}` | Obter projeto | +| PATCH | `/projects/{uuid}` | Atualizar projeto | +| DELETE | `/projects/{uuid}` | Deletar projeto | + +### Servers +| Metodo | Endpoint | Descricao | +|--------|----------|-----------| +| GET | `/servers` | Listar servidores | +| GET | `/servers/{uuid}` | Obter servidor | +| GET | `/servers/{uuid}/domains` | Listar dominios | + +## Exemplos + +### Listar Aplicacoes ```bash -curl -s -H "Authorization: Bearer $(cat ~/.ssh/coolify-redbull-token)" "https://redbull.rede5.com.br/api/v1/applications" +curl -s -H "Authorization: Bearer $TOKEN" \ + "https://redbull.rede5.com.br/api/v1/applications" ``` -### Deploy by UUID +### Criar PostgreSQL Database ```bash -# Frontend -curl -s -X GET -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/api/v1/deploy?uuid=ao8g40scws0w4cgo8coc8o40" - -# Backend -curl -s -X GET -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/api/v1/deploy?uuid=iw4sow8s0kkg4cccsk08gsoo" +curl -s -X POST -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type: application/json" \ + "https://redbull.rede5.com.br/api/v1/databases/postgresql" \ + -d '{ + "name": "my-database", + "description": "PostgreSQL database", + "project_uuid": "t0c4ss0wkcgwg48g088wkwgs", + "environment_name": "production", + "server_uuid": "m844o4gkwkwcc0k48swgs8c8", + "destination_uuid": "e0ggcws4gsw4w4wkgggkg8ow", + "postgres_user": "myuser", + "postgres_password": "mypassword", + "postgres_db": "mydb", + "image": "postgres:16-alpine", + "instant_deploy": true + }' ``` -### Check deployment status +### Deploy por UUID ```bash -curl -s -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/api/v1/deployments/{deployment_uuid}" +curl -s -H "Authorization: Bearer $TOKEN" \ + "https://redbull.rede5.com.br/api/v1/deploy?uuid={UUID}" ``` -### Start/Stop/Restart application +### Atualizar Dominio ```bash -# Start -curl -s -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/api/v1/applications/{uuid}/start" - -# Stop -curl -s -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/api/v1/applications/{uuid}/stop" - -# Restart -curl -s -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/api/v1/applications/{uuid}/restart" +curl -s -X PATCH -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type: application/json" \ + "https://redbull.rede5.com.br/api/v1/applications/{UUID}" \ + -d '{"domains":"https://meu-dominio.com"}' ``` -## Application UUIDs +## UUIDs Importantes -| 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 | +### Server +| Nome | UUID | +|------|------| +| localhost | `m844o4gkwkwcc0k48swgs8c8` | -## Scripts +### Destination (Docker Network) +| Nome | UUID | +|------|------| +| coolify | `e0ggcws4gsw4w4wkgggkg8ow` | -### Health Check Script +### Projects +| Nome | UUID | +|------|------| +| Infraestrutura | `t0c4ss0wkcgwg48g088wkwgs` | +| gohorsejobs | `gkgksco0ow4kgwo8ow4cgs8c` | +| rodiziosdaqui | `iooos0488ww0coccosc0sk4c` | +| obramarket | `scwgsc8k0w84gkc88c080ck4` | + +### Environments (Infraestrutura) +| Nome | UUID | +|------|------| +| production | `sw4ckcgkgs0wssgs40os8s0g` | + +## Variaveis de Ambiente +```bash +export COOLIFY_TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9" +export COOLIFY_URL="https://redbull.rede5.com.br/api/v1" +export COOLIFY_SERVER="m844o4gkwkwcc0k48swgs8c8" +export COOLIFY_DESTINATION="e0ggcws4gsw4w4wkgggkg8ow" +``` + +## Script de Health Check ```bash #!/bin/bash -TOKEN=$(cat ~/.ssh/coolify-redbull-token | tr -d '\n') -echo "=== Coolify Health Check ===" -curl -s -H "Authorization: Bearer $TOKEN" "https://redbull.rede5.com.br/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}') -" +TOKEN="2|tjaxz6z6osQUz6whMvNMw23kcBqgToQAvMjSLos347164da9" +curl -s -H "Authorization: Bearer $TOKEN" \ + "https://redbull.rede5.com.br/api/v1/applications" | jq -r '.[] | "\(.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" "https://redbull.rede5.com.br/api/v1/deploy?uuid=$uuid" -done -``` - -## Useful Links -- Coolify Docs: https://coolify.io/docs -- API Reference: https://coolify.io/docs/api-reference/authorization +## Links +- [Coolify API Docs](https://coolify.io/docs/api-reference/authorization) +- [GitHub Issues](https://github.com/coollabsio/coolify/issues)