Docker
docker compose up -d # сборка образа и запуск: http://localhost:3000, данные в томе tsmc-dataИли без compose:
docker build -t tsmc .docker run -d -p 3000:3000 -v tsmc-data:/data --name tsmc tsmcОбраз (~265 МБ) работает от непривилегированного пользователя, хранит базу в /data/tsmc.db, слушает
0.0.0.0:3000 и имеет HEALTHCHECK по /api/health. В образе есть и CLI — его удобно запускать в CI:
docker run --rm -e TSMC_URL -e TSMC_TOKEN -v "$PWD:/work" -w /work tsmc \ tsmc junit upload build/test-results/*.xml -p SHOP -r "Nightly $BUILD"Резервная копия на ходу — docker exec tsmc tsmc-server backup (в /data/backups): база, вложения и ключ
токенов трекеров, целостным снимком без остановки сервера; tsmc-server check проверяет данные,
tsmc-server restore возвращает копию. HTTPS — через обратный прокси (готовые примеры для Caddy и nginx).
Всё это, а также обновление, остановку и метрики Prometheus описывает Эксплуатация. Render: render.yaml и Запуск на Render.
Стенд команды, который сам пересобирает main на всегда включённом компьютере с Windows и открыт через
Tailscale Funnel: Стенд команды на своём компьютере.
Настройки сервера задаются переменными окружения: Переменные окружения.