OpenWRT 部署 2FAuth

在 OpenWrt 上部署 2FAuth,最推荐的方式是使用 Docker。因为 2FAuth 官方提供了 Docker 镜像,而 OpenWrt 可以安装 Docker 来运行它,这能避免直接安装 PHP 环境和依赖的繁琐过程。 🐳 部署前准备 在开始之前,请确保你的 OpenWrt 设备满足以下

在 OpenWrt 上部署 2FAuth,最推荐的方式是使用 Docker。因为 2FAuth 官方提供了 Docker 镜像,而 OpenWrt 可以安装 Docker 来运行它,这能避免直接安装 PHP 环境和依赖的繁琐过程。

🐳 部署前准备

在开始之前,请确保你的 OpenWrt 设备满足以下条件:

  1. 已安装 Docker:如果你的 OpenWrt 尚未安装 Docker,可以通过 ​opkg​ 包管理器进行安装。在 SSH 中执行以下命令(请根据你的设备架构调整):

    opkg update
    opkg install dockerd docker-compose
    
  2. ​足够的存储空间​:2FAuth 的 Docker 镜像和数据会占用一定空间,建议确保设备有至少 500MB 的可用空间。

🚀 部署 2FAuth (Docker Compose 方式)

​关键点​:​APP_KEY​ 是必须设置的,它是用于加密数据库和会话的安全密钥,​一旦设置后务必妥善保存,丢失将导致所有数据无法解密​。

你可以使用以下命令生成一个安全的 ​APP_KEY​:

docker run -it --rm --entrypoint /usr/bin/php 2fauth/2fauth artisan key:generate --show

复制命令输出的密钥(一串32位的字符串,包括 base64:),然后在下面的 ​docke-compose.yml​ 中使用它。

创建一个 ​docker-compose.yml​ 文件,内容如下:

services:
  2fauth:
    image: 2fauth/2fauth:latest
    container_name: 2fauth
    restart: unless-stopped
    volumes:
      - 2fauth_data:/2fauth   # 使用命名卷
    ports:
      - "8000:8000"
    environment:
      - APP_NAME=2FAuth
      - APP_ENV=local
      - APP_TIMEZONE=Asia/Shanghai
      - APP_DEBUG=false
      - APP_KEY=<粘贴刚刚生成的32位App_key>
      - APP_URL=https://2fauth.fmzhong.top # 设置为你的外部访问地址并部署SSL证书

volumes:
  2fauth_data:   # 声明命名卷

将文件保存到 OpenWrt 上(例如 ​/root/docker-compose.yml​),然后在该目录下执行以下命令启动服务:

docker-compose up -d

🔧 配置与访问

  1. ​开放防火墙​:如果你的 OpenWrt 启用了防火墙,需要允许外部访问你映射的端口(例如 8000)。可以通过 LuCI 界面或 ​iptables​ 命令添加规则。

  2. ​访问 2FAuth​:在浏览器中输入 ​http://你的OpenWrt设备IP:8000​,你应该能看到 2FAuth 的初始设置页面。

  3. ​创建管理员账户​:首次访问时,按照页面提示创建管理员账户,即可开始使用。

⚠️ 极其重要的安全警告(务必阅读)

2FAuth 是你所有账号的最后一道防线。如果你丢失了 2FAuth 的数据,你将无法登录你绑定了 2FA 的所有账号。

  1. 备份数据:因为你用的是 Docker 命名卷,你的所有 2FA 密钥都保存在 2fauth_data 这个卷里(对应宿主机目录 /var/lib/docker/volumes/...)。

    • 建议定期在 2FAuth 界面使用 “导出” 功能,下载一份 JSON 备份文件,保存在安全的地方。

    • 或者定期备份你的 Docker 卷。

  2. 保存恢复码:在 GitHub 等网站开启 2FA 时,它们会给你一次性的恢复码(Recovery Codes)。请务必将这些恢复码复制到安全的地方(比如密码管理器或打印出来),不要只存在 2FAuth 里。

  3. APP_KEY 不要丢:你之前设置的 APP_KEY绝对不能丢失或更改。如果丢了这个,即使你有数据库文件,里面的数据也无法解密。

  4. 不要轻易删除容器数据:以后如果升级 2FAuth,千万不要执行 docker-compose down -v(-v 会删除数据卷),只能执行 docker-compose down 或直接 docker-compose pull && docker-compose up -d。

评论