#!/usr/bin/env bash # Auto-deploy path run by .forgejo/workflows/deploy-site.yml inside the # self-hosted runner — which is forge-runner-01, the actual web server. # Same effect as deploy.sh but without the SSH hop: everything is local. # # Requires `rsync` and `hugo` on PATH. The workflow apk-installs both # before invoking this script. set -euo pipefail HERE="$(cd "$(dirname "$0")" && pwd)" SRCROOT="${FURTKA_SRCROOT:-/srv/furtka-site}" WEBROOT="${FURTKA_WEBROOT:-/var/www/furtka.org}" echo "==> rsync website/ → $SRCROOT" rsync -az --delete \ --exclude='.hugo_build.lock' \ --exclude='public/' \ --exclude='resources/' \ --exclude='deploy.sh' \ --exclude='deploy-ci.sh' \ "$HERE/" "$SRCROOT/" echo "==> hugo build → $WEBROOT" cd "$SRCROOT" hugo --minify --cleanDestinationDir -d "$WEBROOT" # The runner job runs as root inside the container; hand the trees back # to the VM user so the manual deploy.sh path keeps working afterwards. if [ "$(id -u)" = 0 ]; then chown -R "${FURTKA_OWNER:-1000:1000}" "$SRCROOT" "$WEBROOT" fi echo "OK: deployed to https://furtka.org/"