OpenLogs

All tools

Pocket ID

Single sign-on server that signs users in with passkeys.

Replaces

Paid identity and login services, such as Okta.

All open-source alternatives to Okta

Difficulty

Difficulty: Easy

1 service, 1 volume mount, 1 env value to set, no elevated host access. Heuristic score 1 of 11: easy.

Stack

Go (language)

Deployment

docker_compose

Requirements

Not stated.

License

BSD-2-Clause (OSI-approved open source)

Read from github.com/pocket-id/pocket-id/blob/b023bc3/LICENSE

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/pocket-id/pocket-id/blob/b023bc3/README.md, read on .

Repository

pocket-id/pocket-id

GitHub stats

Stars
9,669
Forks
342
Open issues and pull requests
103
Last push
2026-10-22
Latest release
v2.19.1
Released
2026-10-22

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as BSD-2-Clause.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose.yml Version 1
services:
  pocket-id:
    image: pocketid/pocket-id:v2 # or ghcr.io/pocket-id/pocket-id:v2
    restart: unless-stopped
    env_file: .env
    ports:
      - 1411:1411
    volumes:
      - "./data:/app/data"
    # Optional healthcheck
    healthcheck:
      test: [ "CMD", "/app/pocket-id", "healthcheck" ]
      interval: 1m30s
      timeout: 5s
      retries: 2
      start_period: 10s

From the app's own repository: github.com/pocket-id/pocket-id/blob/b023bc3/docker-compose.yml.

Compose file from the app repository.

Install

  1. Docker with the Compose plugin (github.com/pocket-id/website/blob/7118232/src/content/docs/docs/setup/installation.mdx)

    A host with Docker and the Docker Compose plugin. This entry runs from a compose file.

  2. Save the compose file as docker-compose.yml (github.com/pocket-id/pocket-id/blob/b023bc3/docker-compose.yml)

    Use the compose file shown above.

  3. Save as .env next to the compose file (github.com/pocket-id/pocket-id/blob/b023bc3/.env.example)
    # See the documentation for more information: https://pocket-id.org/docs/configuration/environment-variables
    
    # These variables must be configured for your deployment:
    APP_URL=https://your-pocket-id-domain.com
    
    # Encryption key (choose one method):
    # Method 1: Direct key (simple but less secure)
    # Generate with: openssl rand -base64 32
    ENCRYPTION_KEY=
    # Method 2: File-based key (recommended)
    # Put the base64 key in a file and point to it here.
    # ENCRYPTION_KEY_FILE=/path/to/encryption_key
    
    # These variables are optional but recommended to review:
    TRUST_PROXY=false
    MAXMIND_LICENSE_KEY=
    PUID=1000
    PGID=1000
    
  4. What the compose file check ran with (github.com/pocket-id/website/blob/7118232/src/content/docs/docs/setup/installation.mdx)

    The compose file check ran together with .env.example from the same commit, saved as .env. The folder held only these files. The installation guide tells the reader to download docker-compose.yml and .env.example (saved as .env), set the address and an encryption key in .env and run docker compose up -d.

  5. Start it (github.com/pocket-id/website/blob/7118232/src/content/docs/docs/setup/installation.mdx)
    docker compose up -d
  6. Open the app (github.com/pocket-id/pocket-id/blob/b023bc3/docker-compose.yml)

    Open http://localhost:1411. The compose file publishes host port 1411 for the pocket-id service.

Compose file check: config_ok on 2026-10-22.

Gotchas and maintenance

Gotchas

Signals

  • Open issues and pull requests: 103
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: v2.19.1 on 2026-10-22 (0 days before this page was built)