Introduction #
此页内容
What’s this #
一个支持多种存储,支持网页浏览和 WebDAV 的文件列表程序,由 gin 和 Solidjs 驱动。
Support storage #
- 本机存储
- Crypt
- 阿里云盘Open
- 阿里云盘
- OneDrive /APP/ SharePoint(国际版, 世纪互联,de,us)
- GoogleDrive
- 123云盘/分享/直链
- FTP / SFTP
- PikPak / 分享
- S3[对象存储]
- 多吉云
- 又拍云对象存储
- WebDAV(支持无API的OneDrive/SharePoint)
- Teambition(中国,国际)
- 分秒帧
- 天翼云盘 (个人云, 家庭云)
- 中国移动云盘 (个人云, 家庭云)
- 中国联通云盘
- 四川电信魔盘
- Yandex.Disk
- 百度网盘
- 夸克网盘/TV/Open
- 迅雷网盘 / X / 浏览器
- 蓝奏云、蓝奏云优享版
- 小飞机网盘
- 阿里云盘分享
- 谷歌相册
- Mega.nz
- 一刻相册
- TeraBox -海外百度
- SMB
- 别名
- 115
- Seafile
- Cloudreve
- Trainbit
- UrlTree
- IPFS
- UC网盘/TV
- Dropbox
- 腾讯微云
- 超星星小组盘
- 网易云音乐云盘
- 6盘
- 联想家庭储存链接分享
- GitHub API / GitHub Release
- Misskey
Discussions #
一般问题请到 Discussions ,Issues 仅针对错误报告和功能请求。
演示 #
N/A
特别赞助 #
N/A
许可 #
OpenList
是在 AGPL-3.0 许可下许可的开源软件。
一键脚本 #
此页内容
仅适用于 Linux amd64/arm64 平台。
正式版测试版
安装
curl -fsSL "https://docs.openlist.team/v3.sh" -o v3.sh && bash v3.sh

面板管理命令
使用命令:openlist
或者 openlist-manager

自定义路径 #
默认安装在 /opt/openlist
中。 自定义安装路径,将安装路径作为第二个参数添加,必须是绝对路径(如果路径以 openlist 结尾,则直接安装到给定路径,否则会安装在给定路径 openlist 目录下),如 安装到 /root
:
正式版测试版
# Install
curl -fsSL "https://docs.openlist.team/v3.sh" -o v3.sh && bash v3.sh install /root
# update
curl -fsSL "https://docs.openlist.team/v3.sh" -o v3.sh && bash v3.sh update /root
# Uninstall
curl -fsSL "https://docs.openlist.team/v3.sh" -o v3.sh && bash v3.sh uninstall /root
- 启动:
systemctl start openlist
- 关闭:
systemctl stop openlist
- 状态:
systemctl status openlist
- 重启:
systemctl restart openlist
获取密码 #
需要进入脚本安装OpenList的目录文件夹內执行如下命令
低于v3.25.0版本 #
./openlist admin
高于v3.25.0版本 #
3.25.0以上版本将密码改成加密方式存储的hash值,无法直接反算出密码,如果忘记了密码只能通过重新 随机生成
或者 手动设置
# 随机生成一个密码
./openlist admin random
# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码
./openlist admin set NEW_PASSWORD
一直在加载怎么办? #
挂载了一些网盘但是不能用了重启了一下OpenList,发现进不去 网页提示:获取设置失败:请稍后,正在加载存储
怎么办?
- 等待几分钟
- 通过使用命令将
失效的/无法启动的
存储停止运行
LinuxWindowsMacDocker其它
如果通过命令停止 必须先进入你OpenList所在的文件夹输入命令
如果我们不知道是那个存储原因导致的,可以通过命令列出所有的存储
./openlist storage list
[root@OPSD-g8xXordx3B9f openlist]# ./openlist storage list
INFO[2023-11-23 17:54:10] reading config file: data/config.json
INFO[2023-11-23 17:54:10] load config from env with prefix: OpenList_
INFO[2023-11-23 17:54:10] init logrus...
INFO[2023-11-23 17:54:10] Found 2 storages
┌─────────────────────────────────────────────────────────────────┐
│ ID Driver Mount Path Enabled │
│─────────────────────────────────────────────────────────────────│
│ 1 S3 /R2 true │
│ 2 UrlTree /233 true │
└─────────────────────────────────────────────────────────────────┘
输入查询命令后我们会进入另一种模式无法输入,如果添加的存储过多可以通过键盘的 ↑ 和 ↓ 来往下翻,等找到后可以按Ctrl+C
退出
例如我们是因为 233
这个存储停止的,我们就输入命令来停止,然后在 重启一下OpenList就可以了
./openlist storage disable /233
[root@OPSD-g8xXordx3B9f openlist]# ./openlist storage disable /233
INFO[2023-11-23 17:54:52] reading config file: data/config.json
INFO[2023-11-23 17:54:52] load config from env with prefix: OpenList_
INFO[2023-11-23 17:54:52] init logrus...
INFO[2023-11-23 17:54:52] Storage with mount path [/233] have been disabled
手动安装 #
此页内容
获取 OpenList #
打开 OpenList Release 下载待部署系统对应的文件。最新版的前端已经和后端打包好了,不用再下载前端文件了。
xxxx 指的是不同系统/架构对应的名称,一般 Linux-x86/64 为 openlist-linux-amd64
手动安装如果有如下提示:是因为你的 GLIBC 版本太低,建议下载 musl 版本
lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./openlist)
#或者
accept: function not implemented
当你看到 start server@0.0.0.0:5244
的输出,之后没有报错,说明操作成功。 第一次运行时会输出初始密码。程序默认监听 5244 端口。 现在打开 http://ip:5244
可以看到登录页面,WebDAV 请参阅 WebDav。
手动运行 #
v3.25.0以上版本将密码改成加密方式存储的hash值,无法直接反算出密码,如果忘记了密码只能通过重新 随机生成
或者 手动设置
LinuxmacOSWindowswin(scoop)
# 解压下载的文件,得到可执行文件:
tar -zxvf openlist-xxxx.tar.gz
# 授予程序执行权限:
chmod +x openlist
# 运行程序
./openlist server
# 获得管理员信息 以下两个不同版本,新版本也有随机生成和手动设置
# 低于v3.25.0版本
./openlist admin
# 高于v3.25.0版本
# 随机生成一个密码
./openlist admin random
# 手动设置一个密码 `NEW_PASSWORD`是指你需要设置的密码
./openlist admin set NEW_PASSWORD
守护进程 #
LinuxmacOSWindows
使用任意方式编辑 /usr/lib/systemd/system/openlist.service
并添加如下内容,其中 path_openlist 为 OpenList 所在的路径
[Unit]
Description=openlist
After=network.target
[Service]
Type=simple
WorkingDirectory=path_openlist
ExecStart=path_openlist/openlist server
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后,执行 systemctl daemon-reload
重载配置,现在你可以使用这些命令来管理程序:
- 启动:
systemctl start openlist
- 关闭:
systemctl stop openlist
- 配置开机自启:
systemctl enable openlist
- 取消开机自启:
systemctl disable openlist
- 状态:
systemctl status openlist
- 重启:
systemctl restart openlist
守护进程不配置? 视频教程
相关信息
对于所有平台,您可以使用以下命令来静默启动、停止和重新启动。 (v3.4.0 及更高版本)
# 携带`--force-bin-dir`参数启动服务
openlist start
# 通过pid停止服务
openlist stop
# 通过pid重启服务
openlist restart
如何更新 #
下载新版Alist,把之前的替换了即可。
- 启动:
systemctl start openlist
- 关闭:
systemctl stop openlist
- 状态:
systemctl status openlist
- 重启:
systemctl restart openlist
获取密码 #
需要进入脚本安装OpenList的目录文件夹內执行如下命令
低于v3.25.0版本 #
./openlist admin
高于v3.25.0版本 #
3.25.0以上版本将密码改成加密方式存储的hash值,无法直接反算出密码,如果忘记了密码只能通过重新 随机生成
或者 手动设置
# 随机生成一个密码
./openlist admin random
# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码
./openlist admin set NEW_PASSWORD
一直在加载怎么办? #
挂载了一些网盘但是不能用了重启了一下OpenList,发现进不去 网页提示:获取设置失败:请稍后,正在加载存储
怎么办?
- 等待几分钟
- 通过使用命令将
失效的/无法启动的
存储停止运行
LinuxWindowsMacDocker
如果通过命令停止 必须先进入你OpenList所在的文件夹输入命令
如果我们不知道是那个存储原因导致的,可以通过命令列出所有的存储
./openlist storage list
[root@OPSD-g8xXordx3B9f openlist]# ./openlist storage list
INFO[2023-11-23 17:54:10] reading config file: data/config.json
INFO[2023-11-23 17:54:10] load config from env with prefix: OpenList_
INFO[2023-11-23 17:54:10] init logrus...
INFO[2023-11-23 17:54:10] Found 2 storages
┌─────────────────────────────────────────────────────────────────┐
│ ID Driver Mount Path Enabled │
│─────────────────────────────────────────────────────────────────│
│ 1 S3 /R2 true │
│ 2 UrlTree /233 true │
└─────────────────────────────────────────────────────────────────┘
输入查询命令后我们会进入另一种模式无法输入,如果添加的存储过多可以通过键盘的 ↑ 和 ↓ 来往下翻,等找到后可以按Ctrl+C
退出
例如我们是因为 233
这个存储停止的,我们就输入命令来停止,然后在 重启一下OpenList就可以了
./openlist storage disable /233
[root@OPSD-g8xXordx3B9f openlist]# ./openlist storage disable /233
INFO[2023-11-23 17:54:52] reading config file: data/config.json
INFO[2023-11-23 17:54:52] load config from env with prefix: OpenList_
INFO[2023-11-23 17:54:52] init logrus...
INFO[2023-11-23 17:54:52] Storage with mount path [/233] have been disabled
使用 Docker #
此页内容
注意:OpenList 官方 Docker 镜像尚未发布。此处 Docker 镜像地址尚未更新。
安装 #
docker cli #
docker run -d --restart=unless-stopped -v /etc/openlist:/opt/openlist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="openlist" openlistteam/openlist:latest
docker compose #
version: '3.3'
services:
openlist:
image: 'openlistteam/openlist:latest'
container_name: openlist
volumes:
- '/etc/openlist:/opt/openlist/data'
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
restart: unless-stopped
环境变量 #
名称 | 默认值 | 说明 |
---|---|---|
PUID |
0 |
运行身份 UID |
PGID |
0 |
运行身份 GID |
UMASK |
022 |
https://en.wikipedia.org/wiki/Umask |
RUN_ARIA2 |
是否同时运行 ARIA2,当镜像含有 aria2 环境时默认为 true ,否则为 false |
|
TZ |
默认为 UTC 时区,如果你想指定时区,则可以设置此变量,例如:Asia/Shanghai |
镜像版本 #
稳定版:openlistteam/openlist:latest
或指定本版,如 openlistteam/openlist:beta
(Latest暂未上线)
最新镜像版本,请参阅 https://hub.docker.com/r/openlistteam/openlist/tags
开发版:openlistteam/openlist:beta
预装环境镜像后缀:
后缀 | 说明 |
---|---|
aio |
同时包含下列所有预装环境的镜像 |
ffmpeg |
预装 ffmpeg 的镜像,用于本地存储缩略图 |
aria2 |
预装 aria2 的镜像,用于离线下载 |
你可以在上述任意镜像标签后面,使用 -
符号附加后缀以切换到附带环境的镜像。如 openlistteam/openlist:latest-aio
openlistteam/openlist:latest-aria2
openlistteam/openlist:latest-ffmpeg
(Latest暂未上线)
如果使用预装 ffmpeg 镜像缩略图功能仍无法使用,请确认:
- 使用的是本地存储
- 切换到网格视图
- 本地存储的缩略图开关开启
- 本地存储的缩略图缓存文件夹配置路径正确,例如
data/thumbnail
当使用预装 aria2 镜像时,可能会在 openlist 的日志中看到类似错误:
ERRO[2022-11-20 12:05:19] error [unaligned 64-bit atomic operation] while run task [download http://xxx.com/xxx.png to [/ftp](/)]
解决方法是,如果是 CPU 架构是 64 位,可以尝试手动拉取 64 位镜像或重新构建容器。 如果是 CPU 架构是 32 位,目前尚无可用方案。
查看管理员信息: #
低于v3.25.0版本 #
docker exec -it openlist ./openlist admin
高于v3.25.0版本 #
3.25.0以上版本将密码改成加密方式存储的hash值,无法直接反算出密码,如果忘记了密码只能通过重新 随机生成
或者 手动设置
# 随机生成一个密码
docker exec -it openlist ./openlist admin random
# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码
docker exec -it openlist ./openlist admin set NEW_PASSWORD
更新 #
docker-compose 更新
Q:我的版本是v3.x.x 怎么也升级不到最新版 docker pull openlistteam/openlist:beta
拉取最新不行 改成docker-compose安装还是3.x.x版本
A:原因是你的docker设置了镜像,从镜像更新不到最新版本,改一下/etc/docker/daemon.json,删除”registry-mirrors”: [“镜像加速器地址”]
- 删除若不行,可以考虑更换一个
镜像加速地址
- 或者简单粗暴:下载时将
openlistteam/openlist:beta
替换为openlistteam/openlist:v4.0.0
(指定版本,写教程时最新的是4.0.0)
编译镜像 #
安装 docker,克隆仓库后进入仓库根目录,无需其他准备
basicbuild-arg
docker build -t openlistteam/openlist:beta .
可用 build args:
说明 | |
---|---|
INSTALL_FFMPEG=true |
安装 ffmpeg |
INSTALL_ARIA2=true |
安装 aria2 |
从源码运行 #
The OpenList Projects Contributors2025/7/7Guide**Install**Guide大约 1 分钟
此页内容
警告
此步骤仅适用于需要自行修改源代码的用户。 不明白的请跳过。
环境准备 #
首先,你需要一个有git
,nodejs
,pnpm
,golang>=1.20
,gcc
的环境
构建前端 #
使用 git clone --recurse-submodules https://github.com/OpenListTeam/OpenList-Frontend.git
克隆前端 ,执行 pnpm install && pnpm build
得到 dist 目录下的目标文件
构建后端 #
克隆 https://github.com/OpenListTeam/OpenList ,将上一步的 dist
目录复制到项目下的 public
目录下,然后执行:
appName="openlist"
builtAt="$(date +'%F %T %z')"
goVersion=$(go version | sed 's/go version //')
gitAuthor=$(git show -s --format='format:%aN <%ae>' HEAD)
gitCommit=$(git log --pretty=format:"%h" -1)
version=$(git describe --long --tags --dirty --always)
webVersion=$(curl -s --max-time 5 "https://api.github.com/repos/OpenListTeam/OpenList-Frontend/releases/latest" -L | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/1/' | sed 's/^v//')
if [ -z "$webVersion" ]; then
webVersion="0.0.0"
fi
ldflags="
-w -s
-X 'github.com/OpenListTeam/OpenList/internal/conf.BuiltAt=$builtAt'
-X 'github.com/OpenListTeam/OpenList/internal/conf.GoVersion=$goVersion'
-X 'github.com/OpenListTeam/OpenList/internal/conf.GitAuthor=$gitAuthor'
-X 'github.com/OpenListTeam/OpenList/internal/conf.GitCommit=$gitCommit'
-X 'github.com/OpenListTeam/OpenList/internal/conf.Version=$version'
-X 'github.com/OpenListTeam/OpenList/internal/conf.WebVersion=$webVersion'
"
go build -ldflags="$ldflags" .
反向代理 #
The OpenList Projects Contributors2025/7/7Guide**Install**Guide大约 2 分钟
此页内容
程序默认监听 5244 端口。如有修改,请一并修改下列配置中的端口号。如果你使用反向代理,建议你设置site_url,以帮助alist更好的工作。
如果你想使用子目录,参考这里
反向代理非标准端口或启用https后丢失https或端口号/无法播放视频?
你需要通过正确的Host头,请参考 #726 #1159 #2429 #3644 #4181 #4719
nginx #
在网站配置文件的 server 字段中添加
conf
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:5244;
# the max size of file to upload
client_max_body_size 20000m;
}
如果需要使用HTTP/3,需要将对应HOST
行修改为:
conf
proxy_set_header Host $host:$server_port;
这样修改后的配置同时也可以兼容HTTP/2及更低版本的请求。
注意
如果使用宝塔面板,请务必删除以下默认配置
conf
- location ~ ^/(.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md
- location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
- location ~ .*.(js|css)?$
并在/www/server/nginx/conf/proxy.conf
中或对应网站配置文件中设置禁用Nginx缓存,否则默认配置下访问较大文件时Nginx会先尝试将远程文件缓存至本机,导致播放失败
conf
proxy_cache cache_one; # 删除这一行
proxy_max_temp_file_size 0; #加上这一行
Apache #
在 VirtualHost 字段下添加配置项 ProxyPass,如:
<VirtualHost *:80>
ServerName myapp.example.com
ServerAdmin webmaster@example.com
DocumentRoot /www/myapp/public
AllowEncodedSlashes NoDecode
ProxyPreserveHost On
ProxyPass "/" "http://127.0.0.1:5244/" nocanon
ProxyPassReverse "/" "http://127.0.0.1:5244/" nocanon
</VirtualHost>
Caddy #
在 Caddyfile 文件下添加 reverse_proxy,如:
:80 {
reverse_proxy 127.0.0.1:5244
}
如果部署在 443 端口正常使用的服务器上且使用域名进行访问,建议使用这种配置让 Caddy 自动申请证书:
example.com {
reverse_proxy 127.0.0.1:5244
}
将 `example.com` 替换为你自己解析后的域名。
宝塔设置反向代理示范 #
1.登录宝塔面板,添加站点; #

2.修改站点设置; #

3.删除面板默认代码; #


4.添加反向代理; #

如需申请
SSL
证书,可先在SSL
选项中申请证书,然后在设置反向代理。或者设置反向代理之后,关闭反向代理功能,申请SSL
证书后再次开启代理。