协同办公
系统wrt基于docker compose
nextcloud v25+onlyoffice 8.2
快速搭建
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'
services:
app:
container_name: app-server
image: nextcloud:fpm
stdin_open: true
tty: true
restart: always
expose:
- '80'
- '9000'
networks:
- onlyoffice
volumes:
- app_data:/var/www/html
onlyoffice-document-server:
container_name: onlyoffice-document-server
image: onlyoffice/documentserver:latest
stdin_open: true
tty: true
restart: always
networks:
- onlyoffice
expose:
- '80'
- '443'
volumes:
- document_data:/var/www/onlyoffice/Data
- document_log:/var/log/onlyoffice
ports:
- 2280:80 #此处是onlyoffice的端口:左侧的端口可以自定义
- 4423:443
environment:
- JWT_ENABLED=true #此处:是否打开秘钥认证
- JWT_SECRET=root123456 #此处:是onlyoffice的秘钥
nginx:
container_name: nginx-server
image: nginx
stdin_open: true
tty: true
restart: always
ports:
- 2380:80 #此处:nextcloud的端口 左侧的端口可以自定义
- 4433:443
networks:
- onlyoffice
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- app_data:/var/www/html
db:
container_name: mariadb
image: mariadb
restart: always
volumes:
- mysql_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=Mysql123 #此处:初始化数据库信息
- MYSQL_PASSWORD=Msql123 #此处:初始化数据库信息
- MYSQL_DATABASE=nextcloud #此处:初始化数据库信息
- MYSQL_USER=nextcloud #此处:初始化数据库信息
networks:
- onlyoffice
networks:
onlyoffice:
driver: 'bridge'
volumes:
document_data:
document_log:
app_data:
mysql_data:
version: '3'
services:
mysql-db:
container_name: fno_mysql
image: mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- /usr/local/mysql/conf:/etc/mysql/conf.d
- /usr/local/mysql/logs:/logs
- /usr/local/mysql/data:/var/lib/mysql
app:
container_name: nextcloud
image: nextcloud
restart: always
ports:
- "8080:80"
volumes:
- /root/nextcloud/html:/var/www/html
- /root/nextcloud/apps:/var/www/html/custom_apps
- /root/nextcloud/config:/var/www/html/config
- /root/nextcloud/nextcloud/data:/var/www/html/data
- /root/nextcloud/themes:/var/www/html/themes
app22:
container_name: onlyoffice
image: onlyoffice/documentserver
restart: always
ports:
- "6060:80"
volumes:
- /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
- /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
- /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice
- /app/onlyoffice/DocumentServer/db:/var/lib/postgresql
自定义指定版本
version: '3.7'
services:
nextcloud:
#image: library/nextcloud:25
image: nextcloud:25
container_name: nextcloud
restart: always
ports:
- "8080: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
image: library/mariadb:10.10
container_name: mariadb
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
image: onlyoffice/documentserver:8.2.0
container_name: onlyoffice
restart: always
ports:
- "8081:80"
environment:
- JWT_ENABLED=true
- JWT_SECRET=yourjwtsecret
volumes:
- onlyoffice_data:/var/www/onlyoffice/Data
volumes:
db_data:
nextcloud_data:
onlyoffice_data:
docker volume ls
docker volume inspect netoffice_db_data
插件
Mind Map + draw.io + Deck + calendar
思维导图和流程图 “draw.io”和“mind map”两个应用
白板插件 Whiteboard(官方)
手动安装插件 存放路径 Collabora 对比 netoffice
/var/www/html/custom_apps/
基础系统
为了干净的系统嵌套系统
挂载数据盘
pct set 102 -mp2 /dev/sdb1,mp=/var/www
debian12
debian12 + docker
加入docker功能
lxc.apparmor.profile: unconfined
lxc.cap.drop:
下载镜像
docker pull lianshufeng/docker-pull
docker pull library/nextcloud:29
docker pull onlyoffice/documentserver:8.2.0
docker pull library/mariadb:10.10
docker run --restart=always -d -p 12345:80 adolfintel/speedtest
docker run --restart=unless-stopped --name openspeedtest -d -p 3000:3000 -p 3001:3001 openspeedtest/latest
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