树莓派搭建NextCloud:给数据一个安全的家

前言

NAS有很多方案,常见的有 NextcloudSeafileiStoreOSSynologyownCloudOpenMediaVault ,以下是他们的特点:

1. Nextcloud

  • 优势
    • 功能全面:支持文件同步、共享、在线文档编辑、视频会议、日历、联系人等功能,可通过插件进一步扩展。
    • 开源免费:无需支付软件费用,用户完全掌控数据。
    • 灵活性强:可部署在各种硬件平台上(如树莓派、PC、服务器等)。
    • 安全性高:支持端到端加密、多因子认证,保障数据隐私。
  • 不足
    • 功能丰富导致性能要求较高,适合有一定技术背景的用户。

2. Seafile

  • 优势
    • 高性能:采用文件分块机制,上传和同步速度快,特别适合大文件处理。
    • 轻量化:系统资源占用少,运行效率高。
    • 安全性强:提供端到端加密。
  • 不足
    • 功能较少:扩展能力有限,缺乏丰富的插件支持。
    • 社区支持不如 Nextcloud 活跃。

3. iStoreOS

  • 优势
    • 轻量化:适合低功耗硬件,运行效率高。
    • 易于部署:配置简单,入门门槛低。
    • 适配家庭环境:支持文件共享、下载管理等基础功能。
  • 不足
    • 功能有限:缺乏扩展能力和高级功能,无法满足多样化需求。
    • 社区支持较少:遇到问题可能难以找到解决方案。

4. Synology DSM

  • 优势
    • 完整解决方案:软硬件深度集成,提供高度优化的用户体验。
    • 功能丰富:支持文件同步、备份、媒体服务器、虚拟机等多种功能。
    • 用户友好:界面直观,操作简单,无需技术背景。
  • 不足
    • 成本高:需购买专用硬件,初始投入较大。
    • 自定义能力有限:无法深度控制和定制系统。

5. ownCloud

  • 优势
    • 与 Nextcloud 类似,提供文件同步、共享和扩展能力。
    • 成熟稳定:作为早期开源私有云方案,用户基础广泛。
    • 提供企业版:适合企业用户,支持更多功能和专业服务。
  • 不足
    • 插件数量和功能拓展不及 Nextcloud。
    • 社区热度逐渐被 Nextcloud 超越。

6. OpenMediaVault

  • 优势
    • 简单易用:通过 Web 界面轻松管理 NAS 功能。
    • 模块化设计:支持插件扩展文件共享、FTP、媒体流和备份功能。
    • 适配低功耗设备:适合树莓派等硬件。
  • 不足
    • 功能较基础:更倾向于作为 NAS 解决方案,而非完整的云存储平台。
    • 缺乏在线编辑、协作等高级功能。

本文选择Nextcloud作为NAS方案,以下是树莓派5安装Nextcloud详细教程,涵盖硬件选购、软件安装和配置等内容。


硬件选购

  • 树莓派5
  • TF卡 64G
  • 西数红盘 4T
  • 读卡器

软件设置

1. 系统更新

安装系统,选择这个
在这里插入图片描述

在树莓派启动后,首先更新系统:

sudo apt update && sudo apt upgrade -y

2. 安装 LAMP 环境

Nextcloud需要以下组件支持:

  • Web 服务器:Apache
  • 数据库:MariaDB
  • PHP:用于处理动态内容

2.1 安装 Apache

安装 Apache Web 服务器并设置为开机自启:

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2

2.2 安装 MariaDB

安装 MariaDB 数据库并进行安全配置:

sudo apt install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation

根据提示设置密码并提升安全性。

2.3 安装 PHP

安装 PHP 及其扩展:

sudo apt install php libapache2-mod-php php-mysql php-gd php-xml php-curl php-mbstring php-zip php-intl php-bcmath php-imagick -y

3. 安装 Nextcloud

3.1 下载并解压 Nextcloud

从官网下载最新版本的 Nextcloud:

wget https://download.nextcloud.com/server/releases/latest.tar.bz2
tar -xjf latest.tar.bz2

4. 挂载硬盘

4.1 检测硬盘

插入西数红盘,确认设备是否被识别:

sudo fdisk -l

示例输出:

Disk /dev/sda: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Device     Start        End    Sectors  Size Type
/dev/sda1   2048 7814035455 7814033408  3.6T Linux filesystem

4.2 手动挂载硬盘

创建挂载点并挂载硬盘:

sudo mkdir /mnt/disk
sudo mount /dev/sda1 /mnt/disk/

4.3 设置自动挂载

  1. 获取硬盘 UUID:
sudo blkid

示例:

/dev/sda1: UUID="22bccf31-5f9b-46a7-ae59-caff8da2188b" TYPE="ext4"
  1. 编辑 /etc/fstab 文件:
sudo nano /etc/fstab

添加以下内容:

UUID=22bccf31-5f9b-46a7-ae59-caff8da2188b /mnt/disk ext4 defaults 0 0
  1. 保存并重启系统验证挂载:
sudo reboot

5. 配置 Nextcloud

5.1 移动文件并设置权限

