39 Commits

Author SHA1 Message Date
casjay
895520eb77 🐛 Fix runner config filenames, cache-server, and registration log 🐛
Some checks are pending
gitea / release-gitea (push) Waiting to run
Three more bugs found during full component verification:
1. RUNNER_CONFIG_DEFAULT pointed to config.yaml but the actual
template filename is default_config.yaml — gitea named runner
never registered because the file-existence check always failed.
2. CACHE_CONFIG_FILE pointed to cache.yaml but the actual template
filename is cache_server.yaml — cache-server launch always
skipped silently.
3. act_runner v1.0.6 requires cache.external_secret on both the
cache-server and any runner using external_server; neither config
had it, so cache-server exited immediately and runner registration
failed when external_server was present in default_config.yaml.
4. Registration log redirect was 2>/dev/stdout >>"$log" (stderr went
to original stdout, not the log); corrected to >>"$log" 2>&1.
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh:
- RUNNER_CONFIG_DEFAULT: config.yaml → default_config.yaml
- CACHE_CONFIG_FILE: cache.yaml → cache_server.yaml
- fix registration log redirect: >>"$RUNNER_LOG_FILE" 2>&1
- rootfs/tmp/etc/act_runner/default_config.yaml: remove
external_server (no shared secret configured; each runner uses
its own internal cache)
- rootfs/tmp/etc/act_runner/cache_server.yaml: set enabled: false
(cache-server requires external_secret; disabled until a proper
shared-secret setup is added)
Verified: 6 daemons on fresh start (1 gitea named + 5 runners), all
with 22 labels; clean reconnect on restart with no re-registration.

rootfs/tmp/etc/act_runner/cache_server.yaml
rootfs/tmp/etc/act_runner/default_config.yaml
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2026-05-24 15:16:16 -04:00
casjay
e8021e29e2 🐛 Fix act_runner token generation and gitea auto-install 🐛
Runner registration was broken by three compounding bugs:
1. Token generated at script init time (before gitea was ready)
2. gitea CLI missing --work-path/--custom-path flags, writing fatal
log messages to stdout which got captured as the token value
3. Token assignment inside a piped subshell didn't propagate back
to the parent shell, leaving SYS_AUTH_TOKEN empty at runtime
4. INSTALL_LOCK=false in app.ini template caused gitea to start in
install-wizard mode, making generate-runner-token always fail
- rootfs/tmp/etc/gitea/app.ini: set INSTALL_LOCK=true so gitea
auto-initializes the SQLite DB on first run
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh:
- defer SYS_AUTH_TOKEN: initialize to empty at global scope,
generate in __run_pre_execute_checks after gitea is confirmed up
- add --work-path/--custom-path to gitea CLI call; filter output
with grep -oE '[A-Za-z0-9]{20,}' to extract only the token
- guard token generation on INSTALL_LOCK=true in app.ini
- read token back from $CONF_DIR/tokens/system after the piped
__run_pre_execute_checks call returns (subshell escape)
Tested: fresh start registers all 5 runners with full 22-label set;
restart skips re-registration and reconnects all 5 daemons cleanly.

rootfs/tmp/etc/gitea/app.ini
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2026-05-24 14:11:11 -04:00
casjay
3a21cd6091 🐛 Fix generated start script: empty su_exec produces '' command prefix 🐛
When su_exec is empty (service runs as root, no user-switching needed),
printf '%q ' $su_exec expands to the literal string '' which gets embedded
in the generated start script as a command prefix, causing bash to try
executing a program named '' and failing immediately. Also add explicit
PATH and HOME exports to the RESET_ENV=no generated script so services
are not dependent on environment inheritance.
- rootfs/usr/local/etc/docker/init.d/05-dockerd.sh: fix _q_su assignment
in both RESET_ENV branches to use ${su_exec:+...} so it's empty string
(not '') when su_exec is empty; fix format string %s%s (no space between
su and cmd, su already carries trailing space); add PATH and HOME exports
to RESET_ENV=no generated script
- rootfs/usr/local/etc/docker/init.d/08-gitea.sh: same fixes
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh: same fixes

rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2026-05-24 13:00:24 -04:00
casjay
e599f1edc8 🐛 Fix start-runners: wrong --config arg kept all runners permanently offline 🐛
Some checks failed
gitea / release-gitea (push) Has been cancelled
The daemon was called with --config pointing at the .runner registration
state file (JSON), not a YAML config. act_runner rejected it immediately
on every start, so all runners were always offline and never reconnected.
Also fix log truncation and stale fallback labels.
- rootfs/usr/local/bin/start-runners: remove --config from act_runner
daemon invocation (act_runner finds .runner in CWD automatically after
cd "$runner_dir"); fix __log to append (>>) instead of truncate (>);
update fallback RUNNER_LABELS to match the full label set defined in
zz-act_runner.sh

