fix(caddy): закрыть генерацию архивов Forgejo — она съедала диск #3534

Merged
lekss361 merged 1 commit from fix/forgejo-archive-crawler into main 2026-09-16 14:22:19 +00:00

1 commit

Author SHA1 Message Date
bot-backend
42a9402d62 fix(caddy): закрыть генерацию архивов Forgejo — она съедала диск
All checks were successful
CI Trade-In / changes (pull_request) Successful in 13s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 15s
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
Внешний обходчик дёргал /<owner>/<repo>/archive/<ref> для каждого коммита,
Forgejo на каждый запрос пересобирал снапшот репозитория (20-30 МБ) и клал
в кэш repo-archive. Штатная уборка идёт раз в сутки, генерация — около ста
файлов в час. Кэш вырос до 55 ГБ при диске 145 ГБ и ел 2 ГБ/ч (замерено
контрольным df за 120 с); до нуля свободного места оставалось ~12 часов.

73 из 78 обращений к архивам за шесть часов пришли с одного адреса.

Отказ, а не rate limit: даже один запрос в минуту даёт 30 МБ/мин новых
файлов при суточной уборке. На git clone/fetch и на CI не влияет — смарт-
протокол ходит другими путями. Цена: анонимная кнопка «скачать архив»
в вебе перестаёт работать.

`caddy validate` — Valid configuration.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
2026-09-16 17:21:00 +03:00