feat(yami): add dataDir option for separate-disk state #8

Merged
Chexit merged 1 commits from claude/add-yami-dev-stack-zHOMn into master 2026-04-19 16:05:04 +00:00
Chexit commented 2026-04-19 15:58:37 +00:00 (Migrated from github.com)

Summary

Расширяет yami-dev-stack опцией dataDir, которая bind-маунтит state gitea и postgres на отдельный диск. Плюс фиксы поверх мержа в master.

Changes

  • Новая опция dataDir (nullable path). Когда задана — /var/lib/{gitea,postgresql} монтируются через bind под ${dataDir}/{gitea,postgresql}.
  • gitea-runner намеренно исключён из bind-mount: его сервис использует DynamicUser + StateDirectory, который конфликтует с существующим mount point (Failed to set up special execution directory: File exists). Данные раннера (token + registration) мизерные, остаются на системном диске.
  • Runner token перенесён из /var/lib/gitea-runner/token в /var/lib/gitea-runner-secret/token по той же причине: /var/lib/gitea-runner — это симлинк на /var/lib/private/gitea-runner, создавать там файл до старта сервиса нельзя.
  • Этот хост активирован с dataDir = "/mnt/ssd_110/yami".

Test plan

  • yami-up поднимает gitea+postgres+docker+runner
  • mount | grep /var/lib показывает bind-mount'ы для gitea и postgresql
  • Раннер регистрируется и слушает джобы
  • Данные на /mnt/ssd_110/yami, на системном диске только runner state

🤖 Generated with Claude Code

## Summary Расширяет `yami-dev-stack` опцией `dataDir`, которая bind-маунтит state gitea и postgres на отдельный диск. Плюс фиксы поверх мержа в master. ## Changes - **Новая опция `dataDir`** (nullable path). Когда задана — `/var/lib/{gitea,postgresql}` монтируются через bind под `${dataDir}/{gitea,postgresql}`. - **gitea-runner намеренно исключён** из bind-mount: его сервис использует `DynamicUser` + `StateDirectory`, который конфликтует с существующим mount point (`Failed to set up special execution directory: File exists`). Данные раннера (token + registration) мизерные, остаются на системном диске. - **Runner token перенесён** из `/var/lib/gitea-runner/token` в `/var/lib/gitea-runner-secret/token` по той же причине: `/var/lib/gitea-runner` — это симлинк на `/var/lib/private/gitea-runner`, создавать там файл до старта сервиса нельзя. - **Этот хост активирован** с `dataDir = "/mnt/ssd_110/yami"`. ## Test plan - [x] `yami-up` поднимает gitea+postgres+docker+runner - [x] `mount | grep /var/lib` показывает bind-mount'ы для gitea и postgresql - [x] Раннер регистрируется и слушает джобы - [x] Данные на `/mnt/ssd_110/yami`, на системном диске только runner state 🤖 Generated with Claude Code
Sign in to join this conversation.