NextCloud: 配置你自己的云服务器【快速部署版】

本文最后更新于:2022年11月4日 下午

NextCloud是开源的个人云存储服务,提供云存储服务,内置了Office文档、图片相册、日历联系人、两步验证、文件管理、RSS阅读等丰富的应用。可安装在本地或云主机。简单来说就是不要钱的百度云。本文使用 docker-compose 进行部署。

环境介绍

笔者的服务器是 arm 架构, Ubuntu 20.04.4 LTS 系统。但因为我们是使用Docker进行安装,所以系统环境并不是非常重要。大家选一个网速不错硬盘够用的服务器即可。

NextCloud官方镜像仓库地址:nextcloud

工具安装

安装Docker

首先需要安装 Docker,具体安装请参照官方文档:Get Docker。笔者的安装是

1
snap install docker

检查安装是否成功:

1
docker -v

安装 docker-compose

docker-compose 是一个非常方便的部署docker容器的方式,减少了许多代码量,便于维护。由于Nextcloud还需要数据库的支持,如果单独用docker的话,需要手动依次运行2个容器,因此使用 docker-compose 部署。

snap 进行安装会直接一起把docker-compose一起安装了。用命令进行检查:

1
docker-compose -v

如果没有的话参照这里进行安装:Docker Compose 菜鸟教程

启动

在根目录(或者你喜欢的地方)创建nextcloud文件夹,用于保存所有数据。

1
mkdir nextcloud && cd nextcloud

在本地创建 docker-compose,yml 文件

1
vim docker-compose.yml

复制以下内容(可以修改MYSQL_ROOT_PASSWORDMYSQL_PASSWORD):

注意,如果你是其他内核版本的服务器,请将arm64v8/mysql:oracle更改为你相应的mysql镜像,比如mysql:latest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
version: '3'

services:

db:
image: arm64v8/mysql:oracle
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=l12345
- MYSQL_USER=user
- MYSQL_PASSWORD=l12345
- MYSQL_DATABASE=clouddata

networks:
- internal_network

app:
image: nextcloud:latest
volumes:
- ./nextcloud:/var/www/html
ports:
- 8000:80
restart: always
depends_on:
- db
networks:
- internal_network

# redis:
# image: redis:latest
# volumes:
# - ./redis/data:/data
# healthcheck:
# test: ['CMD', 'redis-cli', 'ping']
# networks:
# - internal_network

networks:
internal_network:

然后在当前目录执行:

1
docker-compose up -d

之后用docker ps查看容器运行情况,docker logs 容器名来查看日志。

遇到任何问题需要重启

docker-compose,yml 文件同文件夹下运行:

1
2
docker-compose down
docker-compose up -d

网页配置

在你的浏览器输入http://你的ip:8000 ,即可进入网页进行设置。会出现如下界面,在该界面填入你要设置的管理员账户的账户名和密码即可:

点击储存于数据库,选择中间的MySQL,在下面依次填入你的数据库用户、密码、名称。也就是之前文件中设置的:

1
2
3
- MYSQL_USER=user
- MYSQL_PASSWORD=l12345
- MYSQL_DATABASE=clouddata

那么就依次填入:user,l12345,clouddata

最下面的填入db即可。

这里最后一栏就是填入你的数据库容器名或者别名,使用docker ps查看容器名,一般是nextcloud_db_1或者nextcloud-db-1,取决于docker-compose版本,那么用docker inspect nextcloud_db_1查看alias别名,一般是db。如果不是默认端口的话还需要指定端口。

之后就可以成功配置,你可以选择是否下载常用应用。