Pocket-ID

Pocket-ID

Docker app from grtgbln's Repository

Overview

A simple OIDC provider that allows users to authenticate with their passkeys to your services.


Pocket ID

Pocket ID is an easy-to-use OpenID Connect Certified™ and OAuth 2.0 provider that lets users sign in to your applications with passkeys.

→ Try out the Demo

The goal of Pocket ID is to be a simple and easy-to-use. There are other self-hosted OIDC and OAuth 2.0 providers like Keycloak or ORY Hydra but they are often too complex for simple use cases.

Additionally, what makes Pocket ID special is that it only supports passkey authentication, which means you don’t need a password. Some people might not like this idea at first, but I believe passkeys are the future, and once you try them, you’ll love them. For example, you can now use a physical Yubikey to sign in to all your self-hosted services easily and securely.

OpenID Connect Certified

Setup

Pocket ID can be set up in multiple ways. The easiest and recommended way is to use Docker.

Visit the documentation for the setup guide and more information.

Contribute

You're very welcome to contribute to Pocket ID! Please follow the contribution guide to get started.

Install Pocket-ID on Unraid in a few clicks.

Find Pocket-ID in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Pocket-ID Review the template variables and paths Click Install

Download Statistics

1,768
Total Downloads

Details

Repository
pocketid/pocket-id:latest
Last Updated2026-06-29
First Seen2026-06-29

Runtime arguments

Web UI
http://[IP]:[PORT:1411]/
Network
bridge
Privileged
false

Template configuration

WebUI PortPorttcp

Port to access WebUI

Target
1411
Default
1411
Value
1411
App URLVariable

The URL where you will access the app. Recommended to change from default.

Target
APP_URL
Default
http://localhost
Value
http://localhost
Behind ProxyVariable

Whether the app is behind a reverse proxy.

Target
TRUST_PROXY
Default
false|true
Encryption KeyVariable

A secure random key used for encrypting sensitive data. Generate with `openssl rand -base64 32`

Target
ENCRYPTION_KEY
Maxmind License KeyVariable

License Key for the GeoLite2 Database. If the key is not provided, IP locations will be marked as unknown in audit logs.

Target
MAXMIND_LICENSE_KEY
Disable UI ConfigurationVariable

Disable the ability to configure the app via the UI. If enabled, you must set all required environment variables. See documentation: https://pocket-id.org/docs/configuration/environment-variables/#overriding-the-ui-configuration

Target
UI_CONFIG_DISABLED
Default
false|true
Database - ProviderVariable

The database provider to use.

Target
DB_PROVIDER
Default
sqlite|postgres
Database - Connection StringVariable

The connection string for the database. If using SQLite, this should be left as is.

Target
DB_CONNECTION_STRING
Default
file:data/pocket-id.db?_pragma=journal_mode(WAL)&_pragma=busy_timeout(2500)&_txlock=immediate
Value
file:data/pocket-id.db?_pragma=journal_mode(WAL)&_pragma=busy_timeout(2500)&_txlock=immediate
Upload PathVariable

Path inside the container where uploaded files are stored

Target
UPLOAD_PATH
Default
data/uploads
Value
data/uploads
Keys PathVariable

Path inside the container where keys are stored

Target
KEYS_PATH
Default
data/keys
Value
data/keys
GeoLite2 Database PathVariable

Path to the GeoLite2 database file.

Target
GEOLITE_DB_PATH
Default
data/GeoLite2-City.mmdb
Value
data/GeoLite2-City.mmdb
GeoLite2 Download LinkVariable

The URL to download the GeoLite2 database.

Target
GEOLITE_DB_URL
Default
https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=%s&suffix=tar.gz
Value
https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=%s&suffix=tar.gz
Internal PortVariabletcp

The port inside the container on which the server should listen. Not recommended to change.

Target
PORT
Default
1411
Value
1411
Internal HostVariable

The host inside the container on which the server should listen. Not recommended to change.

Target
HOST
Default
0.0.0.0
Value
0.0.0.0
Data PathPathrw

Data directory

Target
/app/data
Default
/mnt/user/appdata/pocket-id/data
Value
/mnt/user/appdata/pocket-id/data
PUIDVariable
Default
099
Value
099
PGIDVariable
Default
100
Value
100