24 Commits

Author SHA1 Message Date
S
b799cb7970 feat: add phases 10-11, enhance phase 8 direct-check mode, and update Caddy migration
- Phase 10: local repo cutover (rename origin→github, add Gitea remote, push branches/tags)
- Phase 11: custom runner infrastructure with toolchain-based naming
  (go-node-runner, jvm-android-runner) and repo variables via Gitea API
- Add container_options support to manage_runner.sh for KVM passthrough
- Phase 8: add --allow-direct-checks flag for LAN/split-DNS staging
- Phase 7.5: add Cloudflare TLS block, retry logic for probes, multi-upstream support
- Add toggle_dns.sh helper and update orchestration scripts for phases 10-11

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 14:14:11 -06:00
S
eb27f3ae5e fix: correct migration configuration for local networks 2026-03-02 21:07:11 -05:00
S
2b7428e430 fix: add DNS and mirror hosts configuration for Unraid support 2026-03-02 21:06:28 -05:00
S
6716cb5ba8 fix: add migrations section to app.ini.tpl for local network allowance 2026-03-02 19:12:44 -05:00
S
891ce9f2b6 fix: update docker-compose template to include internal network configuration for gitea 2026-03-02 12:03:12 -05:00
S
36886ef1a0 fix: update database host configuration to use a consistent format 2026-03-02 12:02:52 -05:00
S
e6ee303f8a fix: disable SSH server startup in app.ini.tpl 2026-03-02 11:01:13 -05:00
S
82b6a9de95 fix: update Docker Compose template to include Gitea network name variable 2026-03-02 10:39:31 -05:00
S
5582656be0 fix: update Caddy Docker Compose template to use variable for Gitea network name 2026-03-02 10:39:20 -05:00
S
01f11df417 fix: wire CADDY_DOMAIN into Caddyfile template for wildcard cert
CADDY_DOMAIN was required/validated/prompted but never used — the
Caddyfile only referenced GITEA_DOMAIN, producing a single-domain
cert. Now the template uses *.CADDY_DOMAIN as the site address
(wildcard cert) with a host matcher routing GITEA_DOMAIN to Gitea.
This means the cert covers all subdomains under the base domain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 12:18:53 -05:00
S
f46773a264 chore: remove obsolete nginx-gitea.conf.tpl (replaced by Caddyfile.tpl)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:33:44 -05:00
S
744c70b534 feat: add docker-compose-caddy template
Caddy reverse proxy container using slothcroissant/caddy-cloudflaredns
image for DNS-01 TLS. Joins the macvlan gitea_net network with a
static IP. CADDY_ENV_VARS and CADDY_EXTRA_VOLUMES are populated by
phase8 based on TLS_MODE (cloudflare vs existing cert paths).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:27:13 -05:00
S
0555c8d8e9 feat: add Caddyfile template for reverse proxy
Template uses TLS_BLOCK placeholder that phase8 populates based on
TLS_MODE: cloudflare (DNS-01 wildcard via Cloudflare API) or
existing (manual cert/key paths). Reverse proxies to Gitea container
on its macvlan IP.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:26:53 -05:00
S
54eab1bf89 feat: switch docker-compose template from port mapping to macvlan
Remove ports: section (no more host port mapping). Add networks:
with static ipv4_address for gitea and db containers. Reference
external gitea_net network (macvlan created by phase scripts).
Add DB_CONTAINER_IP for database service networking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:22:02 -05:00
S
35aeb504c4 feat: add DB service block to docker-compose-gitea template
Add DB_SERVICE_START/END markers for the database container and
DB_DEPENDS_START/END for the gitea service depends_on. Phase scripts
strip these blocks for sqlite3 and populate DB-specific vars
(image, env, healthcheck, data dir) for mysql/postgres/mssql.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:16:37 -05:00
S
5be95ff98a feat: add conditional SQLITE/EXTDB blocks to app.ini template
Phase scripts strip the irrelevant block after render_template:
sqlite3 removes EXTDB_BLOCK, external DBs remove SQLITE_BLOCK.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:16:05 -05:00
S
dec895ca46 docs: update comments in plist template to clarify boot options and variables 2026-03-01 08:24:42 -05:00
S
dd0014b335 fix: update PATH in Gitea Actions runner plist template for compatibility 2026-03-01 08:17:21 -05:00
S
d74e40d596 feat: add newsyslog configuration template for Gitea Actions runner 2026-03-01 08:17:14 -05:00
S
e9940b75ee feat: enhance Docker Compose template with healthcheck and improved comments 2026-03-01 08:17:08 -05:00
S
cf72f9cd9f fix: enhance comments for clarity in Docker Compose runner template 2026-03-01 08:17:04 -05:00
S
c2a9ab1506 fix: update comments for clarity in runner configuration template 2026-03-01 08:16:57 -05:00
S
f4a6b04d14 feat: rework runner config to INI format with full field support
Replace pipe-delimited runners.conf with INI-style sections supporting
host resolution, container images, repo-scoped tokens, resource limits,
capacity, and SSH key passthrough. All defaults pulled from .env.

- Add INI parsing helpers (ini_list_sections, ini_get, ini_set) to common.sh
- Add SSH key support (UNRAID_SSH_KEY, FEDORA_SSH_KEY) to ssh_exec/scp_to
- Add .env vars: RUNNER_DEFAULT_IMAGE, RUNNER_DEFAULT_CAPACITY,
  RUNNER_DEFAULT_DATA_PATH, LOCAL_RUNNER_DATA_PATH, LOCAL_REGISTRY
- Rewrite manage_runner.sh with host/image/token resolution and resource limits
- Rewrite configure_runners.sh wizard for INI format with all 9 fields
- Update phase3 scripts to use ini_list_sections instead of pipe parsing
- Add runners.conf INI validation to preflight.sh (check 5b)
- Update templates to use resolved labels, capacity, and deploy resources

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 23:14:46 -05:00
S
6b0e4de464 feat: add configuration templates
- docker-compose-gitea.yml.tpl: Gitea + SQLite container
- app.ini.tpl: Gitea config (INSTALL_LOCK, Actions enabled, no registration)
- docker-compose-runner.yml.tpl: act_runner Docker container (Linux)
- runner-config.yaml.tpl: act_runner config (capacity=1, timeout=3h)
- com.gitea.runner.plist.tpl: macOS launchd service for native runner
- nginx-gitea.conf.tpl: Nginx reverse proxy with SSL/WebSocket support
- workflows/security-scan.yml.tpl: Semgrep + Trivy + Gitleaks workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:03:54 -06:00