现在市面上的网盘,不是太小就是太贵,而且有些还很恶心,点名百度网盘,自己搭建一个更隐私,随心所欲,自由度大,还可作为离线下载服务器。起初我用过最简单的filebrowser,就是一个远程文件管理吧,但是性能不行,功能有限。然后用了seafile,但是免费版功能有限,而且不能在服务端手动添加文件,要企业版才行,遂放弃,后来我用了nextcloud,免费开源的,界面也好看,插件也多,功能不愁不够,而且能够服务端手动添加文件,可以与aria2配合起来作为离线下载服务器用。
环境搭建
docker搭建
图省事,使用docker,采用的镜像是rootlogin/nextcloud,该镜像小巧并且使用的是nginx而不是apache。使用mariadb做数据库,同样使用docker,然后将两者连接起来。
1 | #安装docker并启动 |
至此,nextcloud已经搭建好了,接下来需要在宿主机安装nginx,用以代理容器。不过也可以在上一步中,将容器80端口映射到宿主机80端口,这样就不必再在宿主机使用nginx代理了。安装nginx的具体步骤网上都有。
nginx配置
安装好nginx后,进入/etc/nginx/conf.d目录,创建nextcloud.conf文件,并写入以下内容保存。
1 | server { |
nextcloud配置
启动nginx,至此大功告成,打开网页输入目标地址即可打开,打开后需要创建管理员账号,数据库选择这里有坑,选择数据库不要选择sqlite,应选择mariadb/mysql,输入数据库用户名和密码,数据库名字就是上面创建数据库容器时的名字nextcloud_db,数据库地址这里,因为使用的是docker,不能填localhost,因为我们将两个容器连接起来了,数据库容器指向了nextcloud容器,因此数据库地址这里应该填nextcloud容器的名字,即nextcloud。
配置aria2
进入/xxx/xxxxx/data/user/files/,/xxx/xxxxx为nextcloud文件夹路径,user为自己用户名字
1 | mkdir Downloads |
每次下载完都这样做的话非常低效,有必要使用脚本来完成。在aria2配置文件中,将下载保存目录更改为上述Downloads的路径,并且在配置文件中加入on-download-complete=/xxx/xxx,和on-bt-download-complete=/xxx/xxx。第一个参数能在任务下载完以后自动执行命令,后一个参数能在bt下载完成后自动执行命令,不用等待上传完成。修改完配置文件需要重启aria2使配置文件生效。
自动执行脚本
1 |
|
保存为/xxx/xxxx,即上面on-download-complete参数后面的值,赋予可执行权限。至此,完工。