nextcloud个人云搭建

nextcloud个人云搭建

硬件准备

树莓派4 4G版
sd卡 16G以上
读卡器
网线
路由器

说明

后续除了nextcloud以外,还在树莓派上安装其他好用的工具,也会一并分享

树莓派安装系统

首先安装树莓派官方系统(Raspbian),需要安装lite版的系统(桌面版系统尝试过,后续会安装失败,不能用),不清楚为什么视频教程里面的就是用的桌面版操作系统。

下载完成后需要进行解压,得到以.img结尾的文件,使用[balenaEtcher](balenaEtcher - Flash OS images to SD cards & USB drives)进行烧写系统,

也可使用树莓派官方烧写工具进行烧写系统,烧写完成后,拔出读卡器,再重新插入电脑,创建文件ssh (没有后缀名)打开树莓派的ssh。

登录路由器管理界面查看树莓派的ip地址,树莓派系统默认用户名pi,密码raspberry。

进入系统后输入:
sudo passwd root 
重新设置密码

安装OMV5

首先下载文件

apt-get update
apt-get install openssl libssl-dev vim
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install|sudo bash

至此omv5安装完毕

浏览器输入树莓派网址(默认端口80)

omv5系统默认用户名:admin,密码: openmediavault

安装dockcer

在openmediavault管理界面中,找到OMV-Extras,点击docker安装,安装portainer,(如果期间出现了错误,再安装一次就可以了)

打开portainer管理页面设置密码,去containers中即可看到正在运行的容器,

在树莓派shell中输入:

docker pull nextcloud 
默认下载最新版本23

在portainers的images中可以看到nextcloud镜像,将容器中的目录映射到树莓派系统中

docker run -d --name nextcloud -p 8080:80 -v /var/www/html:/var/www/html nextcloud

生成缩略图
使用时会发现,Nextcloud 上传的视频不能生成缩略图。其实 Nextcloud 本身支持生成视频缩略图,需要安装 ffm­peg 并修改配置:

docker exec -it nextcloud bash
apt update
apt install ffmpeg
停止 NextCloud 容器,再修改 /var/​www/​html/​con­fig/​con­fig.php 配置文件,添加:

'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\Preview\Image',
1 => 'OC\Preview\Movie',
2 => 'OC\Preview\TXT',
),
再次启动容器即可生效。

文件上传设置无“块大小”限制,方法来源
docker exec --user www-data containerID php occ config:app:set files max_chunk_size --value 0

https://www.cnblogs.com/blackelk/p/nextcloud.html

挂载硬盘进行映射(使用u盘测试的)

在openmediavault管理页面中,找到磁盘,可以看到刚刚插入的硬盘,在文件系统中对硬盘进行挂载,格式化,创建文件系统格式,格式选择ext2或者ext3格式。

在 shell界面中/src目录下可以找到挂载的硬盘,进入目录后,用mkdir在硬盘中创建文件。

docker run -d --name nextcloud -p 8080:80 -v /srv/dev-disk-by-uuid-73f049ab-12d9-4c48-8356-da19484d7457/nextcloud:var/www/html nextcloud

创建成功后shell界面就会出现一串id码

映射成功后可以在portainer中的nextcloud容器中可以看到映射成功;

使用IP地址进入nextcloud页面

如果使用windows格式的硬盘,那么会出现报错,

如果强烈使用windows格式的硬盘,在映射出来的目录里,进入config/config.php,

在最后一行加入,

'check_data_directory_permissions' => false,

在地址栏进行刷新即可

不足

接下来要考虑连接数据库mysql,nginx ssl反向代理

配置数据库

使用docker拉取postgresql

docker pull postgres:latest

这里未使用mysql是因为dockerhub里面的mysql官方镜像并不支持arm/v7

并没有arm的标签,所以采用了postgresql数据库。

运行容器

sudo docker run -d --name=postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 postgres:latest

数据库的端口是5432,密码是123456。

  1. run 创建并运行一个容器
  2. -d 后台运行
  3. –name 指定创建的容器的名字
  4. -e POSTGRES_PASSWORD=123456,设置环境变量,设置密码为123456
  5. -p 5433:5432,将主机的的5432端口映射到容器的5433端口

进入容器

docker exec -it postgres psql -U postgres -d postgres

创建数据库

CREATE DATABASE nextcloud;

退出容器

exit

nextcloud使用数据库

主机名一定要写ip地址,不能写localhost

问题

使用数据库连接工具连接了数据库之后,并没有找到nextcloud数据库,不太清楚原因,但是nextcloud能正常使用数据库。

关于使用ssl证书

由于ssl证书需要使用ip地址生成密钥,但是由于未来我的树莓派地址会改变,所以就不打算设置ssl了,打算只在内网使用。

补充(2022.02.09.14:30)

之前没有设置docker自启动容器,导致每次开机都需要去启动一次nextcloud容器
启动时添加--restart=always

docker run -tid --name nextcloud -p 8080:80 --restart=always -v /var/www/html:/var/www/html nextcloud
Flag	Description
no		不自动重启容器. (默认value)
on-failure 	容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 	在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 	在容器已经stop掉或Docker stoped/restarted的时候才重启容器

已经运行过项目


docker update --restart=always nextcloud

补充 如果系统坏了造成无法登录想保数据(2022.02.09.21:25)

如果因为系统损害,容器损坏等一系列问题,造成了没法从nextcloud客户端或者网页端保存数据,或者系统损坏无法开机,可以取出树莓派的内存卡,插入电脑(Windows系统,mac系统我没有),会看到

但是这仅仅只是boot,并没有树莓派系统里面的数据。需要借助工具比如linux虚拟机或者diskgenius,linux虚拟机(带图形界面的)的话插入电脑之后会显示两个可移动磁盘,第二个就是,像正常的windows文件操作一样,这里演示diskgenius,(需要提前准备好软件)

点击 + 号,即可看到文件目录,

接下来的操作都是在设置nextcloud目录在默认条件下进行的(文件都存放在sd卡中的,如果文件存放在外挂硬盘上的话,文件的位置可以按照同样的思路去找),因为nextcloud安装在docker中,所以去docker的文件目录中查找 /var/lib/docker/volumes/

在这个目录下,会看到一些乱码数字,这些是容器的文件,点进去每个都查看下就知道哪个是nextcloud的文件夹,进入_data

进入data文件夹,找到对应用户的文件夹,找到file文件,如果nextcloud的设置中没有设置加密数据的话,nextcloud中的数据都会显示在这里。

posted @   嫌疑的羊  阅读(899)  评论(2编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示