Commit Graph
29 Commits
Author SHA1 Message Date
casjay ef30df95de 🐛 Fix __exec_command dropping all arguments after the first 🐛
__exec_command was using ${arg:-} which only captured the first element
of the args array, then ran it through "$shell" $pre_exec "$cmdExec"
which effectively discarded everything after $1.
Running `docker run image sh -c 'go build ...'` would:
1. Set arg=("sh" "-c" "go build ...")
2. Set cmdExec="sh" (only first element)
3. Run bash --login -c "sh" (dropping -c and the actual command)
This broke any Makefile GO_DOCKER pattern that relied on passing multi-arg
commands. Simplified to just `exec "$@"` which passes all args through.
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: rewrite __exec_command

rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-29 00:47:23 -04:00
casjay af3dc66e9c 🐛 Fix entrypoint crash on __setup_mta ssmtp failure 🐛
__setup_mta calls __find_replace on /etc/ssmtp/revaliases which returns
1 when the symlink it creates is broken. With set -o pipefail active the
non-zero return kills the entire entrypoint before any command can run.
ssmtp is not installed in this image and email delivery is not a feature
of this image, so the MTA setup failure is irrelevant. Guard the call
with || true so initialization continues regardless.
- rootfs/usr/local/bin/entrypoint.sh: __setup_mta || true (non-fatal)

rootfs/usr/local/bin/entrypoint.sh
2026-06-27 19:19:27 -04:00
casjay 98d08d271e 🔧 Remove redundant init func calls from entrypoint 🔧
Remove duplicate __initialize_default_templates, __initialize_config_dir,
and __initialize_data_dir calls that were guarded by already-handled
CONFIG_DIR_INITIALIZED/DATA_DIR_INITIALIZED checks.
- rootfs/usr/local/bin/entrypoint.sh: remove 15 lines of redundant init calls

rootfs/usr/local/bin/entrypoint.sh
2026-06-26 23:33:48 -04:00
casjay b5bf70962c 🐛 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:39:55 -04:00
casjay d31bc41726 🗃 Modified: rootfs/usr/local/etc/resolv.conf 🗃
Modified: rootfs/usr/local/etc/resolv.conf
2026-06-26 15:46:00 -04:00
casjay dec032ffb1 🗃 Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃
Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh
2026-06-26 15:46:00 -04:00
casjay 3693a35d44 🐛 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:36:12 -04:00
casjay 1dc2b328f6 🐛 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:37:06 -04:00
casjay f08e7b8f06 🐛 Add missing functions/entrypoint.sh for archlinux 🐛
The entrypoint.sh sources /usr/local/etc/docker/functions/entrypoint.sh
but the file was never added to the repo. Container would silently fail
to load any helper functions at runtime.
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: added from
casjay-dotfiles templates

rootfs/usr/local/etc/
2026-06-04 11:53:45 -04:00
casjay eaf62d3d32 🗑️ Remove unused template-files from rootfs 🗑️
The init framework now checks for existence before copying; empty
placeholder directories are no longer needed in the image layer.
- rootfs/usr/local/share/template-files/: removed entirely

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/.gitkeep
rootfs/usr/local/share/template-files/data/.gitkeep
rootfs/usr/local/share/template-files/defaults/.gitkeep
2026-06-04 11:21:02 -04:00
casjay d70f2d7f0e 🔧 Update scripts, remove certbot, add CA cert update 🔧
Update all container scripts to 202605241245-git, remove certbot from
package lists, and add CA certificate update step after install.
- .env.scripts: remove certbot from ENV_PACKAGES
- Dockerfile: remove certbot from PACK_LIST
- rootfs/root/docker/setup/00-init.sh: updated to latest template
- rootfs/root/docker/setup/01-system.sh: updated to latest template
- rootfs/root/docker/setup/02-packages.sh: add trust extract-compat step
- rootfs/root/docker/setup/03-files.sh: updated to latest template
- rootfs/root/docker/setup/04-users.sh: updated to latest template
- rootfs/root/docker/setup/05-custom.sh: updated to latest template
- rootfs/root/docker/setup/06-post.sh: updated to latest template
- rootfs/root/docker/setup/07-cleanup.sh: updated to latest template
- rootfs/usr/local/bin/entrypoint.sh: updated to 202605241245-git
- rootfs/usr/local/bin/pkmgr: updated to 202605241245-git
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: updated to 202605241245-git

