# Coolify API Documentation

## Base URL
```
https://redbull.rede5.com.br/api/v1
```

## 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
```
fzz2xL0UUwpeVB1mObEwxE9GO8sTV8z2OHiOojmdf0e428be
```
> Salvo em `~/.ssh/coolify-redbull-token`

### Permissoes
- `read-only` (default): apenas leitura
- `read:sensitive`: leitura + dados sensiveis
- `view:sensitive`: visualizar dados sensiveis
- `*`: acesso total

## Endpoints Principais

### 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 $TOKEN" \
  "https://redbull.rede5.com.br/api/v1/applications"
```

### Criar PostgreSQL Database
```bash
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
  }'
```

### Deploy por UUID
```bash
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://redbull.rede5.com.br/api/v1/deploy?uuid={UUID}"
```

### Atualizar Dominio
```bash
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"}'
```

## UUIDs Importantes

### Server
| Nome | UUID |
|------|------|
| localhost | `m844o4gkwkwcc0k48swgs8c8` |

### Destination (Docker Network)
| Nome | UUID |
|------|------|
| coolify | `e0ggcws4gsw4w4wkgggkg8ow` |

### Projects
| Nome | UUID |
|------|------|
| Infraestrutura | `t0c4ss0wkcgwg48g088wkwgs` |
| gohorsejobs | `gkgksco0ow4kgwo8ow4cgs8c` |
| rodiziosdaqui | `iooos0488ww0coccosc0sk4c` |
| obramarket | `scwgsc8k0w84gkc88c080ck4` |
| q1food | `x0os8c40o00ssoo84sokwosk` |
| q1agenda | `ews8s8o40wkok0cgc8w4wc04` |
| sextando | `xk40w0s88wkcoco0css8c8kk` |
| q1total | `e0gg00w4sksk88cwksgc4cwo` |
| openproject | `dc40gww0gg4kw88k4gk88sws` |
| saveinmed | `lgko4gcg0okk48k04kcww0gs` |
| zeus-suplementos | `xwkcw80w0sgk8g84wo08s8ks` |

### Applications (Importantes)
| Nome | UUID |
|------|------|
| q1site-frontend | `y0wccwwsko4socokk804s0ww` |
| q1total-backend | `e8w040ow8skssoscookowgck` |
| q1food-backend-dev | `eosgwscc4g044c884k0ws4gc` |
| q1food-frontend-dev | `g8w440g0w0oowo8skss440wk` |
| q1fit-dev | `fk8wswsk8ssswggcsoc0kgcc` |
| zeus-frontend | `t4c8w08ocg8socoo8cg00c48` |

### Environments (Infraestrutura)
| Nome | UUID |
|------|------|
| production | `sw4ckcgkgs0wssgs40os8s0g` |

## Variaveis de Ambiente
```bash
export COOLIFY_TOKEN="fzz2xL0UUwpeVB1mObEwxE9GO8sTV8z2OHiOojmdf0e428be"
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="fzz2xL0UUwpeVB1mObEwxE9GO8sTV8z2OHiOojmdf0e428be"
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://redbull.rede5.com.br/api/v1/applications" | jq -r '.[] | "\(.name): \(.status)"'
```

## Links
- [Coolify API Docs](https://coolify.io/docs/api-reference/authorization)
- [GitHub Issues](https://github.com/coollabsio/coolify/issues)
