利用阿里云云函数 FC 搭建AList后端,每月仅需5毛!

还是建议购买一个便宜的云服务器来部署或者用家里云,这种方法很灵车 推荐Akile:https://akile.io/register?aff_code=503fe5ea-e7c5-4d68-ae05-6de99513680e 原理 AList前端有一个专门的项目:https://github.com/AlistGo/alist-web 。可前往AList-Web部署教程。教程使用了Cloudflare Page进行前端部署,我们更建议你使用 https://vercel.com 来进行前端部署,因为更快。这些都完全免费 部署完毕前端后,我们就需要一个后端,它需要能够执行AList的二进制文件,并且能开放端口(默认为5244)来让前端可以和后端相互通信。在传统情况下我们会选择购买一台云服务器,或者用自己的电脑/家里云+Cloudflare Tunnel又或者是Serv00这种免费的托管。本篇我们使用阿里云FC函数计算,它虽然可以运行二进制文件,但是和传统架构大相径庭,我们要深入了解。 FC函数是一个实例性服务。用户可以创建函数部署服务,当一定条件被触发(比如HTTP触发器)则创建新的实例开始运行用户的服务。也就是说这个实例是无状态的,如果直接拿来部署AList就会导致第一次配置完毕后过一段时间再访问就会变为初始状态。就算你一开始就使用一个全量包来部署,在部署后也无法对其进行更改,所以我们需要绑定一个NAS文件系统,用于数据持久化。但是NAS文件系统并不能直接绑定到代码的运行时 /code/xxx 目录,我们可以使用AList的指定配置文件参数,将NAS绑定到 /mnt/AList 然后指定配置文件到 /mnt/AList 。也就是通过 ./alist server –data /mnt/AList 命令来启动,这样就做到了数据持久化。 关于计费 FC函数通过CU数来收费 NAS通过存储空间来收费 实操 我们假设你已经部署完毕了前端。前端和后端的通信地址在根目录的 env.production 文件定义 我们目前并不知道这个后端URL如何填写,因为这个URL是由阿里云在FC函数创建完毕的时候才会展示,所以我们暂且搁置到一遍 接下来我们前往阿里云-函数计算FC官网 https://fcnext.console.aliyun.com/overview 依次点击 左侧边栏的 函数 -> 创建函数 -> Web函数。进入到创建Web函数的页面 函数名称填写AList,运行环境选择Debian 10或Debian 11,代码上传方式选择从文件夹上传代码,启动命令填写:./alist server –data /mnt/AList,监听端口填写5244 我们需要上传代码到函数,也就是AList的二进制文件,我们前往 https://github.com/AlistGo/alist/releases/latest 下载最新的Linux AMD64架构的二进制文件,也就是 alist-linux-amd64.tar.gz。将其解压,你会得到一个名为 alist的二进制文件,创建一个空文件夹将其放进去,然后上传这个文件夹到函数 然后点击左下角的创建 然后你会进入到函数的控制面板,依次点击 配置 -> 网络 -> 网络 编辑 -> 允许访问VPC:是 -> 自动配置。依次点击 配置 -> 存储 -> NAS文件存储 编辑 -> 挂载 NAS 文件系统:启用 -> 自动配置。依次点击 日志 -> 开通日志服务 ...

January 12, 2025 · 1 min · 99 words

教你把AList的前端部署到CF Pages!让你的AList秒加载!

前情提要# 本教程不是 AList 的无服务器部署,仅将前端页面部署到 Cloudflare Pages,这样用户就能很快从 cf 的边缘节点拉取前端文件,而不用 cf 回源,提高浏览体验,后端仍然需要一台开放到公网的服务器部署 AList(无公网服务器可使用 Cloudflare Tunnels) 首先,保证你的后端服务器支持v4v6双栈访问 使用Cloudflare Tunnel,套cf 分别设置A和AAAA解析,麻烦,如果你的IP很快,那其实可以不用前后端分离,暴露源站的前后端分离也不能避免被DDoS,因为你的源站会在HTTP报文中暴露 然后,开始正式将AList前端部署到Cloudflare Pages Fork仓库: https://github.com/alist-org/alist-web 更改项目根目录的env.production文件为你的后端服务器地址 将仓库克隆到本地,需要安装Git: 使用SSH(需要持有你的Github SSH私钥): git clone git@github.com:你的用户名/你Fork的仓库 使用HTTPS(Not Use Magic有概率SSL握手失败): git clone git@github.com:你的用户名/你Fork的仓库 下载汉化包:AcoFork 的网盘或Crowdin - 需要登录 解压,将alist (zh-CN)\src\lang里面的Zh-CN文件夹复制到仓库下src/lang下 编辑根目录的.gitignore,添加一行!/src/lang/zh-CN/确保文件不被忽略 下载Nodejs。在根目录打开终端,生成中文需要的文件: 安装cnpm: npm install -g cnpm --registry=https://registry.npmmirror.com 安装依赖: cnpm install --legacy-peer-deps 生成中文需要的文件: node .\scripts\i18n.mjs 将更改提交到暂存区并提交到远程仓库,在根目录打开终端 git add . //将更改提交到暂存区 git commit -m 添加中文 //发布提交 git push -f //强制将更改提交到远程仓库 进入Cloudflare 仪表盘,进入 Workers 和 Pages 页面 创建一个 Pages,选择连接 Git 存储库 选择你的存储库,开始设置 构建命令输入:pnpm install && pnpm build,构建输出目录选择/dist 等待 Cloudflare 构建结束,为 Pages 绑定自定义域 访问自定义域,查看 AList 是否正常 定制 AList# 我们都知道 AList 支持自定义头部和内容,但是因为 Cloudflare Pages 是一个静态页面,所以我们采用硬编码方式,直接将需要自定义的内容写入仓库根目录的index.html ...

October 14, 2024 · 1 min · 127 words