目前,国内的主流网盘服务商有百度网盘,微云以及坚果云。论使用频次最多,资源最多的当属百度网盘了。可问题是,百度网盘的口碑并不是很好,「限速,资源限制,监听隐私」等新闻时常出现(最近的百度输入法)。那么,对个人隐私有着较高要求的用户与不满于百度网盘限速的用户,可以尝试一种新的选择——搭建属于自己的网盘服务,一切都可控。
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. 简单的设置
docker-compose.yaml
文件4.1.2 有域名
path/to
修改为你的 Letsecnrpt 证书地址,本例为 /etc/letsencrpt/live/example.com
,其中,example.com
为你的域名。4.1.2 无域名
删除掉nginx
模块部分,并且,需要修改 app
和 cron
模块如下,app.env
文件NEXTCLOUD_ADMIN_USER
,NEXTCLOUD_ADMIN_PASSWORD
,NEXTCLOUD_TRUSTED_DOMAINS
三个环境变量,分别对应登录账号,登录密码以及 Nextcloud 信任域名。4.3 编辑 nginx.conf
文件
将文件中的 server_name
修改为自己对应的域名地址即可。到这里,需要修改的地方就已经修改好了,接下来,直接输入命令一键运行。
$ docker-compose up -d
执行上面的命令,如果成功安装,将会出现如下的输出信息,
5. 简单的体验
安装完成后,可以通过访问域名进行体验。
总的来说,Nextcloud 有主流网盘该有的功能,并且在此基础上,极大地提升了流畅度以及更好的用户界面。如果有希望自建云盘的同学,可以值得一试。