| pkg | ||
| vendor | ||
| dsm | ||
| dsm.service | ||
| go.mod | ||
| go.sum | ||
| justfile | ||
| main.go | ||
| README.md | ||
DSM - Docker Service Manager
Automatisches Nginx Reverse Proxy Management mit Let's Encrypt SSL.
Docker Compose Konfiguration
Füge diese Labels zu deinen Services hinzu:
services:
myapp:
image: nginx:latest
labels:
- "nginx=true"
- "domain=example.com"
Labels
| Label | Erforderlich | Beschreibung |
|---|---|---|
nginx |
Ja | Muss auf true gesetzt sein |
domain |
Ja | Die Domain für den Service (z.B. example.com) |
port |
Nein | Port des Containers (Standard: 80) |
htpasswd |
Nein | Pfad zur htpasswd-Datei für HTTP Basic Auth (z.B. /etc/nginx/.htpasswd) |
nginxconfig |
Nein | Pfad zu einer eigenen Nginx-Konfigurationsdatei, die das Standard-Template ersetzt |
nginx_client_max_body_size |
Nein | Maximale Upload-Größe (z.B. 100m, 1g) – setzt client_max_body_size in Nginx |
Globale Nginx-Konfiguration
Neben den containergebundenen Configs unterstützt DSM auch globale, statische Nginx-Konfigurationen, die unabhängig von laufenden Containern immer eingespielt werden.
Funktionsweise
Dateien, die im Verzeichnis /etc/dsm/nginx/ abgelegt werden, werden automatisch als Go-Templates gerendert und nach /etc/nginx/sites-enabled/<dateiname>.conf kopiert.
Nutzung
-
Verzeichnis anlegen (falls nicht vorhanden):
mkdir -p /etc/dsm/nginx/ -
Nginx-Konfigurationsdatei ablegen:
# Dateiname wird zum Config-Namen (ohne .conf-Endung angeben) vi /etc/dsm/nginx/meine-seite -
DSM einmalig oder im Daemon-Modus ausführen – die Datei wird automatisch nach
/etc/nginx/sites-enabled/meine-seite.confdeployed.
Beispiel
# /etc/dsm/nginx/status
server {
listen 80;
server_name status.example.com;
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
}
Hinweis: Falls
/etc/dsm/nginx/nicht existiert, wird das Feature stillschweigend übersprungen. Die Dateien werden als Go-Templates verarbeitet – einfache Nginx-Configs ohne Template-Syntax funktionieren unverändert.
Befehle
# Einmalige Aktualisierung
./dsm run
# Daemon-Modus (überwacht Docker Events)
./dsm deamon