目前,国内的主流网盘服务商有百度网盘,微云以及坚果云。论使用频次最多,资源最多的当属百度网盘了。可问题是,百度网盘的口碑并不是很好,「限速,资源限制,监听隐私」等新闻时常出现(最近的百度输入法)。那么,对个人隐私有着较高要求的用户与不满于百度网盘限速的用户,可以尝试一种新的选择——搭建属于自己的网盘服务,一切都可控。

Nextcloud 是有商业软件 Owncloud 的一个分支开发而成,是一款开源和免费的自建网盘服务软件,支持 iOS、Android 以及桌面客户端。作为个人用户,可以在 VPS,树莓派,甚至在废弃的旧电脑上也能轻松地搭建起 Nextcloud 服务。

本篇文章使用 Docker 脚本一件部署 Nextcloud 服务,只需要一些简单的设置,即可使用。

可以前往 Nextcloud Demo 进行体验。

1. 安装 Docker

以 Centos 为例(其他系统可以参考 官方文档安装),输入下面的代码,

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

$ sudo yum install docker-ce docker-ce-cli containerd.io

依次运行后,可以输入命令 docker —versioin,通过是否有版本输出信息来确定是否安装成功。

Docker 安装完成后,需要安装 docker-compose,输入下面的命令,

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

同样,执行命令后,可以输入命令 docker-compse —version,通过是否有版本输出信息来确定是否安装成功。

2. 下载 Nextcloud-docker 脚本

因为官方的脚本有些问题,并且初学者并不好弄清楚,所以我自己做了一个 Docker 脚本,输入下面的命令,

$ git clone https://github.com/goawayit/Docker-Hub.git ~/Downloads/nextcloud

$ cd ~/Downloads/nextcloud

执行完上面的命令之后,便进入了脚本所在的目录。

目前,主要有四个文件:

  • docker-compose.yaml:Docker 部署脚本
  • app.env:Nextcloud 参数配置
  • mysql.env:MySQL 参数配置
  • nginx.conf:Nginx 配置文件

3. 安装 Letsencrpt 证书


首先需要安装 Certbot程序,该程序可以更加方便地申请到 Letsencrpt 证书。

同样,以 Centos 为例(其他系统可以参考 官方文档 安装),输入下面的命令,

$ yum -y install yum-utils

$ yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

$ sudo yum install certbot python2-certbot-nginx

安装完成后,输入下面的命令开始申请 Letsencrpt 证书,

$ certbot certonly -d "*.example.com" --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

其中,需要将 *.example.com更改成你自己的域名地址,然后执行命令。需要注意的是,当如下的提示的时候,需要先暂停一下,

Please deploy a DNS TXT record under the name

_acme-challenge.example.com with the following value:

apQPzp-NYZ0md_D_2_fKr465Il3dDbdR_BlOSOJTYAo

Before continuing, verify the record is deployed.

此时,需要在域名服务商处,添加一行 TEXT 记录,记录为 _acme-challenge,值为上诉出现的(每个人均不一样)apQPzp-NYZ0md_D_2_fKr465Il3dDbdR_BlOSOJTYAo。添加记录成功之后,继续下一步。最后,可以看到出现如下信息:

Congratulations! Your certificate and chain have been saved at:

后面,便是申请到证书的路径,一般为 /etc/letsencrpt/live/example.com

证书申请完成后,接下来,只需要进行一些简单的设置。

4. 简单的设置

4.1 编辑 docker-compose.yaml文件

4.1.2 有域名

Nginx
将上诉的 path/to修改为你的 Letsecnrpt 证书地址,本例为 /etc/letsencrpt/live/example.com,其中,example.com为你的域名。

4.1.2 无域名

删除掉 nginx模块部分,并且,需要修改 app和 cron模块如下,
app-cron
4.2 编辑 app.env文件
其中,主要修改 NEXTCLOUD_ADMIN_USERNEXTCLOUD_ADMIN_PASSWORDNEXTCLOUD_TRUSTED_DOMAINS三个环境变量,分别对应登录账号,登录密码以及 Nextcloud 信任域名。

4.3 编辑 nginx.conf 文件

将文件中的 server_name修改为自己对应的域名地址即可。
到这里,需要修改的地方就已经修改好了,接下来,直接输入命令一键运行。

$ docker-compose up -d

执行上面的命令,如果成功安装,将会出现如下的输出信息,

docker-compose 输出信息

5. 简单的体验

安装完成后,可以通过访问域名进行体验。

总的来说,Nextcloud 有主流网盘该有的功能,并且在此基础上,极大地提升了流畅度以及更好的用户界面。如果有希望自建云盘的同学,可以值得一试。