Software — Web Server, DB, Plugins, Builds
Software — Web Server, DB, Plugins, Builds
Role: admin. Auth: Authorization: Bearer wsp_…
Web server — GET /api/v1/software/webserver
Response 200 (verified live):
{ "available": [
{ "type": "nginx", "name": "Nginx", "handler": "php-fpm" },
{ "type": "apache", "name": "Apache", "handler": "php-fpm" },
{ "type": "openlitespeed", "name": "OpenLiteSpeed",
"handler": "lsphp" } ] }
GET | PUT /webserver/config; GET | PUT /webserver/max-upload-size
{ "max_upload_mb": 512 }; POST /webserver/reload · /restart ·
/switch { "type": "nginx" } · /regenerate-all-vhosts ·
/webadmin-password { "password": "•••" }; GET /webserver/test.
Database server — GET /api/v1/software/database/
Response 200 (verified live):
{ "available": [
{ "type": "mariadb", "version": "10.11",
"name": "MariaDB 10.11 LTS", "default": true },
{ "type": "mysql", "version": "8.0", "name": "MySQL 8.0",
"default": false } ] }
GET | PUT /database/config; POST /database/install
{ "type": "mariadb", "version": "10.11" }; POST /database/restart.
Plugins — GET /api/v1/software/plugins
Response 200 (verified live — grouped by category):
{ "grouped": {
"cache": [
{ "id": "redis", "name": "Redis", "version": "6.0.16",
"category": "cache", "status": "installed",
"website": "https://redis.io" } ] } }
POST /plugins/:id/install; DELETE /plugins/:id;
POST /software/rebuild-all.
Build queue — GET /api/v1/software/builds/
Response 200 (verified live):
{ "has_more": true, "jobs": [
{ "id": "1778494480933391102", "type": "plugin_remove",
"name": "Remove plugin", "status": "failed", "progress": 0,
"output": ["[17:14:40] Starting…", "[17:14:40] Failed…"],
"error": "removal not supported for: test-id",
"started_at": "2026-05-11T17:14:40+07:00",
"finished_at": "2026-05-11T17:14:40+07:00" } ] }
GET /builds/:id · /builds/:id/logs; POST /builds/:id/retry ·
/builds/loadmore; DELETE /builds/ · /builds/:id.
CustomBuild — /api/v1/custombuild
GET /custombuild/versions (verified live):
[ { "package": "nginx", "installed_version": "1.26.2",
"available_version": "1.26.2", "needs_update": false,
"is_installed": true } ]
GET /custombuild/options → { "webserver": "nginx_apache", "php_versions": [...], "php_modes": {...}, "extensions": {...} }.
PUT /custombuild/options; POST /custombuild/build-all ·
/build/:package · /versions/update · /webserver/switch.
Conventions → Authentication, Error Handling.