本文最后更新于 2025-08-17,文章内容可能已经过时。

还在为 NAS 找不到靠谱的协同办公方案发愁?企业担心公有云的隐私风险,家用 NAS 自带的“套件”又太简陋?我也一样,为了让 NAS 不只是“存文件的硬盘”,我开始研究真正能打的私有协作方案。最终选定了这对开源组合:NextCloud + ONLYOFFICE

NextCloud 提供企业级文件管理、权限控制与多端同步,ONLYOFFICE 则带来媲美桌面的 Word / Excel / PPT 在线协作体验,多人同时编辑、改动秒级同步,数据全程留在内网 NAS 本地,让您的NAS瞬间变身安全、高效的私有化协作中心。

相比官方的 AIO 镜像部署方式,我选择了更灵活的标准 Docker Compose 模式,在飞牛 NAS 上亲测成功(基于 NextCloud + ONLYOFFICE )。这篇教程,就是我踩坑避雷后的详细记录。如果你也想让 NAS 解锁真正的“办公能力”,跟着做一遍就懂了!

为什么选择在 NAS 上部署 NextCloud + ONLYOFFICE?私有云协同办公最佳实践!

✅ NextCloud 是什么?

一句话,它就是你的「私有版 Dropbox + 协作平台」!

想象一下,把你电脑里的文件、手机拍的视频、工作资料统统塞进 NAS,本地保存又随时可访问——这就是 NextCloud 最基础的网盘功能。

支持全平台同步(Windows / macOS / Linux / Android / iOS),稳定流畅,直接找回“金山快盘”时代的感觉(懂的都懂)。


🔥 但 NextCloud 绝不止是高级网盘!

它的灵魂在于两点:「可扩展」+「私有化

  • 🔐 数据自己做主:所有文件都存在你自己的服务器/NAS 上,隐私和安全你说了算,完美适配内网环境或数据敏感型企业。

  • 🧩 功能像搭积木:日历、联系人、笔记、任务管理……想加啥功能装个插件就行!

  • 📝 完美集成 ONLYOFFICE:Word / Excel / PPT 文档直接在线编辑,再也不用下载再上传,简直提升效率三倍!


🧑‍💻 多人协作,才是真香!

当你把 ONLYOFFICE 配对成功之后,就真的飞起来了!

  • 多人同时编辑一个文档,谁在改、改了啥都清清楚楚;

  • 不管是写方案、填表格,还是团队开会做笔记,都能实时协作、版本可控

  • 这才是现代化办公该有的样子!


🐳 Docker 部署体验也很丝滑!

整个安装用的是标准 Docker Compose 部署方式,流程清晰、配置灵活、后期维护也轻松。
⚠️ 特别注意:如果你用的是局域网环境,建议不要使用 NextCloud 的官方 AIO(All-In-One)镜像,坑比较多。我们选择模块化部署,更稳更可控!


❤️ 使用体验:真不吹!

  • 文件同步稳定流畅:和 Seafile 类似,体验极佳。

  • 📱 手机端稍有遗憾

    • iOS 后台自动同步不如 Seafile“无感”,有时需要手动触发;

    • 不支持在线播放视频(Seafile 支持但稳定性一般)。

不过日常上传、下载、浏览文件都没问题,整体体验依旧优秀!


🏆 ONLYOFFICE 是关键战力!

重点来了!

当你将最新版 ONLYOFFICE 与 NextCloud 成功对接后,前面的小遗憾直接被在线协作体验碾压了!

  • Word、Excel、PPT 都能多人实时协作;

  • 编辑无缝、兼容性强、不丢格式;

  • 企业级办公能力拉满!


✅ 总结一句话:

NextCloud + ONLYOFFICE,是 NAS 上打造安全、强大、可协作办公系统的「黄金搭档」!

如果你也想在 NAS 上自建一个私有化、协作性强、体验丝滑的办公平台,一定要试试这套组合!


📘 本教程覆盖内容:

  • 基于飞牛 NAS 系统实测(其他 Docker 环境也通用)

  • 教你安装 NextCloud + ONLYOFFICE Document Server

  • 完整图文部署、配置、优化流程

  • 实现真正的内网/公网多人在线协同办公!

