十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Nextcloud AIO 部署实战:一条命令搭好私有云

Nextcloud AIO 部署实战:一条命令搭好私有云 Nextcloud AIO 部署实战一条命令搭好私有云【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址: https://gitcode.com/GitHub_Trending/al/all-in-oneNextcloud AIO 是 Nextcloud 的官方部署方案核心是一个 mastercontainer它以只读方式拿到 Docker socket负责创建、启动、更新和备份整条技术栈的容器包括 Nextcloud、PostgreSQL、Redis 和 Apache。只要机器上装好 Docker 并能执行 docker compose整套流程一小时内可以完成。按时间线拆就是先拉起 mastercontainer再做初始配置然后按需开启功能模块、设置每日备份日常看更新通知和容器日志。5 分钟启动 mastercontainer前置条件是一个能正常工作的 Docker且机器上 80、443、8080、8443 端口未被占用前两个端口供 Nextcloud 本体与证书签发使用后两个供 AIO 管理界面使用。官方仓库自带一份可用的 compose.yaml 编排文件拉取镜像并启动 mastercontainer 只需一条命令docker compose -f compose.yaml up -d执行后应输出Container nextcloud-aio-mastercontainer Started一行。启动后用下面的命令确认 mastercontainer 已进入运行状态docker ps --filter namenextcloud-aio应只看到一条名为nextcloud-aio-mastercontainer、状态为 Up 的记录——注意只有它一个才是正常的。其余核心容器要等你在 AIO 界面里点击 Start containers 之后才会由 mastercontainer 逐个创建出来。用一个容器管理整条栈正是 AIO 能统一处理更新和备份的原因。AIO 界面 10 分钟内要完成的 3 件事AIO 界面地址是https://服务器IP:8080使用自签名证书浏览器会提示安全警告点继续即可进入。⚠️ 这一步必须用 IP 地址访问不要在这里填域名——官方 FAQ 明确警告HSTS 策略可能让该端口之后被域名永久拦下。进入界面后按顺序做三件事第一设置 AIO 接口密码和 Nextcloud 的域名域名要求能从公网解析第二在备份区配置 BorgBackup 的备份目录第三点击 Start containers正式拉起整套栈。没有现成域名不必急着买域名输入页内置了 deSEC 免费动态域名选项一键注册一个 dedyn.io 子域接口会自动把它设为 Nextcloud 域名并顺带启用 Caddy 反向代理和 dnsmasq 本地解析。全部完成后用https://你的域名访问应能看到 Nextcloud 登录页此时默认核心栈已包含 Nextcloud、PostgreSQL、Redis、APCu 缓存、Apache 代理和 Client Push 实时同步服务。AIO 界面中开启可选容器的方法可选功能模块集中在 AIO 界面的 Optional containers 列表里勾选需要的容器后点击 Start and update containersmastercontainer 会自动拉取镜像并接入 Nextcloud不需要手写编排文件。内置可选模块怎么选办公文档协作选 Nextcloud Office 或 EuroOffice开源分支两者占同一个位置启用其一后就能在 Nextcloud 里直接在线编辑 Office 文件。视频会议启用 Talk 容器同时记得在防火墙放行 3478/TCP 和 3478/UDP这是 TURN 服务器的端口不开通会导致跨网络通话无法接通。全文搜索基于 ElasticsearchImaginary 补充 heic、pdf、webp 等格式的图片预览ClamAV 提供杀毒扫描Whiteboard 提供协作白板Docker Socket Proxy 则是安装 App API 扩展的前置条件。内置模块不够用时community-containers/ 目录里有 30 多个现成社区容器Gitea、Jellyfin、Vaultwarden、Pi-hole 都在其中同样在界面里直接启用。用户规模上社区版支持到 100 人以内超出需要企业版授权。用 BorgBackup 配置每日备份AIO 界面内置基于 BorgBackup 的备份体系把整套 docker 卷Nextcloud 数据、PostgreSQL 数据、配置文件打包成一个归档恢复时只需要归档文件加密码就能把整个实例还原到一台新的 AIO 环境里。有两个设置建议当天就做掉一是把备份目录指到外置硬盘或远程 borg 仓库官方界面支持在 AIO 里直接调整备份路径和远程仓库备份和数据放在同一块盘上等于没备二是开启每日备份mastercontainer 自带每天运行一次的 cron 任务界面里也可以随时手动点 Backup now 触发一次。一个容易漏掉的点如果用 NEXTCLOUD_MOUNT 变量把宿主机目录挂进 Nextcloud 做外部存储这些目录不在默认备份范围内需要在完成首次备份后到备份区手动把对应的 docker 卷或宿主机路径加进备份列表。要把 AIO 纳入自己的定时任务时官方给出的做法是通过 daily-backup.sh 脚本触发docker exec --env START_CONTAINERS1 nextcloud-aio-mastercontainer /daily-backup.sh执行后应看到全部容器依次启动备份进度输出在容器日志里。AIO 界面中更新通知与容器日志的查看方法mastercontainer 每天检查一次容器和自身的更新发现新版本会向所有 Nextcloud 管理员发通知。更新流程固定先在界面里做一次备份再点 Stop containers最后点 Start and update containersmastercontainer 自身有单独的更新按钮在容器停止状态下会出现。排查问题第一站是 AIO 界面的 Log 区不登录宿主机就能查看每个容器的标准输出和错误输出。需要执行 Nextcloud 的 occ 命令时直接在宿主机上进入容器执行比如修复管理界面里missing default phone region这条警告sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set default_phone_region --valueCN执行后无报错输出该警告随后从 Nextcloud 管理总览中消失。部署环境需要再往上走时仓库提供了 nextcloud-aio-helm-chart/ Helm chart 用于 Kubernetes同一台服务器跑多套 AIO 实例的做法在 multiple-instances.md 里有完整说明。AIO 首次部署的 3 个坑Ubuntu 用户先确认 Docker 不是 snap 包官方文档明确不支持 snap 版用下面的命令验证安装形态docker info | grep Docker Root Dir输出路径若以/var/snap/docker/开头需要迁移到标准 Docker 版本后再继续部署。开启了 SELinux 的系统上mastercontainer 默认无法读取 Docker socket需要在 compose.yaml 里把security_opt: [label:disable]这一行取消注释这是官方文档中唯一要求改动该文件的地方。NEXTCLOUD_DATADIR 决定 Nextcloud 数据目录落在宿主机哪里且只在首次启动前生效安装完成后再设置不会起作用。如果想把用户文件放在 SSD 上提升性能就在首次启动前把该变量指到 SSD 目录官方存储建议明确推荐 SSDSD 卡因为扛不住数据库的高频写入被点名不推荐。下一步行动打不开 8080 界面时先执行docker logs nextcloud-aio-mastercontainer重点看有没有端口占用和 Docker socket 挂载失败两类报错。手头已有旧版 Nextcloud 要迁移过来先按 migration.md 的步骤走迁移再部署 AIO需要挂在已有反向代理后面时读 reverse-proxy.md 后再动配置。【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址: https://gitcode.com/GitHub_Trending/al/all-in-one创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表