HyperApp 搭建个人网盘及离线下载服务器

January 25, 2018   Aria2 NextCloud AriaNG HyperApp 应用分享

本文记录的是我用 HyperApp 部署 NextCloud 搭建个人网盘,配合 Aria2 和 AriaNG 的 Docker Image 搭建离线下载服务器,以实现离线下载并且使用网盘管理下载文件的过程。

Aria2 是一个占用资源小,下载速度快,支持全功能 BT 下载的软件。AriaNG 是一个功能完善、界面精美的 Aria2 下载任务管理面板,与此相似的有 Aria2 WebUI。NextCloud 可以帮助你搭建个人网盘,它支持图片、影片在线观看和文稿的在线编辑,内置 SQLite 数据库,还有官方桌面、移动客户端,其他的网盘还有 OwnCloud 和 Pydio 等。

我在功能和资源占用的权衡下选择了 Aria2 + AriaNG + NextCloud 的组合,它们在功能全面的同时占用较小的资源(具体对比),能在我的 512M 内存的 DigitalOcean AMS2 VPS 上良好运行(目前同等价位已升级为 1G 内存)。

本文中为方便使用 HyperApp 进行管理和配置,Aria2、AriaNG 和 NextCloud 是分开进行部署,想要用一键包的话实际上还可以用 Aria2 + FileRun + AriaNG 的 Docker Image,或者 Aria2 + AriaNg + FileRun / NextCloud / H5AI 的 Docker Compose File,链接内有其相应的安装方法。

安装 NextCloud

在安装 NextCloud 之前,需要安装 HyperApp 商店 内的 Nginx ProxyNginx SSL Support,如果已经安装过了就不用再安装了。然后在 商店 中选择 NextCloud,选中要安装的服务器,在配置中如下填写:

实际上只需填写自定义域名,要开启 SSL 的填写 SSL 的选项即可,其他均留空或保持默认。填好以后点 保存,再安装到服务器里就完成了。

NextCloud 还支持 MySQL 数据库,并且在使用桌面客户端的情况下推荐使用 MySQL 数据库,接入 MySQL 数据库的方法请看 此处。我用 NextCloud 自带的 SQLite 数据库就足够,而且 MySQL 的占用太高了。

安装完成后浏览器打开自定义的域名,看到 NextCloud 的配置界面,设定管理员名称(以 Ben 为示例)和密码,其他地方保持默认,其中 数据目录 的路径可以记一记,在接通 Aria2 和 NextCloud 的时候会用到。点 Finish Setup 完成。

现在用设定的账户名和密码登入,就可以开始使用 NextCloud 了。使用方法和微云、度盘相似,没有难度。还可以自行安装 NextCloud 的手机客户端,填入自定义域名、账户和密码即可登录,但是客户端不支持视频的在线预览。

安装 Aria2

首先我们需要知道有权读写 NextCloud 数据文件夹的 useruidgid,查看存有 NextCloud 文件的文件夹的信息:

ls -l /srv/docker/nextCloud/data/Ben/files #一般情况下只需替换 Ben 为你设定的账户名

从结果中可知有权操作此文件夹内文件的是 www-data 组内的 www-data,现在要查看 www-datauidgid

id www-data

我得到的结果是 uid=33gid=33,以 uid:gid 格式记为 33:33。现在建立存放 Aria2 下载文件的目录:

mkdir /srv/docker/nextCloud/data/Ben/files/aria2  #注意要在 NextCloud 存放你账号文件的文件夹内
chown -R 33:33 /srv/docker/nextCloud/data/Ben/files/aria2  #注意这个 33:33
find /srv/docker/nextCloud/data/Ben/files/aria2 -type d -exec chmod 755 {} +
find /srv/docker/nextCloud/data/Ben/files/aria2 -type f -exec chmod 644 {} +

然后建立存放 Aria2 下载配置的文件夹:

mkdir /srv/aria2/config  #可自定义,注意后面路径的一致
chown -R 33:33 /srv/aria2/config  #注意这个 33:33
find /srv/aria2/config -type d -exec chmod 755 {} +
find /srv/aria2/config -type f -exec chmod 644 {} +

