目录
背景说明
安装教程
Docker安装(推荐)
前提步骤
脚本安装
手动安装
设置同步云盘
背景说明
我们平时可能有多台电脑,比如办公室一台台式机,家里一台笔记本。这之间经常有一些文件需要两边都有,一边改了就要复制到另一边。最常用的就是通过U盘拷贝。但对于文件改动频繁的,这难免也太繁琐了。。。
现有一些软件可以实现自动的云同步,比如某果云。但它每个月只有1G的免费上传流量,很容易就用完了。开通会员要30米/月,让本不富裕的家庭雪上加霜。。。
所以我们就要自己搭建一个云同步环境,完全没有上面的烦恼。现在免费开源还好用的云同步软件,选择开源的nextcloud。除了当云同步盘,也可以用作日常保存文件的网盘,挺舒服的。
看一下搭建效果:
安装教程
首先需要有自己的公网服务器,试用低价服务器可参考之前的博客(只需看前面部分)。
入口:云产品免费试用
万字长文保姆级教你制作自己的多功能QQ机器人/article/details/126654108#t2
Docker安装
/nextcloud/all-in-one
太复杂,整不明白。。。
安装docker:
curl -fsSL | sudo sh
对于Linux,且未安装web服务或反向代理(如 Apache、Nginx、Cloudflare Tunnel 等),安装nextcloud:
# 适用于 Linux,且未安装网络服务器或反向代理(如 Apache、Nginx、Cloudflare Tunnel 等):
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/:/var/run/:ro \
nextcloud/all-in-one:latest
此选项允许使用
[CTRL] + [C]
退出使用docker run
时自动附加的容器 shell,而无需关闭容器。
sudo docker run:
此命令启动一个新的 docker 容器。如果用户被添加到 docker 组,则可以选择不使用sudo
来使用 Docker 命令(这与 docker rootless 不同,请参阅下面的常见问题解答)。--init
:此选项可确保永远不会创建僵尸进程。请参阅 Docker 文档。--sig-proxy=false
:此选项允许使用[CTRL] + [C]
退出使用docker run
时自动附加的容器 shell,而无需关闭容器。--name nextcloud-aio-mastercontainer
:这是容器的名称。不允许更改此行,因为主容器更新会失败。--restart always
:这是“重新启动策略”。always
表示容器应始终使用 Docker 守护进程启动。有关重启策略的更多详细信息,请参阅 Docker 文档:/config/containers/start-containers-automatically/--publish 80:80
:这意味着容器的端口 80 应该使用端口 80 在主机上发布。如果您想使用端口 8443,它用于获取 AIO 接口的有效证书。如果您想使用端口 8443,则不需要它。在 Web 服务器或反向代理后面运行 AIO,在这种情况下可以将其删除,因为您只需将端口 8080 用于 AIO 接口即可。--publish 8080:8080
:这意味着容器的 8080 端口应使用端口 8080 在主机上发布。该端口用于 AIO 接口,默认使用自签名证书。如果您的主机上已使用端口 8080,您还可以使用不同的主机端口,例如--publish 8081:8080
(只能为主机更改第一个端口,第二个端口用于容器,并且必须保留为8080)。--publish 8443:8443
:这意味着容器的端口 8443 应该使用端口 8443 在主机上发布。如果您将端口 80 和 8443 发布到公共互联网,则可以使用有效证书通过此端口访问 AIO 接口。如果您在 Web 服务器或反向代理后面运行 AIO,则不需要它,并且在这种情况下可以将其删除,因为您只需将端口 8080 用于 AIO 接口即可。--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config
:这意味着 mastercontainer 创建的文件将存储在名为nextcloud_aio_mastercontainer
的 docker 卷中。不允许更改此行,因为内置备份稍后会失败。--volume /var/run/:/var/run/:ro
:docker 套接字安装到容器中,用于启动所有其他容器并提供更多功能。在 Windows/macOS 和 docker rootless 上需要调整。请参阅这方面的适用文档。如果进行调整,请不要忘记设置WATCHTOWER_DOCKER_SOCKET_PATH
!如果您不喜欢这个,请参阅 /nextcloud/all-in-one/tree/main/manual-install。nextcloud/all-in-one:latest
:这是使用的 docker 容器映像。- 可以使用环境变量设置更多选项,例如
--env NEXTCLOUD_DATADIR="/mnt/ncdata"
(这是 Linux 的示例。有关其他操作系统的信息以及该值的作用的说明,请参阅此内容。需要在第一次启动(如果您想将其更改为特定路径而不是默认的 Docker 卷)。要查看更多变量的解释和示例(例如更改 Nextcloud 的 datadir 的位置或将某些位置作为外部存储安装到 Nextcloud 容器中),请通读此自述文件并查看 docker-compose 文件:/ nextcloud/all-in-one/blob/main/
- AIO_DISABLE_BACKUP_SECTION: false # 将此设置为 true 可以隐藏 AIO 界面中的备份部分。参见 /nextcloud/all-in-one#how-to-disable-the-backup-section
- APACHE_PORT: 11000 # 在网络服务器或反向代理(如 Apache、Nginx、Cloudflare Tunnel 等)后面运行时需要使用。参见 /nextcloud/all-in-one/blob/main/
- APACHE_IP_BINDING: 127.0.0.1 # 在同一主机上运行web服务器或反向代理(如 Apache、Nginx、Cloudflare Tunnel 等)时应设置。参见 /nextcloud/all-in-one/blob/main/
- BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # 允许调整 Borgs 保留策略。参见 /nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
- COLLABORA_SECCOMP_DISABLED: false # 设置为 true 可以禁用 Collabora 的 Seccomp 功能。参见 /nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
- NEXTCLOUD_DATADIR: /mnt/ncdata # 允许为 Nextcloud 的数据目录设置主机目录。⚠️⚠️⚠️ 警告:初始安装 Nextcloud 后,请勿设置或调整此值!请参见 /nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
- nextcloud_mount: /mnt/ # 允许 Nextcloud 容器访问主机上选择的目录。参见 /nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
- NEXTCLOUD_UPLOAD_LIMIT: 10G # 如果需要更多,可以调整。请参见 /nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
- NEXTCLOUD_MAX_TIME: 3600 # 如有需要,可以调整。参见 /nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
- NEXTCLOUD_MEMORY_LIMIT: 512M # 如果需要更多,可以调整。参见 /nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
- NEXTCLOUD_TRUSTED_CACERTS_DIR: /path/to/my/cacerts # nexcloud 容器的操作系统将信任此目录中的 CA 证书(对 LDAPS 等有用),请参见 /nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca。
- NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts notes # 允许修改首次启动 AIO 时安装的 Nextcloud 应用程序。请参见 /nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup。
- NEXTCLOUD_ADDITIONAL_APKS: imagemagick # 允许向 Nextcloud 容器永久添加其他软件包。默认值为 imagemagick,但可通过修改此值覆盖。请参见 /nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
- NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # 此项可为 Nextcloud 容器永久添加额外的 php 扩展。默认值为 imagick,但可通过修改此值覆盖。参见 /nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
- NEXTCLOUD_ENABLE_DRI_DEVICE: true # 可在 Nextcloud 容器中启用 /dev/dri 设备。⚠️⚠️⚠️ 警告:只有当主机上存在"/dev/dri "设备时,此操作才有效!如果主机上不存在该设备,请勿将此设置为 true,否则 Nextcloud 容器将无法启动!请参见 /nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
- NEXTCLOUD_KEEP_DISABLED_APPS: false # 将此设置为 true 将保留 AIO 界面中已禁用的 Nextcloud 应用程序,如果应该安装,则不会卸载。请参见 /nextcloud/all-in-one#how-to-keep-disabled-apps。
- TALK_PORT: 3478 # 此项允许调整 Talk 容器使用的端口。参见 /nextcloud/all-in-one#how-to-adjust-the-talk-port
- WATCHTOWER_DOCKER_SOCKET_PATH: /var/run/ # 如果主机上的 docker socket 不在默认的"/var/run/ "中,则需要指定。否则 mastercontainer 更新就会失败。对于 macos,必须是'/var/run/'。
前提步骤
搭建LAMP环境:
sudo apt-get install apache2
sudo apt-get install mariadb-server mariadb-client
sudo apt install php
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo service mysql restart
sudo service apache2 restart
sudo apt install git
重置mysql密码:
sudo mysql_secure_installation
配置示例:
- Set root password? [Y/n] y
- xxxx
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y
登录MariaDB控制台并为Nextcloud创建数据库
mysql -u root -p
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'your-strong_password';
FLUSH PRIVILEGES;
exit
脚本安装
下载自动安装脚本:
cd /var/www/html/
wget /server/installer/
sudo chmod 777
浏览器访问:ip/,填写内容后即可:
选择安装目录
手动安装(推荐)
下载nextcloud安装包
cd /var/www/html/
sudo chmod 777 /var/www/html/ -R
# /server/releases/
wget /server/releases/nextcloud-24.0.
unzip nextcloud-24.0.
sudo chown -R www-data:www-data /var/www/html/nextcloud
手动安装缺失的模块:
sudo apt install php8.1-mysql php8.1-dom php8.1-XMLWriter php8.1-XMLReader php8.1-mbstring php8.1-GD php8.1-zip php8.1-cURL -y
sudo service apache2 restart
浏览器访问:ip/nextcloud,填写内容后即可:
设置同步云盘
1、下载安装客户端:
Install - Nextcloud
2、登录并设置同步文件夹
3、在另一台电脑上,同样上述操作。
4、一台电脑更新文件后,就会自动同步到另一台电脑上。(双向同步的)
5、也可以进入后台管理系统:
http://ip/nextcloud//apps/dashboard/