From 723e2a571aed020e1162189ba1d19a9e3741c657 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 10 Mar 2026 21:56:24 +0100 Subject: [PATCH] feat(webhook): redeploy --- compose/adguardhome/docker-compose.yml | 6 +- compose/caddy/docker-compose.yml | 2 + compose/gitea/docker-compose.yml | 3 +- compose/heimdall/docker-compose.yml | 7 ++- compose/kea/docker-compose.yml | 3 +- compose/newt/docker-compose.yml | 3 +- compose/nextcloud/docker-compose.yml | 41 +++---------- compose/portainer/docker-compose.yml | 3 +- compose/tvheadend/docker-compose.yml | 6 +- compose/vaultwarden/docker-compose.yml | 5 +- compose/vaultwarden_backup/docker-compose.yml | 5 +- compose/webhook/docker-compose.yml | 4 +- compose/wikijs/docker-compose.yml | 2 + docs/workflows/repo-reparieren.md | 4 +- scripts/redeploy-all.sh | 8 --- scripts/redeploy-containers.sh | 60 +++++++++++++++++++ scripts/update-containers.sh | 8 --- scripts/webhook-deploy/deploy-bruchtal.sh | 8 ++- 18 files changed, 100 insertions(+), 78 deletions(-) delete mode 100644 scripts/redeploy-all.sh create mode 100644 scripts/redeploy-containers.sh delete mode 100644 scripts/update-containers.sh diff --git a/compose/adguardhome/docker-compose.yml b/compose/adguardhome/docker-compose.yml index 4d487d7..3ffc5e7 100644 --- a/compose/adguardhome/docker-compose.yml +++ b/compose/adguardhome/docker-compose.yml @@ -1,5 +1,3 @@ - - services: adguardhome: image: adguard/adguardhome:v0.107.69 @@ -9,7 +7,7 @@ services: ports: - 3003:3000 volumes: - - /docker/Daten/adguardhome/work:/opt/adguardhome/work - - /docker/Daten/adguardhome/conf:/opt/adguardhome/conf + - /srv/docker/daten/adguardhome/work:/opt/adguardhome/work + - /srv/docker/daten/adguardhome/conf:/opt/adguardhome/conf environment: TZ: Europe/Berlin diff --git a/compose/caddy/docker-compose.yml b/compose/caddy/docker-compose.yml index f784b83..459a276 100644 --- a/compose/caddy/docker-compose.yml +++ b/compose/caddy/docker-compose.yml @@ -1,3 +1,5 @@ +######### AKTUELL DOWN ########## + services: caddy: image: caddy:latest diff --git a/compose/gitea/docker-compose.yml b/compose/gitea/docker-compose.yml index a022347..48edba9 100644 --- a/compose/gitea/docker-compose.yml +++ b/compose/gitea/docker-compose.yml @@ -10,7 +10,7 @@ services: - gitea - bruchtal-net # 👈 neu für bruchtal-webhook volumes: - - /docker/Daten/gitea/data:/data + - /srv/docker/daten/gitea/data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: @@ -22,4 +22,3 @@ networks: external: false bruchtal-net: # 👈 neu für bruchtal-webhook external: true - ## \ No newline at end of file diff --git a/compose/heimdall/docker-compose.yml b/compose/heimdall/docker-compose.yml index f0400d9..6446d78 100644 --- a/compose/heimdall/docker-compose.yml +++ b/compose/heimdall/docker-compose.yml @@ -3,13 +3,14 @@ services: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall2 environment: - - PUID=1000 - - PGID=1000 + - PUID=1001 + - PGID=1001 - TZ=Europe/Berlin volumes: - - /docker/Daten/heimdall/config:/config + - /srv/docker/daten/heimdall/config:/config ports: - 1280:80 - 12443:443 restart: unless-stopped + diff --git a/compose/kea/docker-compose.yml b/compose/kea/docker-compose.yml index 9a0ad1a..cde0c4f 100644 --- a/compose/kea/docker-compose.yml +++ b/compose/kea/docker-compose.yml @@ -1,5 +1,4 @@ -version: "3.8" - +######### AKTUELL DOWN ########## services: kea-dhcp4: image: serhiymakarenko/isc-kea-dhcp4-server:latest diff --git a/compose/newt/docker-compose.yml b/compose/newt/docker-compose.yml index f017c29..d2e2ff1 100644 --- a/compose/newt/docker-compose.yml +++ b/compose/newt/docker-compose.yml @@ -1,9 +1,8 @@ -version: "3" services: newt: command: - newt - container_name: newt2 + container_name: newt entrypoint: - /entrypoint.sh environment: diff --git a/compose/nextcloud/docker-compose.yml b/compose/nextcloud/docker-compose.yml index 5e9f987..0c1016c 100644 --- a/compose/nextcloud/docker-compose.yml +++ b/compose/nextcloud/docker-compose.yml @@ -1,45 +1,24 @@ -version: '3.7' - services: db: image: mariadb:latest container_name: nextcloud-db volumes: - #- /home/christian/docker/nextcloud/nextcloud-db-data:/var/lib/mysql - # - /docker/Daten/nextcloud/db:/var/lib/mysql - - ../../../Daten/nextcloud/db:/var/lib/mysql - #/docker/Bruchtal/docker/nextcloud - + - /srv/docker/daten/nextcloud/db:/var/lib/mysql networks: - default restart: always environment: TZ: europe/berlin - #MYSQL_ROOT_PASSWORD: zazen17 - #MYSQL_DATABASE: db - #MYSQL_USER: dbuser - #MYSQL_PASSWORD: zazen17 MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} - - -# redis: -# image: redis:latest -# restart: always -# networks: -# - default -# volumes: -# - redis:/var/lib/redis redis: image: redis:latest container_name: nextcloud-redis restart: always volumes: - # - /docker/Daten/nextcloud/redis:/data - - ../../../Daten/nextcloud/redis:/data - + - /srv/docker/daten/nextcloud/redis:/data nextcloud: depends_on: @@ -48,35 +27,29 @@ services: image: nextcloud container_name: nextcloud volumes: - # - /home/christian/docker/nextcloud/nextcloud-www:/var/www/html - # - /docker/Daten/nextcloud/www:/var/www/html - - ../../../Daten/nextcloud/www:/var/www/html - + - /srv/docker/daten/nextcloud/www:/var/www/html networks: - proxy - default ports: - 1180:80 - 1444:443 - restart: always environment: REDIS_HOST: redis MYSQL_HOST: db:3306 - #MYSQL_DATABASE: db - #MYSQL_USER: dbuser - #MYSQL_PASSWORD: zazen17 MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} - + PUID: "1001" + PGID: "1001" networks: proxy: - #external: true volumes: nextcloud-db-data: name: nextcloud-db-data redis: - name: nextcloud-redis \ No newline at end of file + name: nextcloud-redis + diff --git a/compose/portainer/docker-compose.yml b/compose/portainer/docker-compose.yml index 1f79bd3..7b5b512 100644 --- a/compose/portainer/docker-compose.yml +++ b/compose/portainer/docker-compose.yml @@ -7,7 +7,6 @@ services: - "9000:9000" # Webinterface - "9443:9443" volumes: - - /docker/Daten/portainer-data:/data:rw # Portainer-Daten (DB + Key) + - /srv/docker/daten/portainer-data:/data:rw # Portainer-Daten (DB + Key) - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - diff --git a/compose/tvheadend/docker-compose.yml b/compose/tvheadend/docker-compose.yml index 2c3f310..4191d94 100644 --- a/compose/tvheadend/docker-compose.yml +++ b/compose/tvheadend/docker-compose.yml @@ -10,7 +10,7 @@ services: - TZ=Europe/Berlin volumes: - - /docker/Daten/tvheadend/config:/config - - /docker/Daten/tvheadend/recordings:/recordings + - /srv/docker/daten/tvheadend/config:/config + - /srv/docker/daten/tvheadend/recordings:/recordings - restart: unless-stopped \ No newline at end of file + restart: unless-stopped diff --git a/compose/vaultwarden/docker-compose.yml b/compose/vaultwarden/docker-compose.yml index f9d76f8..dad7182 100644 --- a/compose/vaultwarden/docker-compose.yml +++ b/compose/vaultwarden/docker-compose.yml @@ -1,12 +1,10 @@ -version: '3.7' - services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden4 restart: always volumes: - - /docker/Daten/vaultwarden/bw-data:/data + - /srv/docker/daten/vaultwarden/bw-data:/data environment: - ADMIN_TOKEN=${VAULTWARDEN_ADMIN_TOKEN} @@ -14,3 +12,4 @@ services: ports: - 1380:80 + diff --git a/compose/vaultwarden_backup/docker-compose.yml b/compose/vaultwarden_backup/docker-compose.yml index 62ce037..e04ce20 100644 --- a/compose/vaultwarden_backup/docker-compose.yml +++ b/compose/vaultwarden_backup/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3.8" services: vaultwarden_backup: image: bruceforce/vaultwarden-backup @@ -6,7 +5,7 @@ services: restart: unless-stopped init: true volumes: - - /docker/Daten/vaultwarden/bw-data:/data/ + - /srv/docker/daten/vaultwarden/bw-data:/data/ - /mnt/vaultwardenBackupOnQnap:/backups/ - /mnt/vaultwardenBackupOnQnap/logs:/logs/ environment: @@ -22,4 +21,4 @@ services: - BACKUP_ADD_ICON_CACHE=true - BACKUP_ADD_RSA_KEY=true - LOG_LEVEL=INFO - - TZ= Europe/Berlin \ No newline at end of file + - TZ= Europe/Berlin diff --git a/compose/webhook/docker-compose.yml b/compose/webhook/docker-compose.yml index da9e64f..45fa792 100644 --- a/compose/webhook/docker-compose.yml +++ b/compose/webhook/docker-compose.yml @@ -6,8 +6,8 @@ services: ports: - "9001:9001" volumes: - - /docker/Bruchtal:/workspace - - /docker/Bruchtal/scripts/webhook-deploy/hooks.json:/hooks/hooks.json:ro + - /srv/docker:/workspace + - /srv/docker/scripts/webhook-deploy/hooks.json:/hooks/hooks.json:ro - /var/run/docker.sock:/var/run/docker.sock - /root/.ssh:/root/.ssh:ro command: ["-hooks", "/hooks/hooks.json", "-verbose", "-port", "9001", "-ip", "0.0.0.0"] diff --git a/compose/wikijs/docker-compose.yml b/compose/wikijs/docker-compose.yml index 8f0d169..5eb4f11 100644 --- a/compose/wikijs/docker-compose.yml +++ b/compose/wikijs/docker-compose.yml @@ -1,3 +1,5 @@ +######### AKTUELL DOWN ########## + services: wikijs: image: linuxserver/wikijs:2.5.312 diff --git a/docs/workflows/repo-reparieren.md b/docs/workflows/repo-reparieren.md index 5d1f874..d4aeb34 100644 --- a/docs/workflows/repo-reparieren.md +++ b/docs/workflows/repo-reparieren.md @@ -1,6 +1,7 @@ # Reparieren des Gitea-Repos ## Ausgangslage: aus Versehen Datei auf Vm editier anstatt in VS Code Problem: das Repo ist auseiander gelaufen. + ## Voraussetzung: docker/gitea muss laufen @@ -13,7 +14,8 @@ git push origin main --force auf der VM: ``` snippet -cd /docker/Bruchtal +cd /srv/docker + git fetch origin git reset --hard origin/main diff --git a/scripts/redeploy-all.sh b/scripts/redeploy-all.sh deleted file mode 100644 index bbdda23..0000000 --- a/scripts/redeploy-all.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -cd /docker/Bruchtal/compose - -for d in */; do - echo "Deploying $d" - (cd "$d" && docker compose up -d) -done \ No newline at end of file diff --git a/scripts/redeploy-containers.sh b/scripts/redeploy-containers.sh new file mode 100644 index 0000000..76192d4 --- /dev/null +++ b/scripts/redeploy-containers.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Auto-update Docker-Compose stacks nach Git-Pull +# Läuft als dockeradmin, prüft geänderte Compose-Dateien +# Stillgelegte Container werden ignoriert + +REPO_DIR="/srv/docker" +LOGFILE="/var/log/docker-update.log" + +INACTIVE_CONTAINERS=("adguard" "kea" "caddy" "wikijs") + +log() { + echo "$(date '+%Y-%m-%d %H:%M:%S') | $*" | tee -a "$LOGFILE" +} + +log "===== Starting Auto-Update (changed Compose only) =====" + +cd "$REPO_DIR" || { log "ERROR: Cannot enter $REPO_DIR"; exit 1; } + +# 1️⃣ Pull neueste Änderungen +git fetch --all &>/dev/null +git reset --hard origin/main &>/dev/null +log "Pulled latest changes from Git." + +# 2️⃣ Geänderte Compose-Dateien ermitteln +CHANGED=$(git diff --name-only HEAD~1 HEAD | grep -E '^compose/.+/docker-compose\.yml$' || true) + +if [ -z "$CHANGED" ]; then + log "No Compose files changed. Nothing to update." + exit 0 +fi + +# 3️⃣ Nur geänderte Container updaten +for FILE in $CHANGED; do + CONTAINER_NAME=$(echo "$FILE" | cut -d'/' -f2) + + # Inaktive Container überspringen + if [[ " ${INACTIVE_CONTAINERS[@]} " =~ " ${CONTAINER_NAME} " ]]; then + log "Skipping inactive container: $CONTAINER_NAME" + continue + fi + + COMPOSE_DIR="$REPO_DIR/compose/$CONTAINER_NAME" + if [ ! -d "$COMPOSE_DIR" ]; then + log "Warning: $COMPOSE_DIR does not exist, skipping..." + continue + fi + + log "Updating container: $CONTAINER_NAME" + cd "$COMPOSE_DIR" || continue + docker compose pull &>/dev/null + docker compose up -d &>/dev/null + + if [ $? -eq 0 ]; then + log "✅ $CONTAINER_NAME updated successfully" + else + log "❌ Failed to update $CONTAINER_NAME" + fi +done + +log "===== Auto-Update Completed =====" \ No newline at end of file diff --git a/scripts/update-containers.sh b/scripts/update-containers.sh deleted file mode 100644 index 7f00bfe..0000000 --- a/scripts/update-containers.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -cd /docker/Bruchtal/compose - -for d in */; do - echo "Updating $d" - (cd "$d" && docker compose pull && docker compose up -d) -done \ No newline at end of file diff --git a/scripts/webhook-deploy/deploy-bruchtal.sh b/scripts/webhook-deploy/deploy-bruchtal.sh index 2b964b2..2318b3c 100755 --- a/scripts/webhook-deploy/deploy-bruchtal.sh +++ b/scripts/webhook-deploy/deploy-bruchtal.sh @@ -29,7 +29,13 @@ log "Pulling latest changes from Gitea" git pull # ----------------------------- -# 3️⃣ Check for Markdown changes +# 3️⃣ Redeploy changed containers +# ----------------------------- +#/srv/docker/scripts/deploy-changed-containers.sh + + +# ----------------------------- +# 4️⃣ Check for Markdown changes # ----------------------------- log "Checking for new or modified Markdown files..." changed=$(git diff --name-status HEAD~1 HEAD | grep -E '^[AM]\s.*(\.md$|mkdocs\.yml$)' | awk '{print $2}' || true)