✏docker内部署nextcloud+onlyoffice
安装docker、docker-compose(使用kejilion脚本安装)
bash <(curl -sL kejilion.sh)
- 注:首先安装docker,更新源
使用一键安装nextcloud+onlyoffice
services:
# NextCloud 主服务
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: always
ports:
- "80:80" # 对外暴露80端口(可改为443+SSL)
volumes:
- ./data/nextcloud/html:/var/www/html # NextCloud 程序目录
- ./data/nextcloud/data:/var/www/html/data # 用户数据目录
- ./data/nextcloud/config:/var/www/html/config # 配置文件目录
environment:
- MYSQL_PASSWORD=nextcloud123 # 数据库密码(自定义)
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db # 关联数据库容器
- NEXTCLOUD_ADMIN_USER=admin # NextCloud 管理员账号
- NEXTCLOUD_ADMIN_PASSWORD=admin123 # 管理员密码(生产需修改)
networks:
- nextcloud-network
depends_on:
- db
- onlyoffice
# MySQL 数据库(NextCloud 依赖)
db:
image: mysql:8.0.31
container_name: nextcloud-db-mysql
restart: always
volumes:
- ./data/nextcloud/mysql:/var/lib/mysql # 数据库持久化
environment:
- MYSQL_ROOT_PASSWORD=root123 # root密码(自定义)
- MYSQL_PASSWORD=nextcloud123
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_INITDB_SKIP_TZINFO=1
command: --default-authentication-plugin=mysql_native_password
networks:
- nextcloud-network
# OnlyOffice 文档服务
onlyoffice:
image: onlyoffice/documentserver:9.3
container_name: onlyoffice
restart: always
ports:
- "81:80" # OnlyOffice 内部端口(不对外暴露,仅容器互通)
volumes:
- ./data/onlyoffice/data:/var/www/onlyoffice/Data
- ./data/onlyoffice/logs:/var/log/onlyoffice
- ./data/onlyoffice/fonts:/usr/share/fonts
environment:
- JWT_SECRET=onlyoffice123 # 安全密钥(需和NextCloud配置一致)
- TZ=Asia/Shanghai
networks:
- nextcloud-network
# OnlyOffice 依赖较多,需限制内存(可选)
deploy:
resources:
limits:
memory: 2G
# 自定义网络(保证容器间互通)
networks:
nextcloud-network:
driver: bridge
调试设置
- 提示如下图所示,说明数据库与nextcloud不匹配,需更换版本。

- 解决访问时提示错误域名

需更改config.php,路径 /root/nextcloud/data/nextcloud/config(docker映射路径)
'trusted_domains' =>
array (
0 => 'localhost',
1 => '192.168.1.100', // 你的内网IP
2 => 'cloud.yourdomain.com', // 你的公网域名
3 => '192.168.1.100:8080', // 带端口的访问地址
// 可继续添加多个信任域名/IP
),
刷新后顺利进入登陆界面。
- 点击应用不能访问,一直转。
还需要修改config.php文件,将以下代码放在文件的最后。'appstoreenabled' => true, 'appstoreurl' => 'https://www.orcy.net/ncapps/v2/',
- 现在可以正确访问了。
安装应用onlyoffice插件
- 访问 查看连接器的版本匹配,并下载相应文件。nextcloud版本在 管理设置-概览中


- 下载的文件为tar.gz的文件。将文件解压缩
tar -zvxf xxxx.tar.gz
- 将解压缩的文件拷贝到 /root/nextcloud/data/nextcloud/html/apps 下。
- 这时应用中应该有相应的插件了,如果没有那就再应用中搜索一下,应该是没有启用。
- 点击启用后就可以设置了。

- 其中密钥位置在docker-compose.yml中的JWT_SECRET值。填写好保存,出现下面选单证明连接成功。

以上做好选择后保存即可。这时候设置完成。 - 后面可以更改密码后其他设置。
评论区