From 1cf05de4afd493a65beb881c8bc5ee02942b614f Mon Sep 17 00:00:00 2001 From: Robbie Page Date: Wed, 1 Jul 2026 09:34:54 -0400 Subject: [PATCH 1/4] docs: document how to persist the sqlite db in Docker --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index fbca5ff..56a769a 100644 --- a/README.md +++ b/README.md @@ -299,6 +299,25 @@ Available tags: - `x.y.z` / `x.y` - pinned release versions (e.g. `3.0.0`) - `sha-` - exact commit builds +### Persisting the database + +The container has no `XDG_CONFIG_HOME`, so nom resolves the sqlite file relative to its working directory by default. To persist read state and cached articles across container restarts, mount a directory and point `database` at an absolute path inside it in your config: + +```yaml +# my-nom-config.yml +database: /data/nom.db +``` + +```sh +mkdir -p nom-data +docker run --rm -it \ + -v $PWD/my-nom-config.yml:/app/docker-config.yml \ + -v $PWD/nom-data:/data \ + ghcr.io/guyfedwards/nom:master +``` + +Don't `touch` the db file yourself and bind-mount it directly - nom only runs its initial table setup when the file doesn't exist yet, so a pre-created empty file leaves the database schemaless. + ## Dev setup You can use `backends-compose.yml` to spin up a local instance of [MiniFlux] and [FreshRSS] if needed for development. From 52faffb9987b084722df6fe9616f90c857c9bfa6 Mon Sep 17 00:00:00 2001 From: Robbie Page Date: Wed, 1 Jul 2026 09:39:59 -0400 Subject: [PATCH 2/4] chore: ignore local config/db artifacts from Docker docs --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index f3c65db..33edfb2 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,9 @@ dist/ ._* github_token /nom + +# local dev/docker artifacts referenced in README docs +config.yml +my-nom-config.yml +nom.db +nom-data/ From 231faf1cf4d8847c79831a6a840443dae14bdb8e Mon Sep 17 00:00:00 2001 From: Robbie Page Date: Wed, 1 Jul 2026 09:47:55 -0400 Subject: [PATCH 3/4] docs: note MSYS_NO_PATHCONV requirement for Git Bash on Windows --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 56a769a..63baa39 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,8 @@ And you cannot combine simple keyword searches with any qualifiers: ## Building and Running via Docker +> **Windows (Git Bash):** Git Bash rewrites `/app/...` paths in `-v` flags as if they were local Windows paths, which breaks volume mounts. Prefix `docker run` commands with `MSYS_NO_PATHCONV=1` to disable this, e.g. `MSYS_NO_PATHCONV=1 docker run --rm -it -v "$(pwd)/my-nom-config.yml":/app/docker-config.yml ghcr.io/guyfedwards/nom:master`. + Build nom image ```sh From 79153e07c4b65d15d15c633d1cf9c61e1f0a4a31 Mon Sep 17 00:00:00 2001 From: Robbie Page Date: Wed, 1 Jul 2026 09:48:23 -0400 Subject: [PATCH 4/4] docs: include db volume mount in Windows Git Bash example --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 63baa39..52ccce2 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,13 @@ And you cannot combine simple keyword searches with any qualifiers: ## Building and Running via Docker -> **Windows (Git Bash):** Git Bash rewrites `/app/...` paths in `-v` flags as if they were local Windows paths, which breaks volume mounts. Prefix `docker run` commands with `MSYS_NO_PATHCONV=1` to disable this, e.g. `MSYS_NO_PATHCONV=1 docker run --rm -it -v "$(pwd)/my-nom-config.yml":/app/docker-config.yml ghcr.io/guyfedwards/nom:master`. +> **Windows (Git Bash):** Git Bash rewrites `/app/...` paths in `-v` flags as if they were local Windows paths, which breaks volume mounts. Prefix `docker run` commands with `MSYS_NO_PATHCONV=1` to disable this, e.g.: +> ```sh +> MSYS_NO_PATHCONV=1 docker run --rm -it \ +> -v "$(pwd)/my-nom-config.yml":/app/docker-config.yml \ +> -v "$(pwd)/nom-data":/data \ +> ghcr.io/guyfedwards/nom:master +> ``` Build nom image