mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-10-17 05:14:19 +02:00
Child services (Kiwix, Ollama, Qdrant, Flatnotes, Kolibri) are created via the Docker socket, so their bind mounts use a HOST path. That path was baked into the services table at seed time from NOMAD_STORAGE_PATH (default /opt/project-nomad/storage) — and NOMAD_STORAGE_PATH wasn't even present in management_compose.yaml, so it always fell back to the default. Result: relocating the admin storage volume in compose (e.g. /mnt/big/storage:/app/storage) moved the admin's own data but left child apps mounting the old, now-empty /opt/project-nomad/storage. Kiwix would come up with no content. (#938) - Add _resolveHostStorageRoot(): inspect the admin's own container, find the bind backing /app/storage, and use its host Source as the single source of truth (cached). Falls back to NOMAD_STORAGE_PATH/default if it can't be inspected. - Add _applyHostStorageRoot(): rewrite the host-side prefix of each storage bind to that root. No-op when it already matches the seeded prefix, so default installs are unaffected. - Apply it in _createContainer (covers installs + dependency recursion) and in the Kiwix library-mode recreate path. - management_compose.yaml: add an explicit NOMAD_STORAGE_PATH knob and rewrite the comments so the admin volume, env var, and disk-collector volume that must agree are spelled out. Closes #938 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| app | ||
| bin | ||
| commands | ||
| config | ||
| constants | ||
| database | ||
| docs | ||
| inertia | ||
| providers | ||
| public | ||
| resources | ||
| scripts | ||
| start | ||
| tests | ||
| types | ||
| util | ||
| views | ||
| .editorconfig | ||
| .env.example | ||
| ace.js | ||
| adonisrc.ts | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| tailwind.config.ts | ||
| tsconfig.json | ||
| vite.config.ts | ||