【OpenList】基于Hugging Face提供的免费的2CPU+16GB内存+50G硬盘服务器免费部署OpenList

又来折腾Hugging Face啦!有小伙伴儿想在Hugging Face Space上部署OpenList结合搭载网盘来做文件分享,我就想着试试部署看!
Hugging Face (
)提供了2核 CPU、16G 内存、50G 硬盘空间的免费云服务器
,提供了3种模板:Gradio、Docker、静态HTML,可以很方便的来部署你的应用。
我们本次就通过使用Docker来部署OpenList(OpenList 是一个支持多种存储的文件列表程序🗂️,是一个有韧性、长期治理、社区驱动的 AList 分支🔀,旨在防御基于信任的开源攻击🛡️)。
登录Hugging Face 访问 https://huggingface.co/ 点击 Log In ,没有账号的话就需要通过点击 Sign Up 注册。

输入Username or Email address 和 Password 点击Login 登录到Hugging Face 。

点击 New > Space 创建Space。

输入space name、Short description(可不填),选择Docker,Docker template 已默认选中了 Blank,可以不用改,Space hardware 现在也已经默认选中,也不用改;Public 也已默认选中,即可公网访问,也不用改。


点击下方的 Create Space 即可完成创建。

Space创建后,进入Space 工作台,点击【Files】,修改README.md 文件,点击README.md,点击 edit


在内容中添加app_port: 5244,即:
---
title: Openlist
emoji: 📚
colorFrom: gray
colorTo: indigo
sdk: docker
app_port: 5244
pinned: false
---

然后往下拉,点击 Commit changes to main 提交。

接下来需要添加Docker的 Dockerfile 文件,点击 Files > Contribute > Create a new file

输入文件名:Dockerfile
内容输入:
FROM openlistteam/openlist:latest
EXPOSE 5244
然后点击 Commit new file to main 提交
以上工作做完后,Hugging Face Spaces 会自动开始构建和部署OpenList。

部署过程中,可以通过点击 Log 查看构建日志。等状态由 Building 变为 Running 即部署完成。
Building 状态:拉取镜像,若出错,则可能是镜像有问题或Dockerfile 格式有问题,具体原因可以通过logs的Bulid中查看排查。

Starting 状态:安装部署镜像,若期间报错,具体原因可以通过logs的Container中查看排查。
如图所示,OpenList在部署过程中出错了,状态也变成了 Runtime error,我们在Container中的日志中看到错误提示“错误:当前用户没有 ./data 目录(/opt/openlist/data)的写和/或执行权限。”
去OpenList官网查找一下原因 (https://doc.oplist.org/guide/installation/docker#v4-1-0-%E4%BB%A5%E5%90%8E%E7%89%88%E6%9C%AC),
这个错误是由于 OpenList 从 v4.1.0+ 版本开始的安全改进导致的:容器内部现在默认以非 root 用户 openlist(UID 1001,GID 1001)运行程序,但宿主机上的 ./data 目录(即 /opt/openlist/data)权限不匹配,导致容器无法写入或执行。
因为我们在Hugging Face Spaces上部署应用,无法搭载到本地,不能修改目录的写和/或执行权限。

怎么办呢?是不是就不能在Hugging Face Spaces上部署OpenList了呢?
我就想既然是从v4.1.0+版本改版以后会有这个错误,那v4.1.0版本呢?说干就干。我们把docker镜像换一下,换成 openlistteam/openlist:v4.1.0 试试看,即Dockerfile文件内容修改为:
FROM openlistteam/openlist:v4.1.0
EXPOSE 5244
修改后,点击 Commit changes to main 提交。

嘿嘿,还真的跑起来啦!
Running 状态:部署完成

Successfully created the admin user and the initial password is: xxxxxxxxxxxxxxxx HTTP server @ 0.0.0.0:5244xxxxxxxxxxxxxxxx 就是默认用户 admin 的初始密码接下来,我们登录试试,访问OpenList,网址是
https://[YourName]-openlist.hf.space/
输入默认用户名 admin 密码是日志中查看到的 初始密码 登录

阿欧,尴尬啦!竟然登录失败!

尝试多次后,还会被锁定一段时间。

正常docker安装部署的,都可以通过以下命令 进去到容器后重置admin的密码
docker exec -it openlist ./openlist admin random # 随机生成新密码(会在终端显示新密码)但我们进不去呀!看来还是得设置环境变量的方式来初始化密码!点击 Setting,往下拉,找到 Variables and secrets ,点击 New secret


Name 输入:OPENLIST_ADMIN_PASSWORD
Value 输入:你想要的登录密码

点 Save 保存后,应用程序会重新构建。待状态变为 Running 后,再去登录


终于登录成功啦!

接下来就看你怎么玩OpenList啦!
下方有个管理入口,点击进入后台管理页面。


点击 存储》添加

选择你想搭载的网盘,如115网盘、阿里云盘、百度网盘……

后续如何操作,会玩的自己玩,不会玩的看OpenList官方文档吧。
https://doc.oplist.org/guide/drivers/common
推荐阅读:免费部署BT宝塔面板:Hugging Face提供的免费的2CPU+16GB内存+50G硬盘服务器,支持公网访问【1Panel部署】基于Hugging Face提供的免费的2CPU+16GB内存+50G硬盘服务器免费部署1Panel管理面板使用Hugging Face提供的免费服务器基于Docker免费部署HertzBeat轻量级监控平台免费部署青龙面板:Hugging Face提供的免费的2CPU+16GB内存+50G硬盘服务器,支持公网访问免费部署私有n8n:免费的2CPU+16GB内存+50G硬盘服务器,结合PostgreSQL数据库尝鲜无限制的工作流青龙面板如何定时访问指定网页