docker-infra/3. scripts/update-all.sh

66 lines
1.9 KiB
Bash
Raw Normal View History

2025-11-28 20:01:41 +00:00
#!/bin/bash
2025-11-28 21:20:34 +00:00
# Stop direct bij errors
2025-11-28 20:01:41 +00:00
set -e
# --- KLEUREN ---
2025-11-28 21:20:34 +00:00
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
2025-11-28 21:20:34 +00:00
# --- PADEN ---
2025-11-28 21:20:34 +00:00
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
2025-11-28 20:01:41 +00:00
2025-11-28 21:20:34 +00:00
echo -e "${BLUE}==========================================${NC}"
echo -e "${BLUE}🚀 Start Docker Update - $(date)${NC}"
2025-11-28 20:01:41 +00:00
# 1. GIT
echo -e "${YELLOW}📥 Git Pull...${NC}"
2025-11-28 20:01:41 +00:00
cd "$REPO_DIR"
git fetch --all
git reset --hard origin/main
2025-11-28 20:01:41 +00:00
# 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
2025-11-28 20:01:41 +00:00
# 3. CONTAINERS STARTEN
echo -e "${YELLOW}🔄 Services starten...${NC}"
2025-11-28 20:01:41 +00:00
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}"
2025-11-28 20:01:41 +00:00
cd "$dir"
if [ -f .env ]; then
2025-11-28 21:14:40 +00:00
docker compose up -d --remove-orphans
2025-11-28 20:01:41 +00:00
else
echo -e " ⚠️ ${RED}Geen .env gevonden! (Check je secrets op de server)${NC}"
2025-11-28 21:14:40 +00:00
docker compose up -d --remove-orphans
2025-11-28 20:01:41 +00:00
fi
done
echo -e "${YELLOW}🧹 Opruimen...${NC}"
2025-11-28 20:01:41 +00:00
docker image prune -f
echo -e "${GREEN}✅ Klaar!${NC}"