一个基于 PHP + SQLite 的 Emby 媒体服务器自助注册系统。允许管理员发放一次性邀请码,用户可通过 Web 页面自主创建新账号。系统会自动复制预设模板用户的配置和权限,并核销邀请码。
⚠️ 安全警告:本程序涉及 Emby 核心 API 操作及数据库读写。请务必配置好目录权限,并禁止公网直接访问配置文件目录,谨防 Token 或数据库泄露。
- 🛡️ 邀请码机制:新增 SQLite 数据库支持,实现邀请码的生成、验证与自动核销(一次性使用)。
- 📧 邮件通知:[新增] 集成 SMTP 服务,支持一键发送包含邀请码和注册链接的邀请邮件,支持自定义邮件模板。
- 📂 配置分离:配置文件、数据库与前端页面分离,提升安全性与维护便利性。
- 📝 自动开户:通过 Emby API 自动完成用户创建。
- ©️ 权限克隆:完美复制模板用户的配置(包括媒体库访问权限、播放设置等)。
- 🔐 安全校验:支持密码强度校验(长度、数字、字母组合)。
- 💻 简洁界面:响应式设计,适配 PC 与移动端,支持链接自动填充邀请码。
建议的部署结构如下,请确保 Web 服务器根目录指向 public 文件夹:
/www
├── config/ # [核心] 存放配置和数据库,严禁外部访问
│ ├── config.php # 配置文件 (需配置 Emby API 及 SMTP 信息)
│ ├── database.php # 数据库操作类
│ ├── email_template.txt # [新增] 邀请邮件内容模板 (可自定义)
│ └── invite_codes.sqlite # SQLite 数据库文件 (自动生成)
└── public/ # [前端] Web 服务器根目录
├── index.php # 主页面
├── register.php # 注册页面入口
└── admin.php # 邀请码管理后台
-
环境准备:确保服务器安装了 PHP 7.4+ 以及 SQLite3 扩展。
-
下载源码:下载本项目至服务器。
-
配置修改:
●根据注释修改
./config/config.php,填入 Emby API 信息及管理员账号。●[新增] 在配置文件中填入您的 SMTP 邮箱服务信息(支持 QQ、Gmail、126 等)。
●[新增] 可按需编辑
./config/email_template.txt自定义发送给用户的邮件文案。 -
权限设置:PHP 需要对
./config目录有写入权限;将 Nginx 或 Apache 的网站根目录指向./public目录。
-
下载镜像
docker pull onelxzy/emby_signup:latest
-
创建配置文件目录 在宿主机创建一个目录用于保存配置(例如
config),以便重启容器后配置不丢失。mkdir -p config
-
启动容器 运行以下命令(请根据实际情况修改环境变量):
💡 提示:你也可以不设置任何
-e环境变量直接启动。容器启动后会自动在挂载的./config目录下生成config.php,你可以直接编辑该文件填入配置,然后重启容器即可。
docker run -d \
--name emby-signup \
--restart always \
-p 8888:80 \
-v $(pwd)/config:/var/www/html/config \
-e EMBY_BASE_URL="http://192.168.1.10:8096" \
-e EMBY_API_TOKEN="你的EmbyAPI密钥" \
-e EMBY_TEMPLATE_USER_ID="复制权限的模板用户ID" \
-e SITE_LOGIN_URL="http://192.168.1.10:8096" \
-e ADMIN_USERNAME="admin" \
-e ADMIN_PASSWORD="password" \
-e SMTP_HOST="smtp.qq.com" \
-e SMTP_PORT="465" \
-e SMTP_SECURE="ssl" \
-e SMTP_USERNAME="your_email@qq.com" \
-e SMTP_PASSWORD="your_smtp_password" \
-e SMTP_FROM_NAME="Emby Admin" \
onelxzy/emby_signup:latest| 变量名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
EMBY_BASE_URL |
✅ | - | Emby 服务器地址 |
EMBY_API_TOKEN |
✅ | - | 在 Emby 控制台 -> 高级 -> API 密钥中生成 |
EMBY_TEMPLATE_USER_ID |
✅ | - | 用于复制权限/配置的模板用户 ID |
SITE_LOGIN_URL |
✅ | - | 注册成功后跳转的登录地址 |
ADMIN_USERNAME |
❌ | admin |
后台管理面板用户名 |
ADMIN_PASSWORD |
❌ | password |
后台管理面板密码 |
SMTP_HOST |
✅ | - | SMTP 服务器 (如 smtp.qq.com) |
SMTP_PORT |
❌ | 465 |
SMTP 端口 |
SMTP_SECURE |
❌ | ssl |
加密方式 (ssl 或 tls) |
SMTP_USERNAME |
✅ | - | 发信邮箱账号 |
SMTP_PASSWORD |
✅ | - | 邮箱密码或应用专用授权码 |
SMTP_FROM_NAME |
❌ | Emby Admin |
邮件发件人显示名称 |
EMAIL_SUBJECT |
❌ | Emby 媒体服务器邀请函 |
邀请邮件的主题 |
📌 模板账号权限必须事先设置好! 新用户会完整继承该用户的 Emby 权限设置,请谨慎选择。
与Emby风格适配的响应式自助注册页面,支持 PC 与移动端
邀请码后台管理界面
https://github.com/onelxzy/emby_signup
MIT License