2023-4-2之前的部署请注意,README说明中"DATABASE_URL"被我手误写成"DATEBASE_URL",请及时更改变量名(无需重新部署,但需要从头重新设置),不然容器重启后会丢失所有设置。
本项目用于在 PaaS 平台上部署 Alist,支持 CI/CD 和拉取容器镜像两种部署方式,并集成了 Aria2。
- 请勿滥用,PaaS 平台账号封禁风险自负
- 容器的文件系统是临时性的,重启会恢复到部署时状态。不适合长期下载和共享文件用途。
- Aria2 配置文件默认限速5MB/s。如果需要修改 Aria2 配置,请 Fork 后自行修改 content 目录下
aria2.conf
文件。
对部署时设定的变量做如下说明。
变量 | 默认值 | 说明 |
---|---|---|
DATABASE_URL |
`` | 数据库连接 URL,默认留空为使用本地 sqlite 数据库 |
SITE_URL |
`` | 网站URL,比如 https://example.com ,这个地址会在 Alist 程序中的某些地方使用,如果不设置这个字段,一些功能可能无法正常工作。 |
TZ |
UTC |
时区,国内时区为 Asia/Shanghai。 |
更多变量及说明请参考:
https://github.com/alist-org/alist/blob/main/internal/conf/config.go
https://alist.nn.ci/zh/config/configuration.html
有两种解决方法:
-
在支持持久存储卷的 PaaS 平台上(Northflank 等),可以使用默认的 SQLite 数据库,需要将持久存储卷挂载到 "/data" 目录下 。
-
在不支持持久存储卷的 PaaS 平台上(Koyeb 等),需要连接 MySQL 或是 PostgreSQL 数据库。
bit.to 将于 2023.6.29 停止服务
planetscale.com 免费 MySQL 数据库
- 前往 https://planetscale.com 注册账号,并新建一个数据库。
- 点击数据库名称,进入数据库管理页面,点击左侧的 "Get connection strings",在 "connect with" 下拉菜单中选择 Symfony。
- 下方 "mysql://" 开头字符串即为数据库连接 URL。密码只会显示一次,如果忘记保存了可以点击 "New password" 重新生成。
elephantsql 免费 PostgreSQL 数据库
- 前往 https://www.elephantsql.com 注册账号,并新建一个数据库。
- 点击数据库名称,进入数据库管理页面,右侧的 Details 下方,复制 "URL" 项即为数据库连接 URL。
请勿使用本仓库直接部署
Heroku 部署方法
Heroku 已于2022年11月末关闭免费服务
- 点击本仓库右上角Fork,再点击Create Fork。
- 在Fork出来的仓库页面上点击Setting,勾选Template repository。
- 然后点击Code返回之前的页面,点Setting下面新出现的按钮Use this template,起个随机名字创建新库。
- 用户名以
example
为例,项目名以demo
为例 - 登陆heroku后,浏览器访问 dashboard.heroku.com/new?template=https://github.com/example/demo
支持 CI/CD 平台(Render,Northflank,Doprax等)部署方法
- 点击本仓库右上角Fork,再点击Create Fork。
- 在Fork出来的仓库页面上点击Setting,勾选Template repository。
- 然后点击Code返回之前的页面,点Setting下面新出现的按钮Use this template,起个随机名字创建新库。
- 在 PaaS 平台管理面板中连接你新建立的 github 仓库。
- 按下文变量部分设置所需的变量,如果需要设置内部 HTTP 端口,默认为3000,也可以自行设置 PORT 变量修改。
- 然后部署即可。
支持拉取容器镜像 PaaS 平台(Koyeb,Northflank等)部署方法
- 点击本仓库右上角Fork,再点击Create Fork。
- 在Fork出来的仓库页面上点击Setting,勾选Template repository。
- 然后点击Code返回之前的页面,点Setting下面新出现的按钮Use this template,起个随机名字创建新库。
- 点击仓库Settings > Actions > General,滚动到页面最下方,将Workflow permissions设置为Read and write permissions。
- 点击页面右侧 Create a new release,建立格式为 v0.1.0 的tag,其它内容随意,然后点击 Publish release。
- 大概不到一分钟后,github action 构建容器镜像完成,点击页面右侧 Packages, 再点击进入刚生成的 Package。
- 点击页面右侧 Package settings,在页面最下方点击 Change visibility,选择 public 并输入 package 名称以确认。
- 容器镜像拉取地址在 package 页面 docker pull 命令示例中,其它部署步骤请参阅具体平台文档。需要设置的环境变量见下文,内部监听端口默认为3000,也可自行设置 PORT 环境变量更改。
Patr 部署方法
- 点击本项目网页上部 Code 按钮,再点击 Create codespace on main。
- 点击 Patr 管理面板左侧 Docker Repository,建立新 Repo。
- 点击进入 Patr 新建立的 Repo,页面最下方有三条命令:
- 在之前打开的 Codespace 网页中,点击终端,执行上图中的三条命令,中间需要输入 Patr 账户密码。
- 回到 Patr 网页,点击 Infrastructure > Deployment > Create Deployment,Name 随意,Image Details 选择刚才建立的 Repo,Region 选择 Singapore。
- 点击 NEXT STEP,Ports 设置为 3000,按下文变量部分设置好需设定的变量。
- 点击 NEXT STEP,将 Horizontal Scale 拉到最左侧,直到价格显示 Free,然后点击 CREATE。
- 点击 Infrastructure > Deployment,点击 START 即启动容器,点击 PUBLIC URL 获得服务域名。
-
默认用户名为 admin,密码显示在 PaaS 平台容器初次运行日志中,登录后请尽快修改密码。
-
Aria2 地址为 http://localhost:61800/jsonrpc ,RPC 密钥为空。