No description
Find a file
2026-03-30 16:38:07 +02:00
pkg fix client 2026-03-30 16:32:43 +02:00
vendor init 2026-03-13 00:00:27 +01:00
dsm build 2026-03-30 16:38:07 +02:00
dsm.service add service 2026-03-13 00:10:18 +01:00
go.mod init 2026-03-13 00:00:27 +01:00
go.sum init 2026-03-13 00:00:27 +01:00
justfile init 2026-03-13 00:00:27 +01:00
main.go less events 2026-03-13 01:19:26 +01:00
README.md fix client 2026-03-30 16:32:43 +02:00

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

  1. Verzeichnis anlegen (falls nicht vorhanden):

    mkdir -p /etc/dsm/nginx/
    
  2. Nginx-Konfigurationsdatei ablegen:

    # Dateiname wird zum Config-Namen (ohne .conf-Endung angeben)
    vi /etc/dsm/nginx/meine-seite
    
  3. DSM einmalig oder im Daemon-Modus ausführen die Datei wird automatisch nach /etc/nginx/sites-enabled/meine-seite.conf deployed.

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