#!/bin/bash # Stop direct bij errors set -e # --- KLEUREN --- GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # --- PADEN --- SCRIPT_PATH=$(readlink -f "$0") SCRIPT_DIR=$(dirname "$SCRIPT_PATH") REPO_DIR=$(dirname "$SCRIPT_DIR") STACKS_DIR="$REPO_DIR/1. docker-stacks" # Let op: kleine letters zoals op jouw server echo -e "${BLUE}==========================================${NC}" echo -e "${BLUE}๐Ÿš€ Start Docker Update - $(date)${NC}" # 1. GIT echo -e "${YELLOW}๐Ÿ“ฅ Git Pull...${NC}" cd "$REPO_DIR" git fetch --all git reset --hard origin/main # 2. TRAEFIK VOORBEREIDING (Cruciaal!) # Traefik heeft specifieke mappen en lege bestanden nodig TRAEFIK_DIR="$STACKS_DIR/traefik" if [ -d "$TRAEFIK_DIR" ]; then echo -e " ๐Ÿ”จ ${YELLOW}Traefik checks uitvoeren...${NC}" mkdir -p "$TRAEFIK_DIR/data" # Certificaten bestand (moet chmod 600 zijn) if [ ! -f "$TRAEFIK_DIR/data/acme.json" ]; then touch "$TRAEFIK_DIR/data/acme.json" chmod 600 "$TRAEFIK_DIR/data/acme.json" fi # Externe regels bestand (voor je NAS/andere hosts) if [ ! -f "$TRAEFIK_DIR/data/rules/external.yml" ]; then mkdir -p "$TRAEFIK_DIR/data/rules" touch "$TRAEFIK_DIR/data/rules/external.yml" fi fi # 3. CONTAINERS STARTEN echo -e "${YELLOW}๐Ÿ”„ Services starten...${NC}" find "$STACKS_DIR" -maxdepth 2 -name "docker-compose.yml" | while read composefile; do dir=$(dirname "$composefile") service_name=$(basename "$dir") echo -e " ๐Ÿ‘‰ Service: ${GREEN}$service_name${NC}" cd "$dir" if [ -f .env ]; then docker compose up -d --remove-orphans else echo -e " โš ๏ธ ${RED}Geen .env gevonden! (Check je secrets op de server)${NC}" docker compose up -d --remove-orphans fi done echo -e "${YELLOW}๐Ÿงน Opruimen...${NC}" docker image prune -f echo -e "${GREEN}โœ… Klaar!${NC}"