AList的开源替代:OpenList

前言

前一阵 Alist 的商业化事件闹的挺大,尽管商业化在一定程度上是为了维持项目的长期发展,但过程还是引发了广泛的争议和担忧。主要是原开发者在未充分告知的情况下出售了项目,剥夺了社区成员的知情权和选择权。同时也没有明确说明商业化版本与开源版本之间的区别,没有给存量用户足够的时间来迁移,严重违背了开源社区的核心价值观:信任和透明。

作为普通用户,我们更关心的是 Alist 的开源替代,目前看来,最可靠的继任者可能就是 OpenList

什么是 OpenList ?

OpenList 是一个支持多存储的文件列表程序,使用 Gin 框架和 Solidjs 库,基于 AList 项目 fork 开发,是一个更可信、可持续的 AList 开源替代方案。

目前 OpenList 已经发布了 4.0 正式版,但依然存在一些已知问题,不过大部分功能已可稳定使用,具体迁移进度可在 OpenList 迁移工作总结 中查看。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 openlist ,选择第一个 openlistteam/openlist,版本选择 latest

本文写作时, latest 版本对应为 v4.0.1

docker 文件夹中,创建一个新文件夹 openlist,并在其中建两个子文件夹 datashare

文件夹 装载路径 说明
docker/openlist/data /opt/openlist/data 存放设置等
docker/openlist/share /opt/openlist/share 用作本地存储

如果你不打算用群晖的本地存储,可以只映射 data 卷,用于存放设置文件和数据库

如果你打算启用群晖的本地存储,需要先映射才能更方便的从容器中使用,但是考虑到容器内外用户的差异,建议映射空的文件夹而不是已经有文件的,避免出现权限问题

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5244 5244

默认暴露了两个端口,其中

  • 5244 端口是 http 协议;
  • 5245 端口是 https 协议;

用不上的可以删了

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 openlist 和 子目录
mkdir -p /volume1/docker/openlist/{data,share}

# 进入 openlist 目录
cd /volume1/docker/openlist

# 运行容器
docker run -d \
--name="openlist" \
--restart=always \
-p 5244:5244 \
-v $(pwd)/data:/opt/openlist/data \
-v $(pwd)/share:/opt/openlist/share \
openlistteam/openlist:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'

services:
openlist:
image: openlistteam/openlist:latest
container_name: openlist
restart: always
ports:
- 5244:5244
volumes:
- ./data:/opt/openlist/data
- ./share:/opt/openlist/share

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 openlist 和 子目录
mkdir -p /volume1/docker/openlist/{data,share}

# 进入 openlist 目录
cd /volume1/docker/openlist

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5244 就能看到主界面

第一次运行,管理员 admin 的初始密码,可以在日志中找到

用命令 docker logs openlist 也是可以的

更多获取密码的方法或者软件使用可以参考老苏之前写的 AList 的相关部分

文章传送门: 支持本地挂载的网盘文件列表工具AList

升级安装

如果之前安装过 Alist,只要修改两处:

  1. 镜像名从 xhofe/alist 改为 openlistteam/openlist
  2. 映射的容器内的路径,由 /opt/alist/ 改为 /opt/openlist/

运行之前,最好对原来的数据进行一次备份

运行之后,原来怎么使用,现在还是一样的

参考文档

OpenListTeam/OpenList: A new AList Fork to Anti Trust Crisis
地址:https://github.com/OpenListTeam/OpenList

Home | OpenList 文档
地址:https://docs.oplist.org/zh/

Home | OpenList Docs(临时)
地址:https://openlistteam.github.io/docs/

支持本地挂载的网盘文件列表工具AList | 老苏的blog
地址:https://laosu.tech/2022/12/09/支持本地挂载的网盘文件列表工具AList