# ✅ 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 { "json": { "email": "your-email", "password": "your-password", "rememberMe": false } } ``` **Response:** ```json { "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 { "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 { "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 { "json": { "projectName": "my-project", "serviceName": "my-service", "build": { "type": "dockerfile", "file": "Dockerfile" } } } ``` #### Deploy Service **Endpoint:** `POST /api/trpc/services.app.deployService` **Request Body:** ```json { "json": { "projectName": "my-project", "serviceName": "my-service", "forceRebuild": false } } ``` #### Check Status **Endpoint:** `GET /api/trpc/services.app.inspectService?input=` **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:** ```json { "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:** ```bash 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!