协同办公
系统wrt基于docker-compose
nextcloud v25+onlyoffice 8.2
nextcloud v3.x+onlyoffice 9.x
Nextcloud 插件
特点:通过 Nextcloud 的插件集成多种工具:
思维导图:MindMap 插件
白板:Collabora Online + Draw.io 集成
甘特图:Deck(看板)或 OpenProject 插件
Trilium Notes 自托管 (支持同步) 相当可以 内置Excalidraw 白板
表格关联,公式计算 (代替office 笔记软件)
快速搭建
mkdir /opt/netoffice/
vi /opt/netoffice/docker-compose.yaml
docker-compose -f /opt/netoffice/docker-compose.yaml up -d
调试
curl http://172.18.0.4
curl http://127.0.0.1:8080
curl http://192.168.14.220:8080
tcpdump -i eth0 port 8080
进终端
docker exec -it nextcloud /bin/bash
curl -o /etc/apt/sources.list.d/debian.sources http://192.168.0.121/sources.list
apt install fping bind9-dnsutils iproute2 nano
文件存放
/var/www/html/data/<用户名>/files/ #但是都属于 www-data
终端正确显示中文
locale -a
apt install locales -y
dpkg-reconfigure locales #选 314. zh_CN.UTF-8 UTF-8
域名代理
nano /var/www/html/config/config.php
'trusted_domains' =>
array (
0 => '192.168.14.220:8080',
1 => 'oqnetdoc.17121.top',
),
域名调用
修改 /etc/hosts onlyoffice定向返回数据。
192.168.0.121 oqncloud.17121.top
192.168.0.121 oqnetdoc.17121.top
软件源
cat /etc/apt/sources.list
curl -o /etc/apt/sources.list http://192.168.0.121/sources.list
常用配置
默认语言
nano /var/www/html/config/config.php #添加
'default_language' => 'zh_CN',
'default_locale' => 'zh',
重启服务
安装
version: '3.3'
services:
nextcloud:
container_name: nextcloud31
image: nextcloud:31
restart: always
depends_on:
- postgres
- redis
networks:
- onlyoffice
ports:
- "2288:80"
volumes:
- ./nextcloud:/var/www/html
environment:
- POSTGRES_HOST=postgres
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=StrongPass123
onlyoffice-document-server:
container_name: onlyoffice-document-server
image: onlyoffice/documentserver:9.0
restart: always
networks:
- onlyoffice
ports:
- 2280:80
- 4423:443
volumes:
- ./onlyoffice-data:/var/www/onlyoffice/Data
- ./onlyoffice-log:/var/log/onlyoffice
environment:
- JWT_ENABLED=true
- JWT_SECRET=VeryStrongJWTSecret_ChangeMe
postgres:
container_name: postgres16
image: postgres:16
restart: always
networks:
- onlyoffice
volumes:
- ./postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=StrongPass123
redis:
container_name: redis
image: redis:7
restart: always
networks:
- onlyoffice
networks:
onlyoffice:
配置
'memcache.local' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'redis',
'port' => 6379,
'timeout' => 0.0,
],
自定义指定版本
version: '3.3'
services:
nextcloud:
image: nextcloud:25
container_name: nextcloud25
restart: always
ports:
- "2388:80"
volumes:
- ./nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=yourpassword
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=adminpassword
depends_on:
- db
db:
image: library/mariadb:10.10
container_name: mariadb10
restart: always
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=yourpassword
volumes:
- ./db_data:/var/lib/mysql
onlyoffice:
image: onlyoffice/documentserver:8.2.0
container_name: onlyoffice82
restart: always
ports:
- "2380:80"
environment:
- JWT_ENABLED=true
- JWT_SECRET=yourjwtsecret
volumes:
- ./onlyoffice_data:/var/www/onlyoffice/Data
插件
onlyoffice插件
头像-》应用-》搜索 -》onlyoffice-》安装
头像-》管理设置-》-》右侧:onlyoffice
Mind Map + draw.io + Deck + calendar
思维导图和流程图 “draw.io”和“mind map”两个应用
白板插件 Whiteboard(官方)
手动安装插件 存放路径 Collabora 对比 netoffice
/var/www/html/custom_apps/
debian12
开启防火墙端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j ACCEPT
apt install iptables-persistent
cat /etc/iptables/rules.v4
systemctl enable netfilter-persistent
防火墙管理套件
sudo apt install firewalld cockpit #功能单一只有端口开放与否
systemctl start firewalld #与iptable 规则不兼容
sudo systemctl enable firewalld
sudo systemctl start cockpit
sudo systemctl enable cockpit
systemctl disable systemd-networkd-wait-online.service
systemctl disable netfilter-persistent
systemctl disable iptables
firewall-cmd --state
firewall-cmd --get-active-zones
firewall-cmd --list-services
firewall-cmd --list-ports
firewall-cmd --list-all
firewall-cmd --zone=public --change-interface=vmbr0
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=8081/tcp --permanent
firewall-cmd --add-service=cockpit --permanent
firewall-cmd --reload #命令生效配置
wrt
wrt不支持 compose 除非关闭防火墙
把接口docker的防火墙区域设置为lan
docker run -itd --name speedtest -p 1234:80 ilemonrain/html5-speedtest:alpine