Commit Graph
110 Commits
Author SHA1 Message Date
casjay 808d116003 🐛 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:20:09 -04:00
casjay 91e0f4924c 📝 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:13:47 -04:00
casjay 78c1cddf56 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:50:23 -04:00
casjay d37a8756d4 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:42:08 -04:00
casjay b9d51e9e0b 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:35:33 -04:00
casjay 2d46c9a6cc 🐛 Fix __create_service_env to write .local.sh to disk 🐛
The .local.sh block defined stub functions in memory but never
wrote the file to disk, so __file_exists_with_content always
failed and __create_service_env returned non-zero on every run.
Fix: use a heredoc to write the stub functions into .local.sh.
- rootfs/usr/local/etc/docker/init.d/zz-echoip.sh: write .local.sh
via heredoc in __create_service_env; bump version to 202606261600-git

rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2026-06-26 21:05:42 -04:00
casjay 4e652fe01d 🐛 Remove stale local function definitions from init.d script 🐛
__cd, __pcheck, __pgrep, and __proc_check 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-echoip.sh: remove stale local __cd/__pcheck/__pgrep/__proc_check definitions; defer to shared library

rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2026-06-26 18:47:42 -04:00
casjay 30e1744d73 🐛 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:13 -04:00
casjay 51bd7d4513 🐛 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:08 -04:00
casjay f81235758d 🐛 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:00 -04:00
casjay ed86041b53 ♻️ Migrate ifconfig to /config/ source-of-truth architecture ♻️
Migrate ifconfig 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-echoip.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:42:55 -04:00
casjay 76ed75df0b 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:26:54 -04:00
casjay d2da6f2c15 🗃️ 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:06:51 -04:00
casjay a4fdd3a904 🗃️ 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:11:54 -04:00
casjay 040cc63985 🗃️ fixed the no echoip binary error 🗃️
rootfs/root/docker/setup/05-custom.sh
2026-01-30 00:23:41 -05:00
casjay 3198b23678 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:25:36 -05:00
casjay 0459ca80c8 🎉 Refactor entrypoint.sh script 📝
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:02:44 -05:00
casjay cd9ba090d4 🗃️ 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:50 -05:00
casjay 3bafe97e6a 🗃️ Updated Dockerfile* and .env.scripts* 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:04:24 -05:00
casjay 46e92ca584 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-11-23 08:47:39 -05:00
casjay 27d326bd17 🐳 Update codebase 🐳
Dockerfile
2025-10-31 14:40:00 -04:00
casjay c2a1911cd3 🗃️ Fixed the .gitignore file 🗃️
.gitignore

Dockerfile
2025-10-31 12:33:55 -04:00
casjay 46e902167a 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-10-22 13:05:32 -04:00
casjay f536bc7bb0 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2025-09-20 06:39:19 -04:00
casjay c999aee8e4 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:27:33 -04:00
casjay 907b9775cf 🗃️ 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:28 -04:00
casjay 8bd3f9e4d0 🗃️ Committing everything that changed 🗃️
.env.scripts
2025-09-16 10:22:40 -04:00
casjay a5f3e30291 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:09:57 -04:00
casjay 1e72449fbf 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/
2025-09-05 13:35:50 -04:00
casjay 1d144a16c3 🗃️ Committing everything that changed 🗃️
rootfs/opt/echoip/html/index.html
2025-06-11 13:27:30 -04:00
casjay c4bbf9120f 🗃️ Committing everything that changed 🗃️
rootfs/opt/echoip/html/index.html
2025-06-11 13:12:15 -04:00
casjay 12129808aa 🗃️ Committing everything that changed 🗃️
rootfs/opt/echoip/html/index.html
2025-06-11 13:01:05 -04:00
casjay 4c6614ee02 🗃️ Committing everything that changed 🗃️
Dockerfile
2025-06-11 12:53:05 -04:00
casjay add9bab4b4 🗃️ Committing everything that changed 🗃️
Dockerfile
2025-06-11 12:49:21 -04:00
casjay e4db024150 🗃️ Committing everything that changed 🗃️
rootfs/opt/echoip/html/script.html
2025-06-11 12:45:08 -04:00
casjay cb8b97ae4d 🗃️ Committing everything that changed 🗃️
Dockerfile
rootfs/opt/echoip/html/index.html
rootfs/usr/local/etc/docker/bin/echoip-cli
rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2025-06-11 12:40:34 -04:00
casjay 748e52ad9b 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2025-06-11 11:12:54 -04:00
casjay fef504066e 🗃️ Committing everything that changed 🗃️
rootfs/opt/echoip/html/index.html
rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2025-06-11 11:01:15 -04:00
casjayandGitHub f35189b635 Update zz-echoip.sh 2025-06-10 23:42:56 -04:00
casjayandGitHub 9d9df8fc33 Update index.html 2025-06-10 23:34:31 -04:00
casjay f748db577b 🗃️ Committing everything that changed 🗃️
Dockerfile
.env.scripts
2025-02-04 21:31:15 -05:00
casjay 7f15e3c12e 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2025-02-04 09:28:57 -05:00
casjay ebf4b77628 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/zz-echoip.sh
2025-02-03 15:19:40 -05:00
casjay b4bb9d7bec 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-01-10 23:16:26 -05:00
casjay 416c73f207 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-09-24 11:03:29 -04:00
casjay d6c5ee835b 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 16:36:48 -04:00
casjay bee31ba9a3 Added: .gitea/
Added: .gitea/
2024-08-01 16:08:45 -04:00
casjay d807179df1 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2024-08-01 15:57:54 -04:00
casjay 268c29470e 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:38:08 -04:00
casjay fb097c84bf 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2024-08-01 15:04:00 -04:00