使用 Raspberry Pi 上的 NextcloudPi 拥有您的云

在不到 30 分钟的时间内在您的 Raspberry Pi 上安装 NextcloudPi,将您的移动设备与您自己的 Nextcloud 同步,并获得完全的数字主权和隐私。
4 位读者喜欢这篇文章。
5 tools to support distributed sysadmin teams

Opensource.com

您现在可以告别大型商业云提供商,并在您自己的家庭网络中管理您的约会、联系人和其他数据。在不到 30 分钟的时间内在您的 Raspberry Pi 上安装 NextcloudPi,将您的移动设备与您自己的 Nextcloud 同步,并获得完全的数字主权和隐私!

我记得 2012 年第一款 Raspberry Pi 上市的时候。我的 Linux 朋友和我都非常兴奋:一台小巧的计算机,价格低廉,但具有足够的计算能力,非常有用。它还运行着一个功能齐全的 Linux 系统!我们开始了各种 DIY 项目,设置了 媒体中心Web 服务器、博客、我们 智能家居的控制中心,甚至还有蜜蜂蜂巢的监控解决方案。

去年 12 月,我决定在 Raspberry Pi 上安装并运行我自己的云。经过一番研究,我选择了 NextcloudPi,这是一个现成的 Nextcloud 实例。这款开源软件不仅可以在 Raspberry Pi 上运行,还可以在许多其他单板计算机和其他操作系统上运行。

本文介绍了如何安装和配置 NextcloudPi。我还解释了如何保护系统安全,并讨论了不同的备份和恢复方法。

除了本教程外,您还可以查看我的前几篇文章,了解如何从 Google WorkspaceApple iCloud 同步数据到 Nextcloud。

先决条件

要在 Raspberry Pi 上运行 NextcloudPi,您至少需要 Raspberry Pi 2。但是,更新的型号,如 Raspberry Pi 3、Pi 3+,尤其是 Raspberry Pi 4,速度要快得多。在我的家中,我使用 Raspberry Pi 3,型号 B+,配备 64 位四核处理器 (1.4 GHz) 和 1 GB 内存。由于我不使用图形桌面环境,因此此设备完全满足我的需求(最多 10 个用户/设备)。

您还需要什么?以下是清单

  • 容量至少为 8 GB 的 microSD 卡

  • 一台将 NextcloudPi 镜像写入 SD 卡的计算机

  • 一根以太网电缆(NextcloudPi 也可通过 WLAN 工作,但直接连接更稳定、速度更快)

  • 一个可选的额外外部存储设备,用于存储您自己云的数据。这取决于您拥有的数据量。您应该选择尺寸足够的 USB 闪存盘或外部硬盘驱动器

通常,您不需要显示器或外部键盘。将 NextcloudPi 镜像刷写到 SD 卡后,其余设置和操作都通过 Web 界面完成。您还可以通过 SSH 从 Linux、Windows 和 macOS 访问 Raspberry Pi。您还可以从您的移动设备访问它。

Nextcloud 与 NextcloudPi

当然,您始终可以在 Raspberry Pi OS(以前称为 Raspbian)或迷你计算机上的其他操作系统上安装 Nextcloud。但是,这意味着您必须安装操作系统,设置数据库服务器和数据库——这是一项复杂的任务,会让许多初学者望而却步。使用 NextcloudPi,该过程更简单、更快捷。这个开源项目为各种单板计算机提供了现成的镜像。它还提供了一个安装脚本,让您可以在很短的时间内设置自己的云。

NextcloudPi 为您省去了大量工作。它安装和配置 Nextcloud,以便您可以立即开始使用。开发人员在其 网站 上发布了受支持的硬件/系统列表。例如,Raspberry Pi(所有型号,还有 Berryboot 镜像可直接从外部硬盘驱动器运行 NextcloudPi)、Odroid、Rock64、RockPro64、Banana Pi 等。他们还提供了一个 容器镜像,该镜像可以在所有运行容器的架构和操作系统上运行。