将 Nextcloud 文件移动到硬盘:

sudo mv nextcloud /mnt/disk/
sudo chown -R www-data:www-data /mnt/disk/nextcloud/
sudo chmod -R 755 /mnt/disk/nextcloud/

5.2 配置 Apache

创建 Apache 配置文件:

sudo nano /etc/apache2/sites-available/nextcloud.conf

添加以下内容:

<VirtualHost *:80>ServerAdmin admin@yourdomain.comDocumentRoot /mnt/disk/nextcloudServerName 192.168.1.106Alias /nextcloud "/mnt/disk/nextcloud/"<Directory /mnt/disk/nextcloud/>Require all grantedAllowOverride AllOptions FollowSymlinks MultiViews</Directory>ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.logCustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>

启用配置并重启 Apache:

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

6. 配置 MariaDB

创建数据库和用户:

sudo mysql -u root -p

在 MariaDB 命令行中执行:

CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

7. 完成安装

在浏览器中访问树莓派的 IP 地址:

http://<树莓派IP>

按提示完成安装:

  • 创建管理员账户。
  • 填写数据库信息:
    • 数据库名:nextcloud
    • 用户名:nextclouduser
    • 密码:设置的 yourpassword
    • 数据库主机:localhost
      在这里插入图片描述
      在这里插入图片描述

8. 文件管理

8.1 文件扫描

拷贝数据到 data 文件夹后,需要手动触发文件扫描:

cd /mnt/disk/nextcloud
sudo -u www-data php occ files:scan --all

8.2 修复权限

确保文件权限正确:

sudo chown -R www-data:www-data /mnt/disk/nextcloud/data
sudo chmod -R 755 /mnt/disk/nextcloud/data

9. 可选优化

9.1 启用 HTTPS

使用 Let’s Encrypt 安装 SSL 证书:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache

9.2 性能优化

启用 APCu 缓存:

sudo nano /mnt/disk/nextcloud/config/config.php

添加:

'memcache.local' => '\OC\Memcache\APCu',

至此,树莓派5上已经成功搭建 Nextcloud 服务器,支持PC端和手机端共享文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/61704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据集-目标检测系列- 花卉 鸡蛋花 检测数据集 frangipani >> DataBall

数据集-目标检测系列- 花卉 鸡蛋花 检测数据集 frangipani >> DataBall DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 贵在坚持&#xff01; 数据样例项目地址&#xff1a; * 相关项目 1&#xff09;数据集…

初次体验加猜测信息安全管理与评估国赛阶段训练习

[第一部分] 网络安全事件响应 window操作系统服务器应急响应流程_windows 服务器应急响应靶场_云无迹的博客-CSDN博客 0、请提交攻击者攻击成功的第一时间&#xff0c;格式&#xff1a;YY:MM:DD hh:mm:ss1、请提交攻击者的浏览器版本2、请提交攻击者目录扫描所使用的工具名称…

Python Matplotlib 安装指南:使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装

Python Matplotlib 安装指南&#xff1a;使用 Miniconda 实现跨 Linux、macOS 和 Windows 平台安装 Matplotlib是Python最常用的数据可视化工具之一&#xff0c;结合Miniconda可以轻松管理安装和依赖项。在这篇文章中&#xff0c;我们将详细介绍如何使用Miniconda在Linux、mac…

opencv-python 分离边缘粘连的物体(距离变换)

import cv2 import numpy as np# 读取图像&#xff0c;这里添加了判断图像是否读取成功的逻辑 img cv2.imread("./640.png") # 灰度图 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 高斯模糊 gray cv2.GaussianBlur(gray, (5, 5), 0) # 二值化 ret, binary cv2…

KubeSphere内网环境实践GO项目流水线

KubeSphere内网环境实践GO项目流水线 kubesphere官方给出的流水线都是在公网环境下&#xff0c;并对接github、dockerhub等环境。本文在内网实践部署&#xff0c;代码库使用内网部署的gitlab&#xff0c;镜像仓库使用harbor。 1. 环境准备 1.1 部署kubesphere环境 参考官方…

UE5材质篇5 简易水面

不得不说&#xff0c;UE5里搞一个水面实在是相比要自己写各种反射来说太友好了&#xff0c;就主要是开启一堆开关&#xff0c;lumen相关的&#xff0c;然后稍微连一些蓝图就几乎有了 这里要改一个shading model&#xff0c;要这个 然后要增加一个这个node 并且不需要连接base …

浦语提示词工程实践(LangGPT版,服务器上部署internlm2-chat-1_8b,踩坑很多才完成的详细教程,)

首先&#xff0c;在InternStudio平台上创建开发机。 创建成功后点击进入开发机打开WebIDE。进入后在WebIDE的左上角有三个logo&#xff0c;依次表示JupyterLab、Terminal和Code Server&#xff0c;我们使用Terminal就行。&#xff08;JupyterLab可以直接看文件夹&#xff09;…

小白学多线程(持续更新中)

