如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Nextcloud AIO 目前正在积极招募贡献者,相关信息可查看论坛帖子。
作为 Nextcloud 官方推荐的安装方式,Nextcloud AIO 可实现便捷的部署与维护,绝大多数功能都已集成在这一个 Nextcloud 实例中。
其包含的内容如下:
*.dedyn.io),无需额外准备外部域名首次设置流程、安装完成后的界面
flowchart TB
%% ── 样式定义 ───────────────────────────────────────────────────────────────────
classDef user fill:#FFF3CD,stroke:#F0AD4E,color:#333
classDef master fill:#E8D5F5,stroke:#9B59B6,color:#222
classDef core fill:#D6EAF8,stroke:#2E86C1,color:#222
classDef opt fill:#D5F5E3,stroke:#27AE60,color:#222
classDef community fill:#FDEBD0,stroke:#E67E22,color:#222
classDef access fill:#EAFAF1,stroke:#1E8449,color:#222
%% ── 顶层:用户角色 ─────────────────────────────────────────────────────────────
YOU(["🧑💻 管理员\n(您本人)"]):::user
ENDUSER(["🧑🤝🧑 普通用户\n(家庭/团队)"]):::user
%% ── AIO 内部所有运行组件 ─────────────────────────────────────────────────────
subgraph AIO[" 🐳 Nextcloud AIO "]
MC(["🧠 主容器\n─────────────────────────\n▸ AIO 管理界面 :8080 / :8443\n▸ 容器管理与升级调度\n▸ 处理备份任务"]):::master
subgraph CORE[" 📦 核心栈(自动启动) "]
PROXY(["🔀 Apache\n代理与 HTTPS"]):::core
NC(["☁️ Nextcloud\n应用服务器"]):::core
DB(["🗄️ PostgreSQL\n数据库"]):::core
CACHE(["⚡ Redis\n缓存服务"]):::core
PUSH(["🔔 Notify Push\n实时同步"]):::core
end
subgraph OPT[" 🧩 可选内置容器(在 AIO 界面中启用) "]
COLLA(["📄 Nextcloud Office"]):::opt
EO(["📄 EuroOffice\n文档服务器"]):::opt
TALK(["🎙️ Talk\n音视频通话"]):::opt
TALKREC(["🎬 Talk 录制"]):::opt
FTS(["🔎 全文搜索\n(Elasticsearch)"]):::opt
IMAG(["🖼️ Imaginary\n图像预览"]):::opt
CLAM(["🦠 ClamAV\n杀毒引擎"]):::opt
WB(["🖊️ 白板"]):::opt
end
COMM(["🌍 社区容器\n──────────────────────\n30+ 可选附加组件\n详见 community-containers/"]):::community
click COMM "https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers" "浏览社区容器"
end
%% ── 最终访问节点(AIO 外部) ────────────────────────────────────────────────
NC_URL(["🌐 https://your-domain.com\n✅ Nextcloud — 已就绪可使用!"]):::access
%% ── 流程说明 ────────────────────────────────────────────────────────────────────
YOU -->|"① 在浏览器中打开 :8080 或 :8443"| MC
MC -->|"② 自动启动并完成组件编排"| CORE
MC -. "③ 在 AIO 界面中启用" .-> OPT
MC -. "④ 通过 AIO 界面添加" .-> COMM
PROXY --> NC
NC --- DB
NC --- CACHE
NC --- PUSH
OPT -->|"与…集成"| NC
COMM -.->|"与…集成"| NC
CORE -->|"⑤ 整个堆栈已就绪!"| NC_URL
ENDUSER -->|"⑥ 通过浏览器 / 客户端访问"| NC_URL
YOU -->|"⑥ 正常使用"| NC_URL
以下步骤针对 Linux 系统编写。不同平台的专属指引请参考:
[!IMPORTANT] 本操作指引假设你尚未在 AIO 前端部署其他现有 Web 服务器或反向代理(例如 Apache、Nginx、Caddy 或 Cloudflare Tunnel)。如果你计划将 AIO 部署在现有 Web 服务器或反向代理之后,请参考 AIO 反向代理文档:反向代理文档
建议你先快速浏览附带的常见问题解答。尽管我们已尽可能简化操作流程,但 Nextcloud 是一个大型且灵活的平台。阅读 FAQ 可以帮你节省时间,尤其是遇到边缘场景时。
无需追求首次部署就做到完美——测试部署的成本很低,且可以随时重置。
[!WARNING] 基于 Snap 的 Docker 安装版本不受支持。请确保你没有使用基于 Snap 的 Docker 安装(通常仅适用于 Ubuntu 系统)。你可以运行以下命令进行检查:
> sudo docker info | grep "Docker Root Dir" | grep "/var/snap/docker/"
>
如果输出结果如下:
> /var/snap/docker/
>
请先迁移到标准 Docker 安装版本并移除基于 Snap 的软件包,再继续后续操作:在 Ubuntu 上安装 Docker。 ⚠️ 为避免数据丢失或服务中断,请在确认容器内没有正在运行的现有容器后,再卸载 Docker Snap 版本。 请参考官方 Docker 文档或其他指南了解现有容器的迁移说明。确认操作安全后,可通过以下命令移除基于 Snap 的 Docker 安装:
> sudo snap remove docker
>
AIO 使用特殊的 mastercontainer 来编排 Nextcloud 堆栈的各个组件。启动 AIO 时,请使用以下命令启动 mastercontainer:
> # 适用于 Linux 系统,且当前未部署任何 Web 服务器或反向代理的场景:
> 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/docker.sock:/var/run/docker.sock:ro \
> ghcr.io/nextcloud-releases/all-in-one:latest
>
各参数说明如下:
sudo docker run:启动新的 Docker 容器。如果当前用户已加入 docker 用户组,可以省略 sudo。--init:在容器内部运行 init 进程,用于处理僵尸进程。--sig-proxy=false:避免在附加终端中按下 Ctrl+C 时停止容器。--name nextcloud-aio-mastercontainer:指定容器名称。请勿修改此名称,mastercontainer 的更新机制依赖该名称。--restart always:确保容器随 Docker 守护进程自动重启。--publish 80:80:将容器的 80 端口发布到主机的 80 端口(用于获取证书时的 ACME HTTP 质询,也供 mastercontainer 内部运行的 AIO 界面使用)。如果你将 AIO 部署在反向代理之后,则无需配置此端口映射。--publish 8080:8080:将使用自签名证书的 AIO 界面发布到主机的 8080 端口。如果 8080 端口已被占用,你可以映射到其他主机端口,例如 --publish 8081:8080。--publish 8443:8443:将使用有效证书的 AIO 界面发布到主机的 8443 端口(要求 80 和 8443 端口均可访问,且有域名指向你的服务器)。如果你将 AIO 部署在反向代理之后,则无需配置此端口映射。--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config:将 mastercontainer 的配置存储在命名 Docker 卷中。请勿修改此卷名,内置备份机制依赖该卷名。--volume /var/run/docker.sock:/var/run/docker.sock:ro:以只读方式挂载 Docker socket,让 mastercontainer 可以管理其他容器。在 Windows/macOS 上使用或启用 rootless Docker 时,可能需要调整此路径,具体请参考对应平台的专属文档。如果你修改了 socket 路径,还需要相应设置 WATCHTOWER_DOCKER_SOCKET_PATH 环境变量。如果你不希望暴露 Docker socket,请参考手动安装文档:无需访问 Docker socket 的手动安装方式。ghcr.io/nextcloud-releases/all-in-one:latest:mastercontainer 的镜像地址。你可以通过环境变量设置更多附加选项(例如首次启动时使用 --env NEXTCLOUD_DATADIR="/mnt/ncdata" 修改 Nextcloud 的数据目录)。更多选项请参考自定义章节和示例 Compose 文件:compose.yaml。
如果你希望将 Nextcloud 的数据目录设置为非默认 Docker 卷的其他位置,请参阅本 README 中的「如何修改 Nextcloud 数据目录的默认位置」:如何修改 Nextcloud 数据目录的默认位置。
对于生产环境(以及便于后续升级和调整配置),我们建议使用提供的示例 Compose 文件,而非直接使用 docker run 命令。
docker run- 首次启动后,通过 IP 地址访问本服务器 8080 端口上的 Nextcloud AIO 界面,示例命令如下:
[!CAUTION] 在访问 8080 端口的 AIO 界面时,请使用 IP 地址(不要使用域名)。通过域名访问可能暂时生效,但受 HSTS 影响,后续很可能出现故障。
8080 端口使用自签名证书,你需要在浏览器中手动接受该证书。
如果你的防火墙/路由器已转发 80 和 8443 端口,并且已将域名指向你的服务器,也可以自动获取有效证书。这种情况下,请使用专门的 8443 端口访问 AIO 界面,示例命令如下:
3478/TCP 和 3478/UDP 端口,供 Talk(TURN)容器使用。还没有域名?AIO 可通过 deSEC 为你在 dedyn.io 下注册免费的动态 DNS 子域名,无需额外外部配置。当界面提示你输入域名时,找到 AIO 界面中的「还没有域名?从 deSEC 获取一个免费域名」选项即可。AIO 会自动注册域名、保持 DNS 记录更新,同时启用 Caddy 社区容器作为反向代理,并启用 dnsmasq 容器提供本地 DNS 解析。
来自真实用户的反馈,见证轩辕镜像的优质服务