Files
opencode-skill/skills/easypanel-deploy/API_ENDPOINTS.md
2026-03-08 23:03:19 +07:00

3.2 KiB

EASYPANEL API INTEGRATION COMPLETE

Date: 2026-03-08
Status: Scripts updated with correct API endpoints


🎯 EXTRACTED API ENDPOINTS

From Easypanel OpenAPI spec (https://panelwebsite.moreminimore.com/api/openapi.json)

Authentication

Endpoint: POST /api/trpc/auth.login

Request Body:

{
  "json": {
    "email": "your-email",
    "password": "your-password",
    "rememberMe": false
  }
}

Response:

{
  "result": {
    "data": {
      "sessionToken": "xxx-xxx-xxx"
    }
  }
}

Auth Method: Bearer token in Authorization header


Service Management

Create Service

Endpoint: POST /api/trpc/services.app.createService

Request Body:

{
  "json": {
    "projectName": "my-project",
    "serviceName": "my-service",
    "build": {
      "type": "dockerfile",
      "file": "Dockerfile"
    }
  }
}

Update Git Source

Endpoint: POST /api/trpc/services.app.updateSourceGit

Request Body:

{
  "json": {
    "projectName": "my-project",
    "serviceName": "my-service",
    "repo": "https://git.moreminimore.com/user/repo.git",
    "ref": "main",
    "path": "/"
  }
}

Update Build

Endpoint: POST /api/trpc/services.app.updateBuild

Request Body:

{
  "json": {
    "projectName": "my-project",
    "serviceName": "my-service",
    "build": {
      "type": "dockerfile",
      "file": "Dockerfile"
    }
  }
}

Deploy Service

Endpoint: POST /api/trpc/services.app.deployService

Request Body:

{
  "json": {
    "projectName": "my-project",
    "serviceName": "my-service",
    "forceRebuild": false
  }
}

Check Status

Endpoint: GET /api/trpc/services.app.inspectService?input=<encoded-json>

URL Encoding:

GET /api/trpc/services.app.inspectService?input=%7B%22json%22%3A%7B%22projectName%22%3A%22my-project%22%2C%22serviceName%22%3A%22my-service%22%7D%7D

Response:

{
  "result": {
    "data": {
      "status": "running",
      "url": "https://my-service.easypanel.app"
    }
  }
}

SCRIPT UPDATED

File: /skills/easypanel-deploy/scripts/deploy.py

Changes:

  • Uses correct /api/trpc/auth.login endpoint
  • Uses email field (not username)
  • Extracts sessionToken from response
  • Uses Bearer token authentication
  • Correct tRPC request format ({"json": {...}})
  • URL-encoded GET requests for status checks
  • Proper error handling

Test:

cd /skills/easypanel-deploy
python3 scripts/deploy.py --help
# ✅ Works!

📋 WORKFLOW

  1. Login: POST /api/trpc/auth.login → session token
  2. Create Service: POST /api/trpc/services.app.createService
  3. Update Git: POST /api/trpc/services.app.updateSourceGit
  4. Update Build: POST /api/trpc/services.app.updateBuild
  5. Deploy: POST /api/trpc/services.app.deployService
  6. Check Status: GET /api/trpc/services.app.inspectService?input=...

🚀 NEXT STEPS

  1. easypanel-deploy script updated
  2. Integrate with website-creator
  3. Test complete workflow
  4. Add log reading for auto-fix

Status: Ready to integrate with website-creator!