使用 Raspberry Pi NAS 搭建您自己的云

使用由 Raspberry Pi 驱动的自托管云保护和保障您的数据。
338 位读者喜欢这篇文章。
14 facts about OpenStack Newton

Pixabay。由 Opensource.com 修改。CC BY-SA 4.0

在本系列的前两部分中,我们讨论了在 Raspberry Pi 上构建网络附加存储 (NAS) 的 硬件和软件基础知识。我们还制定了适当的 备份策略,以保护 NAS 上的数据安全。在第三部分中,我们将讨论使用 Nextcloud 存储、访问和共享数据的便捷方法。

Raspberry Pi NAS infrastructure with Nextcloud

前提条件

为了方便地使用 Nextcloud,您必须满足一些前提条件。首先,您应该拥有一个可用于 Nextcloud 实例的域名。为了本教程的简洁性,我们将使用 nextcloud.pi-nas.com。此域名应指向您的 Raspberry Pi。如果您想在家庭网络上运行它,您可能需要为此域名设置动态 DNS,并启用从路由器到 Raspberry Pi 的端口 80 和 443 的端口转发(如果您选择 SSL 设置,强烈建议这样做;否则端口 80 应该足够)。

您可以使用 ddclient 从 Raspberry Pi 自动化动态 DNS 更新。

安装 Nextcloud

要在您的 Raspberry Pi 上运行 Nextcloud(使用本系列第一部分中描述的设置),请使用 apt 安装以下软件包作为 Nextcloud 的依赖项。

sudo apt install unzip wget php apache2 mysql-server php-zip php-mysql php-dom php-mbstring php-gd php-curl

下一步是下载 Nextcloud。 获取最新版本的 URL 并复制它,以便在 Raspberry Pi 上通过 wget 下载。在本系列的第一篇文章中,我们将两个磁盘驱动器连接到 Raspberry Pi,一个用于当前数据,另一个用于备份。将 Nextcloud 安装在数据驱动器上,以确保数据每天晚上自动备份。

sudo mkdir -p /nas/data/nextcloud
sudo chown pi /nas/data/nextcloud
cd /nas/data/
wget https://download.nextcloud.com/server/releases/nextcloud-14.0.0.zip -O /nas/data/nextcloud.zip
unzip nextcloud.zip
sudo ln -s /nas/data/nextcloud /var/www/nextcloud
sudo chown -R www-data:www-data /nas/data/nextcloud

当我写这篇文章时,最新版本(如您在上面的代码中看到的)是 14。Nextcloud 正在进行大量开发,因此当您将 Nextcloud 的副本安装到 Raspberry Pi 上时,您可能会找到更新的版本。

数据库设置

当我们在上面安装 Nextcloud 时,我们还安装了 MySQL 作为依赖项,以将其用于 Nextcloud 生成的所有元数据(例如,您创建的用于访问 Nextcloud 的用户)。如果您更愿意使用 Postgres 数据库,则需要调整上面安装的一些模块。

要以 root 身份访问 MySQL 数据库,请以 root 身份启动 MySQL 客户端

sudo mysql

这将打开一个 SQL 提示符,您可以在其中插入以下命令——用您要用于数据库连接的密码替换占位符——为 Nextcloud 创建数据库。

CREATE USER nextcloud IDENTIFIED BY '<insert-password-here>';
CREATE DATABASE nextcloud;
GRANT ALL ON nextcloud.* TO nextcloud;

您可以通过按 Ctrl+D 或输入 quit 退出 SQL 提示符。

Web 服务器配置

Nextcloud 可以配置为使用 Nginx 或其他 Web 服务器运行,但对于本教程,我决定在我的 Raspberry Pi NAS 上使用 Apache Web 服务器。(欢迎尝试其他替代方案,如果您认为它性能更好,请告诉我。)

要进行设置,请为您为 Nextcloud 实例 nextcloud.pi-nas.com 创建的域名配置虚拟主机。要创建虚拟主机,请创建文件 /etc/apache2/sites-available/001-nextcloud.conf,其内容类似于以下内容。如果您没有使用本系列前面建议的域名和路径,请确保将 ServerName 调整为您的域名和路径。

<VirtualHost *:80>
ServerName nextcloud.pi-nas.com
ServerAdmin admin@pi-nas.com
DocumentRoot /var/www/nextcloud/

<Directory /var/www/nextcloud/>
AllowOverride None
</Directory>
</VirtualHost>

要启用此虚拟主机,请运行以下两个命令。

a2ensite 001-nextcloud
sudo systemctl reload apache2

通过此配置,您现在应该能够通过 Web 浏览器使用您的域名访问 Web 服务器。为了保护您的数据安全,我建议使用 HTTPS 而不是 HTTP 来访问 Nextcloud。一个非常简单(且免费)的方法是使用 Certbot 获取 Let's Encrypt 证书,并设置一个 cron 作业来自动刷新它。这样,您就不必处理自签名或过期的证书。按照 Certbot 的简单教程 说明在您的 Raspberry Pi 上安装它。在 Certbot 配置期间,您甚至可以决定自动将 HTTP 转发到 HTTPS,以便访问 http://nextcloud.pi-nas.com 的访问者将被重定向到 https://nextcloud.pi-nas.com。请注意,如果您的 Raspberry Pi 在您的家庭路由器后面运行,您必须为端口 443 和 80 启用端口转发才能获得 Let's Encrypt 证书。

配置 Nextcloud

最后一步是在 Web 浏览器中访问您新安装的 Nextcloud 实例,以完成配置。为此,请在浏览器中打开您的域名,并插入上面提供的数据库详细信息。您还可以在此处设置您的第一个 Nextcloud 用户,即您可以用于管理任务的用户。默认情况下,数据目录应位于 Nextcloud 文件夹内,因此您无需更改本系列第二部分中的备份机制,即可获取 Nextcloud 用户存储的数据。

之后,您将被定向到您的 Nextcloud,并可以使用您之前创建的管理员用户登录。要查看确保 Nextcloud 安装性能和安全性的建议步骤列表,请访问“设置”页面中的“基本设置”选项卡(在我们的示例中:https://nextcloud.pi-nas.com/settings/admin),并查看“安全和设置警告”部分。

恭喜!您已经设置了由 Raspberry Pi 驱动的您自己的 Nextcloud。继续从 Nextcloud 页面下载 Nextcloud 客户端,以便将数据与您的客户端设备同步并离线访问。移动客户端甚至提供即时上传您拍摄的照片等功能,因此它们将自动同步到您的台式 PC,而无需考虑如何将它们传输到那里。

标签
User profile image.
Manuel 于 2013 年在德国海德堡完成了应用计算机科学专业的学习,并获得了硕士学位,之后不久便开始担任软件开发人员。他对使用和结合各种技术来构建新的酷炫事物很感兴趣,并努力使生活(包括他自己的生活)更轻松。

2 条评论

如果除了联合文件共享之外,您还想要联合通信(聊天、A/V 通话、屏幕共享),您还应该在 Nextcloud 中安装 JavaScript XMPP Client (JSXC) 应用程序。例如,在此处记录了如何设置您自己的 XMPP 服务器:https://github.com/jsxc/xmpp-cloud-auth/wiki/raspberry-pi-en

https://ownyourbits.com/nextcloudpi/ - 现在是 Nextcloud 的一部分 - 为 Raspberry Pi(和其他板)提供可随时使用的镜像,其中 Nextcloud 和安全性已设置好。文档易于理解!

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.