60 Commits
Author SHA1 Message Date
casjay 8c46543cbc 📝 Update project spec and documentation 📝
- AI.md
2026-09-03 01:40:52 -04:00
casjay 4b51d3f68a 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-08-02 20:43:26 -04:00
casjay 778059c896 🐛 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:00 -04:00
casjay 168ac5f481 📝 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:14:22 -04:00
casjay d5572bd070 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 23:50:24 -04:00
casjay 99d9927d76 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:41:40 -04:00
casjay 0829d7f507 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:35:59 -04:00
casjay dc0caf9d37 🐛 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:38:30 -04:00
casjay a00c1479a6 🐛 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:20 -04:00
casjay d3c6fc20de 🐛 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:15 -04:00
casjay de1f1a35d1 ♻️ Migrate lighttpd to /config/ source-of-truth architecture ♻️
Migrate lighttpd 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
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: update to latest template
- rootfs/usr/local/etc/docker/init.d/*.sh: fix $(basename) UUOC; move inline comments above code lines
- rootfs/tmp/etc/: add service config files (lighttpd ) deployed to /etc/ at build time
- rootfs/tmp/usr/: add default web content deployed to /usr/local/share/ at build time
- rootfs/usr/local/share/template-files/: delete; config now deployed via /tmp/etc/ and /tmp/usr/ at build time

rootfs/root/docker/setup/03-files.sh
rootfs/tmp/
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/config/lighttpd/lighttpd.conf
rootfs/usr/local/share/template-files/config/lighttpd/mod_cgi.conf
rootfs/usr/local/share/template-files/config/lighttpd/mod_fastcgi_fpm.conf
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.cgi
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.php
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.pl
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.py
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.rb
rootfs/usr/local/share/template-files/data/htdocs/www/404.html
rootfs/usr/local/share/template-files/data/htdocs/www/css/bootstrap.min.css
rootfs/usr/local/share/template-files/data/htdocs/www/css/bs.plain.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/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/server-health
rootfs/usr/local/share/template-files/data/htdocs/www/server-health.json
rootfs/usr/local/share/template-files/data/htdocs/www/site.webmanifest
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-06-04 14:38:43 -04:00
casjay 6c5ee74ce7 🗃️ Updated the functions file 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-05-24 12:26:59 -04:00
casjay ca1f419854 🗃️ 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:06 -04:00
casjay e6b994632f 🗃️ 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:00 -04:00
casjay 139b4c889b 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:25:38 -05:00
casjay 6d977f116d ...🐳 📝 Update Docker entrypoint script in rootfs (rootfs/usr/local/etc/d...
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:03:12 -05:00
casjay 4295561b19 🗃️ 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:52 -05:00
casjay 3df1f4656a 🗃️ 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:27 -05:00
casjay 6e22be5938 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-11-23 08:47:44 -05:00
casjay d821492037 🗃️ Fixed the .gitignore file 🗃️
.gitignore

Dockerfile
2025-10-31 12:34:00 -04:00
casjay 5a6fa443c6 🗃️ Fixed the .gitignore file 🗃️
.gitignore
2025-10-22 13:05:37 -04:00
casjay 732453d620 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 06:39:24 -04:00
casjay f763670e40 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-20 05:27:38 -04:00
casjay 432b49e58e 🗃️ Committing everything that changed 🗃️
Dockerfile
.dockerignore
.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:37 -04:00
casjay b022ff1f3a 🗃️ Committing everything that changed 🗃️
.env.scripts
2025-09-16 10:22:48 -04:00
casjay 2cb1f3a9a5 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-09-16 09:10:08 -04:00
casjay 4395de796a 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/entrypoint.sh
2025-09-05 22:16:32 -04:00
casjay 6665dc9ff5 🗃️ Committing everything that changed 🗃️
Jenkinsfile
rootfs/usr/local/etc/
2025-09-05 13:35:59 -04:00
casjay faaae2dfde 🗃️ Committing everything that changed 🗃️
Dockerfile
2025-02-04 10:59:25 -05:00
casjay 481db72364 🗃️ Committing everything that changed 🗃️
.gitea/workflows/docker.yaml
2025-02-04 09:29:03 -05:00
casjay 1ea7868f09 Added: .gitea/
Added: .gitea/
2024-08-01 16:09:15 -04:00
casjay 1225d966c2 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/share/template-files/data/htdocs/www/js/errorpages/loaddomain.js
2024-07-17 19:48:17 -04:00
casjay 15b160e0ec 🗃️ Updated domain names 🗃️
Dockerfile
LICENSE.md
rootfs/usr/local/bin/entrypoint-lighttpd.sh
rootfs/usr/local/bin/start-lighttpd.sh
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.php
2023-08-10 19:55:43 -04:00
casjay 583e6b02b3 🔵 Added .gitattributes 🔵 2023-07-29 12:36:09 -04:00
casjay 126ee23601 🗃️ Updated static server 🗃️
rootfs/usr/local/share/template-files/data/htdocs/cgi-bin/env.php
2023-04-29 22:49:25 -04:00
casjay 125eb060c2 🗃️ Committing everything that changed 🗃️ 2022-10-18 20:01:03 -04:00
casjay 0f7c897742 🗃️ Committing everything that changed 🗃️ 2022-10-18 19:16:12 -04:00
casjay b5e7e49b5d 🗃️ Committing everything that changed 🗃️ 2022-10-18 18:17:17 -04:00
casjay d06c0c8e72 🗃️ Committing everything that changed 🗃️ 2022-10-18 18:11:12 -04:00
casjay 9b7af11c98 🗃️ Committing everything that changed 🗃️ 2022-10-18 17:36:10 -04:00
casjay 1b5a22395c 🗃️ Committing everything that changed 🗃️ 2022-10-18 17:12:03 -04:00
casjay 90a9053385 🗃️ Committing everything that changed 🗃️ 2022-10-18 17:01:18 -04:00
casjay fdd2873127 🗃️ Committing everything that changed 🗃️ 2022-10-18 16:56:26 -04:00
casjay 456c7bb5f6 🗃️ Committing everything that changed 🗃️ 2022-10-18 16:24:54 -04:00
casjay 7834076e76 🗃️ Committing everything that changed 🗃️ 2022-10-18 15:32:13 -04:00
casjay d7c9dcf8c6 🗃️ Committing everything that changed 🗃️ 2022-10-18 15:19:24 -04:00
casjay 7debfcd05e 🗃️ Committing everything that changed 🗃️ 2022-10-18 15:16:43 -04:00
casjay ffd307af3f 🗃️ Committing everything that changed 🗃️ 2022-10-18 14:00:27 -04:00
casjay 0b3eff6cab 🗃️ Committing everything that changed 🗃️ 2022-10-18 13:37:46 -04:00
casjay 79347caf86 🗃️ Committing everything that changed 🗃️ 2022-10-18 13:36:13 -04:00