Commit Graph

16 Commits

Author SHA1 Message Date
jason c96a4c7996 ♻️ Migrate tor to /config/ source-of-truth architecture ♻️
Migrate tor 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/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh
rootfs/usr/local/etc/docker/init.d/09-unbound.sh
rootfs/usr/local/etc/docker/init.d/98-privoxy.sh
rootfs/usr/local/etc/docker/init.d/zz-nginx.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:49:19 -04:00
jason f4df3572d5 🐛 Fix printf %q empty-var bug; sync Dockerfile; update README 🐛
Three fixes in this commit:
1. printf '%q' empty-variable bug — all 7 init.d service scripts:
printf '%q ' $su_exec/\$args/\$extra_env with an unset/empty variable
calls printf with no vararg, causing bash to format the empty string
as '' (two single-quotes), which gets written into the generated exec
script and makes the container fail to start. Fixed with ${var:+...}
parameter expansion so an empty variable produces an empty string.
2. Dockerfile — sync to template 202605261603 (structural changes:
blank line after $SHELL_OPTS in apk-repos block, un-indented echo ""
in Custom Settings and Custom Applications stubs); preserve all
tor-specific values (IMAGE_NAME, PHP_SERVER, BUILD_DATE, SERVICE_PORT,
EXPOSE_PORTS, PHP_VERSION, IMAGE_REPO, CONTAINER_VERSION, PULL_URL,
PACK_LIST, HOSTNAME, OCI labels).
3. README.md — add the full EXPOSE_PORTS list to the docker run command
and docker-compose ports section (privoxy 8118, SOCKS5 9050, DNS 9053
TCP+UDP, web 9080, bridge range 57000-57007).
- Dockerfile: sync structural template changes; update BUILD_DATE to 202605261603
- README.md: add -p 8118:8118 9050:9050 9053:9053 9053/udp 9080:9080 57000-57007 ports
- rootfs/usr/local/etc/docker/init.d/01-tor-server.sh: fix _q_su/_q_args/_q_extra printf %q guard
- rootfs/usr/local/etc/docker/init.d/02-tor-bridge.sh: fix _q_su/_q_args/_q_extra printf %q guard
- rootfs/usr/local/etc/docker/init.d/03-tor-relay.sh: fix _q_su/_q_args/_q_extra printf %q guard
- rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh: fix _q_su/_q_args/_q_extra printf %q guard
- rootfs/usr/local/etc/docker/init.d/09-unbound.sh: fix _q_su/_q_args/_q_extra printf %q guard
- rootfs/usr/local/etc/docker/init.d/98-privoxy.sh: fix _q_su/_q_args/_q_extra printf %q guard
- rootfs/usr/local/etc/docker/init.d/zz-nginx.sh: fix _q_su/_q_args/_q_extra printf %q guard

