173 lines
3.2 KiB
Markdown
173 lines
3.2 KiB
Markdown
# ✅ 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=<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:**
|
|
```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!
|