47 Commits
Author SHA1 Message Date
jason 35062252e4 🗃️ Update codebase 🗃️
caddy / release-caddy (push) Failing after 1m46s
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-08-02 20:42:33 -04:00
jason 299585dca5 🐛 Fix entrypoint hang and lost-interpreter bugs 🐛
caddy / release-caddy (push) Failing after 1m51s
- 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:17:56 -04:00
jason b405a8c301 📝 Migrate /var/lib/srv docker paths to /srv in README 📝
caddy / release-caddy (push) Has been cancelled
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:11:14 -04:00
jason 5fd315f1f3 🗃️ Update codebase 🗃️
caddy / release-caddy (push) Failing after 1m47s
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:49:09 -04:00
jason 598991ffc0 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:41:40 -04:00
jason 8fe101e057 🐛 Remove stale local function definitions from init.d script 🐛
__pcheck, __pgrep were locally defined in init.d scripts before they
were added to the shared docker-entrypoint functions library. These
local copies shadow the improved library versions and prevent library
updates from taking effect.
- rootfs/usr/local/etc/docker/init.d/zz-caddy.sh: remove stale local __pcheck/__pgrep definitions; defer to shared library
- rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh: remove stale local __pcheck/__pgrep definitions; defer to shared library

rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:33:17 -04:00
jason 05b9ead706 🐛 Remove stale local function definitions from init.d script 🐛
caddy / release-caddy (push) Failing after 1m19s
__pcheck and __pgrep were locally defined in init.d scripts before they
were added to the shared docker-entrypoint functions library. These local
copies shadow the improved library versions and prevent library updates
from taking effect.
- rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh: remove stale local __pcheck/__pgrep definitions and their intro comment; defer to shared library

rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/zz-caddy.sh
2026-06-26 18:47:23 -04:00
jason d7f9133e1f 🐛 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:37:10 -04:00
jason 43d5f29583 🐛 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:31:55 -04:00
jason a2e4b48af2 🐛 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:32:53 -04:00
jason fbf41b5610 🎨 Fix init.d script conventions in caddy 🎨
Apply script convention fixes to init.d scripts.
- rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh: move inline end-of-line comments above code lines
- rootfs/usr/local/etc/docker/init.d/zz-caddy.sh: move inline end-of-line comments above code lines

rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/zz-caddy.sh
2026-06-04 14:48:51 -04:00
jason f319a21ab9 🎨 Apply script conventions to caddy setup and init.d scripts 🎨
Fix violations of script_conventions.md in the three scripts edited
during the /config/ architecture migration.
- rootfs/root/docker/setup/03-files.sh: collapse multiple shellcheck disable lines into single canonical line; remove commented-out exitCode line; add
2026-06-04 12:59:46 -04:00
jason a31c2542bd ♻️ Migrate caddy to /config/ source-of-truth architecture ♻️
Remove template-files dead weight; bake configs into rootfs/tmp/etc/
and htdocs into rootfs/tmp/usr/local/share/caddy/htdocs/ so the image
carries no runtime-copy layer. On first container start, __init_service_conf
seeds /config/{svc}/ from the baked /etc/{svc}/; __update_conf_files then
symlinks /etc/{svc} -> /config/{svc}/ so /etc always reflects user config.
Flat /etc/ symlinks (php.ini, php-fpm.conf, php-fpm.d) added so all
standard lookup paths resolve through /config/php/.
- rootfs/root/docker/setup/03-files.sh: remove template-files copy blocks; remove /tmp/data handler; add /tmp/usr -> /usr handler; bump version
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to template version with __init_service_conf, command -v fast-exit guards on all __find_* functions
- rootfs/usr/local/etc/docker/init.d/zz-caddy.sh: __update_conf_files uses __init_service_conf + symlink /etc/caddy -> /config/caddy; seed www_dir from /usr/local/share/caddy/htdocs on first start
- rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh: __update_conf_files uses __init_service_conf + symlink /etc/php -> /config/php; add flat /etc/ symlinks for php.ini, php-fpm.conf, php-fpm.d
- rootfs/tmp/etc/caddy/Caddyfile: baked caddy config (moved from template-files)
- rootfs/tmp/etc/php/php.ini: baked PHP ini (moved from template-files)
- rootfs/tmp/etc/php/php-fpm.conf: baked PHP-FPM config (moved from template-files)
- rootfs/tmp/etc/php/php-fpm.d/www.conf: baked FPM pool config (moved from template-files)
- rootfs/tmp/usr/local/share/caddy/htdocs/www/: baked web root (moved from template-files/data)
- rootfs/usr/local/share/template-files/: deleted entirely

