前段时间,PanDownload开发者被抓的新闻刷屏了,导致很多类似的开发者都人心惶惶,跑路的跑路,封盘的封盘。我们已网盘为例,难道就只能依赖各开发商的网盘,乖乖交钱享受不平等的服务么?不!芾岦自己搭了一个网盘,心水的东西都存在这上面呢,再也不用担心限速、收费、被删。那么,本期教程,芾岦就教大家如何实现个人网盘的搭建。

准备工作

  • OMV系统已搭建完毕,并下载安装好Docker(其余linux系统,群晖系统等,支持Docker的都行)
  • 公网IP已经到位,路由器支持DDNS,可以远程访问路由器和OMV,不会的请点击(OMV利用SSH实现远程管理系统教程!
  • OMV文件系统已经设置到位,已想好Nextcloud的数据存放位置。

操作方法

数据库准备

默认情况下,NextCloud使用的是SQLite数据库进行数据存储,它仅适用于没有客户端同步的测试和轻量级单用户设置。当多用户时就不太适合了,MariaDB是MySQL源代码的一个分支,我们使用MariaDB作为数据库支撑。

1.通过putty,连接OMV远程地址,输入Root和密码。
75064-usdnr7y8kwr.png
2.复制以下代码(部分代码需要按照你的实际情况进行微调)到命令界面,按回车(记住下述代码中的数据库管理员密码,数据库名称,用户名称和密码,要用到):

docker run -d --name db_nextcloud \
-p 3307:3306 \
-e PUID=1000 \
-e PGID=100 \
-e MYSQL_ROOT_PASSWORD=000000 \
-e MYSQL_DATABASE=nextcloud \
-e MYSQL_USER=nextcloud \
-e MYSQL_PASSWORD=000000 \
--restart=unless-stopped \
-v /srv/dev-disk-by-label-MYUN/data/db_nextcloud:/var/lib/mysql \
mariadb

代码释义

 -p 3307:3306: 容器服务开放的端口,前者是宿主机的端口,后者是容器内服务的端口
 e PUID、-e PGID: 运行容器的用户的权限集id
 e MYSQL_ROOT_PASSWORD: 数据库root用户的密码
 e MYSQL_DATABASE=nextcloud :创建一个名称为nextcloud的数据库
 e MYSQL_USER:创建一个名称为nextcloud的用户
 e MYSQL_PASSWORD:名称为nextcloud的用户的密码
 --restart=unless-stopped:当容器停止时候重启容器
 -v:数据卷绑定 前者是宿主机的地址,后者是容器机器的位置,例如: -v /sharedfolders/nextcloud/db:/var/lib/mysql 把容器/var/lib/mysql的内容挂在到宿主机/sharedfolders/nextcloud/db的位置

3.记住你的端口3307,去到路由器后台设置端口转发。

71083-iyrz8730tw.png

4.输入下方命令,查看安装配置情况。Docker常用的命令,可以点《Dokcer使用命令总结》学习查看。

docker ps

5.输出结果,如图所示即表示安装正确。

76752-kx01srxjm.png

安装nextcloud

1.在完成数据库的搭建之后,我们继续输入以下命令,完成nextcloud的安装。

docker run -d --name nextcloud \
-p 8888:80 \
--restart=unless-stopped \
-v /srv/dev-disk-by-label-MYUN/nextcloud/html:/var/www/html \
-v /srv/dev-disk-by-label-MYUN/nextcloud/data:/var/www/html/data \
nextcloud

代码释义

-p 8888:80: 容器服务开放的端口,前者是宿主机的端口,后者是容器内服务的端口
--restart=unless-stopped:当容器停止时候重启容器
-v:数据卷绑定 前者是宿主机的地址,后者是容器机器的位置
Nextcloud安装以及数据库之外的所有数据(文件上载等)都存储在容器地址/var/www/html中,要想持久化你的数据,不通过nextCloud也可以查看的话,应当映射到宿主机的某个位置上。
Nextcloud的卷配置还是挺多的,例如配置(config)、数据(data)、主题(themes)等
    nextcloud的一些卷地址:
    /var/www/html 更新所需的主文件夹
    /var/www/html/custom_apps你自己手动安装的应用位置
    /var/www/html/config 本地配置文件位置
    /var/www/html/data 你的网盘数据存放的位置
    /var/www/html/themes/ 主题文件位置
以上卷映射我这里只把data单独抽出来了,其他的配置全部默认放在/var/www/html映射的位置里

2.安装完成后,同样输入Docker ps,查看安装情况,如下所示即可。

07959-enno9v6ar0k.png

3.记住你的端口8888,去到路由器后台设置端口转发,以便实现可以远程连接nextcloud功能。
00461-goi4vfr4um8.png

访问nextcloud

1.在Docker中完成搭建工作,并在路由器完成端口转发工作后,我们通过DDNS上设置的远程地址和相应端口,访问nextcloud的web界面。打开浏览器,输入DDNS设置的地址,比如http://XXXX.asuscomm.com:8888,进入到Web界面。
65120-bv9e6z5a1t.png

由于芾岦已经配置完毕,所以是一个登陆界面。首次界面是这样的。
34770-lzz0oajsg6.png

2.在这个配置界面,输入你的用户名,密码。然后在配置数据库中,选中中间的MySQL/MariaDB,输入之前记住的用户名、密码之类的信息。注意:远程连接时,在最下方的蓝色框内的192.168.50.118:3307,需要把IP地址改为DDNS地址,比如:http://XXXX.asuscomm.com:3307。

3.输入完毕后,点击安装完成,等待一段时间之后,就ok了。
29898-hqr4w6a4dxp.png

ok后,会自动进入到网盘界面。
87897-l63x7yvuzmi.png

4.电脑/手机等设备,安装一下nextcloud客户端,然后设置一下同步目录,就可以实时同步内容到网盘了。芾岦把工作、生活等一些内容,都同步到网盘中,再也不用担心数据丢失了。当然,工作的话也是随时只要有台手机、电脑都可以找到需要的资料文件了。
85032-edu9044lcyk.png

结语

以上,就是利用Docker配置Nextcloud的全过程。通过以上步骤,我们可以实现远程登录网盘,同步网盘达到备份我们重要数据的目的。如果有什么不懂的地方,欢迎文章留言或加芾岦微信公众号留言哦!

说明:部分内容参考简书文章