Skip to content

Latest commit

 

History

History
137 lines (101 loc) · 5.76 KB

File metadata and controls

137 lines (101 loc) · 5.76 KB

Emby Signup 邀请注册系统

PHP SQLite

一个基于 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           # 邀请码管理后台

🔧 直接部署

  1. 环境准备:确保服务器安装了 PHP 7.4+ 以及 SQLite3 扩展。

  2. 下载源码:下载本项目至服务器。

  3. 配置修改:

    ●根据注释修改 ./config/config.php,填入 Emby API 信息及管理员账号。

    ●[新增] 在配置文件中填入您的 SMTP 邮箱服务信息(支持 QQ、Gmail、126 等)。

    ●[新增] 可按需编辑 ./config/email_template.txt 自定义发送给用户的邮件文案。

  4. 权限设置:PHP 需要对 ./config 目录有写入权限;将 Nginx 或 Apache 的网站根目录指向 ./public 目录。

🐳 Docker 部署

快速启动

  1. 下载镜像

    docker pull onelxzy/emby_signup:latest
  2. 创建配置文件目录 在宿主机创建一个目录用于保存配置(例如 config),以便重启容器后配置不丢失。

    mkdir -p config
  3. 启动容器 运行以下命令(请根据实际情况修改环境变量):

💡 提示:你也可以不设置任何 -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 加密方式 (ssltls)
SMTP_USERNAME - 发信邮箱账号
SMTP_PASSWORD - 邮箱密码或应用专用授权码
SMTP_FROM_NAME Emby Admin 邮件发件人显示名称
EMAIL_SUBJECT Emby 媒体服务器邀请函 邀请邮件的主题

📌 模板账号权限必须事先设置好! 新用户会完整继承该用户的 Emby 权限设置,请谨慎选择。


🌟 页面预览

与Emby风格适配的响应式自助注册页面,支持 PC 与移动端

image

邀请码后台管理界面

image image

🌍 项目地址

https://github.com/onelxzy/emby_signup


🚀 License

MIT License