如果你使用 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
%% ── Styles ───────────────────────────────────────────────────────────────────
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
%% ── Top row: people ─────────────────────────────────────────────────────────
YOU(["🧑💻 管理员\n(你)"]):::user
ENDUSER(["🧑🤝🧑 用户\n(家庭/团队)"]):::user
%% ── Everything that runs inside AIO ─────────────────────────────────────────
subgraph AIO[" 🐳 Nextcloud AIO "]
MC(["🧠 Mastercontainer\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(["🖊️ Whiteboard"]):::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。 ⚠️ 为避免数据丢失或服务中断,请在确认 Snap 环境中没有运行任何现有容器后,再卸载 Docker Snap 包。 请参考官方 Docker 文档或其他指南了解现有容器的迁移方法。确认操作安全后,使用以下命令移除基于 Snap 的 Docker 安装:
> sudo snap remove docker
>
如果你需要 IPv6 支持,请按照以下说明启用:适用于 AIO 的 Docker IPv6 支持
AIO 使用特殊的 mastercontainer 来编排 Nextcloud 栈的各个组件。要启动 AIO,请使用以下命令启动 mastercontainer:
# 适用于未部署现有 Web 服务器或反向代理的 Linux 环境:
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
还没有域名?AIO 可以通过 deSEC 为你在 dedyn.io 下注册一个免费的动态 DNS 子域名,无需额外外部配置。当 AIO 界面提示你输入域名时,请查找界面上的「还没有域名?从 deSEC 获取一个免费域名」选项。AIO 会自动完成域名注册、保持 DNS 记录更新,同时启用 Caddy 社区容器作为反向代理,以及 dnsmasq 容器提供本地 DNS 解析服务。
来自真实用户的反馈,见证轩辕镜像的优质服务