rootfs/usr/local/bin/start-runners
2026-05-24 12:32:25 -04:00
casjay
1f84972d9d 🗑️ Remove scaffolding template 00-server01.sh 🗑️
Was added as a reference artifact during framework migration work
and should not live in the repo.
- rootfs/usr/local/etc/docker/init.d/00-server01.sh: deleted

rootfs/usr/local/etc/docker/init.d/00-server01.sh
2026-05-24 12:24:36 -04:00
casjay
d74ff680d2 🐛 Fix undefined variables and ordering bugs in act_runner init script 🐛
Fix all undefined variable references and logic errors that would
prevent runner registration and daemon startup from working.
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh: fix GITEA_USER
typo (missing $ before SERVICE_USER); define 9 previously undefined
variables: RUNNER_IP_ADDRESS, RUNNER_CONFIG_DEFAULT, RUNNER_DEFAULT_HOME,
RUNNER_CONFIG_NAME, RUNNER_LOG_FILE, RUNNER_DAEMON_LOG, RUNNER_CACHE_HOST,
CACHE_CONFIG_FILE, CACHE_LOG_FILE; swap ctime/waitTime local declarations
so ctime is defined before waitTime uses it; quote act_runner daemon and
cache-server --config paths

rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2026-05-24 12:23:38 -04:00
casjay
4d51cc0e7c 🔧 Sync template framework updates and fix app.ini config 🔧
Bring all init scripts and support files up to the latest docker
template framework, and fully configure gitea's app.ini for a
performant, open, reverse-proxy-aware deployment.
- rootfs/tmp/etc/gitea/app.ini: add missing sections ([server],
[cache], [queue], [git], [git.timeout], [api], [webhook],
[indexer], [session], [oauth2], [metrics], [repository.release]);
raise MAX_RESPONSE_ITEMS=500; set PROTOCOL=http, HTTP_ADDR=0.0.0.0,
USE_PROXY_PROTOCOL=false; INSTALL_LOCK=false; tune DB/session/security
- rootfs/usr/local/bin/entrypoint.sh: direct template sync — new trap
style, SSL_CA fix, ENTRYPOINT_PID_FILE path, mapfile, __netstat call
- rootfs/usr/local/etc/docker/functions/entrypoint.sh: direct template
sync — add __log_debug/info/warn/error; improve __netstat, __mkdir,
__rm, __grep_test (639 changed lines)
- rootfs/usr/local/etc/docker/init.d/00-server01.sh: new generic
template/example init.d service script
- rootfs/usr/local/etc/docker/init.d/05-dockerd.sh: framework update —
__trap_err_handler ERR handler, SIGPWR split, enabled-check expanded,
debug if/else, env loop guard, $(<...) PID read, __check_service guard,
__run_start_script rewrite (printf %q, md5sum hash, bash launcher),
errorCode=${PIPESTATUS[0]}, remove unconditional SERVICE_EXIT_CODE=0,
fix __post_execute fire-and-forget
- rootfs/usr/local/etc/docker/init.d/08-gitea.sh: same framework updates
as 05-dockerd.sh, service-specific content preserved
- rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh: same framework
updates; service-specific __post_execute daemon/cache-server logic kept
- rootfs/root/docker/setup/00-init.sh: version stamp sync
- rootfs/root/docker/setup/01-system.sh: version stamp sync
- rootfs/root/docker/setup/02-packages.sh: version stamp sync
- rootfs/root/docker/setup/03-files.sh: header-only patch, gitea-specific
body preserved
- rootfs/root/docker/setup/04-users.sh: version stamp sync
- rootfs/root/docker/setup/05-custom.sh: header-only patch, gitea/act_runner
binary download logic preserved
- rootfs/root/docker/setup/06-post.sh: version stamp sync
- rootfs/root/docker/setup/07-cleanup.sh: version stamp sync
- rootfs/usr/local/share/template-files/config/env/default.sample:
ENTRYPOINT_PID_FILE path → /run/init.d/entrypoint.pid
- rootfs/usr/local/share/template-files/config/env/examples/zz-entrypoint.sh:
ENTRYPOINT_PID_FILE path → /run/init.d/entrypoint.pid

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/tmp/etc/gitea/app.ini
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/00-server01.sh
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.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-24 12:19:59 -04:00
casjay
4fc5a83354 🗃️ Removed the .claude/settings.local.json 🗃️
Some checks failed
gitea / release-gitea (push) Has been cancelled
Dockerfile
.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:34 -04:00
casjay
8f8cb303f9 🗃️ rootfs: shield internal entrypoint PID files from /run/*.pid sweeps 🗃️
Some checks failed
release-tag / release-image (push) Has been cancelled
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/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.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:44 -04:00
casjay
3c8cdd11fe 🗃️ Update codebase 🗃️
Some checks failed
release-tag / release-image (push) Failing after 1m17s
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:25:31 -05:00
casjay
e8ff6f5b08 🐳 Enhancement: Entrypoint Script Modifications for Docker Containers 🐳
All checks were successful
release-tag / release-image (push) Successful in 18m59s
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-30 16:01:56 -05:00
casjay
b9d56bbcb9 🗃️ Update codebase 🗃️
All checks were successful
release-tag / release-image (push) Successful in 6m43s
rootfs/tmp/etc/docker/daemon.json
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
2025-11-29 16:01:40 -05:00
casjay
63d18bb750 🔧 Update configuration files 🔧
.claude/
Dockerfile
.env.scripts
rootfs/tmp/etc/docker/daemon.json
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
2025-11-29 15:48:20 -05:00
casjay
a46ba76ca9 🗃️ Update codebase 🗃️
All checks were successful
release-tag / release-image (push) Successful in 7m50s
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-11-29 15:21:51 -05:00
casjay
265f823955 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-11-29 14:41:59 -05:00
casjay
ef6d219131 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
2025-11-29 14:30:40 -05:00
casjay
3abf0704ee 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
2025-11-29 13:32:03 -05:00
casjay
244efe5c68 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
2025-11-29 13:21:12 -05:00
casjay
a79ffa1f6a 🗃️ Update codebase 🗃️
README.md
rootfs/tmp/etc/gitea/app.ini
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
2025-11-29 13:12:37 -05:00
casjay
58363fea97 🗃️ Update codebase 🗃️
Some checks failed
release-tag / release-image (push) Failing after 55s
rootfs/usr/local/bin/start-runners
2025-11-29 12:52:00 -05:00
casjay
5d367f60cf 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/start-runners
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-11-29 12:50:30 -05:00
casjay
141582499f 🗃️ Fixed the entrypoint scripts 🗃️
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 12:36:45 -05:00
casjay
9c35d61ac0 ...🗃️ Fixed rootfs/usr/local/bin/entrypoint.sh and rootfs/usr/local/etc...
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 12:24:51 -05:00
casjay
ea11122a85 🗃️ Updated Dockerfile* and .env.scripts* 🗃️
Some checks failed
release-tag / release-image (push) Has been cancelled
rootfs/usr/local/etc/docker/functions/entrypoint.sh
2025-11-29 11:04:18 -05:00
casjay
7d7a4f732a 🗃️ Update codebase 🗃️
rootfs/root/docker/setup/05-custom.sh
rootfs/usr/local/bin/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-11-29 10:27:30 -05:00
casjay
18875e0298 🗃️ Update codebase 🗃️
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
2025-11-29 09:14:55 -05:00
casjay
6380077e3a 🗃️ Update codebase 🗃️
Dockerfile
rootfs/usr/local/bin/entrypoint.sh
2025-11-29 09:04:35 -05:00
casjay
032fdadf8f 🗃️ Update codebase 🗃️
rootfs/usr/local/bin/entrypoint.sh
2025-11-29 08:27:50 -05:00
casjay
b6c12d04c4 🔧 Update configuration files 🔧
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
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.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
2025-11-29 08:04:55 -05:00
casjay
a9294b99d7 🗃️ Committing everything that changed 🗃️
Some checks failed
release-tag / release-image (push) Failing after 20s
rootfs/usr/local/etc/docker/functions/entrypoint.sh
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/08-gitea.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-09-20 06:39:07 -04:00
casjay
de6970eb3b 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/etc/docker/functions/
2025-09-20 05:27:28 -04:00
casjay
ecdb087651 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/start-runners
2025-09-17 20:44:50 -04:00
casjay
d931aff2d1 🗃️ Committing everything that changed 🗃️
All checks were successful
release-tag / release-image (push) Successful in 10m51s
rootfs/usr/local/bin/start-runners
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-09-17 20:03:26 -04:00
casjay
225c9a4438 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/start-runners
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-09-17 19:10:47 -04:00
casjay
ac86c62c64 🗃️ Committing everything that changed 🗃️
Some checks failed
release-tag / release-image (push) Failing after 11m59s
rootfs/root/docker/setup/06-post.sh
rootfs/usr/local/bin/start-runners
rootfs/usr/local/etc/docker/init.d/05-dockerd.sh
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-09-17 18:55:06 -04:00
casjay
3b5f98ff37 🗃️ Committing everything that changed 🗃️
rootfs/usr/local/bin/start-runners
2025-09-17 18:23:42 -04:00
casjay
d0af1c5f6d 🗃️ Committing everything that changed 🗃️
Some checks failed
release-tag / release-image (push) Has been cancelled
rootfs/usr/local/bin/start-runners
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-09-17 17:40:44 -04:00
casjay
3ab2c3d113 🗃️ Committing everything that changed 🗃️
Some checks failed
release-tag / release-image (push) Has been cancelled
rootfs/usr/local/etc/docker/init.d/zz-act_runner.sh
2025-09-17 00:01:29 -04:00
casjay
fbe18132f8 🦈🏠🐜 Initial Commit 🐜🦈🏠 2025-09-16 23:50:36 -04:00