#!/bin/bash # Stop het script direct als er een error optreedt set -e # --- KLEUREN DEFINITIES (Voor mooie output) --- GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # --- PADEN AUTOMATISCH BEPALEN --- # Dit is de magie: We kijken waar DIT script staat, en gaan 1 map omhoog. # Hierdoor werkt het script altijd, ongeacht hoe je hoofdmap heet. 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 Script - $(date)${NC}" echo -e "${BLUE}==========================================${NC}" # 1. GIT UPDATE echo -e "${YELLOW}๐Ÿ“ฅ Pullen van Git...${NC}" echo -e " Locatie: $REPO_DIR" cd "$REPO_DIR" git pull origin main # 2. CONTAINERS UPDATEN echo -e "${YELLOW}๐Ÿ”„ Containers bijwerken...${NC}" # Zoek alle mappen die een docker-compose.yml bevatten (max 2 diep in 1. Docker-Stacks) find "$STACKS_DIR" -maxdepth 2 -name "docker-compose.yml" | while read composefile; do dir=$(dirname "$composefile") service_name=$(basename "$dir") echo -e " ๐Ÿ‘‰ Bezig met service: ${GREEN}$service_name${NC}" cd "$dir" # --- SPECIAAL VOOR TRAEFIK --- # Traefik crasht als acme.json niet bestaat of verkeerde rechten heeft. # Dit script repareert dat automatisch. if [ "$service_name" == "traefik" ]; then if [ ! -f "./data/acme.json" ]; then echo -e " ๐Ÿ”จ ${YELLOW}Traefik: acme.json aanmaken en rechten (600) zetten...${NC}" mkdir -p ./data touch ./data/acme.json chmod 600 ./data/acme.json fi fi # ----------------------------- # Check of er een .env bestand is (informatief) if [ -f .env ]; then docker compose up -d --remove-orphans else echo -e " โš ๏ธ ${RED}Let op: Geen .env bestand gevonden (check je secrets)!${NC}" # We proberen alsnog te starten, sommige containers hebben geen .env nodig docker compose up -d --remove-orphans fi done # 3. OPRUIMEN echo -e "${YELLOW}๐Ÿงน Oude images opruimen...${NC}" docker image prune -f echo -e "${BLUE}==========================================${NC}" echo -e "${GREEN}โœ… Update compleet!${NC}" echo -e "${BLUE}==========================================${NC}"