使用NextCloud打造自己的私人相册

现在各家手机厂商都有自己的云服务,但是都不互通,国内的网盘用起来又不放心,国外的速度也不行,容量也不是很够。所以目前国内外各家的云服务提供商都不能满足自己的需求。所以我采取了自己搭建私人服务器的方式。

NextCloud

NextCloud 官网 前身是OwnCloud,所以NextCloud有很多OwnCloud的代码,整体的结构也大体类似,但是经过数年的开发,现在差别也越来越大了。

看过我之前文章的读者应该知道,我也有群晖,为什么还要安装一个NextCloud 呢?其实这两个并不矛盾,如果是x86架构的群晖,也可以安装NextCloud 。NextCloud 的优势在我看来应该是轻量化和功能的多样性,因为它也有类似群晖的插件中心,虽然插件更少,但是已经可以满足我的部分需求。

我使用NextCloud主要就是用来存放我的照片和代码多处备份。因为NextCloud支持webdav,所以许多相片应用都支持备份,我用起来最顺手的就是快图浏览,有机会可以写一篇教程。

安装NextCloud

官网上有多种安装方式 ,可以手动安装、使用虚拟机或者使用docker。这几种方式我都尝试过,如果本机只准备安装NextCloud 的话可以使用时候安装的方式,这样不会和其他网页服务冲突。但是不管怎样我都更加推荐使用docker的方式,更加的便于维护和升级(使用手动安装的话升级都可以专门写一篇文章来解决各种各样的问题)。

image-20210105105826907

安装NextCloud的需求(使用docker可以免去安装webserver和php的烦恼。)

数据库选择

数据库我只用PostgreSQL,用别的咳嗽。NextCloud支持MySQL 、MariaDB 、Oracle Database、PostgreSQL 、SQLite,读者可以按需安装。如果不想装数据库,docker版本NextCloud自带SQLite,完全能够满足个人用户的需求。

我使用的docker安装。因为本地5432端口已经被占用,所以我改到了8432端口,如果不需要可以使用默认的5432。记得将密码改为自己设置的密码。另外,PostgreSQL各版本的数据不兼容,所以安装时请指定版本,并且以后不要升级大版本,否则可能出现数据库无法启动的现象。

docker run -d \
    -p 8432:5432 \
    --name postgres \
    -e POSTGRES_PASSWORD=yourpasswd \
    -v pgdata:/var/lib/PostgreSQL/data \
    --restart=always \
    postgres:12.5

使用docker 安装 NextCloud

下面的命令是将数据存储在docker的volumes文件夹下,因为我的数据都是放在U盘上的,所以路径不同,读者可以按需修改。另外80端口已经有服务,所以我也更改了端口,如果80没有服务占用的话还是更推荐映射到80端口。

docker run -p 8080:80 -d \
    --restart=always \
    -v /var/lib/docker/volumes/nextcloud:/var/www/html \
    -v /var/lib/docker/volumes/nextcloud/apps:/var/www/html/custom_apps \
    -v /var/lib/docker/volumes/nextcloud/config:/var/www/html/config \
    -v /var/lib/docker/volumes/nextcloud/data:/var/www/html/data \
    --name nextcloud \
    nextcloud

后续打开ip:8080跟随系统设置即可使用。

nextcloud 初始化

image-20210106195655164

填入账号密码后,数据目录保持不变,下方数据库账号填入postgres,密码是刚才自己设置的那个,表名称可以随便填,我写的nextcloud,数据库地址写docker宿主机的ip+刚刚设置的端口号,然后点击确定等待nextcloud初始化一会就可以使用了。

后记

这是一篇非常简陋的教程,许多有用的功能我都没有介绍,自己也没有使用,比如https,多用户等等。留待读者自己去发现使用。