除了当前的 Nextcloud 版本外,NextcloudPi 还包括一个带有预配置数据库连接的 Web 服务器。还包括一个用于 Web 浏览器的管理界面,以便初学者可以快速找到方向。喜欢在命令行上进行管理的用户可以激活 SSH 访问。NextcloudPi 有许多有用的预设,包括自动 HTTPS 转发、HSTS(HTTP 严格传输安全,一种用于 HTTPS 连接的安全机制)、用于提高性能的 PHP 扩展等等。配置向导可帮助您完成初始步骤以及外部 USB 媒体的格式化,以及使用各种动态 DNS 服务从外部进行访问。

Nextcloud 本身有许多预装的应用程序,包括日历、地址簿、仪表板、文件共享、PDF 查看器、图像和文件管理、笔记和任务以及 Nextcloud 活动。

将镜像刷写到 SD 卡

GitHub 存储库 包含用于 Raspberry Pi 和其他设备的现成镜像。下载并解压缩 zip 文件后,您可以使用 Linux 或 macOS 上的 dd 命令将镜像写入 SD 卡

sudo dd bs=4M conv=fsync if=NextCloudPi[…].img of=/dev/mmcblkXX

将 SD 卡的设备名称替换为正确的名称。请务必选择正确的设备名称,因为 dd 不会要求确认!

或者,您可以使用开源程序 Etcher 将镜像写入 SD 卡。它可以在 Linux、Windows 和 macOS 上运行。只需选择硬盘驱动器上的镜像(从文件刷写)或在 GitHub 中输入 NextcloudPi 镜像的地址(从 URL 刷写)。之后,单击 选择目标选择 SD 卡,然后单击“刷写”开始写入过程。

Image of etcher.

(Heike Jurzik,CC BY-SA 4.0)

启动并激活 NextcloudPi

将准备好的 SD 卡插入 Raspberry Pi 的插槽中,将以太网电缆连接到网络交换机或路由器上的空闲端口,并将 Raspberry Pi 连接到电源以启动它。首先,您需要找出 Raspberry Pi 的 IP 地址。这就是您访问用于设置 NextcloudPi 和 Nextcloud 本身的 Web 界面的方式。

如果您使用的是配备 DHCP 服务器的路由器,则可以查看路由器的管理界面,以查看它为 Raspberry Pi 分配了哪个地址。

或者,在命令行上使用像 nmap 这样的网络扫描仪来查找 IP。

打开 Web 浏览器并输入 Pi 的 IP 地址或主机名。这将打开配置向导。默认情况下,NextcloudPi 仅具有未由已知证书颁发机构 (CA) 签名的自签名 SSL/TLS 证书。大多数 Web 浏览器都会警告此类自签名证书。在这种情况下,忽略警告、接受风险并继续操作是安全的。

接下来,您将看到 NextcloudPi 激活屏幕。Web 界面包含有关它创建的两个帐户的信息:一个用于 NextcloudPi 管理员,一个用于 Nextcloud。此时,最好记下密码或将密码保存在密码管理器中,以便稍后更改它们。单击 激活 按钮,以用户 ncp 以及关联的密码登录以启动配置向导。

Image showing Nextcloud browser activation.

(Heike Jurzik,CC BY-SA 4.0)

NextcloudPi 配置向导

首次在浏览器中导航到您的 Pi 时,单击 运行 按钮以启动配置向导。

Image of the NextCloud configuration wizard.

(Heike Jurzik,CC BY-SA 4.0)

切换到 USB 配置 选项卡以设置用于 Nextcloud 数据的外部 USB 设备(例如,外部硬盘驱动器或 USB 闪存盘)。如果 USB 介质已具有合适的文件系统(Ext2、Ext3、Ext4 或 Btrfs),您可以单击 跳过 继续。否则,使用 格式化 USB 按钮指示 NextcloudPi 使用 Btrfs 文件系统格式化磁盘。注意!格式化会擦除介质上的所有数据!

外部访问 选项卡中,您可以设置 NextcloudPi,以便可以从外部(互联网)访问系统。此时,我建议选择 。您始终可以通过 NextcloudPi 网络 菜单连接各种动态 DNS 服务。完成最后一步后,初始设置完成。完成 选项卡提供了两个链接,用于访问您的新 Nextcloud 安装和 NextcloudPi 仪表板

NextcloudPi 的初始步骤

