From c95738d0a00e72475ce0c61db7de98469d506f67 Mon Sep 17 00:00:00 2001 From: Nirodan Date: Fri, 22 May 2026 09:17:38 +0200 Subject: [PATCH] Migrate CI/CD from Gitea Registry to Docker Hub, remove Watchtower - Switch runner to self-hosted - Docker login and image paths now target docker.io / DEINUSERNAME - Replace Watchtower with Unraid built-in container update - Add section for external users pulling the public image - Update .gitignore to exclude .claude/ Co-Authored-By: Claude Sonnet 4.6 --- .gitea/workflows/deploy.yaml | 14 ++++----- .gitignore | 1 + DEPLOY.md | 60 ++++++++++++++++++++---------------- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 6df952b..125d18d 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -6,19 +6,19 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - name: Checkout uses: actions/checkout@v4 - - name: Login to Gitea Registry + - name: Login to Docker Hub run: | - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.nirodan.de \ + echo "${{ secrets.REGISTRY_TOKEN }}" | docker login docker.io \ -u ${{ secrets.REGISTRY_USER }} --password-stdin - name: Build & Push latest + version tag run: | - docker build -t git.nirodan.de/nirdoan/tools-app:latest . - docker build -t git.nirodan.de/nirdoan/tools-app:${{ gitea.ref_name }} . - docker push git.nirodan.de/nirdoan/tools-app:latest - docker push git.nirodan.de/nirdoan/tools-app:${{ gitea.ref_name }} + docker build -t DEINUSERNAME/tools-app:latest . + docker build -t DEINUSERNAME/tools-app:${{ gitea.ref_name }} . + docker push DEINUSERNAME/tools-app:latest + docker push DEINUSERNAME/tools-app:${{ gitea.ref_name }} diff --git a/.gitignore b/.gitignore index 75da918..8a3c4e4 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ Thumbs.db *.sublime-project *.sublime-workspace logs/Screenshot 2026-01-22 151541.png +.claude/* diff --git a/DEPLOY.md b/DEPLOY.md index a7f031f..155360d 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -2,16 +2,15 @@ ## Voraussetzungen auf Unraid - Docker installiert -- Gitea Act Runner läuft als Container -- Watchtower läuft als Container +- 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 Gitea Benutzername -- `REGISTRY_TOKEN` – ein Gitea Access Token mit `packages` Berechtigung - (Gitea → Einstellungen → Applications → Token erstellen) +- `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. @@ -31,35 +30,29 @@ docker run -d \ gitea/act_runner:latest ``` -### 4. Watchtower auf Unraid starten -Einmalig in der Registry einloggen damit Credentials gespeichert werden: +### 4. App Container auf Unraid starten +Einmalig in Docker Hub einloggen damit Credentials gespeichert werden: ```bash -docker login git.nirodan.de +docker login docker.io ``` -Watchtower starten: -```bash -docker run -d \ - --name watchtower \ - --restart always \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v /root/.docker/config.json:/config.json \ - containrrr/watchtower \ - --interval 300 \ - --cleanup \ - tools-app -``` - -### 5. App Container auf Unraid starten +Container starten: ```bash docker run -d \ --name tools-app \ --restart unless-stopped \ -p 5000:5000 \ --env-file .env \ - git.nirodan.de/Nirdoan/tools-app:latest + 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 @@ -71,8 +64,8 @@ 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. -Watchtower erkennt das neue Image innerhalb von 5 Minuten und startet den Container neu. +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 @@ -84,5 +77,20 @@ docker run -d \ --restart unless-stopped \ -p 5000:5000 \ --env-file .env \ - git.nirodan.de/Nirdoan/tools-app:v0.9.0 + 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 ```