
1. docker部署
mkdir -p ~/2fauth
# 权限(容器内uid=1000,不加容易读写报错)
chown 1000:1000 ~/2fauth
chmod 700 ~/2fauthdocker run -d \
--name 2fauth \
--restart unless-stopped \
-p 8000:8000/tcp \
-v ~/2fauth:/2fauth \
-e APP_KEY=SomeRandomStringOf32CharsExa1234 \
-e APP_NAME=2FAuth \
-e APP_URL=https://你的域名 \
-e IS_DEMO_APP=false \
2fauth/2fauth-e APP_URL=https://你的域名 \ 这一行可以不要
2. 常用命令
# 查看状态
docker ps |grep 2fauth
# 看日志排查问题
docker logs -f 2fauth
# 停止
docker stop 2fauth
# 重启
docker restart 2fauth3. ⚠️ 重点安全提醒
- APP_URL:如果你用域名 + HTTPS 反代,这里必须写完整
https://xxx.xxx,否则登录、Cookie、扫码会异常。 - 必须套 HTTPS(Nginx/Caddy/Cloudflare),裸 HTTP 访问会导致网页扫码功能失效。
- 数据都在宿主机
~/2fauth,定期备份里面的 database.sqlite。 - 容器目录权限问题很常见:如果网页报读写错误,重新执行
chown 1000:1000 ~/2fauth
4. 重点:2FAuth 没有内置默认管理员账号!
没有预设账号 / 密码,访问 ip:8000 会直接进入注册页面,你手动注册的第一个账号自动就是管理员2FAuth。
Demo 账号 demo@2fauth.app / demo 只是官网演示站用的,你的自建实例无效。5. 操作步骤
- 浏览器打开
http://你的服务器IP:8000 - 点 Register【注册】
- 填写:邮箱(随便写,不一定真实邮箱,如
admin@local.test)、你的名字、自定义强密码 提交注册 → 这第一个账号 = 管理员
- 管理员仅能修改全局站点选项;不能查看其他用户的 2FA 密钥,每个用户数据隔离2FAuth
- 注册完成直接登录,就可以添加 TOTP 令牌
6. ⚠️ 常见踩坑
注册页面打不开 / 提交报错
chown 1000:1000 ~/2fauth chmod 700 ~/2fauth- 大概率是目录权限问题:
- 或者 APP_URL 配置不对,如果你现在是裸 IP 访问,
APP_URL=http://IP:8000;后续套域名 HTTPS,必须改成https://xxx.domain.com,否则 Cookie、表单、扫码异常。
- 不想其他人注册账号
登录管理员账号后,进入Settings > Options,勾选 Disable registration,关闭注册入口,别人就无法新建账号了。
7. 忘记密码怎么办(命令行重置)
# 进入容器执行 artisan 重置密码
docker exec -it 2fauth php artisan user:reset-password跟着提示输入你注册用的邮箱,重置密码。
©版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

评论已关闭