NextcloudPi 管理界面非常直观。菜单栏显示版本号、语言切换器、搜索功能以及链接到您自己的 Nextcloud 安装的图标。您还可以找到有关系统的信息、访问现有备份和快照、显示 Nextcloud 配置概述、日志文件以及重新启动配置向导。使用最右侧的图标关闭或重启操作系统。

在左侧边栏中,有七个菜单,其中包含用于管理 NextcloudPi 系统的基本选项

  • 备份:(自动)备份,配置备份介质,定义备份计划,导出和导入 NextcloudPi 配置,创建 Btrfs 文件系统的快照,恢复现有备份

  • 配置:显示和(重新)设置管理员帐户 ncp 的密码,将 Nextcloud 数据库移动到外部 (USB) 设备,移动 Nextcloud 数据目录,强制执行安全的 HTTPS 连接,使用干净的配置重启 Nextcloud,以及配置系统限制

  • 网络:激活 NFS、SSH 访问、各种 DNS 服务和提供商、带有 Let's Encrypt 的 TLS/SSL 证书、用于从外部访问的端口转发、静态 IP 地址、受信任的代理服务器和 Samba

  • 安全:配置防火墙和入侵防御系统 Fail2ban,并启动手动安全检查

  • 系统:激活 Prometheus 的监控和 USB 设备的自动挂载,检查外部硬盘驱动器的状态并将系统日志保存在 RAM 中以保护 SD 卡,定义交换空间的大小和位置,并激活压缩 RAM 以提高交换性能

  • 工具:使用各种实用程序来修复 Nextcloud 数据文件的权限,格式化 USB 驱动器(Btrfs 文件系统)以及打开和关闭 Nextcloud 的维护模式

  • 更新:启用自动 Nextcloud 和 NextcloudPi 更新、有关新版本和定期更新所有已安装 Nextcloud 应用程序的通知、将当前实例更新到新的 Nextcloud 版本、安装 NextcloudPi 更新以及激活安全更新的自动安装

启动 Nextcloud

您可以使用用户名 ncp 和激活窗口中显示的密码登录您的 Nextcloud。Nextcloud 仪表板提供对某些文件和文件夹、您的日历和您的在线状态(在线、离开、请勿打扰等等)的快速访问。您还可以选择您的位置以获取天气预报。

所有已安装的 Nextcloud 应用程序都列在顶部菜单栏中:文件、照片、活动、联系人、日历、笔记 等等。如果您选择一个应用程序,则左侧边栏中的菜单会提供与其关联的过滤器和任务。例如,在 文件 应用程序中,您可以获得搜索功能和过滤器,这些功能和过滤器可以快速访问您自己的文件和文件夹或与您共享的文件和文件夹。另一方面,在 联系人 应用程序中,有一个用于创建新联系人和管理群组和圈子的按钮。在左下方,您可以访问应用程序的设置。

所有 Nextcloud 用户都可以通过单击右上角的个人资料图片或用户名首字母来找到他们的个人设置。管理员帐户 ncp 也可以(卸载)安装应用程序、管理用户帐户并执行其他管理任务。

Image of Nextcloud control page.

(Heike Jurzik,CC BY-SA 4.0)

在开始导入您的地址簿和日历之前,最好为您的日常工作创建一个没有管理员权限的新用户帐户。出于安全原因,您应该仅在更改配置时使用 ncp 帐户。这包括安装和更新 Nextcloud 应用程序、创建用户和群组等等。

要创建新用户,请单击右上角带有 N 的图标以打开设置,然后在那里选择 用户 条目。在左侧边栏中,单击 新用户 按钮,输入用户名、名字和姓氏、密码以及电子邮件地址。您还可以将帐户添加到现有群组。在 默认配额 字段中,您可以定义在云中授予用户的硬盘空间量。

同步

一旦您启动并运行了 Nextcloud,您就可以同步您的 Android 或 Apple 设备。您可以在我之前的文章 从 Google Workspace 切换到 Nextcloud从 iCloud 切换到 Nextcloud 中阅读有关如何执行此操作的信息。

设置对系统的访问

