在 Serv00 上安装 Alist 并通过 Cloudflare Tunnel 映射域名
今天,我将分享如何在我们的服务器 Serv00 上安装 Alist,并通过 Cloudflare Tunnel 将其映射到自己的域名。同时,我们会使用 PM2 来管理 Alist 服务的运行环境和监控。🚀
安装 PM2
首先,通过 SSH 连接到 Serv00,然后使用一键脚本安装 PM2。PM2 是一个流行的 Node.js 进程管理器,可以帮助我们更好地管理应用程序。运行以下命令:
1 | bash <(curl -s https://raw.githubusercontent.com/k0baya/alist_repl/main/serv00/install-pm2.sh) |
安装 Alist
前往 Alist 的 GitHub 发布页,找到适合 Serv00 的 Alist 测试版本(注意选择 FreeBSD amd64)。在服务器上创建一个文件夹用于存放 Alist 文件:
1 | mkdir -p ~/domains/alist |
接下来,下载并解压 Alist:
1 | wget https://github.com/AlistGo/alist/releases/download/beta/alist-freebsd-amd64.tar.gz -O - | tar -xz -C ~/domains/alist |
配置端口和服务
在服务器面板的 Port Reservation 选项卡中放行一个随机 TCP 端口。在刚刚下载的 Alist 目录下,使用以下命令生成管理密码:
1 | ./alist admin random |
然后启动服务来生成配置文件:
1 | ./alist --server |
启动后通过 Ctrl + C
停止服务,编辑配置文件。在当前路径下的 data
文件夹中找到 config.json
文件,使用 vim
或面板中的 File Manager 编辑,将 Alist 的端口修改为之前放行的端口,并将 scheme
的 address
属性改为 127.0.0.1
(可选,防止别人通过 IP+端口访问,后面我们使用 HTTPS+域名)。
你还可以根据需要修改数据库配置,Serv00 提供了 MySQL、PostgreSQL 和 MongoDB,您可以选择适合自己的数据库,或者使用 Alist 自带的 SQLite。
使用 PM2 管理和启动 Alist:
1 | pm2 start ./alist -- server |
检查应用运行状态:
1 | pm2 ls |
通过 Cloudflare Tunnel 映射域名
- 打开 Cloudflare Zero Trust 控制面板,创建一个 Zero Trust,选择免费计划并设置支付方式(需要境内的双币卡)。
- 在 Network 的 Tunnels 中创建一个 Tunnel,选择 Cloudflared 部署方式,输入 Tunnel 名字,然后复制命令行并记下 token。
前往 Cloudflared 下载页面,下载适合 FreeBSD 的 Cloudflared:
1 | wget https://cloudflared.bowring.uk/binaries/cloudflared-freebsd-2024.11.1.7z && 7z x cloudflared-freebsd-2024.11.1.7z && rm cloudflared-freebsd-2024.11.1.7z && mv -f ./temp/cloudflared-freebsd-2024.11.1 ./cloudflared && rm -rf temp |
使用 PM2 启动 Cloudflared:
1 | pm2 start ./cloudflared -- tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token ARGO_TOKEN |
记得将 ARGO_TOKEN
替换为你的实际 Token。
在 Cloudflare 面板中配置域名对应的端口,为你的域名配置一个子域名,Leave Path 空白,URL 填写为内网服务的 IP 加端口号。Type 建议使用 HTTP,因为 Cloudflare 会自动提供 HTTPS。
结果与评价
完成上面的步骤后,你可以直接输入刚刚设置的域名来访问 Alist。这种方法不仅提供了简单配置的低门槛条件,还为 Self-hosted 玩家提供了丰富的探索空间。🎉
然而需要注意的是,由于 Cloudflare Tunnel 在国内的访问速度不佳,并且可能存在断流情况,请根据需要谨慎使用。✨