Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 256c8ffdec | |||
| 918ff02216 | |||
| 9c0efcd89b |
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(cd Y:/Tools && docker compose -f docker-compose.dev.yml up -d --build 2>&1 | tail -30)",
|
||||||
|
"Bash(git add *)",
|
||||||
|
"Bash(git commit -m ' *)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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/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 }}
|
||||||
@@ -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/Nirdoan/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/Nirdoan/tools-app:v0.9.0
|
||||||
|
```
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
services:
|
||||||
|
tools-app:
|
||||||
|
image: git.nirodan.de/Nirdoan/tools-app:latest
|
||||||
|
container_name: tools-app
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
networks:
|
||||||
|
- tools-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
tools-net:
|
||||||
|
driver: bridge
|
||||||
Reference in New Issue
Block a user