gendesign/ops
bot-backend 09c815930a
All checks were successful
CI Trade-In / changes (pull_request) Successful in 12s
CI / changes (pull_request) Successful in 12s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
chore(ops): снятие зависших job-контейнеров раннера + лимит journald + мёртвый Caddy-блок
Три независимые правки инфраструктурной гигиены прод-VPS, замеренные живьём
2026-08-15 (ssh gendesign, read-only).

1. ops/docker-prune.sh: новая секция снимает зависшие (running, но брошенные)
   job-контейнеры Forgejo Actions раннера — три штуки Up 4-8 недель на проде,
   docker container prune их не видит (фильтрует только status=exited).
   Фильтр по имени — якорь ^FORGEJO-ACTIONS-TASK- (regex, не substring),
   сервисные контейнеры (forgejo/forgejo-runner*/gendesign-*/tradein-*/couchdb)
   под него не подпадают + explicit-skip как страховка. Возраст — из
   docker inspect .State.StartedAt, порог JOB_CONTAINER_MAX_AGE_HOURS (default
   24 — CI job столько никогда не идёт). DRY_RUN уже существующий флаг,
   переиспользован. Идемпотентно на пустом списке (mapfile + `|| true`).

2. ops/journald-gendesign.conf.example: SystemMaxUse=500M для journald.
   Замер: journalctl --disk-usage без прав группы systemd-journal/adm
   недосчитывает (показал 174M) — реальный du -sh /var/log/journal = 2.5G,
   ~80% всех 3.1G /var/log. journald.conf на проде сейчас без лимита вообще.
   Установка — руками на сервере (systemd-конфиг вне /opt/gendesign, deploy.yml
   его не синкает): инструкция в шапке файла.

3. Caddyfile: убран мёртвый блок status.gendsgn.ru (указывал на
   несуществующий uptime-kuma, дёргал ACME раз в 6 часов на staging-эндпоинте).
   Заодно убрана dangling forward-ссылка "описан для status.gendsgn.ru ниже" в
   комментарии у meraocenka.ru. grep подтвердил: других ссылок на этот хост в
   Caddyfile/compose/скриптах не осталось (docker-compose.uptime.yml и README
   упоминают — вне scope, стек сам по себе не трогается). caddy validate через
   prod-контейнер (stdin, без записи файлов на диск) — конфиг валиден, как и
   baseline до правки.
2026-08-15 22:27:48 +03:00
..
db-bootstrap feat(auth): отдельная БД auth — фундамент единого входа «Меры» и «Птицы» 2026-07-31 21:47:33 +03:00
glitchtip-auth-forwarder fix(tradein/observability): stop basic_auth 401 and RetryError GlitchTip noise 2026-08-15 18:08:04 +03:00
backup.sh fix(ops): repair broken main-DB backup + harden auth scripts/docs (#71 #427 #429 #428) 2026-06-13 20:13:04 +05:00
docker-prune.sh chore(ops): снятие зависших job-контейнеров раннера + лимит journald + мёртвый Caddy-блок 2026-08-15 22:27:48 +03:00
gendesign-backup.default.example fix(ops): repair broken main-DB backup + harden auth scripts/docs (#71 #427 #429 #428) 2026-06-13 20:13:04 +05:00
gendesign-uptime.default.example ci(infra): coverage-gate (#68) + OpenAPI codegen-assert (#69) + uptime monitoring (#75) 2026-06-13 23:28:06 +05:00
journald-gendesign.conf.example chore(ops): снятие зависших job-контейнеров раннера + лимит journald + мёртвый Caddy-блок 2026-08-15 22:27:48 +03:00
restore.sh chore(ops): выставить +x на docker-prune.sh и restore.sh 2026-08-15 17:17:58 +03:00
uptime-healthcheck.sh ci(infra): coverage-gate (#68) + OpenAPI codegen-assert (#69) + uptime monitoring (#75) 2026-06-13 23:28:06 +05:00