如何在 Ubuntu 22.04 上安装 Nextcloud AIO
Nextcloud AIO 代表 Nextcloud All in One。它是一个基于 docker 的安装程序,使部署 Nextcloud 变得轻而易举。它具有以下功能和应用程序:
- 下一云
- Nextcloud Office - 它基于 Collabora Online Development Edition (CODE),而后者又基于 LibreOffice。您可以使用它与多个编辑器实时编辑文档。它支持所有流行的办公文件格式。
- Nextcloud Talk - 这是一种音频/视频和聊天通信服务。它支持加密呼叫、群组呼叫、屏幕共享、跨平台支持的 WebRTC 以及托管网络研讨会。
- Imaginary - 用于高级图像处理和转换。
- ClamAV - 用于防御病毒和恶意软件。
- Borgbackup - 提供内置的备份和恢复工具。
- ElasticSearch - 支持跨文档和文件的全文搜索。
先决条件
运行 Ubuntu 22.04 的服务器,至少具有 1GB RAM 和 1 个 vCPU。如果您想使用 ClamAV,您将需要额外的 1GB RAM。您还需要额外 1GB RAM 用于 ElasticSearch(全文搜索)和 Nextcloud Talk。启用所有插件后,您至少需要 4GB RAM 和 2vCPU。
指向您的服务器的完全限定域名 (FQDN)。出于我们的目的,我们将使用 nextcloud.example.com
作为域名。
具有 sudo 权限的非 root 用户。
简单的防火墙(UFW)已启用并正在运行。
确保一切都已更新。
$ sudo apt update && sudo apt upgrade
安装基本实用程序包。其中一些可能已经安装。
$ sudo apt install wget curl nano unzip -y
第 1 步 - 配置防火墙
在安装任何软件包之前,第一步是将防火墙配置为允许 HTTP 和 HTTPS 连接。
检查防火墙的状态。
$ sudo ufw status
您应该会看到类似以下内容的内容。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
允许实际 Nextcloud 实例使用 HTTP 和 HTTPs 端口。
$ sudo ufw allow http
$ sudo ufw allow https
为 Nextcloud Talk 打开端口 3478。如果您不会使用它,可以跳过它。
$ sudo ufw allow 3478
打开端口 8080 和 8443,为 AIO 接口提供 HTTP 和 HTTPS 支持。
$ sudo ufw allow 8080/tcp
$ sudo ufw allow 8443/tcp
再次检查状态以确认。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
8080/tcp ALLOW Anywhere
8443/tcp ALLOW Anywhere
3478 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
8443/tcp (v6) ALLOW Anywhere (v6)
3478 (v6) ALLOW Anywhere (v6)
第 2 步 - 配置主机名和时区
在继续之前,我们需要为系统设置正确的主机名。
打开主机名文件进行编辑。
$ sudo nano /etc/hostname
将值更改为您的完全限定域名。
nextcloud.example.com
按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
打开主机文件进行编辑。
$ sudo nano /etc/hosts
在 127.0.0.1 localhost
行后添加以下行。如果存在以下内容,请将任何现有行替换为 IP 127.0.1.1 ubuntu-master
。
<YourServerIP> nextcloud.example.com nextcloud
按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
检查服务器的当前时区。
$ timedatectl
Local time: Sun 2022-10-09 13:21:01 UTC
Universal time: Sun 2022-10-09 13:21:01 UTC
RTC time: Sun 2022-10-09 13:21:01
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
您可以使用以下命令查看可用时区的列表。
$ timedatectl list-timezones
...
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
...
如果它与您的偏好不符,请使用以下命令进行更改。
$ sudo timedatectl set-timezone America/Chicago
重新启动服务器。
$ sudo reboot
您现在可以按如下方式登录服务器。
$ ssh [email
第 3 步 - 安装 Docker
添加 Docker 的官方 GPG 密钥。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
运行以下命令添加 Docker 存储库。
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新系统以包含 Docker 的存储库。
$ sudo apt update
安装 Docker 和 Docker compose 插件。
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
本教程将使用 Docker Compose v2 插件而不是旧的旧二进制文件。因此,运行它的命令已从 docker-compose 更改为 docker compose,这反映在这里。
Docker 以提升的权限运行,因此您需要经常使用 sudo 来运行命令。更好的选择是将您的 Linux 用户帐户添加到 docker
用户组。
$ sudo usermod -aG docker ${USER}
$ {USER}
变量选取当前登录的系统帐户。如果您未使用要授予权限的用户登录,请将 $ {USER}
替换为用户名。
要申请新的组成员身份,请注销服务器并重新登录,或使用以下命令。系统将提示您输入用户密码。
$ su - ${USER}
第 4 步 - 配置 Docker Compose 文件
为 Docker compose 文件创建一个目录。
$ mkdir ~/nextcloud-aio
切换到目录。
$ cd ~/nextcloud-aio
创建并打开 docker compose 文件进行编辑。
$ nano docker-compose.yml
将以下代码粘贴到其中。
version: "3.8"
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed
services:
nextcloud:
image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU
restart: always
container_name: nextcloud-aio-mastercontainer
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- 80:80
- 8080:8080
- 8443:8443
按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
第 5 步 - 运行 Nextcloud AIO
创建并启动 Docker 容器。
$ docker compose up -d
检查容器的状态。
$ docker compose ps
您将看到以下输出。
NAME COMMAND SERVICE STATUS PORTS
nextcloud-aio-mastercontainer "start.sh /usr/bin/s…" nextcloud running (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp
您还可以使用命令 docker ps 来获取更详细的状态。要检查容器日志,请使用命令docker logs
。
第 6 步 - 访问 Nextcloud AIO
打开 URL https://nextcloud.example.com:8443
,您将看到以下屏幕。
复制屏幕上显示的密码,然后单击打开 Nextcloud AIO 登录按钮。
输入密码并单击登录按钮继续。
在新建 AIO 实例部分下输入您的域名 nextcloud.example.com
,然后单击提交按钮开始安装 Nextcloud。
它将带您进入以下页面。
您可以在此处更改服务器时区并启动新的 Nextcloud 实例。选择要安装的附加组件,然后单击保存更改按钮保存选项。
单击启动容器启动 Nextcloud 及其插件容器。此过程将使用 Let's Encrypt 自动为您选择的域生成 SSL 证书,并运行 Apache 服务器容器以向公众公开 Nextcloud 实例。
此过程可能需要几分钟时间,具体取决于您要安装的插件数量。稍后,您可以在页面上看到容器的进度。
容器前面的黄色可能意味着它们正在启动,或者它们可能不健康。按重新加载按钮再次检查。所有容器成功启动后,您将获得 Nextcloud 实例的用户名和密码。
单击打开 Nextcloud 按钮启动 Nextcloud 安装。您还可以通过 URL https://nextcloud.example.com
直接访问它。您将被带到以下登录屏幕。
输入您从上一页获得的用户名 admin
和密码,然后按登录启动 Nextcloud 仪表板。
从这里开始,您就可以开始使用Nextcloud了。
第 7 步 - 备份和恢复 Nextcloud
在进行备份之前,您需要停止 Apache 容器,因为它会阻止 Nextcloud AIO 实例。您需要执行此操作才能在 AIO 界面上执行任何操作。运行以下命令停止 apache 容器。
$ docker stop nextcloud-aio-apache
访问https://nextcloud.example.com:8443
登录AIO界面。
输入备份目录,然后单击提交按钮创建备份。您将看到以下屏幕。
Nextcloud AIO 将创建一个加密备份,并为您提供一个密码。文件夹中的所有备份将使用相同的密码。恢复实例需要密码。单击创建备份开始创建备份。该过程将要求确认。按是开始该过程。这将停止所有正在运行的容器并启动备份容器。
单击重新加载按钮刷新页面。单击小箭头可显示所有备份和恢复选项。
您可以在此处恢复现有备份、添加要备份的其他目录以及设置 cron 作业执行计划备份和更新的时间。
恢复Nextcloud
对于新安装,您可以使用现有备份进行备份。
如果备份存储在目录 /mnt/backup/borg
中,则将备份路径指定为 /mnt/backup
。实际备份应始终位于子目录下。输入备份的路径和密码。
单击提交按钮继续恢复。
在开始恢复过程之前,单击测试路径和密码按钮验证备份路径和密码。
在这里您可以检查备份文件的完整性。从下拉菜单中选择正确的备份,然后单击恢复所选备份文件以启动该过程。
您可以在下一页看到正在运行的备份容器。等待一段时间,然后单击重新加载按钮以查看该过程是否完成。您将看到以下屏幕,确认恢复成功。
为远程上传准备备份
如果您想将备份同步或上传到远程位置,则必须准备备份存档。
安装 BorgBackup 工具。
$ sudo apt install borgbackup
将备份存档挂载到 /tmp/borg
文件夹。
$ sudo mkdir -p /tmp/borg && sudo borg mount "/mnt/backup/borg" /tmp/borg
系统将提示您输入备份密码。
Enter passphrase for key /mnt/backup/borg:
输入密码以装载存档。检查文件夹中已安装的存档。
$ sudo ls /tmp/borg -al
total 4
drwxr-xr-x 1 root root 0 Oct 10 19:13 .
drwxrwxrwt 13 root root 4096 Oct 10 19:13 ..
drwxr-xr-x 1 root root 0 Oct 9 23:15 20221010_041554-nextcloud-aio
您现在可以将文件 20221010_041554-nextcloud-aio
复制或同步到远程位置。
卸载档案。
$ sudo umount /tmp/borg
如果要删除现有的备份存档,可以使用以下命令来执行此操作。
$ sudo borg delete --stats --progress "/mnt/backup/borg::20221010_041554-nextcloud-aio"
第 8 步 - 更新 Nextcloud AIO/Nextcloud
Nextcloud AIO 每天运行一个 cronjob 来检查 Nextcloud AIO 和所有剩余容器的更新。
更新 Nextcloud 容器
Nextcloud AIO 界面将显示页面上任何容器的任何更新。要更新任何容器,请按停止容器按钮停止所有容器,然后再次启动它们以执行更新。
确保在启动容器之前备份数据。
更新 Nextcloud AIO 主容器
如果 AIO Mastercontainer 更新,您将在界面上收到有关更新的消息。单击更新按钮执行更新。
结论
我们关于在 Ubuntu 22.04 服务器上安装 Nextcloud AIO 的教程到此结束。如果您有任何疑问,请在下面的评论中发表。