2023年10月14日星期六

docker安装openwrt(旁路由)

基于 Lean 源码编译的 OpenWrt 固件

summary/openwrt-aarch64
版本区分:latest 为多功能版本,mini为精简版本,RXX.X.X 为多功能历史版本
默认地址:192.168.1.1 默认用户:root 默认密码:password
项目地址:https://github.com/haiibo/OpenWrt
docker地址:https://hub.docker.com/r/summary/openwrt-aarch64

使用方法

1、打开网卡混杂模式
ip link set eth0 promisc on

如果正在使用的不是 eth0 接口,请将其更改为正在使用的接口

2、创建 macvlan 网络
docker network create -d macvlan –subnet=192.168.1.0/24 –gateway=192.168.1.1 -o parent=eth0 macnet

如果正在使用的不是 eth0 接口,请将其更改为正在使用的接口,若网络是桥接模式请使用下方命令创建
docker network create -d macvlan –subnet=192.168.1.0/24 –gateway=192.168.1.1 -o parent=br-lan macnet

注意:macnet 为名称,macvlan 为模式,将 IP 更改为主路由网段与 IP 地址

3、拉取镜像并创建容器
docker run -d –name=openwrt –network macnet –privileged=true –restart always –ulimit nofile=16384:65536 -v /lib/modules/(uname -r) summary/openwrt-aarch64:mini

如需使用 mini 精简版固件,将后面的 latest 更改为 mini 即可,反之亦然

4、更改固件默认 IP 地址
docker exec openwrt sed -e “s/192.168.1.1/192.168.0.200/” -i /etc/config/network

将 IP 更改为与主路由同一网段的 IP 地址,更改完成后重启容器生效
docker restart openwrt

基本部署完成,接下来登录更改后的 IP 地址进行其他设置吧
5、更改固件默认 IP 地址的方法二
创建完容器后,需要登录到容器中,修改网络配置

登录openwrt

docker exec -it openwrt1 bash

编辑网络,容器内执行

vim /etc/config/network

镜像默认的ip和网关如下:.

config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.0.200'
option gateway '192.168.0.1'
option dns '192.168.0.1'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'

需要修改ip和网关还有dns
option ipaddr 这里填主路由网段的未使用的ip,不要填成主路由的ip,否者ip冲突上不了网
option gateway 网关这里填主路由的ip
option dns dns填主路由的ip就行,让主路由去解析

修改完后容器内执行网络重启

/etc/init.d/network restart

然后打开浏览器输入上面option ipaddr中填写的ip然后登录到openwrt中,
默认账号root
默认密码password

如果有部分功能不能用,进入openwrt网络—-接口——物理设置—-桥接勾掉

2023年10月5日星期四

Docker 安装 Onlyoffice服务

扩展在线文档预览/编辑

本文将介绍三种支持 WOPI 协议的服务的部署及对接方式。通过实现自己的 WOPI 客户端,扩展 Cloudreve 的预览编辑能力(不仅限于 Office 文档)。

Collabora Online (LibreOffice Online)

使用 Docker 部署 Collabora Online(官方文档):
docker pull collabora/code
docker run -t -d -p 127.0.0.1:9980:9980 \
-e "aliasgroup1=<允许使用此服务的 Cloudreve 地址,包含明确端口>" \
-e "username=<面板管理员用户名>" \
-e "password=<面板管理员密码>" \
--name code --restart always collabora/code
以官方演示站为例:
docker run -t -d -p 127.0.0.1:9980:9980 \
-e "aliasgroup1=https://demo.cloudreve.org:443" \
-e "username=<面板管理员用户名>" \
-e "password=<面板管理员密码>" \
--name code --restart always collabora/code
Container 启动后,配置 Nginx 或其他 Web 服务器反向代理 https://127.0.0.1:9980, 可参考 Proxy settings,确保反代后的服务能够被你的最终用户访问,你可以手动访问 <你的服务主机>/hosting/discovery 来确认是否返回了预期的 XML 响应。
在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery。保存后可在前台测试文档预览和编辑:

OnlyOffice

OnlyOffice 在 6.4 版本后支持了 WOPI 协议,请参考 官方文档 部署你的 OnlyOffice 实例。推荐使用 Docker-DocumentServer 来快速部署。
参考 官方文档 配置 OnlyOffice 开启 WOPI 功能。如果使用 Docker,可在创建 Contianer 时指定 WOPI_ENABLEDtrue 来开启:
docker run -i -t -d -p 8080:80 -e WOPI_ENABLED=true onlyoffice/documentserver

ONLYOFFICE Docs中,WOPI默认非激活。 启用WOPI,修改配置文件: /etc/onlyoffice/documentserver/local.json,并设置wopi.enable参数为true

  • 从Docker将文件拷贝出 (be01de974ce4为容器ID)
docker cp be01de974ce4:/etc/onlyoffice/documentserver/local.json /root
  • 修改文件,增加如下内容,定义ipfilter访问 过滤规则
  • "ipfilter": { "rules": [ { "address": "ip_address", "allowed": true }, { "address": "*", "allowed": false } ], "useforrequest": true, "errorcode": 403 }
OnlyOffice 不支持过滤 WOPI 请求来源,设置 WOPI 请求允许,
"wopi": { "enable": true }

完整配置如下:
{
  "services": {
    "CoAuthoring": {
      "sql": {
        "type": "postgres",
        "dbHost": "localhost",
        "dbPort": "5432",
        "dbName": "onlyoffice",
        "dbUser": "onlyoffice",
        "dbPass": "onlyoffice"
      },
      "token": {
        "enable": {
          "request": {
            "inbox": true,
            "outbox": true
          },
          "browser": true
        },
        "inbox": {
          "header": "Authorization",
          "inBody": false
        },
        "outbox": {
          "header": "Authorization",
          "inBody": false
        }
      },
      "secret": {
        "inbox": {
          "string": "YCp2eyqe63YmIbrAwZzYNAceyFheeqws"
        },
        "outbox": {
          "string": "YCp2eyqe63YmIbrAwZzYNAceyFheeqws"
        },
        "session": {
          "string": "YCp2eyqe63YmIbrAwZzYNAceyFheeqws"
        }
      }
    }
  },
  "rabbitmq": {
    "url": "amqp://guest:guest@localhost"
  },
  "storage": {
    "fs": {
      "secretString": "oV72FWk1AxbSqnenqe7S"
    }
  },
"wopi": {
    "enable": true
    }
}
  • 将文件拷贝到Docker镜像里
docker cp /root/local.json be01de974ce4:/etc/onlyoffice/documentserver/
  • 重启服务
docker exec -it be01de974ce4 /bin/bash supervisorctl restart all

你可以手动访问 <你的 OnlyOffice 主机>/hosting/discovery 来确认是否返回了预期的 XML 响应。
在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery。保存后可在前台测试文档预览和编辑:
OnlyOffice 不支持过滤 WOPI 请求来源,如果你有对公使用需求,请通过外部应用防火墙检查预览页面请求中 wopisrc 参数是否为预期的 Cloudreve 站点。


Onlyoffice安装字体


  1. 复制字体到docker
sudo docker cp /root/data/fonts 容器id:/usr/share/fonts/
  1. 进入容器
docker exec -it 容器id /bin/bash
  1. 到bin目录
cd /usr/bin
  1. 执行
./documentserver-generate-allfonts.sh
  1. 退出容器,重启容器
exit docker restart onlyoffice



Office Online Server (On-Prem)

Office Online Server 是微软推出的可私有部署的 Office 在线文档服务。请参考 官方文档 在你的 Windows Server 上部署。
你可以手动访问 <你的 OnlyOffice 主机>/hosting/discovery 来确认是否返回了预期的 XML 响应。
在 后台 - 参数设置 - 图像与预览 - 文件预览 - WOPI 客户端 中开启 使用 WOPI 并在 WOPI Discovery Endpoint 中填入<你的服务主机>/hosting/discovery。保存后可在前台测试文档预览和编辑:
Office Online Server 不支持过滤 WOPI 请求来源,如果你有对公使用需求,请通过外部应用防火墙检查预览页面请求中 wopisrc 参数是否为预期的 Cloudreve 站点。

WOPI 协议

Web Application Open Platform Interface (WOPI) 协议是一种用于集成 Web 文档编辑器的协议,你可以在 微软的文档 中阅读详细的协议定义。Cloudreve 可以对接实现了 WOPI 协议的文档处理服务,用于扩展已有的文档预览和编辑能力。