build - prozess optimiert mit push nach zot
nginx-kill - > maint. site...
This commit is contained in:
1 parent
665135f87e
commit
64417d8353
19 files changed
+447
-61
No files matched your search
@@ -1,6 +1,7 @@
|
||||
# Image: lokal gebaut (docker build -t sultan:latest .) oder aus der Registry
|
||||
SULTAN_IMAGE=sultan:latest
|
||||
# SULTAN_IMAGE=pod.chmln.de/sultan:v0.1.0
|
||||
# SULTAN_IMAGE=sultan:latest
|
||||
# SULTAN_IMAGE=zot.chmln.de/sultan:v0.1.0
|
||||
SULTAN_IMAGE=zot.chmln.de/sultan:latest
|
||||
|
||||
# Einladung vom Server: docker compose exec sultan-server sultan token invite --tenant=…
|
||||
SULTAN_TOKEN=
|
||||
|
||||
@@ -20,6 +20,7 @@ services:
|
||||
# Ausgabe von `sultan token invite`; nach dem ersten Start nicht mehr nötig,
|
||||
# stehen lassen ist harmlos.
|
||||
SULTAN_TOKEN: ${SULTAN_TOKEN:-}
|
||||
TZ: ${TZ:-Europe/Berlin} # Zeitstempel im Log
|
||||
# Lesezugriff auf den Docker-Socket für den nonroot-User (UID 65532).
|
||||
group_add:
|
||||
- "${DOCKER_GID:?DOCKER_GID setzen: getent group docker | cut -d: -f3}"
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
# Image: lokal gebaut (docker build -t sultan:latest .) oder aus der Registry
|
||||
SULTAN_IMAGE=sultan:latest
|
||||
# SULTAN_IMAGE=pod.chmln.de/sultan:v0.1.0
|
||||
# SULTAN_IMAGE=git.everdc.eu/chmln-app-dev/sultan:v0.1.0
|
||||
|
||||
# Adresse, unter der Agents den Server erreichen – steckt danach in jeder Einladung
|
||||
SULTAN_PUBLIC_URL=https://webproxy11.example.de:8443
|
||||
# Adresse(n), unter denen Agents den Server erreichen – die erste steckt in jeder
|
||||
# Einladung, alle bekommen Agents als Ausweichweg. Kommagetrennt, leer erlaubt.
|
||||
SULTAN_PUBLIC_URL=https://webproxy11.lan.r25dc.de:8443
|
||||
|
||||
# Ports (host-Netz). Vorher prüfen, ob frei – Traefiks API/Dashboard nutzt oft 8080:
|
||||
# ss -ltnp | grep -E ':(8443|8080|8081)\b'
|
||||
# SULTAN_AGENT_ADDR=:8443
|
||||
# SULTAN_PROVIDER_ADDR=127.0.0.1:8080
|
||||
# SULTAN_LANDER_ADDR=127.0.0.1:8081
|
||||
|
||||
# Texte/Links der Hinweis- und Einladungsseiten (optional)
|
||||
# SULTAN_HOSTER_NAME=everDC
|
||||
# SULTAN_HOSTER_URL=https://www.everdc.eu
|
||||
|
||||
# Benachrichtigungen (optional, kommagetrennt mehrere möglich)
|
||||
# SULTAN_NOTIFY_SLACK=https://hooks.slack.com/services/…
|
||||
# SULTAN_NOTIFY_NTFY=https://ntfy.example.de/sultan
|
||||
# SULTAN_NOTIFY_NTFY_TOKEN=tk_…
|
||||
|
||||
# Zeitzone für Wartungsseite und Checkmk (Default Europe/Berlin)
|
||||
# TZ=Europe/Berlin
|
||||
@@ -3,25 +3,39 @@
|
||||
# cp .env.example .env && $EDITOR .env
|
||||
# install -d -m 0700 -o 65532 -g 65532 suldata # Datenverzeichnis für den nonroot-User
|
||||
# docker compose up -d
|
||||
# docker compose exec sultan-server sultan version # Zeitzone prüfen
|
||||
# docker compose exec sultan-server sultan token tenant add …
|
||||
#
|
||||
# Traefik (Host-Netz oder Binary) pollt http://127.0.0.1:8080/v1/traefik-config.
|
||||
# network_mode: host wie Traefik:
|
||||
# - Ports frei wählbar (.env), ohne Mapping; die Adresse des Landers für die
|
||||
# Wartungsseiten stimmt damit automatisch.
|
||||
# - Rate-Limit und nodes.ip_address sehen die echte IP der Agents.
|
||||
# Traefik pollt http://${SULTAN_PROVIDER_ADDR}/v1/traefik-config (traefik.yml, siehe
|
||||
# traefik-provider.yml).
|
||||
services:
|
||||
sultan-server:
|
||||
image: ${SULTAN_IMAGE:-sultan:latest}
|
||||
container_name: sultan-server
|
||||
restart: unless-stopped
|
||||
# Im Container auf allen Interfaces lauschen; nach außen nur 127.0.0.1 veröffentlichen.
|
||||
command:
|
||||
- "sultan"
|
||||
- "server"
|
||||
- "--data-dir=/suldata"
|
||||
- "--provider-addr=:8080"
|
||||
- "--lander-addr=:8081"
|
||||
- "--public-url=${SULTAN_PUBLIC_URL}"
|
||||
ports:
|
||||
- "8443:8443" # Agents (TLS 1.3)
|
||||
- "127.0.0.1:8080:8080" # Traefik-Provider & Checkmk – Klartext, nie öffentlich
|
||||
- "127.0.0.1:8081:8081" # Lander (Hinweis-/Wartungsseiten) für Traefik
|
||||
network_mode: host
|
||||
command: ["sultan", "server", "--data-dir=/suldata"]
|
||||
environment:
|
||||
# Agents (TLS 1.3) – in der Firewall für die Agent-Hosts öffnen.
|
||||
SULTAN_AGENT_ADDR: ${SULTAN_AGENT_ADDR:-:8443}
|
||||
# Traefik-Provider & Checkmk – Klartext, nur Loopback!
|
||||
SULTAN_PROVIDER_ADDR: ${SULTAN_PROVIDER_ADDR:-127.0.0.1:8080}
|
||||
# Lander (Hinweis-/Wartungsseiten) – nur Loopback, Traefik ruft ihn auf.
|
||||
SULTAN_LANDER_ADDR: ${SULTAN_LANDER_ADDR:-127.0.0.1:8081}
|
||||
# Leer = keine Adresse in Einladungen (Agent braucht dann --server).
|
||||
# Mehrere Adressen kommagetrennt (öffentlich, NetBird …).
|
||||
SULTAN_PUBLIC_URL: ${SULTAN_PUBLIC_URL:-}
|
||||
SULTAN_HOSTER_NAME: ${SULTAN_HOSTER_NAME:-}
|
||||
SULTAN_HOSTER_URL: ${SULTAN_HOSTER_URL:-}
|
||||
SULTAN_NOTIFY_SLACK: ${SULTAN_NOTIFY_SLACK:-}
|
||||
SULTAN_NOTIFY_NTFY: ${SULTAN_NOTIFY_NTFY:-}
|
||||
SULTAN_NOTIFY_NTFY_TOKEN: ${SULTAN_NOTIFY_NTFY_TOKEN:-}
|
||||
# Zeitzone für Wartungsseite und Checkmk (sonst UTC). Prüfen:
|
||||
# docker compose exec sultan-server sultan version
|
||||
TZ: ${TZ:-Europe/Berlin}
|
||||
volumes:
|
||||
- ./suldata:/suldata # sultan.db, server.key/.crt, master.key – sichern!
|
||||
@@ -0,0 +1,12 @@
|
||||
# Ausschnitt für Traefiks statische Konfiguration (traefik.yml) – in den
|
||||
# bestehenden Block "providers:" einfügen, NICHT als eigene Datei laden.
|
||||
# Der Docker- und File-Provider bleiben unverändert daneben aktiv.
|
||||
#
|
||||
# Routen aus Sultan heißen in Traefik <mandant>__<knoten>__<router>@http.
|
||||
# Nach dem Einfügen Traefik neu starten (statische Konfiguration).
|
||||
|
||||
providers:
|
||||
http:
|
||||
# Muss zu SULTAN_PROVIDER_ADDR in der .env von sultan-server passen.
|
||||
endpoint: "http://127.0.0.1:8080/v1/traefik-config"
|
||||
pollInterval: "3s"
|
||||
Reference in new issue
Block a user