Dockerfile
README.md
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/03-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh
rootfs/usr/local/etc/docker/init.d/09-unbound.sh
rootfs/usr/local/etc/docker/init.d/98-privoxy.sh
rootfs/usr/local/etc/docker/init.d/zz-nginx.sh
2026-05-26 18:25:35 -04:00
jason fd24da283f ♻️ Refactor all 7 init scripts to new template structure ♻️
Replace all boilerplate in the 7 service init scripts with the new
template structure from 00-template.sh while preserving all
service-specific content (function bodies, variables, heredoc configs).
Key boilerplate changes applied to all scripts:
- WTFPL license header, 2026 copyright, 49-char separators
- shellcheck disable list updated (SC2317, SC2329 added)
- set -e placed before trap lines
- New __trap_err_handler() with smart critical vs non-critical detection
- SIGPWR trap added as separate line with 2>/dev/null || true
- ${VAR##*/} replacing $(basename -- ...) for SCRIPT_NAME/EXEC_CMD_NAME
- if-block style throughout (replacing one-liner && / || guards)
- _resolved pattern for binary path resolution
- New __run_start_script with printf/hash-cache/bash "$START_SCRIPT"
- __run_secure_function with [ -n "$SERVICE_USER" ] && guard
- SERVICE_USES_PID='' variable added after EXEC_PRE_SCRIPT
- ${PIPESTATUS[0]} replacing $? after pipelines
- sleep 2 (not sleep 5) in __pre_execute
- fire-and-forget pattern in __post_execute (retVal=0)
- No __banner call at end; no SERVICE_PID_NUMBER= at bottom
- Remove duplicate "create needed dirs" block
- Remove IP4_ADDRESS/IP6_ADDRESS lines
- path: rootfs/usr/local/etc/docker/init.d/01-tor-server.sh: refactor to new template boilerplate; preserve tor-server service logic
- path: rootfs/usr/local/etc/docker/init.d/02-tor-bridge.sh: refactor to new template boilerplate; preserve tor-bridge service logic
- path: rootfs/usr/local/etc/docker/init.d/03-tor-relay.sh: refactor to new template boilerplate; preserve tor-relay service logic
- path: rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh: refactor to new template boilerplate; preserve tor-exit service logic
- path: rootfs/usr/local/etc/docker/init.d/09-unbound.sh: refactor to new template boilerplate; preserve unbound service logic
- path: rootfs/usr/local/etc/docker/init.d/98-privoxy.sh: refactor to new template boilerplate; preserve privoxy service logic
- path: rootfs/usr/local/etc/docker/init.d/zz-nginx.sh: refactor to new template boilerplate; preserve nginx/onion service logic

README.md
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/03-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh
rootfs/usr/local/etc/docker/init.d/09-unbound.sh
rootfs/usr/local/etc/docker/init.d/98-privoxy.sh
rootfs/usr/local/etc/docker/init.d/zz-nginx.sh
2026-05-26 17:35:40 -04:00
jason fddaa7d0ee 🗃️ 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/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/03-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh
rootfs/usr/local/etc/docker/init.d/09-unbound.sh
rootfs/usr/local/etc/docker/init.d/98-privoxy.sh
rootfs/usr/local/etc/docker/init.d/zz-nginx.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:13:19 -04:00
jason a61e3491ab 🔧 Update configuration files 🔧
.gitignore
rootfs/usr/local/bin/tor-bandwidth
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/03-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/04-tor-exit.sh
2025-11-23 08:38:05 -05:00
jason 2142a2990b 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/01-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/03-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/03-tor-server.sh
rootfs/usr/local/etc/docker/init.d/98-php.sh
rootfs/usr/local/etc/docker/init.d/98-privoxy.sh
rootfs/usr/local/etc/docker/init.d/99-php.sh
rootfs/usr/local/etc/docker/init.d/99-privoxy.sh
2025-01-09 00:42:55 -05:00
jason 4b586fb7ee 🗃️ Committing everything that changed 🗃️
01-tor-server.sh
2025-01-08 22:32:04 -05:00
jason 2c91e3116c 🗃️ Committing everything that changed 🗃️
rootfs/tmp/unbound/
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/09-unbound.sh
2025-01-08 22:11:02 -05:00
jason 05385ea4ba 🗃️ Committing everything that changed 🗃️
Dockerfile
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
2025-01-08 21:20:56 -05:00
jason 783f173f96 🗃️ Committing everything that changed 🗃️
rootfs/root/docker/setup/05-custom.sh
rootfs/tmp/etc/tor/torrc
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/03-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/04-tor-hidden.sh
2025-01-06 15:55:39 -05:00
jason 0fd0a45c36 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/tor/bridge.conf
rootfs/tmp/etc/tor/hidden.conf
rootfs/tmp/etc/tor/relay.conf
rootfs/tmp/etc/tor/server.conf
rootfs/tmp/etc/tor/torrc
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/03-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/04-tor-hidden.sh
2025-01-06 15:17:34 -05:00
jason 1e19b4d586 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/02-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/03-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/04-tor-hidden.sh
2025-01-06 15:04:47 -05:00
jason c0baa184a1 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/tor/bridge.conf
rootfs/tmp/etc/tor/hidden.conf
rootfs/tmp/etc/tor/relay.conf
rootfs/tmp/etc/tor/server.conf
rootfs/tmp/etc/tor/torrc
rootfs/usr/local/etc/docker/init.d/01-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/01-tor-hidden.sh
rootfs/usr/local/etc/docker/init.d/01-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/03-privoxy.sh
2025-01-06 14:32:40 -05:00
jason 00bce5b3a1 🗃️ Committing everything that changed 🗃️
rootfs/root/docker/setup/05-custom.sh
rootfs/usr/local/etc/docker/init.d/01-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/01-tor-hidden.sh
rootfs/usr/local/etc/docker/init.d/01-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
2025-01-06 14:02:40 -05:00
jason daf36c026f 🗃️ Committing everything that changed 🗃️
rootfs/tmp/etc/tor/torrc
rootfs/usr/local/etc/docker/init.d/01-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/01-tor-hidden.sh
rootfs/usr/local/etc/docker/init.d/01-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
2025-01-06 13:58:01 -05:00
jason f1472ec2a2 🗃️ Committing everything that changed 🗃️
rootfs/root/docker/setup/02-packages.sh
rootfs/root/docker/setup/05-custom.sh
rootfs/tmp/etc/tor/torrc
rootfs/usr/local/etc/docker/init.d/01-tor-bridge.sh
rootfs/usr/local/etc/docker/init.d/01-tor-hidden.sh
rootfs/usr/local/etc/docker/init.d/01-tor-relay.sh
rootfs/usr/local/etc/docker/init.d/01-tor-server.sh
rootfs/usr/local/etc/docker/init.d/01-tor.sh
2025-01-06 13:48:49 -05:00