treafik added
This commit is contained in:
parent
ec71162331
commit
2dcc89f81a
4 changed files with 70 additions and 13 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -12,4 +12,7 @@ op-session
|
||||||
*/config/
|
*/config/
|
||||||
|
|
||||||
# Systeem bestanden
|
# Systeem bestanden
|
||||||
.DS_Store
|
.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
|
#!/bin/bash
|
||||||
|
|
||||||
# Stop het script als er iets fout gaat
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Pad naar je repo op de server (pas dit aan als het anders is)
|
|
||||||
REPO_DIR="$HOME/docker"
|
REPO_DIR="$HOME/docker"
|
||||||
STACKS_DIR="$REPO_DIR/1. Docker-Stacks"
|
STACKS_DIR="$REPO_DIR/1. Docker-Stacks"
|
||||||
|
|
||||||
|
|
@ -11,33 +8,39 @@ echo "=========================================="
|
||||||
echo "🚀 Start Docker Update Script - $(date)"
|
echo "🚀 Start Docker Update Script - $(date)"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
|
|
||||||
# 1. Haal de laatste versie op uit Git
|
|
||||||
echo "📥 Pullen van Git..."
|
echo "📥 Pullen van Git..."
|
||||||
cd "$REPO_DIR"
|
cd "$REPO_DIR"
|
||||||
git pull origin main
|
git pull origin main
|
||||||
|
|
||||||
# 2. Loop door elke map in '1. Docker-Stacks'
|
|
||||||
echo "🔄 Containers bijwerken..."
|
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
|
find "$STACKS_DIR" -maxdepth 2 -name "docker-compose.yml" | while read composefile; do
|
||||||
dir=$(dirname "$composefile")
|
dir=$(dirname "$composefile")
|
||||||
service_name=$(basename "$dir")
|
service_name=$(basename "$dir")
|
||||||
|
|
||||||
echo " 👉 Bezig met service: $service_name"
|
echo " 👉 Bezig met service: $service_name"
|
||||||
|
|
||||||
cd "$dir"
|
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
|
# Check voor .env en start
|
||||||
# '--env-file .env' wordt alleen gebruikt als het bestand bestaat
|
|
||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
op run --env-file=".env" --no-masking -- docker compose up -d --remove-orphans
|
docker compose up -d --remove-orphans
|
||||||
else
|
else
|
||||||
op run --no-masking -- docker compose up -d --remove-orphans
|
docker compose up -d --remove-orphans
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# 3. Opruimen
|
|
||||||
echo "🧹 Oude images opruimen..."
|
echo "🧹 Oude images opruimen..."
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue