# Deployment Guide ## Voraussetzungen auf Unraid - Docker installiert - Gitea Act Runner läuft als Container (Label: `self-hosted`) ## Einmalige Einrichtung ### 1. Gitea Secrets setzen Im Repository unter Settings → Secrets folgende Secrets anlegen: - `REGISTRY_USER` – dein Docker Hub Benutzername - `REGISTRY_TOKEN` – ein Docker Hub Access Token (Docker Hub → Account Settings → Security → New Access Token) ### 2. Repository Actions aktivieren Im Repository unter Settings → "Enable Repository Actions" aktivieren. ### 3. Act Runner auf Unraid starten Token holen unter: https://git.nirodan.de/-/admin/actions/runners ```bash docker run -d \ --restart always \ --name gitea-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /mnt/user/appdata/gitea-runner:/data \ -e GITEA_INSTANCE_URL=https://git.nirodan.de/ \ -e GITEA_RUNNER_REGISTRATION_TOKEN=DEIN_TOKEN \ -e GITEA_RUNNER_NAME=unraid-runner \ gitea/act_runner:latest ``` ### 4. App Container auf Unraid starten Einmalig in Docker Hub einloggen damit Credentials gespeichert werden: ```bash docker login docker.io ``` Container starten: ```bash docker run -d \ --name tools-app \ --restart unless-stopped \ -p 5000:5000 \ --env-file .env \ DEINUSERNAME/tools-app:latest ``` ### 5. Auto-Update auf Unraid Unraid hat ein eingebautes Update-Feature – kein Watchtower nötig. **Docker-Tab → Container → Update-Symbol (↓) anklicken** Das zieht automatisch das neueste Image und startet den Container neu. ## Release erstellen = Deployment auslösen ```bash # Tag erstellen und pushen git tag v1.0.0 git push origin v1.0.0 ``` Dann in Gitea: Repository → Releases → "New Release" → Tag auswählen → Publish Der Runner baut automatisch das Image und pusht es auf Docker Hub. Anschließend im Unraid Docker-Tab manuell auf Update klicken. ## Rollback auf alte Version In Unraid den Container stoppen und mit altem Tag neu starten: ```bash docker stop tools-app docker run -d \ --name tools-app \ --restart unless-stopped \ -p 5000:5000 \ --env-file .env \ DEINUSERNAME/tools-app:v0.9.0 ``` ## Nutzung durch andere Das Image ist öffentlich auf Docker Hub verfügbar. Einfach pullen und starten: ```bash docker pull DEINUSERNAME/tools-app:latest docker run -d \ --name tools-app \ --restart unless-stopped \ -p 5000:5000 \ --env-file .env \ DEINUSERNAME/tools-app:latest ```