Files
git/Taskfile.yml
M.V. Hutz 4cb6eaf091 feat: add Gitea Actions runner on private compute
Adds a private runner server on the Hetzner private network with NAT
through the gitea server for outbound internet access. Includes
Terraform resources, Ansible playbooks, and iptables forwarding rules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 21:40:08 -04:00

36 lines
1.5 KiB
YAML

version: 3
tasks:
dev:
- docker compose down
- docker volume prune -f
- docker compose up --build --force-recreate
vault: ansible-vault edit vault.yml {{.CLI_ARGS}}
provision: ansible-playbook playbooks/provision.yml {{.CLI_ARGS}}
deploy: ansible-playbook playbooks/deploy.yml {{.CLI_ARGS}}
destroy: ansible-playbook playbooks/destroy.yml {{.CLI_ARGS}}
restore: ansible-playbook playbooks/restore.yml {{.CLI_ARGS}}
runner: ansible-playbook playbooks/runner.yml {{.CLI_ARGS}}
assets:
- cp ./assets/icon.png ./gitea/custom/public/assets/img/logo.png
- cp ./assets/icon.svg ./gitea/custom/public/assets/img/logo.svg
- cp ./assets/logo.png ./gitea/custom/public/assets/img/favicon.png
- cp ./assets/logo.svg ./gitea/custom/public/assets/img/favicon.svg
- cp ./assets/logo.png ./gitea/custom/public/assets/img/apple-touch-icon.png
enter:
cmd: ssh -i {{.KEY}} -p 2222 root@{{.IP}}
vars:
KEY: { sh: ansible-vault view vault.yml | yq -r ".secret.private_ssh_key_path" }
IP: { sh: cat dist/terraform_outputs.yml | jq -r ".server_ip.value" }
enter-runner:
cmd: ssh -i {{.KEY}} -o ProxyCommand="ssh -i {{.KEY}} -p 2222 -W %h:%p root@{{.IP}}" root@{{.RUNNER_IP}}
vars:
KEY: { sh: ansible-vault view vault.yml | yq -r ".secret.private_ssh_key_path" }
IP: { sh: cat dist/terraform_outputs.yml | jq -r ".server_ip.value" }
RUNNER_IP: { sh: cat dist/terraform_outputs.yml | jq -r ".runner_ip.value" }