利用1Panel和Docker部署OpenList及其APIPages

个人网盘及Token自主。


# 序

\(\text{OpenList}\)及其\(\text{APIPages}\)均提供一键部署、\(\text{Docker}\)部署以及边缘部署等不同安装方式,本帖将介绍利用\(\text{1Panel}\)和\(\text{Docker}\)来安装使用网盘。

# \(\text{SSL}\)证书申请

在域名\(\text{DNS}\)管理页面,分别为搭建\(\text{OpenList}\)和\(\text{APIPages}\)用到的相关域名添加\(\text{A Record}\),指向申请\(\text{SSL}\)证书的\(\text{VPS}\)的\(\text{IP}\)。

进而在\(\text{1Panel}\)左侧边栏\(\textbf{网站}\)->\(\textbf{证书}\)选项卡中,利用\(\text{Acme}\)为网站申请\(\text{SSL}\)证书。

# 安装并启动\(\text{OpenList}\)

在\(\text{1Panel}\)左侧边栏\(\textbf{应用商店}\)选项卡中,搜索\(\text{OpenList}\)并点击安装,面板将利用\(\text{Docker}\)安装\(\text{OpenList}\)。

Fig. 1. \(\text{OpenList}\)安装页面

在\(\text{1Panel}\)左侧边栏\(\textbf{网站}\)->\(\textbf{网站}\)选项卡中,点击创建新网站,进入\(\textbf{一键部署}\)选项卡:

# 示例
已装应用: 选择OpenList
域名: openlist.atlas.moe 端口: 80 (默认)
代号: openlist.atlas.moe (一般会自动补全)
启动HTTPS √
Acme账户: 选择账户
证书: openlist.atlas.moe (选择域名对应的证书)

# 拉取\(\text{APIPages}\),部署\(\text{Token Generator}\)

通过\(\text{Docker}\)拉取官方文件

docker pull openlistteam/openlist_api_server

在\(\text{Azure}\)全局中创建企业级\(\text{App registrations}\)

需要注意的是,个人账号本身无法直接在\(\text{Azure}\)中创建或进入后台注册企业级\(\text{App registrations}\)。如果遇无法创建的情况,则需使用他人提供应用注册。

Fig. 2. 在\(\text{Azure}\)中创建企业级\(\text{App registrations}\)

在\(\text{Azure}\)中搜索进入\(\text{App registrations}\)选项卡,支持账号类型选择\(\text{任何租户和个人账户}\),\(\text{重定向URI}\)选中\(\text{Web}\)类型,链接填入\(\text{https://}\)用于搭建\(\text{APIPages}\)的域名\(\text{/onedrive/callback}\)。

创建完成后,在\(\text{Overview}\)页面复制保存它的\(\text{Application (client) ID}\),作为下一步输入的\(\text{clientID}\)。然后在\(\text{Manage}\)->\(\text{Certificates&secrets}\)页面中新建\(\text{Client secret}\),创建完成后复制它的\(\text{Value}\),作为下一步输入的\(\text{secret_value}\)。

Fig. 3. (a) 获取\(\text{ClientID}\)
(b) 获取\(\text{Secret value}\)

最后,在\(\text{Manage}\)->\(\text{API permissions}\)页面中为该应用注册添加读写权限。按照图中红框选择后,进而选择第二项\(\text{Application permissions}\),搜索添加以下两项权限: \(\text{Files.Read.All}\)和\(\text{Files.ReadWrite.All}\),添加完成权限后,点击其右侧的\(\text{Grant admin consent}\)。

Fig. 4. 添加权限

启动\(\text{ (以OneDrive为例)}\)

docker run -d --name oplist-api-server \
  -p 3000:3000 \
  -e OPLIST_MAIN_URLS="api.atlas.moe" \
  -e OPLIST_ONEDRIVE_UID="粘贴clientID" \
  -e OPLIST_ONEDRIVE_KEY="粘贴secret_value" \
  openlistteam/openlist_api_server:latest

注意:\(=\)后不要留空格,完整参数列表参考官网。

创建站点\(\text{ (反向代理)}\)

在\(\text{1Panel}\)左侧边栏\(\textbf{网站}\)->\(\textbf{网站}\)选项卡中,点击创建新网站,进入\(\textbf{反向代理}\)选项卡:

# 示例
域名: api.atlas.moe 端口: 80 (默认)
代号: api.atlas.moe (一般会自动补全)
启动HTTPS √
Acme账户: 选择账户
证书: api.atlas.moe (选择域名对应的证书)
代理地址: http://127.0.0.1:3000 应用: 留空
guest
0 评论