ci: Forgejo Actions CD — build + deploy the Zola sites #2

Open
erwin wants to merge 1 commit from erwin/sites-cd into main
First-time contributor

Forgejo Actions CD for the static sites: on merge to main, build every Zola site and rsync public/ to /var/www/<domain> on the gateway (same destination as the Ansible landing_page role), then restorecon. So a content change — text, the handwriting-font swap — redeploys itself.

  • Reaches the gateway via the edge VPS over WireGuard, so it works on or off the home LAN (mirrors the inventory default).
  • Photos are out of scope — they live in the Garage familie-photos bucket, served same-origin under /photos/, so they need no rebuild.

Before it runs

  • A self-hosted runner with rsync/curl/tar.
  • SSH_PRIVATE_KEY Actions secret (the gierz_ed25519 deploy key).
  • Passwordless sudo on the gateway for restorecon (already configured).

@erwin

🤖 Generated with Claude Code

Forgejo Actions CD for the static sites: on merge to `main`, build every Zola site and rsync `public/` to `/var/www/<domain>` on the gateway (same destination as the Ansible `landing_page` role), then `restorecon`. So a content change — text, the handwriting-font swap — redeploys itself. - Reaches the gateway via the **edge VPS over WireGuard**, so it works on or off the home LAN (mirrors the inventory default). - **Photos are out of scope** — they live in the Garage `familie-photos` bucket, served same-origin under `/photos/`, so they need no rebuild. ### Before it runs - A `self-hosted` runner with `rsync`/`curl`/`tar`. - `SSH_PRIVATE_KEY` Actions secret (the `gierz_ed25519` deploy key). - Passwordless sudo on the gateway for `restorecon` (already configured). — @erwin 🤖 Generated with [Claude Code](https://claude.com/claude-code)
On merge to main, build every Zola site and rsync its public/ to
/var/www/<domain> on the gateway (same destination as the Ansible
landing_page role), then restorecon for SELinux. Reaches the gateway
through the edge VPS over WireGuard, so it works on or off the home LAN.

Covers site content (text, the handwriting-font swap, etc.). Photos are
separate — they live in the Garage familie-photos bucket, served
same-origin under /photos/, so they need no rebuild.

Needs a self-hosted runner (rsync/curl/tar) and an SSH_PRIVATE_KEY secret.

Co-Authored-By: LLM <noreply@invalid>
Claude-Session: https://claude.ai/code/session_015vW3t1ZgQvRCoKXQ5APTeP
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin erwin/sites-cd:erwin/sites-cd
git switch erwin/sites-cd

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff erwin/sites-cd
git switch erwin/sites-cd
git rebase main
git switch main
git merge --ff-only erwin/sites-cd
git switch erwin/sites-cd
git rebase main
git switch main
git merge --no-ff erwin/sites-cd
git switch main
git merge --squash erwin/sites-cd
git switch main
git merge --ff-only erwin/sites-cd
git switch main
git merge erwin/sites-cd
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
homelab/sites!2
No description provided.