即使您仅在本地网络中运行 Nextcloud,并且无法从外部访问任何服务,也必须考虑额外的安全措施。以下是一些建议

  • 激活 SSH 访问:要为 Raspberry Pi 启用 SSH 访问,请转到 NextcloudPi Web 界面中的 网络 > SSH。单击 活动 复选框,然后输入 pi 帐户的密码。最后,单击 应用 以在 Raspberry Pi 上启动 SSH 服务。默认情况下,用户 pi 设置的密码为 raspberry。您必须将其更改为其他密码。首次通过 SSH 登录后,系统会提示您也更改此密码!

  • 设置防火墙:您可以在 安全 > UFW 部分激活防火墙。简易防火墙 (UFW) 是功能强大但相当复杂的 Netfilter 防火墙 Iptables 的前端。NextcloudPi 开发人员通过在 Web 界面中输入 UFW 应允许的三个基本端口来简化设置:80 (HTTP)、443 (HTTPS) 和 22 (SSH)。单击 活动,然后单击 应用 以启动防火墙。在对话窗口中,您可以看到来自操作系统关于已添加规则的消息。

  • Fail2ban:如果您仅在家庭网络上使用 Nextcloud,则可以不用设置。另一方面,如果可以从 Internet 访问 Nextcloud,则通过 安全 / fail2ban 设置此额外的保护措施。Fail2ban 可保护服务免受 DoS 攻击。为此,该程序会在一定次数的连接尝试失败后阻止 IP 地址——首先是暂时阻止,然后是永久阻止。

  • TLS/SSL 证书:默认情况下,NextcloudPi 包含自签名 SSL/TLS 证书。这可能会导致警告。对于本地网络中的 NextcloudPi,警告仅仅是技术性的,您可以为相应的 Web 浏览器定义例外。或者,您可以使用 Let's Encrypt 证书颁发机构生成有效的 TLS/SSL 证书(或设置您自己的证书颁发机构)。

  • 为 Nextcloud 启用 2FA:您可以通过菜单 管理 > 安全 激活 双因素身份验证 (2FA)。在 Nextcloud 应用程序目录的 安全部分 中,有许多应用程序可以设置用于登录的第二因素——由应用程序或硬件(例如,使用 YubiKey)提供。如果您已启用双因素身份验证,请在 个人 > 安全 下设置应用程序密码。您可以使用此密码在 Apple 或 Android 设备中进行身份验证,以便成功同步联系人和日历。出于安全原因,密码仅显示一次。

  • 密码策略:您还可以在 管理 > 安全 中为 Nextcloud 设置密码策略。例如,您可以定义最小密码长度、用户密码过期前的天数以及帐户被阻止之前的登录尝试次数。此外,您可以禁止常用密码并强制执行大写和小写、数字和特殊字符的组合。

Image showing how to update Nextcloud security.

(Heike Jurzik,CC BY-SA 4.0)

对于操作系统的安全,及时安装安全更新至关重要。对于 NextcloudPi,共有三种不同的更新:NextcloudPi 更新、Nextcloud 更新和已安装的应用程序。还有底层操作系统(Raspberry Pi OS)的更新。使用 NextcloudPi 界面中的 更新 菜单来激活有关新版本、自动更新和 Nextcloud 应用程序手动更新的通知。

备份和恢复

现在您有了自己的云,最好是在您自己的家中——这就是设置的结束。这篇文章到此就可以结束了。如果不是还有一个重要主题要讨论:备份!与标准磁盘相比,Raspberry Pi 中的小型 SD 卡特别容易出现硬件缺陷,但硬件故障也可能有其他原因。NextcloudPi 包含创建自动备份并在紧急情况下恢复备份的所有必要工具。

您可以随时通过 NextcloudPi Web 界面立即备份您的数据。为此,请从 备份 菜单中打开 nc-backup 条目。备份最好放在外部 USB 设备上,而不是 SD 卡上——外部硬盘驱动器不仅有更多空间,而且更可靠。要创建包含 NextcloudPi 配置以及 Nextcloud 数据库、Nextcloud 应用程序和用户数据(日历、联系人和其他文件)的完整备份,请激活 包括数据 复选框。或者,通过勾选 压缩 复选框来压缩数据。完整备份的替代方法是仅通过菜单项 备份 > nc-export-ncp 导出 NextcloudPi 配置。这样,您仅保存 NextcloudPi 设置——不包含 Nextcloud 数据库、其配置和用户数据。

