treafik added

This commit is contained in:
CalvinSteenbergen 2025-11-28 22:14:40 +01:00
parent ec71162331
commit 2dcc89f81a
4 changed files with 70 additions and 13 deletions

5
.gitignore vendored
View file

@ -12,4 +12,7 @@ op-session
*/config/
# Systeem bestanden
.DS_Store
.DS_Store
# Negeer Traefik certificaten (worden op de server gegenereerd)
acme.json

View file

@ -0,0 +1,24 @@
api:
dashboard: true
insecure: true # Zetten we uit zodra Authentik werkt
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: proxy
# We bereiden SSL alvast voor (staat nog even uit tot je een domein hebt)
# certificatesResolvers:
# letsencrypt:
# acme:
# email: jouw@email.com
# storage: acme.json
# httpChallenge:
# entryPoint: web

View file

@ -0,0 +1,27 @@
services:
traefik:
image: traefik:v3.0
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json # Deze wordt door het script aangemaakt!
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.local`)"
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
networks:
proxy:
external: true

View file

@ -1,9 +1,6 @@
#!/bin/bash
# Stop het script als er iets fout gaat
set -e
# Pad naar je repo op de server (pas dit aan als het anders is)
REPO_DIR="$HOME/docker"
STACKS_DIR="$REPO_DIR/1. Docker-Stacks"
@ -11,33 +8,39 @@ echo "=========================================="
echo "🚀 Start Docker Update Script - $(date)"
echo "=========================================="
# 1. Haal de laatste versie op uit Git
echo "📥 Pullen van Git..."
cd "$REPO_DIR"
git pull origin main
# 2. Loop door elke map in '1. Docker-Stacks'
echo "🔄 Containers bijwerken..."
# Zoek alle mappen die een docker-compose.yml bevatten
# Zoek alle mappen met docker-compose.yml
find "$STACKS_DIR" -maxdepth 2 -name "docker-compose.yml" | while read composefile; do
dir=$(dirname "$composefile")
service_name=$(basename "$dir")
echo " 👉 Bezig met service: $service_name"
cd "$dir"
# --- SPECIAAL VOOR TRAEFIK ---
# Als we in de Traefik map zitten, check dan het acme.json bestand
if [ "$service_name" == "traefik" ]; then
if [ ! -f "./data/acme.json" ]; then
echo " 🔨 Traefik: acme.json aanmaken en rechten zetten..."
touch ./data/acme.json
chmod 600 ./data/acme.json
fi
fi
# -----------------------------
# We gebruiken 'op run' zodat 1Password referenties (op://) worden ingevuld
# '--env-file .env' wordt alleen gebruikt als het bestand bestaat
# Check voor .env en start
if [ -f .env ]; then
op run --env-file=".env" --no-masking -- docker compose up -d --remove-orphans
docker compose up -d --remove-orphans
else
op run --no-masking -- docker compose up -d --remove-orphans
docker compose up -d --remove-orphans
fi
done
# 3. Opruimen
echo "🧹 Oude images opruimen..."
docker image prune -f