66 Commits
Author SHA1 Message Date
casjay f6e957753a 📝 Update project spec and documentation 📝
- AI.md
2026-09-03 01:38:35 -04:00
casjay 4965aa67a6 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-08-02 20:42:31 -04:00
casjay bb623a5aa1 🐛 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:17:48 -04:00
casjay 8810180849 📝 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:11:07 -04:00
casjay 877236cc40 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:49:08 -04:00
casjay d7d58c0914 🐛 Remove stale local function definitions from init.d script 🐛
__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/zz-bun.sh: remove stale local __pcheck/__pgrep definitions and their intro comments; defer to shared library

rootfs/usr/local/etc/docker/init.d/zz-bun.sh
2026-06-26 18:47:28 -04:00
casjay 28cb25437f 🐛 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:42:59 -04:00
casjay dbc1180c96 🐛 Update entrypoint.sh and functions library from current template 🐛
Stale copies called __initialize_default_templates, __initialize_config_dir,
and __initialize_data_dir which are not in the old functions library,
causing container startup failures. Replaced with current template
versions (202606041210-git) which no longer call those missing functions.
- rootfs/usr/local/bin/entrypoint.sh: update to current template
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to current template

rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-05 18:24:27 -04:00
casjay 2f4cf7c119 🐛 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:52 -04:00
casjay fe23839479 🐛 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:49 -04:00
casjay c5be1f8028 ♻️ Migrate bun to /config/ source-of-truth architecture ♻️
Migrate bun 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/etc/docker/init.d/zz-bun.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:36:32 -04:00
casjay 59b91986ca 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:26:28 -04:00
casjay cab3fbf3e6 🗃️ Removed the .claude/settings.local.json 🗃️
Dockerfile
.env.scripts
.env.scripts.1.0
.env.scripts.1.1
.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:44 -04:00
casjay a8c10673bb 🗃️ 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:15 -04:00
casjay e56fd19396 🗃️ Updated Dockerfile* and .env.scripts* 🗃️
Dockerfile
Dockerfile.1.0
Dockerfile.1.1
.env.scripts
.env.scripts.1.0
.env.scripts.1.1
.gitea/workflows/docker-1_0.yaml
.gitea/workflows/docker-1_1.yaml
.gitea/workflows/docker.1.yaml
.gitea/workflows/docker.yaml
rootfs/root/docker/setup/05-custom.sh
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:06:56 -05:00
casjay d5844f5a10 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-11-23 08:47:19 -05:00
casjay 8570cfa2aa 🗃️ Fixed the .gitignore file 🗃️
.gitignore

Dockerfile
2025-10-31 12:33:38 -04:00
casjay c988c62503 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-10-22 13:05:07 -04:00
casjay 7e8b118f24 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/zz-bun.sh
2025-09-20 06:38:52 -04:00
casjay a4bdcf2159 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:27:12 -04:00
casjay 2eec425986 🗃️ 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/
2025-09-16 19:36:53 -04:00
casjay 8b1339a933 🗃️ Committing everything that changed 🗃️
.env.scripts
2025-09-16 10:22:10 -04:00
casjay de85a39797 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:09:23 -04:00
casjay cca710da73 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/
2025-09-05 13:35:11 -04:00
casjay dfb1b6ac93 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2025-02-04 09:28:26 -05:00
casjay 569a468402 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-01-10 23:16:02 -05:00
casjay 0bd88f0b2f 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-24 11:03:07 -04:00
casjay f2282ed73f 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 16:34:40 -04:00
casjay 261cb29134 Added: .gitea/
Added: .gitea/
2024-08-01 16:06:51 -04:00
casjay 19f9bc9378 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2024-08-01 15:56:01 -04:00
casjay 9e704b1477 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:37:44 -04:00
casjay 505dcc2db8 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:00:54 -04:00
casjay baf42fa622 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 14:51:50 -04:00
casjay 57e0857a26 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 14:47:10 -04:00
casjay 1e9dc5c0a2 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-31 12:26:37 -04:00
casjay 43445e0dd2 🗃️ Fixed: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-29 18:21:52 -04:00
casjay efff2fa2f9 🗃️ 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:17 -04:00
casjay 8274f43471 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 20:03:20 -04:00
casjay 4723f69a4c 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 18:44:07 -04:00
casjay dae7ff3db5 🗃 Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃
Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-07-14 10:43:05 -04:00
casjay 032090a430 🗃️ Updated domain names 🗃️
Dockerfile
LICENSE.md
rootfs/usr/local/bin/entrypoint.sh
2023-08-10 19:54:13 -04:00
casjay 138dd664ff 🔵 Added .gitattributes 🔵 2023-07-29 12:34:01 -04:00
casjay 1839527ca1 🗃️ Committing everything that changed 🗃️ 2023-03-27 11:44:49 -04:00
casjay cb54bab1fb 🗃️ Committing everything that changed 🗃️ 2023-03-16 01:04:50 -04:00
casjay 9a8325547f 🗃️ Committing everything that changed 🗃️ 2023-03-15 22:58:40 -04:00
casjay a150187a8d 🗃️ Committing everything that changed 🗃️ 2023-03-15 21:28:48 -04:00
casjay e5c2ecf81d 🗃️ Committing everything that changed 🗃️ 2023-03-15 15:58:59 -04:00
casjay 4f9f99d1e6 🗃️ Committing everything that changed 🗃️ 2023-01-08 11:19:15 -05:00
casjay 9274a2e425 🗃️ Committing everything that changed 🗃️ 2022-10-20 15:58:39 -04:00
casjay db623eab10 🗃️ Committing everything that changed 🗃️ 2022-10-20 15:57:13 -04:00