1.JDK中的线程池 JDK中创建线程池有一个最全的构造方法&#xff0c;里面七个参数如上所示。 执行流程分析&#xff1a; 模拟条件&#xff1a;10个核心线程数&#xff0c;200个最大线程数&#xff0c;阻塞队列大小为100。 当有小于十个任务要处理时&#xff0c;因为小于核心线…

40分钟学 Go 语言高并发:Context包与并发控制

Context包与并发控制 学习目标 知识点掌握程度应用场景context原理深入理解实现机制并发控制和请求链路追踪超时控制掌握超时设置和处理API请求超时、任务限时控制取消信号传播理解取消机制和传播链优雅退出、资源释放context最佳实践掌握使用规范和技巧工程实践中的常见场景…

音频信号采集前端电路分析

音频信号采集前端电路 一、实验要求 要求设计一个声音采集系统 信号幅度&#xff1a;0.1mVpp到1Vpp 信号频率&#xff1a;100Hz到16KHz 搭建一个带通滤波器&#xff0c;滤除高频和低频部分 ADC采用套件中的AD7920&#xff0c;转换率设定为96Ksps &#xff1b;96*161536 …

SpringBoot中使用Sharding-JDBC实战(实战+版本兼容+Bug解决)

一、实战 1、引入 ShardingSphere-JDBC 的依赖 https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc/5.5.0 <!-- https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc --> <dependency><grou…

网络编程 day1.2~day2——TCP和UDP的通信基础(TCP)

笔记脑图 作业&#xff1a; 1、将虚拟机调整到桥接模式联网。 2、TCP客户端服务器实现一遍。 服务器 #include <stdio.h> #include <string.h> #include <myhead.h> #define IP "192.168.60.44" #define PORT 6666 #define BACKLOG 20 int mai…

PyQT开发与实践:全面掌握跨平台桌面应用开发

目录 引言 PyQT简介 PyQT的主要特点 开发环境搭建 PyQT开发流程 1. 创建项目和主窗口 2. 添加控件和布局 3. 信号与槽 4. 样式和美化 高级特性 数据绑定和模型/视图编程 多线程和并发 国际化和本地化 实践案例&#xff1a;简单的计算器应用 1. 界面设计 2. 逻辑…

微信小程序条件渲染与列表渲染的全面教程

微信小程序条件渲染与列表渲染的全面教程 引言 在微信小程序的开发中,条件渲染和列表渲染是构建动态用户界面的重要技术。通过条件渲染,我们可以根据不同的状态展示不同的内容,而列表渲染则使得我们能够高效地展示一组数据。本文将详细讲解这两种渲染方式的用法,结合实例…

Origin教程003:数据导入(2)-从文件导入和导入矩阵数据

文章目录 3.3 从文件导入3.3.1 导入txt文件3.3.2 导入excel文件3.3.3 合并工作表3.4 导入矩阵数据3.3 从文件导入 所需数据 https://download.csdn.net/download/WwLK123/900267473.3.1 导入txt文件 选择【数据->从文件导入->导入向导】: 选择文件之后,点击完成即可…

刷题计划 day22回溯(一)【组合】【组合总和 III】【电话号码的字母组合】

⚡刷题计划day22 回溯&#xff08;一&#xff09;开始&#xff0c;此期开启回溯专题&#xff0c;敬请期待关注&#xff0c;可以点个免费的赞哦~ 往期可看专栏&#xff0c;关注不迷路&#xff0c; 您的支持是我的最大动力&#x1f339;~ 目录 回溯算法理论基础 回溯法解决的…

访问限定符

文章目录 一、访问限定符 一、访问限定符 C⼀种实现封装的⽅式&#xff0c;用类将对象的属性与方法结合在⼀块&#xff0c;让对象更加完善&#xff0c;通过访问权限选择性的将其接口提供给外部的用户使用。 public修饰的成员在类外可以直接被访问&#xff1b;protected和priva…

【论文阅读】WGSR

0. 摘要 0.1. 问题提出 1.超分辨率(SR)是一个不适定逆问题&#xff0c;可行解众多。 2.超分辨率(SR)算法在可行解中寻找一个在保真度和感知质量之间取得平衡的“良好”解。 3.现有的方法重建高频细节时会产生伪影和幻觉&#xff0c;模型区分图像细节与伪影仍是难题。 0.2. …

CSP/信奥赛C++语法基础刷题训练(23):洛谷P1217:[USACO1.5] 回文质数 Prime Palindromes

CSP/信奥赛C语法基础刷题训练&#xff08;23&#xff09;&#xff1a;洛谷P1217&#xff1a;[USACO1.5] 回文质数 Prime Palindromes 题目描述 因为 151 151 151 既是一个质数又是一个回文数&#xff08;从左到右和从右到左是看一样的&#xff09;&#xff0c;所以 151 151 …

【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录

背景 Jetbrain IDE 支持生成 Test 类&#xff0c;其中选择JUnit5 和 JUnit&#xff0c;但是感觉这不是标准的单元测试&#xff0c;因为接口命名吧。 差异对比 两者生成的单测API名称同原API&#xff0c;没加test前缀的。使用差异主要表现在&#xff1a; setUp &#xff06; …