Commit Graph

36 Commits

Author SHA1 Message Date
Chris Sherwood fab15c68a9
fix(storage): derive child-app bind paths from the admin's actual storage mount
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>
2026-06-23 04:46:49 +00:00
Jake Turner 877fb1276a feat: gzip compression by default for all registered routes 2026-04-03 14:26:50 -07:00
Divyank Singh 4219e753da build: increase mysql healthcheck retries to avoid race condition on lower-end hardware (#480) 2026-03-25 16:30:35 -07:00
Jake Turner 467299b231 docs: update port mapping guidance in compose file 2026-03-20 11:46:10 -07:00
Jake Turner 0ec5334e0d docs: additional comments in management_compose about storage config 2026-03-20 11:46:10 -07:00
Jake Turner bb0c4d19d8 docs: add note about Dozzle optionality 2026-03-20 11:46:10 -07:00
Jake Turner 1c179efde2 docs: improve docs for advanced install 2026-03-20 11:46:10 -07:00
Jake Turner 92ce7400e7 feat: make Nomad fully composable 2026-03-20 11:46:10 -07:00
Jake Turner c0b1980bbc build: change compose to use prebuilt sidecar-updater image 2026-03-20 11:46:10 -07:00
Chris Sherwood fbc48dd115 fix: default LOG_LEVEL to info in production
Debug logging in production is unnecessarily noisy. Users who need
debug output can still set LOG_LEVEL=debug in their compose.yml.

Closes #285

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 11:46:10 -07:00
Chris Sherwood fe0c2afe60 fix(security): remove MySQL and Redis port exposure to host
MySQL (3306) and Redis (6379) were published to all host interfaces
despite only being accessed by the admin container via Docker's internal
network. Redis has no authentication, so anyone on the LAN could connect.

Removes the port mappings — containers still communicate internally via
Docker service names.

Closes #279

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 11:46:10 -07:00
Chris Sherwood 6120e257e8 fix(security): also disable Dozzle container actions
Dozzle runs on port 9999 with no authentication. DOZZLE_ENABLE_ACTIONS
allows anyone on the LAN to stop/restart containers. NOMAD already
handles container management through its own admin UI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 11:46:10 -07:00
Chris Sherwood bd642ac1e8 fix(security): disable Dozzle web shell access
Dozzle's DOZZLE_ENABLE_SHELL=true on an unauthenticated port allows
anyone on the LAN to open a shell into containers, including nomad_admin
which has the Docker socket mounted — creating a path to host root.

Disables shell access while keeping log viewing and container actions
(restart/stop) enabled.

Closes #278

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 11:46:10 -07:00
Jake Turner a4e6a9bd9f build: compose and install script updates for disk-collector sidecar 2026-03-14 19:54:51 -07:00
Jake Turner a105ac1a83
fix: update channel flexibility 2026-03-05 04:06:56 +00:00
Jake Turner 988dba318c fix(Updater): file bind mount causing stale compose file ref 2026-02-11 10:43:24 -08:00
Jake Turner 64e6e11389 feat(Docker): container URL resolution util and networking improvs 2026-01-24 15:27:56 -08:00
Chris Sherwood e31f956289 fix(benchmark): Fix AI benchmark connectivity and improve error handling
- Add OLLAMA_API_URL environment variable for Docker networking
- Use host.docker.internal to reach Ollama from NOMAD container
- Add extra_hosts config in compose for Linux compatibility
- Add downloading_ai_model status with clear progress indicator
- Show model download progress on first AI benchmark run
- Fail AI-only benchmarks with clear error if AI unavailable
- Display benchmark errors to users via Alert component
- Improve error messages with error codes for debugging

Fixes issue where AI benchmark silently failed due to NOMAD container
being unable to reach Ollama at localhost:11434.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:27:56 -08:00
Jake Turner 393c177af1 feat: [wip] self updates 2026-01-15 15:54:59 -08:00
Jake Turner bb0a939458 fix(install): change admin container pull_policy to always 2026-01-15 15:54:59 -08:00
Jake Turner a95c2faf12 fix(install): disk info file mount 2026-01-13 06:58:05 -08:00
Jake Turner df55b48e1c fix(admin): container healthcheck 2026-01-13 06:58:05 -08:00
Jake Turner 5205d5909d
feat: disk info collection 2025-12-07 19:13:43 -08:00
Jake Turner 2ff7b055b5
fix(Kiwix): initial download and setup 2025-12-07 16:04:41 -08:00
Jake Turner ce8dbd91ab
fix(install): add redis env variables to compose file 2025-12-07 10:57:32 -08:00
Jake Turner 7569aa935d
feat: background job overhaul with bullmq 2025-12-06 23:59:01 -08:00
Jake Turner 2985929079
fix(install): host env variable 2025-12-05 18:41:54 -08:00
Jake Turner a8bfc083d4 feat(install): replace secrets with rand pwds and host 2025-12-05 18:16:23 -08:00
Jake Turner a557ff3ad1 fix(install): url env variable 2025-12-05 18:16:23 -08:00
Jake Turner 035f1c67b1 fix(install): cleanup compose file names 2025-12-05 15:47:22 -08:00
Jake Turner 721c6b9653
fix: update container name in management-compose 2025-11-18 16:00:09 -08:00
Jake Turner b677fbbe81 feat: add dozzle for enhanced logs and metrics 2025-10-07 00:13:39 -07:00
Jake Turner 2373f2c1b2 fix(open-webui): ollama connection 2025-07-11 20:21:44 -07:00
Jake Turner 97655ef75d fix(Install): update script URLs 2025-07-11 14:24:29 -07:00
Jake Turner 3b81e00a69 feat: openwebui+ollama and zim management 2025-07-09 09:08:21 -07:00
Jake Turner b33a1b3e37 feat: initial commit 2025-06-29 15:51:08 -07:00