
esutwo/privacyideaGitHub链接
该镜像用于打包PrivacyIdea,因官方未提供官方镜像,旨在简化PrivacyIdea的部署流程。
PrivacyIdea是一款开源多因素认证系统,支持TOTP、HOTP、YubiKey等多种令牌类型。本Docker镜像为非官方打包版本,解决官方镜像缺失问题,提供容器化部署方案,适用于企业级身份验证、开发测试及小型团队认证管理场景。
/pi/mnt目录,持久化存储数据库文件、加密密钥和审计日志密钥DATABASE_URI配置MySQL等外部数据库PI_ENCFILE)和审计日志密钥对(PI_AUDIT_KEY_PRIVATE/PII_AUDIT_KEY_PUBLIC)DEBUG变量启用调试日志和测试服务器,便于问题排查DB_CHECK=True可循环等待数据库服务上线bashdocker build -t privacyidea:latest .
bashdocker run --rm -it -v $(pwd)/data:/pi/mnt \ -e SECRET_KEY='your_unique_secret' \ -e PI_PEPPER='your_unique_pepper' \ -p 8000:8000 \ privacyidea:latest
-v $(pwd)/data:/pi/mnt:挂载本地目录至容器,持久化存储数据-e SECRET_KEY/PI_PEPPER:加密密钥,建议使用唯一且高强度值-p 8000:8000:映射端口,访问Web界面(http://localhost:8000)容器运行后,通过以下命令创建管理员:
bashdocker exec -it privacyidea /opt/privacyidea/bin/pi-manage admin <用户名> -p <密码>
示例(创建用户bob,密码bobspwd):
bashdocker exec -it privacyidea /opt/privacyidea/bin/pi-manage admin bob -p bobspwd
| 变量名 | 默认值 | 描述 |
|---|---|---|
DEBUG | False | 启用调试日志和测试服务器 |
SECRET_KEY | 随机值 | 用于加密数据,应设置唯一值 |
PI_PEPPER | 随机值 | 用于加密管理员密码,应设置唯一值 |
DATABASE_URI | sqlite:////pi/mnt/data.sqlite | 数据库连接URI,详见数据库配置文档 |
DB_CHECK | <无> | 设置为True时循环等待数据库服务上线 |
PI_LOGCONFIG | /pi/logging.yml | 日志配置文件位置 |
PI_ENCFILE | /pi/mnt/enckey | 加密令牌数据文件,不存在时自动生成 |
PI_AUDIT_KEY_PRIVATE | /pi/mnt/audit-private.pem | 审计日志签名私钥,不存在时自动生成 |
PII_AUDIT_KEY_PUBLIC | /pi/mnt/audit-public.pem | 审计日志签名公钥,不存在时自动生成 |
PRIVACYIDEA_CONFIGFILE | /pi/pi.cfg | 主配置文件位置 |
bashdocker run --rm -it -v $(pwd)/data:/pi/mnt \ -e SECRET_KEY='secure_key' \ -e PI_PEPPER='secure_pepper' \ -e DATABASE_URI='mysql+pymysql://user:pass@mysql-host:3306/privacyidea?charset=utf8' \ -e DB_CHECK=True \ -p 8000:8000 \ privacyidea:latest
bashdocker run --rm -it -v $(pwd)/data:/pi/mnt \ -e DEBUG=True \ -p 8000:8000 \ privacyidea:latest
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务