Add Gitea Actions CI/CD workflow and production deployment files
Build & Deploy / build (release) Has been cancelled

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Nirodan
2026-05-06 14:04:55 +02:00
parent ac31290a87
commit 9c0efcd89b
3 changed files with 127 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
name: Build & Deploy
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Gitea Registry
run: |
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.nirodan.de \
-u ${{ secrets.REGISTRY_USER }} --password-stdin
- name: Build & Push latest + version tag
run: |
docker build -t git.nirodan.de/${{ gitea.repository_owner }}/tools-app:latest .
docker build -t git.nirodan.de/${{ gitea.repository_owner }}/tools-app:${{ gitea.ref_name }} .
docker push git.nirodan.de/${{ gitea.repository_owner }}/tools-app:latest
docker push git.nirodan.de/${{ gitea.repository_owner }}/tools-app:${{ gitea.ref_name }}
+88
View File
@@ -0,0 +1,88 @@
# Deployment Guide
## Voraussetzungen auf Unraid
- Docker installiert
- Gitea Act Runner läuft als Container
- Watchtower läuft als Container
## 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)
### 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. Watchtower auf Unraid starten
Einmalig in der Registry einloggen damit Credentials gespeichert werden:
```bash
docker login git.nirodan.de
```
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
```bash
docker run -d \
--name tools-app \
--restart unless-stopped \
-p 5000:5000 \
--env-file .env \
git.nirodan.de/Nirodan/tools-app:latest
```
## 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.
Watchtower erkennt das neue Image innerhalb von 5 Minuten und startet den Container neu.
## 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 \
git.nirodan.de/Nirodan/tools-app:v0.9.0
```
+15
View File
@@ -0,0 +1,15 @@
services:
tools-app:
image: git.nirodan.de/Nirodan/tools-app:latest
container_name: tools-app
restart: unless-stopped
ports:
- "5000:5000"
env_file:
- .env
networks:
- tools-net
networks:
tools-net:
driver: bridge