Files
photo-editor/deploy/docker-compose.yml
Coder 401969cfdb
Some checks failed
test / test (push) Failing after 24s
v2: модульный монолит — очередь, персистентность, безопасность, SSE, тесты
Реализация целевого дизайна (docs/architecture/target-design.md):
- src/: модульная структура (config, logger, errors, http, core: auth/history/jobs/engines/comfy/codex/images)
- Очередь заданий: FIFO, кониурентность codex=1 / comfy-upscale=2, MAX_QUEUED_JOBS=5, JSONL-журнал и восстановление после рестарта (running → interrupted, upscale requeue)
- Персистентные сессии (sha256-хеши токенов), scrypt-хеш пароля, rate-limit входа, Origin-проверка, magic-byte валидация аплоадов
- Атомарная запись манифеста истории, каскадное удаление, URL с фактическим расширением + 302-алиас /image.jpg, миграция history/ → data/history
- Даунскейл sharp до 1024px перед Codex + масштабирование области референса
- SSE /api/events с фолбэком на polling, фронтенд переведён на ES-модули (public/js/)
- Тесты node:test + supertest (27), CI workflow test.yml, Docker/деплой: том kadr-data
- Документация: README, docs/architecture/
2026-08-27 12:52:27 +07:00

42 lines
2.1 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Файл развёртывания на хосте Portainer.
# Используется workflow .gitea/workflows/deploy.yml (публикует образ,
# уже собранный workflow build-container).
services:
photo-editor:
image: git.byte-mate.ru/coder/photo-editor:latest
pull_policy: always
container_name: kadr-photo-editor
ports:
- "3000:3000"
volumes:
# Основной том данных v2 (сессии, задания, история)
- kadr-data:/app/data
# Старый том истории для автоматической миграции при первом старте
- kadr-history:/app/history
# Аутентификация и конфиг Codex с хоста Portainer.
# Альтернатива — переменная OPENAI_API_KEY ниже.
- /root/.codex:/root/.codex
environment:
- COMFY_URL=http://192.168.31.240:8188
# Codex (ChatGPT API) через локальный прокси: прямой egress сервера
# блокируется OpenAI (403, cf-ray HEL). Прокси слушает на хосте :4067.
- HTTP_PROXY=http://192.168.31.240:4067
- HTTPS_PROXY=http://192.168.31.240:4067
- http_proxy=http://192.168.31.240:4067
- https_proxy=http://192.168.31.240:4067
# Внутренние адреса ходят напрямую (ComfyUI и свой же хост)
- NO_PROXY=localhost,127.0.0.1,192.168.31.240,git.byte-mate.ru,ptr.byte-mate.ru
- no_proxy=localhost,127.0.0.1,192.168.31.240,git.byte-mate.ru,ptr.byte-mate.ru
# Авторизация владельца. Передаются workflow deploy.yml из секретов
# APP_USER / APP_PASSWORD; если не заданы/пусты — сервер использует
# дефолты: логин admin и сгенерированный при старте пароль
# (печатается в лог контейнера).
- APP_USER=${APP_USER}
- APP_PASSWORD=${APP_PASSWORD}
# - OPENAI_API_KEY=${OPENAI_API_KEY}
restart: unless-stopped
volumes:
kadr-data:
kadr-history: