Commit Graph
68 Commits
Author SHA1 Message Date
casjay 385a6b6f0e 📝 Update project spec and documentation 📝
- AI.md
2026-09-03 01:41:17 -04:00
casjay b728e5a354 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-08-02 20:43:40 -04:00
casjay cd022f7b11 🐛 Fix entrypoint hang and lost-interpreter bugs 🐛
- rootfs/usr/local/bin/entrypoint.sh:
  1. The "start all services" gate
     (`if [ "$START_SERVICES" = "yes" ] || [ -z "$1" ]`) always evaluated
     true on a first-run container regardless of $1, because
     START_SERVICES is force-set to "yes" whenever no PID file exists yet.
     Any command passed to `docker run` — `exec ...`, `sh -c ...`,
     `shell`, or an arbitrary program — was swallowed into the
     service-start+monitor branch before reaching the `case "$1"`
     statement that already handles those subcommands, hanging the
     container as a daemon instead of running the given command. Changed
     the condition to `if [ -z "$1" ]` so the daemon branch only fires
     when no command was given at all.
  2. The `*/bin/sh | */bin/bash | bash | sh | shell)` case branch
     unconditionally shifted $1 before `__exec_command "$@"` (a bare
     `exec "$@"`). For `docker run image sh -c 'cmd'` this turned the
     exec into `exec -c cmd` (command not found, exit 127) instead of
     `exec sh -c 'cmd'`. Split the branch: real interpreter names
     (*/bin/sh, */bin/bash, bash, sh) now pass through unshifted; the
     "shell" keyword (not a real interpreter) gets its own branch that
     shifts and prepends "sh" to any remaining args, or falls back to a
     bare `__exec_command` (exec bash -l) when none remain.
  Verified `bash -n` passes. Found and fixed upstream in
  dockersrc/go, confirmed identical in this repo's generated
  entrypoint.sh, and mechanically applied here with the same patch.
2026-07-27 23:21:49 -04:00
casjay 1822d6f942 📝 Migrate /var/lib/srv docker paths to /srv in README 📝
Update volume mount examples and dockerHome variable from
the old /var/lib/srv/$USER/docker layout to /srv/$USER/docker.
- README.md: update volume path references to /srv/$USER/docker

README.md
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/healthcheck
rootfs/usr/local/bin/symlink
2026-07-10 12:15:38 -04:00
casjay 4cde8d4865 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:51:03 -04:00
casjay 5703a33c16 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:42:03 -04:00
casjay 9a51b25ff4 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:34:20 -04:00
casjay 2d4c88f2e5 🐛 Fix duplicate 2>/dev/null in entrypoint.sh /etc/hosts line 🐛
The grep -vF line that appends /usr/local/etc/hosts entries had a
duplicate 2>/dev/null redirect after the append operator, which is
a no-op but clutters the script. Synced from template.
- rootfs/usr/local/bin/entrypoint.sh: remove duplicate 2>/dev/null
from grep -vF /etc/hosts append line; bump version to 202606261500-git

rootfs/usr/local/bin/entrypoint.sh
2026-06-26 18:44:55 -04:00
casjay 824ea6f714 🐛 Fix resolv.conf: add search . and ndots:0 to block domain search 🐛
--domainname on the container sets the kernel domainname, which c-ares
uses to infer a search domain even when /etc/resolv.conf has no search
line. This caused c-ares to query github.com.casjay.work AAAA and get
the host's own IPv6 address, routing all outbound HTTPS to the local
nginx instead of the real server.
Adding 'search .' and 'options ndots:0' explicitly disables search
domain inference regardless of the kernel domainname setting.
- rootfs/usr/local/etc/resolv.conf: add search . and options ndots:0

rootfs/usr/local/etc/resolv.conf
2026-06-05 14:33:41 -04:00
casjay e8bfebfbbd 🐛 Fix container DNS: ship resolv.conf without search domain 🐛
Hosts with a search domain cause containers to inherit it. When the
zone has a wildcard AAAA record, public hostnames resolve to the host's
own IPv6 address instead of the real server, breaking all outbound
HTTPS and DNS from inside the container.
The entrypoint already has a hook: if /usr/local/etc/resolv.conf
exists it replaces /etc/resolv.conf at container startup. Ship a
clean resolv.conf with Cloudflare + Google DNS and no search domain
so container DNS is always correct regardless of host configuration.
- rootfs/usr/local/etc/resolv.conf: new file — clean DNS, no search domain

