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中的數據都會顯示在這里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM