夸客
夸客
Published on 2025-10-19 / 8 Visits
0
0

Alist迁移到OpenList

最近终于完成了 openlist 的安装使用,借助 ai 简要记录了迁移要点。主要是将 Alist 迁移 / 转换 到 OpenList 的主要步骤 + 注意事项整理。具体操作还要根据部署环境(Docker、裸机、NAS、脚本方式等)做调整。


1. 背景 & 原理

  • OpenList 是 Alist 的一个开源分支 / 继承版本,目的是接续 Alist 的功能,同时保持开源与社区驱动。
  • 为了兼容和让用户无痛迁移,OpenList 支持读取 / 导入 Alist 的配置 / 数据目录,从而使得挂载、存储、权限等配置能尽可能保留。
    因此,整体迁移思路通常是:
  1. 备份原 Alist 的数据 / 配置
  2. 安装 / 部署 OpenList
  3. 将 Alist 的数据目录 /配置导入或挂载给 OpenList
  4. 启动 OpenList,验证功能、挂载、权限、分享等
  5. 清理 / 调整(如 URL 重定向、外网访问设置、端口冲突等)

2. 主要步骤

下面假设你目前是在某一台服务器 / NAS / Docker /脚本环境中运行 Alist,需要切换到 OpenList。

2.1. 备份 Alist 数据和配置

  • 停止 Alist 服务以避免数据写入冲突。
  • 登录 alist 导出:config.yaml / config.json 备份文件或整个应用数据目录。
  • 保证备份安全、可还原。

2.2. 部署 OpenList

根据你的环境选择合适方式:

  • Docker 部署
    使用官方镜像 openlistteam/openlist。可参考文档方式写 docker run 或使用 docker-compose
  • 一键脚本 / Shell 脚本
    OpenList 官方 /社区可能提供 “安装脚本” 用来快速部署。
  • 在 NAS / 路由器 /盒子等环境部署
    如果你用的是 NAS(如极空间、绿联 NAS 等),社区已有不少教程指导如何在 NAS 上部署 OpenList。
    部署时需设置好:
  • 容器 / 程序的挂载目录,比如 datashare
  • 映射端口(默认 OpenList 使用 5244 端口)
  • 重启策略、持久化卷等

2.3. 将 Alist 的数据目录 / 配置接入 OpenList

  • 将你之前备份的 Alist 的 data / 存储挂载目录,映射 / 挂载给 OpenList 的对应路径。 在 Docker 中,就是把原来 Alist 的 volume 路径挂给 OpenList。如果 OpenList 与 Alist 的配置文件结构不同,要做适当调整。确保权限、文件所属用户 / 组、读写权限等一致。
  • 最推荐的是直接将 alist 的备份文件导入到 openlist。

2.4. 启动 OpenList & 验证

  • 启动 OpenList 容器 / 服务。
  • 查看日志,确认启动成功,是否读取到原有配置、是否有错误。
  • 登录管理员界面(默认用户名 admin,初始密码可能需要从日志中查看)。
  • 检查挂载的各个存储(网盘、本地存储等)是否正常。尤其是阿里云盘等类型的需要编辑配置中的令牌等,具体参考 openlist 文档。
  • 检查所有原来能用的功能:文件浏览、分享、预览、下载、权限、URL 重定向、WebDAV 等。
  • 测试分享链接、密码访问、签名链接是否正常。

2.5. 清理 / 调整

  • 解决端口冲突(如果之前 Alist 也用了 5244)
  • 设置外网访问:域名、SSL、反向代理、端口映射等
  • 若有旧 Alist 的域名 / URL,你可能要做重定向或 alias
  • 删除 / 停用 Alist 服务
  • 根据 OpenList 的版本特性,查看是否有新的配置可优化(缓存、签名、权限、UI 定制等)

3. 注意事项 & 风险点

在迁移过程中,有些地方要特别留意,以避免数据丢失、访问异常或安全问题:

  • 配置冲突 / 端口冲突。如果旧 Alist 和 OpenList 用的是同端口 /同路径,可能冲突。建议改名或改端口。
  • 首次密码 / 初始化问题。初次启动 OpenList 时可能会生成一个新的管理员密码,需要查看日志获取。
  • 用户密码/重启。我是用配置文件导入完成迁移的,遇到了默认用户外的 webdav 无法使用问题。多次排查发现应该是用户密码没有成功迁移,需要在用户配置里编辑保存好密码,如果有其他未知问题,如登录次数过多拒绝登录之类的,建议重启 docker 或机器。这 2 步之后正常工作了。

Comment