The companion fix to v0.3.1 — that one handled named volumes; this one handles bind mounts.
Fixed — SQLITE_CANTOPEN on root-owned bind mounts (#57)
v0.3.1 chowned /data to node at image build time. But a bind
mount (-v /srv/casual:/data) keeps its host ownership at
runtime, so if the host directory is root-owned the node user still
can’t create users.db — personal mode crashes on boot again.
The container now:
- starts as root,
- an entrypoint chowns the data dir (
CASUAL_LOCAL_PATH, default/data) tonode, - drops to
nodeviasu-execbefore launching the server.
Named volumes, fresh bind mounts, and explicit --user overrides all
still work; the server still runs unprivileged. With this landed,
v0.3.x self-hosts cleanly across every storage shape.