feat(proxy): add service CRUD with persistent storage
ServiceManager with JSON file persistence replaces static env var config. CRUD API endpoints (POST/PUT/DELETE /api/services) with WebSocket broadcast. Dashboard: add/edit/delete services via modal form. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,18 @@ Wake-on-demand система из двух компонентов:
|
||||
|
||||
Proxy матчит сервисы по `Host` заголовку. Если PC online — http-proxy проксирует запрос. Если offline — показывает "Waking up" страницу с автополлом.
|
||||
|
||||
## Service Management
|
||||
|
||||
Сервисы хранятся в `${DATA_DIR}/services.json` (по умолчанию `./data/services.json`). При первом запуске берутся из env var `SERVICES`, затем управляются через CRUD API:
|
||||
- `GET /api/services` — список
|
||||
- `POST /api/services` — создание
|
||||
- `PUT /api/services/:host` — обновление (host неизменяем)
|
||||
- `DELETE /api/services/:host` — удаление
|
||||
|
||||
`ServiceManager` (`packages/proxy/src/services/serviceManager.ts`) — in-memory + атомарная запись (tmp + rename). Изменения уведомляют dashboard через WebSocket (`service_list_changed`).
|
||||
|
||||
В Docker volume монтируется: `./data/proxy:/app/data`.
|
||||
|
||||
## Деплой
|
||||
|
||||
Два приложения в Dokploy из одного git repo:
|
||||
|
||||
Reference in New Issue
Block a user