rootfs/root/docker/setup/03-files.sh
rootfs/tmp/
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/zz-caddy.sh
rootfs/usr/local/share/template-files/config/caddy/Caddyfile
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/config/php/php-fpm.conf
rootfs/usr/local/share/template-files/config/php/php-fpm.d/www.conf
rootfs/usr/local/share/template-files/config/php/php.ini
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/data/htdocs/www/404.html
rootfs/usr/local/share/template-files/data/htdocs/www/css/bootstrap.css
rootfs/usr/local/share/template-files/data/htdocs/www/css/cookieconsent.css
rootfs/usr/local/share/template-files/data/htdocs/www/css/errorpages.css
rootfs/usr/local/share/template-files/data/htdocs/www/css/index.css
rootfs/usr/local/share/template-files/data/htdocs/www/favicon.ico
rootfs/usr/local/share/template-files/data/htdocs/www/health/index.json
rootfs/usr/local/share/template-files/data/htdocs/www/health/index.txt
rootfs/usr/local/share/template-files/data/htdocs/www/images/403.png
rootfs/usr/local/share/template-files/data/htdocs/www/images/404.gif
rootfs/usr/local/share/template-files/data/htdocs/www/images/bg.png
rootfs/usr/local/share/template-files/data/htdocs/www/images/favicon.ico
rootfs/usr/local/share/template-files/data/htdocs/www/images/icon.png
rootfs/usr/local/share/template-files/data/htdocs/www/images/icon.svg
rootfs/usr/local/share/template-files/data/htdocs/www/index.php
rootfs/usr/local/share/template-files/data/htdocs/www/info.php
rootfs/usr/local/share/template-files/data/htdocs/www/js/app.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/bootstrap.min.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/errorpages/homepage.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/errorpages/isup.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/errorpages/loaddomain.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/errorpages/scale.fix.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/jquery/default.js
rootfs/usr/local/share/template-files/data/htdocs/www/js/passprotect.min.js
rootfs/usr/local/share/template-files/data/htdocs/www/site.webmanifest
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-06-04 12:54:41 -04:00
jason 1f155c3c85 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:26:29 -04:00
jason f5d1599ae9 🗃️ Removed the .claude/settings.local.json 🗃️
Dockerfile
.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:05:47 -04:00
jason 7bb0f56cfc 🗃️ 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/env/default.sample
rootfs/usr/local/etc/docker/env/zz-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:11:18 -04:00
jason 28b417aa5c 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:25:16 -05:00
jason b565adb0bd 🔄 Update entrypoint.sh script in docker functions directory 🔄
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:00:14 -05:00
jason ca4426b5e7 🗃️ 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:32 -05:00
jason 2042716cb3 🗃️ 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:04 -05:00
jason 38fd9a330b 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-11-23 08:47:20 -05:00
jason 72b417a044 🗃️ Fixed the .gitignore file 🗃️
.gitignore

Dockerfile
2025-10-31 12:33:40 -04:00
jason 35d8b050cb 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-10-22 13:05:09 -04:00
jason 4ee207b273 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-php-fpm.sh
rootfs/usr/local/etc/docker/init.d/zz-caddy.sh
2025-09-20 06:38:54 -04:00
jason 09c3b80cf4 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:27:13 -04:00
jason f6ba54f40b 🗃️ 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/default.sample
rootfs/usr/local/share/template-files/config/env/examples/
rootfs/usr/local/share/template-files/config/.gitkeep
rootfs/usr/local/share/template-files/data/.gitkeep
2025-09-16 19:36:55 -04:00
jason 8e16be36f6 🗃️ Committing everything that changed 🗃️
.env.scripts
2025-09-16 10:22:11 -04:00
jason e7d949e0ad 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:09:25 -04:00
jason af5ccb9ccd 🗃️ Committing everything that changed 🗃️
Dockerfile
2025-09-05 22:15:03 -04:00
jason beda137705 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/
2025-09-05 13:35:13 -04:00
jason 2bf9094889 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2025-02-04 09:28:27 -05:00
jason cb7124607e 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-01-10 23:16:04 -05:00
jason e1115fe381 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-24 11:03:09 -04:00
jason 2bd7f4f7d8 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 16:34:53 -04:00
jason d8ae943b4a Added: .gitea/
Added: .gitea/
2024-08-01 16:06:59 -04:00
jason bef63dad2a 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2024-08-01 15:56:14 -04:00
jason 78550ca0ec 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:37:47 -04:00
jason cfd97efb39 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:01:07 -04:00
jason 12f314cc42 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 14:52:04 -04:00
jason 35ba59886a 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 14:47:22 -04:00
jason ed8aac78d6 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-31 12:26:49 -04:00
jason 72f6e0476f 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-29 18:22:05 -04:00
jason a4acbbf519 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
Dockerfile
.gitea/
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-29 17:54:30 -04:00
jason 793080806c 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/share/template-files/data/htdocs/www/js/errorpages/loaddomain.js
2024-07-17 19:47:35 -04:00
jason cec863257c 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 20:03:33 -04:00
jason ebf17d0aab 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 18:44:19 -04:00
jason 4de8dd5e2e 🗃 Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃
Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 10:43:13 -04:00