Logo 2bs weblog
Pocket ID mit Docker und Traefik installieren

Pocket ID mit Docker und Traefik installieren

19. Februar 2025
3 min Lesezeit
Table of Contents

Intro

Pocket ID ist ein einfacher OIDC-Anbieter, der es Benutzern ermöglicht, sich mit ihren Passkeys bei Ihren Diensten zu authentifizieren.

Das Ziel von Pocket ID ist es, einfach und benutzerfreundlich zu sein. Es gibt andere selbst gehostete OIDC Anbieter wie Keycloak oder Authentik, aber diese sind oft zu komplex für einfache Anwendungsfälle.

Eine Besonderheit von Pocket ID ist, dass es nur die Passkey-Authentifizierung unterstützt, was bedeutet, dass du kein Passwort benötigen. Zum Beispiel kannst du jetzt einen physischen Yubikey verwenden, um dich einfach und sicher bei all deinen selbst gehosteten Diensten anzumelden.


2. Voraussetzungen

Bevor wir starten, stellt sicher, dass folgende Voraussetzungen erfüllt sind:


3. Ordner anlegen

Zuerst legen wir uns passende Ordner-Strukturen an.

mkdir -p /opt/containers/pocket-id

4. Compose Datei anlegen

nano /opt/containers/pocket-id/compose.yml
compose.yml
services:
  pocket-id:
    image: ghcr.io/pocket-id/pocket-id
    restart: unless-stopped
    env_file: .env
    volumes:
      - "./data:/app/backend/data"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pocket.entrypoints=websecure"
      - "traefik.http.routers.pocket.rule=Host(`pocket.deinedomain.de`)"
      - "traefik.http.routers.pocket.tls=true"
      - "traefik.http.routers.pocket.tls.certresolver=cloudflare"
      - "traefik.http.routers.pocket.service=pocket"
      - "traefik.http.services.pocket.loadbalancer.server.port=80"
      - "traefik.docker.network=frontend"
    networks:
      - frontend
    # Optional healthcheck  
    healthcheck:
      test: "curl -f http://localhost/health"
      interval: 1m30s
      timeout: 5s
      retries: 2
      start_period: 10s
networks:
  frontend:
    external: true

Noch anzupassen:

  • Eure Traefik URL =Host(pocket.deinedomain.de)

4.1 .ENV Datei anlegen

nano /opt/containers/pocket-id/.env
.env
 
# Bitte die Domain wie oben anpassen
PUBLIC_APP_URL=https://pocket.deinedomain.de

5. Pocket ID starten

Nun starten wir den Container mittels folgendem Befehl:

docker compose -f /opt/containers/pocket-id/compose.yml up -d

Der Container ist in wenigen Sekunden gebaut.

Ruft nun im Browser die gewählte Domain auf und dann solltet ihr folgendes sehen.

pocket-id

Für das erstellen des ersten Benutzers bzw. Passkeys geht ihr bitte auf folgende Seite

https://pocket.deinedomain.de/login/setup

Dort könnt ihr dann den ersten Benutzer anlegen

pocket-id

Folgt den Anweisungen und dann solltet ihr im Admin bereich laden.

pocket-id

Der Erstellung der OIDC Clients ist wirklich einfach, alle nötigen Infos findet ihr hier bei GitHub:

https://github.com/stonith404/pocket-id?tab=readme-ov-file#add-pocket-id-as-an-oidc-provider


Quellen:

https://pocket-id.org/

https://github.com/stonith404/pocket-id