#!/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 --- # We bepalen het absolute pad naar DIT bestand SCRIPT_PATH=$(readlink -f "$0") SCRIPT_DIR=$(dirname "$SCRIPT_PATH") REPO_DIR=$(dirname "$SCRIPT_DIR") STACKS_DIR="$REPO_DIR/1. docker-stacks" echo -e "${BLUE}==========================================${NC}" echo -e "${BLUE}๐Ÿš€ Start Docker Update - $(date)${NC}" # 1. GIT UPDATE echo -e "${YELLOW}๐Ÿ“ฅ Git Pull & Reset...${NC}" cd "$REPO_DIR" # Haal alles op git fetch --all # Forceer de lokale bestanden naar de versie van Git (overschrijft lokale wijzigingen) git reset --hard origin/main # --- DE FIX: MAAK JEZELF UITVOERBAAR --- # Direct na de reset zorgen we dat dit script uitvoerbaar blijft voor de volgende keer chmod +x "$SCRIPT_PATH" echo -e " ๐Ÿ”ง Rechten hersteld op: $SCRIPT_PATH" # --------------------------------------- # 2. TRAEFIK CHECKS TRAEFIK_DIR="$STACKS_DIR/traefik" if [ -d "$TRAEFIK_DIR" ]; then mkdir -p "$TRAEFIK_DIR/data/rules" # Check acme.json (SSL) if [ ! -f "$TRAEFIK_DIR/data/acme.json" ]; then echo -e " ๐Ÿ”จ ${YELLOW}Traefik: acme.json aanmaken...${NC}" touch "$TRAEFIK_DIR/data/acme.json" chmod 600 "$TRAEFIK_DIR/data/acme.json" fi # Check external rules if [ ! -f "$TRAEFIK_DIR/data/rules/external.yml" ]; then touch "$TRAEFIK_DIR/data/rules/external.yml" fi fi # 3. SERVICES 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!${NC}" docker compose up -d --remove-orphans fi done echo -e "${YELLOW}๐Ÿงน Opruimen...${NC}" docker image prune -f echo -e "${GREEN}โœ… Klaar!${NC}"