打开/关闭搜索
搜索
打开/关闭菜单
54
677
62
1925
md5.pw
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
登录
请求账号
查看“︁Bandwagong服务器部署2FAuth”︁的源代码
来自md5.pw
分享此页面
更多语言
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
Bandwagong服务器部署2FAuth
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
2FAuth 是一款由 PHP (Laravel) 编写的自托管二步验证(2FA)管理工具。相比 Google Authenticator,它最大的优势在于数据完全掌握在自己手中,且支持 Web 端跨设备访问。 ⚠️ 注意:该项目对文件权限和路径映射非常敏感。网上的旧教程(包括部分官方文档示例)容易导致 <code>Permission denied</code> 或 <code>500 Server Error</code>。 == 0. 环境准备 == * 服务器系统:Debian 11/12 或 Ubuntu 20.04+ * 核心组件:Docker & Docker Compose 如果你是新拿到手的 VPS,请先执行下面的一键命令安装 Docker: apt update && apt upgrade -y [[File:1453.png|center|thumb|800x800px]] curl -fsSL <nowiki>https://get.docker.com</nowiki> -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable --now docker [[File:79f956.png|center|thumb|800x800px]] [[File:45678.png|center|thumb|800x800px]] 执行完上面的命令,再输入<code>systemctl status docker</code> 并回车。 看到<code>Active: active</code> 就说明docker已经成功安装并正在运行中了。 == 1. 建立目录与解决权限(最关键一步!) == 这是大部分人失败的原因:Docker 自动创建的目录属于 <code>root</code> 用户,而 2FAuth 容器内部使用 <code>1000</code> (www-data) 用户,导致没有权限写入数据库。 我们需要先创建目录,并提前授权: <code># 1. 创建项目根目录 mkdir -p /root/data/docker_data/2fauth # 2. 创建核心数据目录 mkdir -p /root/data/docker_data/2fauth/data # 3. 【核心步骤】修改权限 # 将 data 目录的所有权赋予容器内的用户(ID 1000) # 如果不做这一步,容器会因无法生成数据库文件而无限重启 chown -R 1000:1000 /root/data/docker_data/2fauth/data # 4. 进入项目目录 cd /root/data/docker_data/2fauth</code> [[File:4345313.png|center|thumb|800x800px]] == 2. 生成 APP_KEY == Laravel 框架必须有一个 32 位的密钥才能运行。在终端执行以下命令,复制输出的字符串: <code>'''openssl''' rand -base64 32</code> ''输出示例:<code>base64:xgT+...(一长串字符)...=</code>'' == 3. 配置文件编写 == 我们需要创建两个文件:<code>.env</code> 和 <code>docker-compose.yml</code>。 === 第一步:创建 .env 文件 === 这里我们移除了容易引发冲突的数据库路径配置,直接使用容器默认值。 vim .env 粘贴以下内容(请务必替换你的 APP_KEY): <code># --- 基础配置 --- APP_NAME=2FAuth APP_ENV=production APP_DEBUG=false APP_URL=<nowiki>http://你的服务器IP:8000</nowiki> # --- 密钥配置 (必须修改) --- # 将第2步生成的 base64 字符串完整粘贴在这里 APP_KEY=base64:你刚刚生成的密钥 # --- 数据库配置 --- # 仅保留连接类型,不要手动指定 DB_DATABASE 路径! # 让容器自动使用默认的 /2fauth/database.sqlite DB_CONNECTION=sqlite</code> [[File:4353.png|center|thumb|800x800px]] === 第二步:创建 docker-compose.yml === <code>'''vim''' docker-compose.yml</code> 粘贴以下内容。注意:我们将整个 <code>./data</code> 挂载到了容器的 <code>/2fauth</code> 目录,这样可以确保存储、日志和数据库都能正确持久化且互不冲突。 <code>'''version''': "3" '''services''': '''2fauth''': '''image''': 2fauth/2fauth:latest '''container_name''': 2fauth '''restart''': unless-stopped '''ports''': - 8000:8000/tcp '''env_file''': .env '''volumes''': # 【核心修改】直接挂载应用根目录 # 这样 database.sqlite 会自动生成在宿主机的 ./data 目录下 - ./data:/2fauth</code> [[File:99f13.png|center|thumb|800x800px]] == 4. 启动服务 == 确认当前目录结构如下: * <code>/2fauth</code> ** <code>.env</code> ** <code>docker-compose.yml</code> ** <code>/data</code> (权限已改为 1000:1000) [[File:7e8913e2.png|center|thumb|800x800px]] 执行启动命令: '''docker compose up -d'''</code> [[File:9bef1ff45.png|center|thumb|800x800px]] == 5. 验证部署 == 查看实时日志: '''docker compose logs -f'''</code> 部署成功的标志: 你需要耐心等待几秒钟,当你看到日志中出现密密麻麻的 <code>Running migrations</code>,并且包含 <code>create_users_table</code>、<code>create_options_table</code> 等字样,最后停在:<blockquote><code>Application key set successfully.</code></blockquote>这说明数据库初始化完美完成! 现在,打开浏览器访问 <code><nowiki>http://你的IP:8000</nowiki></code>,即可看到登录界面。点击 Register 注册你的第一个账号(自动成为管理员)。 [[File:9ff84e90-cb5.png|center|thumb|800x800px]]完成后,需要给网站加上HTTPS进行访问的话,可以参考:[[如何搭建Nginx Proxy Manager并使用反向代理和远程桌面加速]] [[Category:500 常见应用指南 — Application Guides]]
返回
Bandwagong服务器部署2FAuth
。
查看“︁Bandwagong服务器部署2FAuth”︁的源代码
来自md5.pw