Dockerfile
.env.scripts
rootfs/root/docker/setup/00-init.sh
rootfs/root/docker/setup/01-system.sh
rootfs/root/docker/setup/02-packages.sh
rootfs/root/docker/setup/03-files.sh
rootfs/root/docker/setup/04-users.sh
rootfs/root/docker/setup/05-custom.sh
rootfs/root/docker/setup/06-post.sh
rootfs/root/docker/setup/07-cleanup.sh
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/pkmgr
2026-05-24 21:45:34 -04:00
casjay 31d05220d5 🔧 Restructure entrypoint scripts and update configs 🔧
- Removed legacy entrypoint.sh from rootfs/usr/local/bin and functions directory
- Added new healthcheck script to rootfs/usr/local/bin
- Updated copy and symlink helper scripts in rootfs/usr/local/bin
- Refreshed environment templates and example configs for services
- Updated Dockerfile and .env.scripts to align with new layout

Dockerfile
.env.scripts
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/bin/healthcheck
rootfs/usr/local/bin/symlink
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/addresses.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/php.sh
rootfs/usr/local/share/template-files/config/env/examples/postgres.sh
rootfs/usr/local/share/template-files/config/env/examples/webservers.sh
rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
2026-05-05 19:35:17 -04:00
casjay 63f6e58593 ♻ Rename dockerfs to rootfs and add helper scripts ♻
- Renamed dockerfs directory tree to rootfs across all setup scripts, entrypoints, and template files
- Updated Dockerfile and README.md to reflect the new rootfs path convention
- Added new copy and symlink helper scripts under rootfs/usr/local/bin
- Preserved file contents during rename (100% similarity) to keep history intact

