Перейти до основного вмісту

Playrooms API

Керування Playroom — віддаленими Docker-хостами, на яких працюють ваші Playground.

Ендпоінти

МетодШляхСкоупОпис
GET/api/playroomsplayrooms:readСписок всіх Playroom
GET/api/playrooms/:idplayrooms:readОтримати один Playroom
POST/api/playroomsplayrooms:writeСтворити новий Playroom
PATCH/api/playrooms/:idplayrooms:writeОновити Playroom
DELETE/api/playrooms/:idplayrooms:deleteВидалити Playroom
POST/api/playrooms/:id/generate_ssh_keyplayrooms:manageЗгенерувати SSH-ключ
POST/api/playrooms/:id/test_connectionplayrooms:readПеревірити SSH та Docker зʼєднання

Список Playroom

GET /api/playrooms

Відповідь:

[
{
"id": 1,
"name": "Production Host",
"status": "active",
"host": "192.168.1.100",
"port": 22,
"user": "deploy",
"tutorial": false,
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}
]

Отримати Playroom

GET /api/playrooms/:id

Повертає детальний вигляд, включаючи SSH-публічний ключ, домени та ACME email.

Відповідь:

{
"id": 1,
"name": "Production Host",
"status": "active",
"host": "192.168.1.100",
"port": 22,
"user": "deploy",
"tutorial": false,
"ssh_public_key": "ssh-ed25519 AAAA...",
"domains": ["dev.example.com", "staging.example.com"],
"acme_email": "admin@example.com",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}

Створити Playroom

POST /api/playrooms

Тіло запиту:

{
"playroom": {
"name": "My Server",
"host": "192.168.1.100",
"port": 22,
"user": "deploy",
"ssh_private_key": "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
"domains_input": "dev.example.com, staging.example.com",
"acme_email": "admin@example.com",
"status": "active"
}
}

Оновити Playroom

PATCH /api/playrooms/:id

Тіло аналогічне Create. Tutorial Playroom мають обмежені поля (тільки name, domains_input та status).


Видалити Playroom

DELETE /api/playrooms/:id

Повертає 204 No Content при успіху. Помилка 409 Conflict, якщо Playroom має активні Playground або є tutorial Playroom.


Згенерувати SSH-ключ

POST /api/playrooms/:id/generate_ssh_key

Генерує нову пару ключів ed25519. Повертає публічний ключ:

{
"public_key": "ssh-ed25519 AAAA... playroom-1@fibe.gg"
}

Тест зʼєднання

POST /api/playrooms/:id/test_connection

Перевіряє SSH-зʼєднання, доступність Docker та доступ до директорій:

{
"success": true,
"checks": {
"ssh": { "success": true, "message": "SSH connection successful" },
"docker": { "success": true, "message": "Docker available", "details": { "version": "24.0.7" } },
"directories": { "success": true, "message": "Directory access verified" }
}
}