diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md new file mode 100644 index 0000000..cb84481 --- /dev/null +++ b/DEPLOYMENT.md @@ -0,0 +1,42 @@ +# Deployment + +Dieses Repository ist fuer Auto-Deployment von `main` auf die Synology-Testumgebung vorbereitet. + +## Ziel + +- Repo-Pfad auf Synology: `/volume2/webssd/fabiennefoehn` +- Webroot auf Synology: `/volume2/webssd/fabiennefoehn` +- Branch: `main` +- Repo-Owner: `admin_hz2` +- Webserver-User: `http` + +## Dateien + +- `deploy-staging.sh`: wird serverseitig per Webhook ausgefuehrt +- `deploy.php`: Gitea-Webhook-Endpunkt im Webroot + +## Gitea Webhook + +- URL: `https://fabienne.imhochrain.ch/deploy.php` +- Content Type: `application/json` +- Secret: in DSM/Apache als `GITEA_WEBHOOK_SECRET` setzen +- Event: `Push Events` +- Branch-Filter: `main` + +## Synology sudoers + +Datei in `/etc/sudoers.d/fabiennefoehn`: + +```sudoers +http ALL=(admin_hz2) NOPASSWD: /bin/bash /volume2/webssd/fabiennefoehn/deploy-staging.sh +``` + +## Apache / Web Station + +Der Webserver muss die Umgebungsvariable setzen: + +```apache +SetEnv GITEA_WEBHOOK_SECRET "nsR7MKmnsHeKpuMUj6baP8CVsjAvo5GmRrPwaTbtswswNiyN7gPu8Wfq1IJn" +``` + +Danach Webserver neu laden. diff --git a/deploy-staging.sh b/deploy-staging.sh new file mode 100755 index 0000000..b18c260 --- /dev/null +++ b/deploy-staging.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -euo pipefail +umask 022 + +ROOT="/volume2/webssd/fabiennefoehn" +LOG="$ROOT/deploy.log" +BRANCH="main" + +cd "$ROOT" || exit 1 + +{ + echo "----- $(date) -----" + whoami + echo "PATH=$PATH" + echo "Deploying branch: $BRANCH" +} >> "$LOG" + +/usr/bin/git fetch origin >> "$LOG" 2>&1 +/usr/bin/git reset --hard "origin/$BRANCH" >> "$LOG" 2>&1 + +echo "DONE" >> "$LOG" diff --git a/deploy.php b/deploy.php new file mode 100644 index 0000000..c2fbb8c --- /dev/null +++ b/deploy.php @@ -0,0 +1,55 @@ + /dev/null 2>&1 &'); +echo 'Deploy triggered';