Mein Icon

Traefik mit Docker: Installation, Dashboard & Subdomain-Routing

27. Juni 2025·6 Minuten zu lesen
traefik-docker-installation-reverse-proxy

Traefik ist ein moderner Reverse Proxy, der besonders gut mit Docker zusammenspielt. In dieser Anleitung zeige ich dir, wie du Traefik in wenigen Minuten aufsetzt, das Web-Dashboard aktivierst und eigene Services über Subdomains erreichbar machst.

Voraussetzungen

  • Ein Ubuntu-Server mit Docker und Docker Compose
  • Eine Domain mit konfigurierbaren DNS-Einträgen (z.B. bei Cloudflare)
  • Zugriff auf Port 80 und 443 (HTTP und HTTPS)

1. Traefik per Docker Compose installieren

Erstelle ein neues Verzeichnis auf deinem Server:

mkdir traefik && cd traefik

Erzeuge die Datei docker-compose.yml:

version: "3.8"

services:
  traefik:
    image: traefik:v3.3
    container_name: traefik
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./traefik_dynamic.toml:/traefik_dynamic.toml
      - ./acme.json:/acme.json

  # Beispiel-Service
  whoami:
    image: traefik/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.deine-domain.de`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls=true"
      - "traefik.http.routers.whoami.tls.certresolver=letsencrypt"
      - "traefik.http.services.whoami.loadbalancer.server.port=8080" #Ggf. Port angeben, auf dem der Service erreichbar ist

2. Traefik-Konfiguration erstellen

Lege die Datei traefik.toml an:

[entryPoints]
  [entryPoints.web]
    address = ":80"
    [entryPoints.web.http.redirections.entryPoint]
      to = "websecure"
      scheme = "https"

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true

[certificatesResolvers.lets-encrypt.acme]
  email = "info@tech-insight.de"
  storage = "acme.json"
  [certificatesResolvers.lets-encrypt.acme.tlsChallenge]

[providers.docker]
  watch = true
  network = "web"

[providers.file]
  filename = "traefik_dynamic.toml"

Dann die Datei traefik_dynamic.toml mit Middleware für das Dashboard:

[http.middlewares.simpleAuth.basicAuth]
  users = [
    "<DEIN_BENUTZERNAME>:<DEIN_HASHED_PW>"
  ]

[http.routers.api]
  rule = "Host(`traefik.deine-domain.de`)"
  entrypoints = ["websecure"]
  middlewares = ["simpleAuth"]
  service = "api@internal"
  [http.routers.api.tls]
    certResolver = "lets-encrypt"

Die Benutzerdaten kannst du wie folgt erzeugen:

# Ggf. installieren: sudo apt-get install apache2-utils
htpasswd -nb DEIN_BENUTZERNAME DEIN_SICHERES_PASSWORT

3. ACME-Datei vorbereiten

touch acme.json
chmod 600 acme.json

4. Traefik starten

docker compose up -d

Nach wenigen Sekunden erreichst du das Dashboard über:

https://traefik.deine-domain.de

5. Weitere Services via Subdomain erreichbar machen

Willst du z. B. einen Node.js-Service über app.deine-domain.de erreichbar machen, ergänze in dessen docker-compose.yml:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.app.rule=Host(`app.deine-domain.de`)"
  - "traefik.http.routers.app.entrypoints=websecure"
  - "traefik.http.routers.app.tls.certresolver=letsencrypt"

Das war’s! Traefik erkennt deinen Container und macht ihn über die Subdomain öffentlich erreichbar – vollautomatisch mit HTTPS.

Fazit

Du hast jetzt:

  • Traefik erfolgreich als Reverse Proxy mit Docker installiert
  • Das Dashboard via Subdomain abgesichert
  • Eigene Services mit wenigen Labels per Subdomain erreichbar gemacht

Ab hier kannst du mit Middlewares (Redirects, Security, Auth) weitermachen – wie in diesem Artikel beschrieben.

© Felix Stiffel 2025 | Alle Rechte vorbehalten