新建并编辑配置文件:

vi /srv/aria2/config/aria2.conf

粘贴 aria2.conf 的内容:

 save-session=/config/aria2.session
 input-file=/config/aria2.session
 save-session-interval=60

 dir=/downloads

 file-allocation=prealloc
 disk-cache=128M

 enable-rpc=true
 rpc-listen-port=6800
 rpc-allow-origin-all=true
 rpc-listen-all=true

 rpc-secret=123456 #设定一个密码,在 AriaNG 连接 Aria2 时用

 auto-file-renaming=false

 max-connection-per-server=16
 min-split-size=1M
 split=16

最后进入 HyperApp 商店,选择 Docker Image,选择服务器,在配置中如图输入:

其中 Imageopengg/aria2Options 为:

-u=33:33 -v /srv/aria2/config:/config -v /srv/docker/nextCloud/data/Ben/files/aria2:/downloads -p 6800:6800

一般情况下以上所有只需替换 Ben 为你设定的用户名,替换 33:33 即可,如果自行更改过文件夹路径的注意一一对应修改。保存配置后安装到服务器里,看看日志里没有报错就完成了。

安装 AriaNG

商店 里轻触 Docker Image,选择服务器,在配置中如图填写:

只需设定 Image 和自定义域名即可,建议选择 禁用 HTTPS(用 HTTPS 访问面板的话还需要在 Aria2 里做一点适配,具体的我没有去研究)。保存配置后安装到服务器,然后打开你设定的域名,就能看到 AriaNG 的页面。

点击 AriaNG 设置,新建一个 RPC,在 Aria2 RPC 地址 里填入 Aria2 所在的服务器的 ip 或绑定的域名,端口号默认 6800,在 Aria2 RPC 密钥 里填入之前设定的密码,刷新页面后看连接是否成功。(点击左上角 AriaNG 可切换 RPC)

连接成功以后可以尝试修改 Aria2 设置 以满足使用需求,添加下载任务的方法和使用迅雷的方法相似,支持 HTTP 下载和 BT 下载,包括上传种子文件下载、磁力链接下载,但是不能通过电驴链接下载。

连通 NextCloud 和 Aria2 下载目录

现在要让 NextCloud 读取到 Aria2 的下载目录,以方便管理下载文件。进入 NextCloud,点右上角齿轮,点 应用,找到 External Storage Support,点 启用

点右上角齿轮,点 管理,点 外部存储,点 增加存储,选择 本地,在 配置 中填入 /var/www/html/data/Ben/files/aria2,点右边的对勾看能否连通。

/var/www/html/data 是在 NextCloud 配置页面看到的 数据目录
/Ben/files/aria2 是实际存储 Aria2 下载文件的
/srv/docker/nextCloud/data/Ben/files/aria2 中的一部分。

连通以后回到网盘首页,会看到 aria2 这个目录,里面存放的就是通过 Aria2 下载的文件。点击文件即可在线预览或进行其他操作。

在线播放

虽然 NextCloud 网页端支持在线播放,但对视频格式的支持取决于浏览器,大多数只能播放 MP4 文件。我们可以用 WebDAV 方式访问网盘文件,并调用本地播放器播放,就可以支持更多的格式。在 NextCloud 首页,点击左下角的 设置,可以看到 WebDAV 的访问地址。

iOS 端可以使用 nPlayer 或 nPlayer Lite,支持添加 WebDAV 路径,在线播放网盘文件:添加网络位置时,在 主机 粘贴 WebDAV 地址,输入用户名和密码,登陆成功后点击视频文件即可播放。

Android 手机及 TV 可以安装 ES 文件浏览器,在 网络位置 下的 FTP 添加 WebDAV,同样粘贴 WebDAV 地址,输入用户名和密码。添加成功后点击视频文件,可调用任意播放器进行播放。

其他平台同样只需寻找支持 WebDAV 的播放器或文件浏览器即可。

参考资料

opengg/aria2 daxingplay/ariang

打赏支持

你可以点击 此处,扫描二维码给我打赏两块钱。简单几步,你就能让我在买煎饼时奢侈地多加一个鸡蛋:)