接下来就进入实战,一步步搞定部署,保证不踩坑!Let’s go!

一、准备工作:连接 NAS 并新建项目目录

  1. 开启 SSH:打开飞牛系统的 SSH 功能。
    fnOS open SSH.png

  2. 连接 NAS:使用终端工具(如 XShell、Termius、macOS 的 Terminal)连接你的 NAS,并切换至 root 权限。

  3. 创建项目文件夹
    在飞牛系统内新建文件夹作为部署目录,路径如下所示(可右键 > 详细信息 > 常规 > 查看原始路径):

  4. 进入项目文件夹

    # 将 cd /vol1/1000/Offic 换成你实际的文件夹路径
    
    cd /vol1/1000/Offic
  5. 创建所需子目录

    # localfile作为NAS本地文件夹进行映射,方便整理文件。
    
    mkdir -p {mariadb-data,nextcloud,localfile} onlyoffice/{data,db,lib,logs}

二、编辑 Docker Compose 配置文件

  1. 创建配置文件并编辑

    vi docker-compose.yml

    复制编辑

    vi docker-compose.yml

  2. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。

    排版太挤的可先粘贴到本地文本工具中编辑,修改无误后再复制粘贴进终端。

# 下面的配置默认只需要更改容器访问端口和数据库密码,其余的提供参考,不建议更改。

version: '3.8'  # Compose 文件版本,3.8 兼容性好,但已可省略

volumes:
  nextcloud-data: {}     # Nextcloud 的程序、配置、上传文件等(建议持久化,便于升级)
  mariadb-data: {}       # MariaDB 的数据目录(防止数据库丢失)

services:
  # ========= MariaDB 数据库 =========
  db:
    image: mariadb:10.6                       # 使用稳定的 MariaDB 版本
    container_name: nextcloud-db             # 容器名称,便于识别
    restart: always                          # 容器异常退出后自动重启

    # 启动参数(防止 ONLYOFFICE 出现事务隔离或锁冲突问题)
    command: >
      --transaction-isolation=READ-COMMITTED
      --log-bin=binlog
      --binlog-format=ROW

    volumes:
      - ./mariadb-data:/var/lib/mysql        # 将数据库数据持久化保存到主机目录

    environment:
      - MYSQL_ROOT_PASSWORD=S20306           # 数据库 root 管理员密码(⚠️ 建议改强密码)
      - MYSQL_DATABASE=nextcloud             # 启动时自动创建的数据库名
      - MYSQL_USER=nextcloud                 # 应用连接使用的数据库用户
      - MYSQL_PASSWORD=S20306                # 应用连接数据库所用的密码(需与上方一致)
      - TZ=Asia/Shanghai                     # 设置容器时区为上海时间

  # ========= Nextcloud 主程序 =========
  app:
    image: nextcloud                         # 官方 Nextcloud 镜像,默认含 Apache + PHP
    container_name: nextcloud-app
    restart: always

    ports:
      - 8080:80                               # 本地端口映射,访问 http://IP:8080 即可打开网页端,可自行修改。

    volumes:
      - ./nextcloud:/var/www/html       # 持久化挂载 Nextcloud 的程序及用户数据
      - ./localfile:/localfile          # 持久化挂载 NAS本地文件夹到 nextcloud 容器内部

    environment:
      - TZ=Asia/Shanghai                     # 设置时区为上海(影响日志时间)
      - MYSQL_HOST=db                        # 指定数据库服务名,与上方容器 db 名保持一致
      - MYSQL_DATABASE=nextcloud             # 数据库名(必须匹配)
      - MYSQL_USER=nextcloud                 # 用户名
      - MYSQL_PASSWORD=S20306                # 应用连接数据库所用的密码(必须匹配)

    depends_on:
      - db                                   # 确保数据库服务先启动

  # ========= ONLYOFFICE 文档编辑服务 =========
  onlyoffice:
    image: onlyoffice/documentserver         # 官方 ONLYOFFICE 文档服务镜像
    container_name: onlyoffice
    restart: always

    ports:
      - "8888:80"                             # 将容器端口 80 映射为主机的 8888 端口,用于 Nextcloud 插件调用,可自行修改。

    volumes:
      - ./onlyoffice/logs:/var/log/onlyoffice        # 日志目录
      - ./onlyoffice/data:/var/www/onlyoffice/Data   # 用户文档数据缓存目录
      - ./onlyoffice/lib:/var/lib/onlyoffice         # 应用运行所需的库
      - ./onlyoffice/db:/var/lib/postgresql          # 内部使用的 PostgreSQL 数据目录(非手动访问)

    environment:
      - TZ=Asia/Shanghai                     # 设置时区

    # 默认已使用同一个网络,无需手动指定。若有需要跨 compose 文件通信,可加入 external network。