Dockerfile
dockerfs/root/docker/setup/00-init.sh
dockerfs/root/docker/setup/01-system.sh
dockerfs/root/docker/setup/02-packages.sh
dockerfs/root/docker/setup/03-files.sh
dockerfs/root/docker/setup/04-users.sh
dockerfs/root/docker/setup/05-custom.sh
dockerfs/root/docker/setup/06-post.sh
dockerfs/root/docker/setup/07-cleanup.sh
dockerfs/usr/local/bin/entrypoint.sh
dockerfs/usr/local/bin/pkmgr
dockerfs/usr/local/etc/docker/functions/entrypoint.sh
dockerfs/usr/local/share/template-files/config/env/default.sample
dockerfs/usr/local/share/template-files/config/env/examples/00-directory.sh
dockerfs/usr/local/share/template-files/config/env/examples/addresses.sh
dockerfs/usr/local/share/template-files/config/env/examples/certbot.sh
dockerfs/usr/local/share/template-files/config/env/examples/couchdb.sh
dockerfs/usr/local/share/template-files/config/env/examples/dockerd.sh
dockerfs/usr/local/share/template-files/config/env/examples/global.sh
dockerfs/usr/local/share/template-files/config/env/examples/healthcheck.sh
dockerfs/usr/local/share/template-files/config/env/examples/mariadb.sh
dockerfs/usr/local/share/template-files/config/env/examples/mongodb.sh
dockerfs/usr/local/share/template-files/config/env/examples/networking.sh
dockerfs/usr/local/share/template-files/config/env/examples/other.sh
dockerfs/usr/local/share/template-files/config/env/examples/php.sh
dockerfs/usr/local/share/template-files/config/env/examples/postgres.sh
dockerfs/usr/local/share/template-files/config/env/examples/redis.sh
dockerfs/usr/local/share/template-files/config/env/examples/services.sh
dockerfs/usr/local/share/template-files/config/env/examples/ssl.sh
dockerfs/usr/local/share/template-files/config/env/examples/supabase.sh
dockerfs/usr/local/share/template-files/config/env/examples/webservers.sh
dockerfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh
dockerfs/usr/local/share/template-files/config/.gitkeep
dockerfs/usr/local/share/template-files/data/.gitkeep
dockerfs/usr/local/share/template-files/defaults/.gitkeep
README.md
rootfs/usr/local/bin/copy
rootfs/usr/local/bin/symlink
2026-05-05 14:35:17 -04:00
casjay 81302e6f4d 🔧 Update configuration files 🔧
Dockerfile
dockerfs/
.gitea/workflows/docker.yaml
.gitea/workflows/publish.yaml
.github/workflows/docker.yaml
.github/workflows/publish.yaml
README.md
rootfs/root/docker/setup/00-init.sh
rootfs/root/docker/setup/01-system.sh
rootfs/root/docker/setup/02-packages.sh
rootfs/root/docker/setup/03-files.sh
rootfs/root/docker/setup/04-users.sh
rootfs/root/docker/setup/05-custom.sh
rootfs/root/docker/setup/06-post.sh
rootfs/root/docker/setup/07-cleanup.sh
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/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-01-15 23:46:36 -05:00
casjay 7c2eb91c01 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 18:27:29 -05:00
casjay 9a96d0e65b 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:17:46 -05:00
casjay 3ca8ed9535 🗃 Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh 🗃
Modified: rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:55:23 -05:00
casjay 0385b810b2 🗃 Modified: rootfs/usr/local/bin/symlink 🗃
Modified: rootfs/usr/local/bin/symlink
2025-11-29 11:55:23 -05:00
casjay 2adfaabba5 🗃 Modified: rootfs/usr/local/bin/entrypoint.sh 🗃
Modified: rootfs/usr/local/bin/entrypoint.sh
2025-11-29 11:55:22 -05:00
casjay 3cbb878329 🗃 Modified: rootfs/usr/local/bin/copy 🗃
Modified: rootfs/usr/local/bin/copy
2025-11-29 11:55:22 -05:00
casjay 9caa409472 🗃 Modified: rootfs/root/docker/setup/07-cleanup.sh 🗃
Modified: rootfs/root/docker/setup/07-cleanup.sh
2025-11-29 11:55:22 -05:00
casjay 2688dae7d6 🗃 Modified: rootfs/root/docker/setup/06-post.sh 🗃
Modified: rootfs/root/docker/setup/06-post.sh
2025-11-29 11:55:22 -05:00
casjay bfa7a2e61b 🗃 Modified: rootfs/root/docker/setup/05-custom.sh 🗃
Modified: rootfs/root/docker/setup/05-custom.sh
2025-11-29 11:55:22 -05:00
casjay 6186d56df5 🗃 Modified: rootfs/root/docker/setup/04-users.sh 🗃
Modified: rootfs/root/docker/setup/04-users.sh
2025-11-29 11:55:22 -05:00
casjay addae46b3b 🗃 Modified: rootfs/root/docker/setup/03-files.sh 🗃
Modified: rootfs/root/docker/setup/03-files.sh
2025-11-29 11:55:22 -05:00
casjay c0a2636ba8 🗃 Modified: rootfs/root/docker/setup/02-packages.sh 🗃
Modified: rootfs/root/docker/setup/02-packages.sh
2025-11-29 11:55:21 -05:00
casjay bf14dba54c 🗃 Modified: rootfs/root/docker/setup/01-system.sh 🗃
Modified: rootfs/root/docker/setup/01-system.sh
2025-11-29 11:55:21 -05:00
casjay 42762a1592 🗃 Modified: rootfs/root/docker/setup/00-init.sh 🗃
Modified: rootfs/root/docker/setup/00-init.sh
2025-11-29 11:55:21 -05:00
casjay 8f026f6cb7 🦈🏠🐜 Initial Commit 🐜🦈🏠 2025-11-29 11:11:36 -05:00