2025-11-28 20:01:41 +00:00
|
|
|
#!/bin/bash
|
2025-11-28 21:20:34 +00:00
|
|
|
|
2025-11-28 22:03:52 +00:00
|
|
|
# Stop direct bij errors
|
2025-11-28 20:01:41 +00:00
|
|
|
set -e
|
|
|
|
|
|
2025-11-28 22:03:52 +00:00
|
|
|
# --- 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'
|
2025-11-28 22:03:52 +00:00
|
|
|
NC='\033[0m'
|
2025-11-28 21:20:34 +00:00
|
|
|
|
2025-11-28 22:03:52 +00:00
|
|
|
# --- PADEN ---
|
2025-11-29 08:40:55 +00:00
|
|
|
# We bepalen het absolute pad naar DIT bestand
|
2025-11-28 21:20:34 +00:00
|
|
|
SCRIPT_PATH=$(readlink -f "$0")
|
|
|
|
|
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
|
|
|
|
|
REPO_DIR=$(dirname "$SCRIPT_DIR")
|
2025-11-29 08:40:55 +00:00
|
|
|
STACKS_DIR="$REPO_DIR/1. docker-stacks"
|
2025-11-28 20:01:41 +00:00
|
|
|
|
2025-11-28 21:20:34 +00:00
|
|
|
echo -e "${BLUE}==========================================${NC}"
|
2025-11-28 22:03:52 +00:00
|
|
|
echo -e "${BLUE}🚀 Start Docker Update - $(date)${NC}"
|
2025-11-28 20:01:41 +00:00
|
|
|
|
2025-11-29 08:40:55 +00:00
|
|
|
# 1. GIT UPDATE
|
|
|
|
|
echo -e "${YELLOW}📥 Git Pull & Reset...${NC}"
|
2025-11-28 20:01:41 +00:00
|
|
|
cd "$REPO_DIR"
|
2025-11-29 08:40:55 +00:00
|
|
|
|
|
|
|
|
# Haal alles op
|
2025-11-28 22:03:52 +00:00
|
|
|
git fetch --all
|
2025-11-29 08:40:55 +00:00
|
|
|
|
|
|
|
|
# Forceer de lokale bestanden naar de versie van Git (overschrijft lokale wijzigingen)
|
2025-11-28 22:03:52 +00:00
|
|
|
git reset --hard origin/main
|
2025-11-28 20:01:41 +00:00
|
|
|
|
2025-11-29 08:40:55 +00:00
|
|
|
# --- 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
|
2025-11-28 22:03:52 +00:00
|
|
|
TRAEFIK_DIR="$STACKS_DIR/traefik"
|
|
|
|
|
if [ -d "$TRAEFIK_DIR" ]; then
|
2025-11-29 08:40:55 +00:00
|
|
|
mkdir -p "$TRAEFIK_DIR/data/rules"
|
|
|
|
|
|
|
|
|
|
# Check acme.json (SSL)
|
2025-11-28 22:03:52 +00:00
|
|
|
if [ ! -f "$TRAEFIK_DIR/data/acme.json" ]; then
|
2025-11-29 08:40:55 +00:00
|
|
|
echo -e " 🔨 ${YELLOW}Traefik: acme.json aanmaken...${NC}"
|
2025-11-28 22:03:52 +00:00
|
|
|
touch "$TRAEFIK_DIR/data/acme.json"
|
|
|
|
|
chmod 600 "$TRAEFIK_DIR/data/acme.json"
|
|
|
|
|
fi
|
2025-11-29 08:40:55 +00:00
|
|
|
|
|
|
|
|
# Check external rules
|
2025-11-28 22:03:52 +00:00
|
|
|
if [ ! -f "$TRAEFIK_DIR/data/rules/external.yml" ]; then
|
2025-11-29 08:40:55 +00:00
|
|
|
touch "$TRAEFIK_DIR/data/rules/external.yml"
|
2025-11-28 22:03:52 +00:00
|
|
|
fi
|
|
|
|
|
fi
|
2025-11-28 20:01:41 +00:00
|
|
|
|
2025-11-29 08:40:55 +00:00
|
|
|
# 3. SERVICES STARTEN
|
2025-11-28 22:03:52 +00:00
|
|
|
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")
|
|
|
|
|
|
2025-11-28 22:03:52 +00:00
|
|
|
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
|
2025-11-29 08:40:55 +00:00
|
|
|
echo -e " ⚠️ ${RED}Geen .env gevonden!${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
|
|
|
|
|
|
2025-11-28 22:03:52 +00:00
|
|
|
echo -e "${YELLOW}🧹 Opruimen...${NC}"
|
2025-11-28 20:01:41 +00:00
|
|
|
docker image prune -f
|
|
|
|
|
|
2025-11-28 22:03:52 +00:00
|
|
|
echo -e "${GREEN}✅ Klaar!${NC}"
|