faef9b47dc
Dify foi removido 06-03-2026. Skills brainstorm/discover ainda referenciam-no no corpo. Bump v1.2 + nota top-of-file. Reescrita workflow para próxima sessão. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
7.8 KiB
7.8 KiB
EasyPanel API - Service Configuration
Verificado: 12-03-2026 (engenharia reversa do backend.js)
Actualizar Source (GitHub)
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateSourceGithub" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"owner":"ealmeida",
"repo":"MeuRepo",
"ref":"main",
"path":"/"
}}'
Actualizar Source (Git Custom)
IMPORTANTE: Os parametros repo, ref, path devem estar no nivel RAIZ do JSON, NAO dentro de um objecto source.
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateSourceGit" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"repo":"https://ealmeida:TOKEN@git.descomplicar.pt/ealmeida/repo",
"ref":"main",
"path":"/"
}}'
Errado (causa zodErrors):
{"json":{"projectName":"x","serviceName":"y","source":{"type":"git","repo":"...","ref":"main","path":"/"}}}
Correcto:
{"json":{"projectName":"x","serviceName":"y","repo":"...","ref":"main","path":"/"}}
Actualizar Source (Docker Image)
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateSourceImage" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"image":"node:22-alpine"
}}'
Actualizar Environment Variables
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateEnv" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"env":"NODE_ENV=production\nPORT=3000\nDATABASE_URL=postgres://..."
}}'
Actualizar Build Config
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateBuild" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"build":{
"type":"nixpacks",
"buildCommand":"npm run build",
"startCommand":"npm start"
}
}}'
Actualizar Resources
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateResources" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"resources":{
"memoryLimit":"512m",
"memoryReservation":"256m",
"cpuLimit":1,
"cpuReservation":0.5
}
}}'
Actualizar Deploy (Replicas, Command)
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateAdvanced" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"deploy":{
"replicas":2,
"command":"node dist/index.js",
"zeroDowntime":true
}
}}'
Actualizar Redirects
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateRedirects" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"redirects":[]
}}'
Actualizar Basic Auth
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateBasicAuth" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"basicAuth":{"enabled":false}
}}'
Actualizar Maintenance Mode
curl -s -X POST "http://localhost:3000/api/trpc/services.app.updateMaintenance" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-api",
"maintenance":{"enabled":false}
}}'
Database Backup Config
curl -s -X POST "http://localhost:3000/api/trpc/services.postgres.updateBackup" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"projectName":"descomplicar",
"serviceName":"minha-db",
"backup":{
"enabled":true,
"schedule":"0 3 * * *",
"destination":{
"type":"s3",
"bucket":"backups",
"region":"eu-west-1",
"accessKey":"...",
"secretKey":"..."
}
}
}}'
Domains API (Namespace separado)
IMPORTANTE: Os dominios NAO sao geridos por services.app.* mas sim pelo namespace domains.*.
Listar Dominios (GET)
INPUT='{"json":{"projectName":"descomplicar"}}'
ENCODED=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$INPUT'))")
curl -s "http://localhost:3000/api/trpc/domains.listDomains?input=$ENCODED" \
-H "Authorization: Bearer $TOKEN"
Criar Dominio (POST)
curl -s -X POST "http://localhost:3000/api/trpc/domains.createDomain" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{
"id":"meu-dominio-id",
"https":true,
"host":"app.descomplicar.pt",
"path":"/",
"middlewares":[],
"certificateResolver":"letsencrypt",
"wildcard":false,
"destinationType":"service",
"serviceDestination":{
"protocol":"http",
"port":3000,
"path":"/",
"projectName":"descomplicar",
"serviceName":"meu-servico"
}
}}'
Notas:
- O
idpode ser qualquer string unica (cuid ou slug) certificateResolver:"letsencrypt"para HTTPS,""para dominios internosdestinationType:"service"para servicos EasyPanel,"custom"para destinos externos
Actualizar Dominio (POST)
curl -s -X POST "http://localhost:3000/api/trpc/domains.updateDomain" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{...mesmo schema de createDomain...}}'
Remover Dominio (POST)
curl -s -X POST "http://localhost:3000/api/trpc/domains.deleteDomain" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"json":{"id":"meu-dominio-id"}}'
Resumo de Endpoints de Configuracao
| Endpoint | Tipo | Descricao | Verificado |
|---|---|---|---|
services.app.updateSourceGithub |
POST | Source GitHub (owner,repo,ref,path) |
Sim |
services.app.updateSourceGit |
POST | Source Git custom (repo,ref,path RAIZ) |
Sim |
services.app.updateSourceImage |
POST | Source Docker image (image) |
Sim |
services.app.updateEnv |
POST | Variaveis de ambiente (env string) |
Sim |
services.app.updateBuild |
POST | Build config (type,buildCommand,startCommand) |
Sim |
services.app.updateResources |
POST | CPU/RAM limits | Sim |
services.app.updateAdvanced |
POST | Deploy avancado (replicas, command, zeroDowntime) | Sim |
services.app.updateRedirects |
POST | Redireccionamentos HTTP | Sim |
services.app.updateBasicAuth |
POST | Autenticacao basica | Sim |
services.app.updateMaintenance |
POST | Modo manutencao | Sim |
domains.listDomains |
GET | Listar dominios (projectName) |
Sim |
domains.createDomain |
POST | Criar dominio | Sim |
domains.updateDomain |
POST | Actualizar dominio | Sim |
domains.deleteDomain |
POST | Remover dominio | Sim |
Endpoints que NAO existem na versao instalada:
— usarservices.app.updateDomainsdomains.createDomain— nao encontradoservices.app.updateMounts— nao encontradoservices.app.updatePorts— nao existeservices.app.saveDomains— usarservices.app.saveGithubSourceupdateSourceGithubouupdateSourceGit
Actualizado: 12-03-2026