Files
compose/pocket-id
..
2025-07-15 15:24:53 +08:00
2025-07-14 00:08:57 +08:00
2025-07-14 00:08:57 +08:00
2025-07-14 00:08:57 +08:00

Pocket ID

官网GitHub 项目

Pocket ID 是一款轻量级的 OpenID ConnectOIDC提供者仅支持基于 passkey 的身份认证(无密码),适合自托管、隐私优先的场景。

主要特性包括:

  • Passkey 登录:完全无密码认证,支持 WebAuthn例如 YubiKey 或浏览器内置 passkey。
  • 灵活注册策略:支持管理员手动创建用户、生成注册链接或开放注册。
  • LDAP 同步REST API 管理审计日志邮件提醒、深色/浅色模式等。

推荐使用 Docker Compose 快速部署。官方文档明确指出 HTTPS 要求,否则无法使用 passkey 功能。

环境变量说明

必填配置MUST change

变量名 说明
APP_URL 实例访问地址,须为 HTTPS例如https://auth.example.com
TRUST_PROXY 启用代理支持,设为 true 或设置 CIDR 段,如 192.168.0.0/24,视部署而定。
ENCRYPTION_KEY 用于加密敏感数据,应使用 openssl rand -base64 32 生成

默认设置(一般无需更改)

变量名 默认值 说明
HOST 0.0.0.0 容器监听接口
PORT 9000 容器监听端口
PUID / PGID 1000 容器内部运行的用户/组 ID
DB_PROVIDER sqlite 当前仅支持 SQLite 或 Postgres根据需求选
DB_CONNECTION_STRING file:data/pocket-id.db SQLite 存储路径
UPLOAD_PATH data/uploads 用于用户上传内容
KEYS_STORAGE database passkey 与内部密钥存储方式

可选配置

还可配置MaxMind GeoIP需许可证、LDAP 参数、审计日志设置、邮件通知、SMTP 参数等,详见官方文档:
官方环境变量配置说明

使用说明

默认通过 Traefik或其他 HTTPS 反向代理)暴露服务,无需直接映射容器端口。
首次访问 https://<your-domain>/login/setup 页面设置管理员账户和第一个 passkey。 运行后用户只能通过 passkey 登录,且必须使用 HTTPS 环境。

数据目录结构

所有数据持久化在宿主机 ./data

  • pocket-id.dbSQLite 数据库文件
  • uploads/:用户上传存储
    (若使用 PostgreSQL请按照 CONNECTION_STRING 覆盖配置)