三、启动服务并初始化容器

  1. 查看当前路径

    pwd
  2. 赋予目录权限(部分NAS系统需要【如群晖】,否则容器无读写权限访问运行,按需执行。

    # 把 /vol1/1000/Office/ 换成你实际的文件夹路径
    
    chmod -R 777 /vol1/1000/Office/
  3. 启动容器并拉取镜像

    docker compose up -d
    
    或
    
    docker-compose up -d
  4. 查看容器运行状态

    docker compose ps
    
    或
    
    docker-compose ps
  5. 查看项目容器实时日志(可按 Ctrl + C 中断)

    docker compose logs -f
    
    或
    
    docker-compose logs -f

四、访问服务:NextCloud 和 ONLYOFFICE

  1. 注意:这里有一个关键的点,如果你是需要通过固定公网IP/域名进行访问,那么你需要先进行端口映射并绑定域名。
    记得要先映射NextCloud和OnlyOffice的端口,先通过固定公网IP/域名的方式进行访问

  2. 访问 ONLYOFFICE(文档服务)

    先打开OnlyOffice看看正常运行没,显示为下图这样即可。
    演示以纯局域网内访问为例,打开浏览器,以NAS的IP+设置的端口号进行访问。
    以本机为例:
    
    http://192.168.2.5:8888

  3. 访问 NextCloud(网盘管理)

    演示以纯局域网内访问为例,打开浏览器,以NAS的IP+设置的端口号进行访问。
    以本机为例:
    
    http://192.168.2.5:8080
    
    按提示设置一个管理员账户

    image-uphE.avif

  4. 按提示设置管理员账号后,跳过推荐插件安装

  5. 登录成功


五、设置 NextCloud 可信域名

  1. 编辑配置文件

    vi nextcloud/config/config.php
  2. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。

    排版太挤的可先粘贴到本地文本工具中编辑,修改无误后再复制粘贴进终端。

  3. 添加允许访问的地址(参考下面的注释进行修改):

    <?php
    $CONFIG = array (
      'htaccess.RewriteBase' => '/',
      'memcache.local' => '\\OC\\Memcache\\APCu',
      'apps_paths' => 
      array (
        0 => 
        array (
          'path' => '/var/www/html/apps',
          'url' => '/apps',
          'writable' => false,
        ),
        1 => 
        array (
          'path' => '/var/www/html/custom_apps',
          'url' => '/custom_apps',
          'writable' => true,
        ),
      ),
      'upgrade.disable-web' => true,
      'instanceid' => 'ocwmqhwlbwfk',
      'passwordsalt' => 'MAx1oRcwAJ+J98E/dbVMQvPhcuUcj6',
      'secret' => 'LUWzcfjl37JMohNpuMAoP+Mq1pvZH+ZNyQ4OpEWnZ05SSFbW',
      'trusted_domains' =>  // 下面这里是设置外部访问地址的,你允许几个地址访问就设置几个,不分先后,数量最少一个。
      array (
        0 => '192.168.2.5:8080', // 设置只允许通过局域网地址访问
        1 => 'www.aabcc.top', // 设置只允许通过域名访问(如果只设置这个,那么局域网内也只能通过这个地址访问。)
        2 => 'www.aabcc.top:8080', // 设置只允许通过域名+指定端口访问(如果只设置这个,那么局域网内也只能通过这个地址访问。)
      ),
      'datadirectory' => '/var/www/html/data',
      'dbtype' => 'mysql',
      'version' => '31.0.6.2',
      'overwrite.cli.url' => 'http://192.168.2.5:8080',
      'dbname' => 'nextcloud',
      'dbhost' => 'db',
      'dbport' => '',
      'dbtableprefix' => 'oc_',
      'mysql.utf8mb4' => true,
      'dbuser' => 'nextcloud',
      'dbpassword' => 'S20306',
      'installed' => true,
      'maintenance_window_start' => 1, // 表示凌晨 1 点开始执行后台任务,可自行修改。
      'default_phone_region' => 'CN', // 设置默认的电话号码区域为中国
    );
  4. 如出现访问错误,可执行文件授权命令

    chmod -R 777 nextcloud/config/config.php
  5. 刷新页面即可恢复访问。


六、安装 ONLYOFFICE 插件并配置密钥

  1. 由于NextCloud的应用市场在国内基本打不开 / 加载不出来,所以我们直接手动安装插件。
    (点击NextCloud的应用市场的时候一直在转圈圈,网页跳转没有反映是正常现象,需耐心等待,加载差不多时间了自动跳转~)

  2. 访问应用市场下载安装插件

  3. 将下载的应用解压,解压后的文件夹整个放到/Office/nextcloud/apps/路径下:

  4. 复制上传的应用文件夹路径,在终端工具内执行命令,授权插件文件夹权限:

    # 将 /vol1/1000/Office/nextcloud/apps/onlyoffice 换成你自己实际的文件夹路径
    
    chmod -R 777 /vol1/1000/Office/nextcloud/apps/onlyoffice
  5. NextCloud 后台启用插件

    • 打开 已禁用的应用

    • 启用:

      • External storage support(外部存储支持)

      • ONLYOFFICE

      • 点击右上角头像 > 管理设置 > ONLYOFFICE

  6. 回到ONLYOFFICE页面,复制下面的命令,获取 ONLYOFFICE 的密钥

    示例输出:

    root@S20306:/vol1/1000/Office#  sudo docker exec 1cfd8e288b83 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
    TTPrWoDtwHWAUS86cXih3gEghDUfOJKB    # 《《《------左侧是生成的ONLYOFFICE密钥
    root@S20306:/vol1/1000/Office#
  7. 回到 NextCloud > 管理设置 > ONLYOFFICE

    • Docs 地址:填写域名 / 固定公网IP / 局域网IP地址

    • 密钥:粘贴上方生成的字符串

    • 然后点击保存

    • 启用需要关联的文档格式,勾选完之后拉到底部点击保存。


七、添加本地 NAS 文件夹到 NextCloud

  1. NextCloud 后台:管理 > 外部存储

  2. 配置项

    • 目录名称:自定义

    • 外部存储:选择本地

    • 认证方式:

    • 配置路径:/localfile

    • 权限范围:选中要授权的用户/ 组

    • 然后点击保存

    • 添加成功

    • 点击左上角的文件,即可看到对应的文件夹。

  3. 进入文件夹如出现无法加载,请执行文件夹权限授权命令

    # 是在nextcloud项目文件夹路径内执行
    
    chmod -R 777 localfile
  4. 刷新页面后,即可在“文件”中可以看到本地文件夹已上传的文件,并支持在线编辑!


八、参考地址与资源


👉👉👉优惠云服务器,点此查看价格,直接部署云端协作办公👈👈👈

✅ 教程总结

通过本教程,你已经完成:

  • 在 NAS 上部署 NextCloud 与 ONLYOFFICE

  • 配置本地挂载文件夹,实现文档在线预览与编辑

  • 实现基于域名/公网 IP 的访问和可信域配置

  • 手动安装 ONLYOFFICE 插件解决国内访问问题

你现在拥有了一个完整的私有云协同办公环境,适合日常文档管理、团队协作和文件共享!

文末

👇👇👇