一、介绍
Nextcloud是一款开源、自托管、私有化部署的企业级私有云与协同办公平台,2016 年从 ownCloud 分支而来,采用 AGPL-3.0 开源协议,核心价值是数据自主可控,避免公有云数据泄露与合规风险。
ONLYOFFICE 是一款由拉脱维亚公司 Ascensio System SIA 开发的开源、自托管、在线办公套件,核心是实现文档的实时协作编辑,常与 Nextcloud 等私有云平台深度集成,构建私有化协同办公环境。目前免费版,可能只能同时在线20人,超出20人时,可能没有编辑权限。
本教程采用 Docker 容器化部署 Nextcloud 与 OnlyOffice,深度集成构建私有云协同办公解决方案。Nextcloud 承担统一文件存储、云端同步、人员权限与资源管理能力,OnlyOffice 提供专业在线办公编辑能力,完美兼容主流 Office 格式。部署完成后支持多人实时同编、在线批注、修订追踪、历史版本留存,兼具文件共享、外链分发、数据加密保护等特性,适配企业、团队内网办公需求,低成本落地自建式协同办公系统。
二、步骤
以Linux系统为例,需提前安装好Docker。
1. 创建目录结构并设置权限(关键!避免权限错误)
sudo mkdir -p /opt/nextcloud/{nextcloud,onlyoffice,mysql}sudo chown -R 33:33 /opt/nextcloud/nextcloudsudo chown -R 101:101 /opt/nextcloud/onlyofficesudo chown -R 999:999 /opt/nextcloud/mysqlls -ld /opt/nextcloud/{nextcloud,onlyoffice,mysql}
2. 拉取镜像拷贝镜像
docker pull nextcloud:latestdocker pull onlyoffice/documentserverdocker pull mysql:5.7docker pull alpine
3. 创建 docker-compose.yml 文件
networks:nextcloud_net:driver: bridgeservices:mysql:image: mysql:5.7container_name: mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: nextcloud_dbMYSQL_DATABASE: nextcloud_dbMYSQL_USER: nextcloud_dbMYSQL_PASSWORD: nextcloud_dbvolumes:- /opt/nextcloud/mysql:/var/lib/mysqlnetworks:- nextcloud_nethealthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pnextcloud_db"]interval: 10stimeout: 5sretries: 10nextcloud:image: nextcloud:latestcontainer_name: nextcloudrestart: alwaysports:- 18080:80environment:- MYSQL_HOST=mysql- MYSQL_DATABASE=nextcloud_db- MYSQL_USER=nextcloud_db- MYSQL_PASSWORD=nextcloud_db- NEXTCLOUD_ADMIN_USER=admin- NEXTCLOUD_ADMIN_PASSWORD=nextcloud- OVERWRITEHOST=172.28.61.122:18080- OVERWRITEPROTOCOL=httpvolumes:- /opt/nextcloud/nextcloud:/var/www/htmldepends_on:mysql:condition: service_healthynetworks:- nextcloud_netonlyoffice:image: onlyoffice/documentserver:latestcontainer_name: onlyofficerestart: alwaysports:- 17080:80environment:- JWT_ENABLED=true- JWT_SECRET=onlyoffice_jwtvolumes:- /opt/nextcloud/onlyoffice:/var/www/onlyoffice/Datanetworks:- nextcloud_net
4. 安装nextcloud的onlyoffice插件
docker cp /root/onlyoffice.tar.gz nextcloud:/var/www/html/apps/docker exec -it nextcloud /bin/bashcd /var/www/html/apps/tar -zxvf onlyoffice.tar.gzchown -R www-data:www-data onlyoffice/exit
5. 启动服务并验证初始化
cd /opt/nextcloudsudo docker-compose up -dsudo docker-compose logs -f
6. 修改config文件
docker exec -it onlyoffice /bin/bashcat /var/www/html/config/config.phpdocker inspect nextcloud | grep -A 30 "Mounts"
夜雨聆风