Files
compose/pocket-id/README.md
2025-07-14 00:08:57 +08:00

54 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Pocket ID
[官网](https://pocket-id.org)[GitHub 项目](https://github.com/pocket-id/pocket-id)
> 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 参数等,详见官方文档:
[官方环境变量配置说明](https://pocket-id.org/docs/configuration/environment-variables/)
### 使用说明
默认通过 Traefik或其他 HTTPS 反向代理)暴露服务,无需直接映射容器端口。
首次访问 `https://<your-domain>/login/setup` 页面设置管理员账户和第一个 passkey。
运行后用户只能通过 passkey 登录,且必须使用 HTTPS 环境。
### 数据目录结构
所有数据持久化在宿主机 `./data`
- `pocket-id.db`SQLite 数据库文件
- `uploads/`:用户上传存储
(若使用 PostgreSQL请按照 CONNECTION_STRING 覆盖配置)