1. Intro

Tinyauth ist eine meiner Lieblingsanwendungen in meinem Homelab. Es ist eine super schnelle, lightweight Alternative zu Authelia oder Authentik – perfekt fürs Homelab. Die Installation ist in wenigen Minuten erledigt und die Integration mit Traefik läuft absolut reibungslos.

In diesem Setup verwende ich Tinyauth ausschließlich in Kombination mit Pocket ID, um z. B. das Traefik-Dashboard abzusichern und vor externem Zugriff zu schützen. Wie genau das funktioniert, zeige ich euch hier.


2. Voraussetzungen


3. Projektverzeichnis erstellen

Erstelle ein neues Verzeichnis für Tinyauth:

mkdir /opt/containers/tinyauth
cd /opt/containers/tinyauth

4. docker-compose.yml erstellen

nano docker-compose.yml
services:
  tinyauth:
    container_name: tinyauth
    image: ghcr.io/steveiliop56/tinyauth:latest
    environment:
      - SECRET=my-super-secret-key
      - APP_URL=https://tinyauth.dein.server
      - DISABLE_CONTINUE=true
      - GENERIC_CLIENT_ID=xyz
      - GENERIC_CLIENT_SECRET=123
      - GENERIC_AUTH_URL=https://pocket.id/authorize
      - GENERIC_TOKEN_URL=https://pocket.id/api/oidc/token
      - GENERIC_USER_URL=https://pocket.id/api/oidc/userinfo
      - GENERIC_SCOPES=openid, profile, email
      - GENERIC_NAME=PocketID
      - OAUTH_AUTO_REDIRECT=PocketID
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.tinyauth.entrypoints=websecure"
      - "traefik.http.routers.tinyauth.rule=Host(`tinyauth.dein.server`)"
      - "traefik.http.routers.tinyauth.tls=true"
      - "traefik.http.routers.tinyauth.tls.certresolver=cloudflare"
      - "traefik.http.routers.tinyauth.service=tinyauth"
      - "traefik.http.services.tinyauth.loadbalancer.server.port=3000"
      - "traefik.docker.network=frontend"
      - "traefik.http.middlewares.tinyauth.forwardauth.address=http://tinyauth:3000/api/auth/traefik"
    networks:
      - frontend
    restart: unless-stopped
networks:
  frontend:
    external: true

Hier muss einiges angepasst werden und zwar, SECRET=my-super-secret-key, APP_URL=https://tinyauth.dein.server, APP_URL=https://tinyauth.dein.server, GENERIC_CLIENT_ID, GENERIC_CLIENT_SECRET, GENERIC_AUTH_URL, GENERIC_TOKEN_URL, GENERIC_USER_URL, traefik Host(tinyauth.dein.server)

Das SECRETkönnt ihr so generieren:

openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32

Ihr müsst natürlich den OAuth Client in Pocket ID erstellen, hier gibt es vom Entwickler direkt eine Anleitung dafür.


5. Container starten

Starte den Container mit:

docker compose up -d

6. Middleware benutzen

Um Tinyauth nun beispielsweise vor Traefik als Middleware zu verwenden, müssen wir folgendes Label zur Traefik-Konfiguration hinzufügen:

- "traefik.http.routers.traefik.middlewares=tinyauth"

Anschließend starten wir Traefik neu – und ab sofort ist das Traefik-Dashboard durch Tinyauth abgesichert.

Dieses Label lässt sich natürlich ganz einfach an jeden über Traefik exponierten Dienst anhängen und verpasst dem Dienst eine zusätzliche Sicherheitsebene – besonders dann sinnvoll, wenn der Dienst von Haus aus keine eigene Authentifizierung mitbringt.

Quellen:

Tinyauth

Tinyauth mit Docker und Traefik installieren

Autor

2tap2b

Datum

27.05.2025