版本说明

Emby 用户管理的 Docker 部署适合需要在服务器上快速安装 EmbyUserHub 的管理员。本指南覆盖一键安装脚本、Docker Compose 和 Docker Run 三种方式,帮助完成 Emby 多用户开号与权限管理系统的部署。

当前版本: v5.0.0.0.beta(Docker Hub latest)
更新日期: 2026-10-27

功能介绍见 EmbyUserHub 官网功能页;完整帮助文档见 license.embyuserhub.cc/docs。


快速部署

方式一:一键安装脚本(推荐)

bash -c "$(curl -fsSL https://install.embyuserhub.cc/embyuserhub_install.sh)"

脚本会自动:

  • 生成并保存 FLASK_SECRET_KEY(重装后保持一致)

  • 创建数据目录

  • 拉取最新镜像

  • 启动容器

方式二:Docker Compose

  1. 创建 docker-compose.yml:

version: '3'
services:
  embyuserhub:
    image: maxiaotuhub/embyuserhub:latest
    container_name: embyuserhub
    hostname: embyuserhub
    restart: always
    ports:
      - "29045:29045"
    volumes:
      - /opt/embyuserhub/data:/app/data
      - /opt/embyuserhub/config:/app/config
    environment:
      - TZ=Asia/Shanghai
      # 32位随机密钥,可直接使用或自行生成: head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32
      - FLASK_SECRET_KEY=EmbyUserHub2025SecretKey1234567
      - ENABLE_SECURITY_ACCESS=True
      - CRON_MODE=thread
  1. 启动:

# 创建目录
mkdir -p /opt/embyuserhub/{data,config}

docker-compose up -d

方式三:Docker Run

# 创建目录
mkdir -p /opt/embyuserhub/{data,config}

# 生成密钥(首次安装)
FLASK_KEY=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)
echo "你的 FLASK_SECRET_KEY: $FLASK_KEY"
echo "⚠️ 请保存此密钥,重装时需要使用相同的值!"

# 启动容器
docker run -d \
  --name embyuserhub \
  --hostname embyuserhub \
  --restart always \
  -p 29045:29045 \
  -v /opt/embyuserhub/data:/app/data \
  -v /opt/embyuserhub/config:/app/config \
  -e TZ=Asia/Shanghai \
  -e FLASK_SECRET_KEY=${FLASK_KEY} \
  -e ENABLE_SECURITY_ACCESS=True \
  -e CRON_MODE=thread \
  maxiaotuhub/embyuserhub:latest

⚠️ 重要:关于 FLASK_SECRET_KEY

FLASK_SECRET_KEY 是系统的核心密钥,用于 Flask 会话加密。

必须遵守的原则

场景

处理方式

首次安装

生成唯一的 32 位随机字符串

重装 / 升级

必须与首次安装时相同

密钥不一致会导致

  • ❌ 系统状态重置

  • ❌ 用户登录会话失效

  • ❌ 需要重新配置部分设置


镜像仓库

仓库

地址

说明

Docker Hub

maxiaotuhub/embyuserhub

推荐

GitHub Container

ghcr.io/maxiaotu/embyuserhub

备用

标签说明

标签

说明

latest

当前与 5.0.0.0.beta 对齐

x.x.x.xxx

指定版本号

x.x.x.xxx.beta

测试版


环境变量

变量

必填

说明

默认值

FLASK_SECRET_KEY

是

会话加密密钥(32位)

-

TZ

否

时区

Asia/Shanghai

SESSION_COOKIE_SECURE

否

Cookie 仅走 HTTPS(公网 HTTPS 务必 true)

false

ENABLE_SECURITY_ACCESS

否

启用安全访问码

True

CRON_MODE

否

定时任务模式

thread

LOG_LEVEL

否

日志级别

INFO


卷挂载

宿主机路径

容器路径

说明

/opt/embyuserhub/data

/app/data

数据库、授权文件

/opt/embyuserhub/config

/app/config

配置文件、密钥保存

⚠️ 卸载时保留 data 和 config 目录可以保留所有数据。


更新升级

一键安装脚本用户

运行脚本选择「更新」选项即可。

Docker Compose 用户

docker-compose pull
docker-compose up -d

Docker Run 用户

docker stop embyuserhub && docker rm embyuserhub
docker pull maxiaotuhub/embyuserhub:latest

docker run -d \
  --name embyuserhub \
  --hostname embyuserhub \
  --restart always \
  -p 29045:29045 \
  -v /opt/embyuserhub/data:/app/data \
  -v /opt/embyuserhub/config:/app/config \
  -e TZ=Asia/Shanghai \
  -e FLASK_SECRET_KEY=你之前的密钥 \
  -e ENABLE_SECURITY_ACCESS=True \
  -e CRON_MODE=thread \
  maxiaotuhub/embyuserhub:latest

访问地址

页面

地址

用户中心

http://IP:29045

管理后台

http://IP:29045/安全访问码

默认用户

admin

默认密码

admin123

默认安全访问码:admin123(在 /opt/embyuserhub/config/config.py 修改;改完后重启容器生效)。

用户中心与管理后台是两个入口:普通用户走 http://IP:29045,管理员走 http://IP:29045/安全访问码(默认即 http://IP:29045/admin123)。


常见问题

1. 重装后需要重新配置

原因:重装后 FLASK_SECRET_KEY 与之前不一致。

解决:使用一键安装脚本(自动管理密钥),或手动确保每次部署使用相同的密钥。

2. 端口冲突

修改端口映射,例如:

-p 29046:29045

3. 数据迁移

复制 /opt/embyuserhub/data 和 /opt/embyuserhub/config 到新服务器,再按同样方式启动容器即可。

4. 忘记密码 / 安全码

方法一:一键安装脚本(推荐)

bash embyuserhub_install.sh

选择 6 进入「登录问题/密码重置」:

  • 1 - 查看安全配置状态

  • 2 - 重置管理员密码

  • 3 - 重置安全访问码

  • 4 - 重置两步验证 (TOTP)

  • 6 - 完全重置(恢复默认)

方法二:手动重置

docker exec embyuserhub python3 -c "
import sys
sys.path.insert(0, '/app')
from utils.config_store import SecureConfigStore
config_store = SecureConfigStore()
config = config_store.load_config()
config['ADMIN_PASSWORD'] = '新密码'
config['SECURITY_CODE'] = '新安全码'
config_store.save_config(config)
print('密码和安全码已重置')
"
docker restart embyuserhub

方法三:完全重置(恢复默认值)

rm -f /opt/embyuserhub/data/secure_config.json
docker restart embyuserhub

重置后默认:用户名 admin,密码 admin123,安全码 admin123。