treafik added
This commit is contained in:
parent
ec71162331
commit
2dcc89f81a
4 changed files with 70 additions and 13 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -13,3 +13,6 @@ op-session
|
|||
|
||||
# Systeem bestanden
|
||||
.DS_Store
|
||||
|
||||
# Negeer Traefik certificaten (worden op de server gegenereerd)
|
||||
acme.json
|
||||
24
1. docker-stacks/traefik/data/traefik.yml
Normal file
24
1. docker-stacks/traefik/data/traefik.yml
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
|
||||
# We gebruiken 'op run' zodat 1Password referenties (op://) worden ingevuld
|
||||
# '--env-file .env' wordt alleen gebruikt als het bestand bestaat
|
||||
# --- 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
|
||||
# -----------------------------
|
||||
|
||||
# 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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue