协同办公

系统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