Логирование в stdout (видно в Portainer) + асинхронные задания edit/upscale с опросом статуса (фикс 504/499 при длинных запросах)
This commit is contained in:
45
README.md
45
README.md
@@ -22,6 +22,12 @@ Codex CLI) и увеличивает разрешение через домаш
|
||||
`RealESRGAN_x4plus.safetensors` — применяется к выбранной (в том числе
|
||||
отредактированной) версии.
|
||||
|
||||
Редактирование и апскейл выполняются в фоне: `POST /api/edit` и
|
||||
`POST /api/upscale` отвечают мгновенно с идентификатором задания (`jobId`),
|
||||
а тяжёлая работа продолжается на сервере. Фронтенд опрашивает
|
||||
`GET /api/jobs/:id/status` каждые 3 секунды; страницу можно закрыть —
|
||||
готовая версия появится в истории.
|
||||
|
||||
## Требования
|
||||
|
||||
- Node.js 20 или новее
|
||||
@@ -73,6 +79,45 @@ npm start
|
||||
`GET /api/me`, `POST /api/logout`. Вход в систему — `POST /api/login`
|
||||
с JSON-телом `{"username": "...", "password": "..."}`.
|
||||
|
||||
## Логирование
|
||||
|
||||
Все действия сервера пишутся в стандартный вывод контейнера — смотрите их в
|
||||
**Portainer → Containers → kadr-photo-editor → Logs**.
|
||||
|
||||
Что логируется:
|
||||
|
||||
- каждый запрос к `/api/*` (метод, путь, HTTP-статус, время обработки);
|
||||
- старт сервера (порт, логин, адрес ComfyUI);
|
||||
- вход и выход пользователя;
|
||||
- импорт фотографии;
|
||||
- редактирование: запуск задания, успешное завершение или ошибка;
|
||||
- апскейл: запуск задания, успешное завершение или ошибка;
|
||||
- ошибки обработки запросов (с кодом статуса и текстом ошибки).
|
||||
|
||||
Что **не** логируется: пароли, cookie `kadr_session`, содержимое фотографий.
|
||||
Единственное исключение — баннер сгенерированного пароля при первом старте
|
||||
(когда `APP_PASSWORD` не задан): пароль печатается в лог один раз, чтобы
|
||||
владелец мог войти.
|
||||
|
||||
Уровень логирования задаётся переменной окружения `LOG_LEVEL`:
|
||||
|
||||
- `debug` — все сообщения, включая `GET /api/health` и опросы статуса заданий
|
||||
`GET /api/jobs/:id/status`;
|
||||
- `info` (по умолчанию) — основные события;
|
||||
- `warn` — предупреждения;
|
||||
- `error` — только ошибки.
|
||||
|
||||
Примеры строк лога:
|
||||
|
||||
```
|
||||
2026-08-26T06:00:00.000Z [INFO] Сервер запущен {"port":3000,"user":"admin","comfyUrl":"http://192.168.31.240:8188","passwordGenerated":false}
|
||||
2026-08-26T06:00:01.000Z [INFO] GET /api/history -> 200 2ms
|
||||
2026-08-26T06:00:05.000Z [INFO] Вход выполнен {"user":"admin"}
|
||||
2026-08-26T06:00:10.000Z [INFO] Редактирование запущено {"jobId":"...","sourceId":"...","prompt":"..."}
|
||||
2026-08-26T06:02:30.000Z [INFO] Редактирование завершено {"jobId":"...","ok":true,"exitCode":0,"timedOut":false,"durationMs":140000,"versionId":"...","lastMessage":"..."}
|
||||
2026-08-26T06:02:31.000Z [WARN] Ошибка обработки запроса {"status":401,"message":"Требуется авторизация."}
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
Образ собирается на базе `node:22-bookworm-slim` (Debian, glibc) — Codex CLI
|
||||
|
||||
Reference in New Issue
Block a user