Bubka/2FAuth

GitHub

1. docker部署

mkdir -p ~/2fauth
# 权限(容器内uid=1000,不加容易读写报错)
chown 1000:1000 ~/2fauth
chmod 700 ~/2fauth
docker 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 2fauth

3. ⚠️ 重点安全提醒

  1. APP_URL:如果你用域名 + HTTPS 反代,这里必须写完整 https://xxx.xxx,否则登录、Cookie、扫码会异常。
  2. 必须套 HTTPS(Nginx/Caddy/Cloudflare),裸 HTTP 访问会导致网页扫码功能失效。
  3. 数据都在宿主机 ~/2fauth,定期备份里面的 database.sqlite。
  4. 容器目录权限问题很常见:如果网页报读写错误,重新执行 chown 1000:1000 ~/2fauth

4. 重点:2FAuth 没有内置默认管理员账号!

没有预设账号 / 密码,访问 ip:8000 会直接进入注册页面,你手动注册的第一个账号自动就是管理员2FAuth。

Demo 账号 demo@2fauth.app / demo 只是官网演示站用的,你的自建实例无效。

5. 操作步骤

  1. 浏览器打开 http://你的服务器IP:8000
  2. 点 Register【注册】
  3. 填写:邮箱(随便写,不一定真实邮箱,如 admin@local.test)、你的名字、自定义强密码
  4. 提交注册 → 这第一个账号 = 管理员

    • 管理员仅能修改全局站点选项;不能查看其他用户的 2FA 密钥,每个用户数据隔离2FAuth
  5. 注册完成直接登录,就可以添加 TOTP 令牌

6. ⚠️ 常见踩坑

  1. 注册页面打不开 / 提交报错

    chown 1000:1000 ~/2fauth
    chmod 700 ~/2fauth
    • 大概率是目录权限问题:
    • 或者 APP_URL 配置不对,如果你现在是裸 IP 访问,APP_URL=http://IP:8000;后续套域名 HTTPS,必须改成 https://xxx.domain.com,否则 Cookie、表单、扫码异常。
  2. 不想其他人注册账号
    登录管理员账号后,进入 Settings > Options,勾选 Disable registration,关闭注册入口,别人就无法新建账号了。

7. 忘记密码怎么办(命令行重置)

# 进入容器执行 artisan 重置密码
docker exec -it 2fauth php artisan user:reset-password

跟着提示输入你注册用的邮箱,重置密码。

©版权声明
THE END
点赞0 分享
评论 抢沙发

评论已关闭