为了简化操作,您可以激活自动备份(备份 > nc-backup-auto)。同样,是否要包含用户数据以及是否要压缩备份由您决定。在默认设置中,NextcloudPi 在单击 应用 后每七天创建一个完整备份。四周后,它会覆盖最旧的版本。手动备份和自动备份这两种方法都具有可以快速设置的优点。但是,备份可能会占用大量空间,即使它们被压缩——具体取决于您的 Nextcloud 中的数据量。随着数据量的增长,NextcloudPi 也需要更多时间来创建备份。在此期间,云处于维护模式,无法使用。

作为替代方案,您可以通过创建和同步 Btrfs 快照来创建增量备份。这种备份方法节省磁盘空间,并且比其他方法性能更高。特别是对于云中的大量数据。此变体具有真正的优势:在备份期间,Nextcloud 不必进入维护模式,因此没有停机时间。B-tree FS(也称为 Butter FS)是一种所谓的写入时复制 (COW) 文件系统,允许从正在运行的系统创建当前数据的快照。这些是在创建时子卷的冻结映像。它们不需要任何额外的磁盘空间。

请注意:为此,必须将 Nextcloud 数据目录从 SD 卡(或其他数据介质)移动到带有 Btrfs 文件系统的 USB 驱动器。您可能已经在配置向导中配置了此项,否则您可以移动数据

  1. 使用 Btrfs 文件系统格式化外部 USB 驱动器(工具 > nc-format-USB)。

  2. 将 Nextcloud 数据目录移动到外部 USB 磁盘(配置 > nc-datadir)。您应该在下面的窗口中看到消息 NC 数据目录已成功移动

  3. 作为测试,您现在可以在激活自动快照功能之前创建快照(备份 > nc-snapshot)。

  4. 要自动创建快照,请从 备份 菜单中打开 nc-snapshot-auto 条目,选中 活动 并单击 应用。现在,NextcloudPi 每小时自动创建 Nextcloud 数据目录的 Btrfs 快照。

新克隆的目录仅占用自上次快照以来添加的新文件所用的额外存储空间——因此,从空间角度来看,整个过程非常高效。您可以将快照增量发送到另一个 Btrfs 文件系统。NextcloudPi 通过设置(备份 > nc-snapshot-sync)为您提供支持。您可以选择另一个外部驱动器或远程计算机上的目录。这必须可以通过 SSH(无需密码)访问,并且磁盘也必须使用 Btrfs 格式化。

在设置备份策略后,您应始终测试是否可以使用 NextcloudPi Web 界面恢复数据。对于此处介绍的几乎所有方法,都有相应的恢复菜单项

  • nc-import-ncp: 导入您的 NextcloudPi 配置

  • nc-restore-snapshot:恢复特定快照

  • nc-restore:恢复 Nextcloud 的完整备份

Image of a snapshot of Nextcloud.

(Heike Jurzik,CC BY-SA 4.0)

探索 Nextcloud

那里有一个活跃的 Nextcloud 社区

NextcloudPi 开发人员整理了一个 网站,解释了哪些问题最好在哪里提出。

NextcloudPi 为商业云提供商提供了一种经济高效且强大的替代方案。通过在 Raspberry Pi 上安装它,您可以控制您的数据并确保隐私。凭借其与 Android 和 Apple 设备的兼容性,它可以轻松同步您的约会、联系人和其他数据。安装过程很简单,可以在 30 分钟内完成。通过采取必要的步骤来保护系统安全并实施备份和恢复方法,您可以安心地知道您的数据是安全的。

有关 NextcloudPi 的更深入信息,您可以查看我的书 Nextcloud on the Raspberry Pi: Set up your own cloud with NextcloudPi。它提供了设置和使用 NextcloudPi 的综合指南,并将帮助您充分利用您的个人云解决方案——迈出迈向数字主权的第一步!


本文改编自 Heike Jurzik 的书 Nextcloud on the Raspberry Pi

接下来阅读什么
Heike Jurzik | Copywriter | Journalist | Author
Heike 是一位 FLOSS 爱好者、技术作家,也是多本 Linux 书籍的作者:www.heikejurzik.de www.yuki-likes-snow.de

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.