rootfs/usr/local/etc/resolv.conf
2026-06-05 12:34:35 -04:00
casjay 5c695cccd4 ♻️ Migrate navidrome to /config/ source-of-truth architecture ♻️
Migrate navidrome Docker image to the new build-time config architecture.
- rootfs/root/docker/setup/03-files.sh: rewrite to canonical form with /tmp/bin, /tmp/var, /tmp/etc, /tmp/usr handlers; remove template-files copy block
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to latest template with __init_service_conf, __find_php_ini, __find_php_bin helpers
- rootfs/usr/local/etc/docker/init.d/*.sh: fix $(basename) UUOC → ${var##*/}; move inline comments above code lines; remove commented-out dead code
- rootfs/usr/local/share/template-files/: delete entire directory; config files now deployed via /tmp/etc/ at build time

rootfs/root/docker/setup/03-files.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/default.sample
rootfs/usr/local/share/template-files/config/env/examples/00-directory.sh
rootfs/usr/local/share/template-files/config/env/examples/addresses.sh
rootfs/usr/local/share/template-files/config/env/examples/certbot.sh
rootfs/usr/local/share/template-files/config/env/examples/couchdb.sh
rootfs/usr/local/share/template-files/config/env/examples/dockerd.sh
rootfs/usr/local/share/template-files/config/env/examples/global.sh
rootfs/usr/local/share/template-files/config/env/examples/healthcheck.sh
rootfs/usr/local/share/template-files/config/env/examples/mariadb.sh
rootfs/usr/local/share/template-files/config/env/examples/mongodb.sh
rootfs/usr/local/share/template-files/config/env/examples/networking.sh
rootfs/usr/local/share/template-files/config/env/examples/other.sh
rootfs/usr/local/share/template-files/config/env/examples/php.sh
rootfs/usr/local/share/template-files/config/env/examples/postgres.sh
rootfs/usr/local/share/template-files/config/env/examples/redis.sh
rootfs/usr/local/share/template-files/config/env/examples/services.sh
rootfs/usr/local/share/template-files/config/env/examples/ssl.sh
rootfs/usr/local/share/template-files/config/env/examples/supabase.sh
rootfs/usr/local/share/template-files/config/env/examples/webservers.sh
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
rootfs/usr/local/share/template-files/config/.gitkeep
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-06-04 14:44:40 -04:00
casjay a19d6d61e7 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:27:08 -04:00
casjay 6e86020f5d 🗃️ Removed the .claude/settings.local.json 🗃️
Dockerfile
.dockerignore
.env.scripts
.gitattributes
.gitea/workflows/docker.yaml
.gitignore
LICENSE.md
README.md
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/pkmgr
2026-05-12 20:07:26 -04:00
casjay 5cdea4e080 🗃️ rootfs: shield internal entrypoint PID files from /run/*.pid sweeps 🗃️
Update the embedded entrypoint copies in rootfs/ to match the
upstream template change. Internal state files renamed to dotfiles
so they're not matched by `/run/*.pid` cleanup globs:
- /run/init.d/entrypoint.pid -> /run/.entrypoint.pid
- /run/no_exit.pid -> /run/.no_exit.pid
- /run/backup.pid -> /run/.backup.pid
- /run/__start_init_scripts.pid -> /run/.start_init_scripts.pid
Per-service PIDs in /run/init.d/ are unchanged.

rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/default.sample
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
2026-05-05 19:12:13 -04:00
casjay 1b4a26cda0 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:25:45 -05:00
casjay 332d6c26a6 🐳 Enhancement: docker entrypoint script modifications 🐳
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:04:08 -05:00
casjay ff5dd8e0ab 🗃️ Fixed the entrypoint scripts 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/default.sample
2025-11-29 12:36:59 -05:00
casjay d5905f55d1 🗃️ Updated Dockerfile* and .env.scripts* 🗃️
Dockerfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:04:34 -05:00
casjay 5c58fc839d 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-11-23 08:47:51 -05:00
casjay 1eac955955 🗃️ Fixed the .gitignore file 🗃️
.gitignore

Dockerfile
2025-10-31 12:34:07 -04:00
casjay fc918110bd 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-10-22 13:05:45 -04:00
casjay 591e4a1ef9 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 06:39:32 -04:00
casjay c6d1d2bd6a 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:27:46 -04:00
casjay 894049c8e1 🗃️ Committing everything that changed 🗃️
Dockerfile
.env.scripts
.gitattributes
.gitignore
rootfs/.gitea/
rootfs/root/
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/pkmgr
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/share/template-files/config/env/
2025-09-16 19:37:51 -04:00
casjay 42e4fcf4df 🗃️ Committing everything that changed 🗃️
.env.scripts
2025-09-16 10:23:00 -04:00
casjay a1316eb118 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:10:21 -04:00
casjay 1853588e92 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/
2025-09-05 13:36:12 -04:00
casjay f1e60ac191 🗃️ Committing everything that changed 🗃️
Dockerfile
2025-02-04 10:59:29 -05:00
casjay 2955834b70 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2025-02-04 09:29:18 -05:00
casjay 1633762fd7 Added: rootfs/usr/local/bin/entrypoint.sh
Added: rootfs/usr/local/bin/entrypoint.sh
2024-08-01 16:09:53 -04:00
casjay 70685659c6 Added: .gitea/
Added: .gitea/
2024-08-01 16:09:53 -04:00
casjay 48b2b18ab3 Added: Dockerfile
Added: Dockerfile
2024-08-01 16:09:53 -04:00
casjay 5c7b8e4985 🗃️ Updated domain names 🗃️
bin/entrypoint-music.sh
Dockerfile
LICENSE.md
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/start-navidrome.sh
2023-08-10 19:56:03 -04:00
casjay 0edf050b2e 🔵 Added .gitattributes 🔵 2023-07-29 12:36:42 -04:00
casjay 01aefb53a3 🗃️ Committing everything that changed 🗃️ 2023-01-08 11:20:35 -05:00
casjay b9e684752e 🗃️ Committing everything that changed 🗃️ 2022-10-11 16:08:21 -04:00
casjay 0360f9309e 🗃️ Committing everything that changed 🗃️ 2022-10-07 18:47:44 -04:00
casjay f90efc9126 🗃️ Committing everything that changed 🗃️ 2022-10-03 10:32:10 -04:00
casjay cca6114142 🗃️ Committing everything that changed 🗃️ 2022-09-30 17:56:19 -04:00
casjay 10d5eddadd 🗃️ Committing everything that changed 🗃️ 2022-09-10 17:32:15 -04:00
casjay 118d7830ce 🗃️ Committing everything that changed 🗃️ 2022-09-10 17:22:13 -04:00
casjay 3bb048b54c 🗃️ Committing everything that changed 🗃️ 2022-09-10 16:49:45 -04:00
casjay 0f0da7e6bb 🗃️ Committing everything that changed 🗃️ 2022-09-10 16:38:37 -04:00
casjay 8f867d8245 🗃️ Committing everything that changed 🗃️ 2022-09-10 16:17:57 -04:00
casjay d24950a838 🗃️ Committing everything that changed 🗃️ 2022-09-10 16:06:47 -04:00
casjay ebd0774d95 🗃️ Committing everything that changed 🗃️ 2022-09-10 16:05:13 -04:00
casjay 32b24c2060 🗃️ Committing everything that changed 🗃️ 2022-09-10 15:41:12 -04:00
casjay 298b65db21 🗃️ Committing everything that changed 🗃️ 2022-09-10 15:40:02 -04:00
casjay 9e6ec0f00e 🗃️ Committing everything that changed 🗃️ 2022-09-10 15:35:43 -04:00
casjay c8e0a5153f 🗃️ Committing everything that changed 🗃️ 2022-09-10 15:33:04 -04:00