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_ENABLED 为 true 来开启:
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 协议的文档处理服务,用于扩展已有的文档预览和编辑能力。

2023年9月17日星期日

使用docker pull 拉取特定架构amd64、arm64、aarch64的容器镜像

关于x86、x86_64、x64、amd64和arm64、aarch64














开启属性

docker cli支持manifest特性,这个特性默认是不开启的。

通过修改 dockerd 配置文件,并重载,可以在服务器上开启 dockerd 的实验属性。

为配置文件 /etc/docker/daemon.json

添加 “experimental”: true。

修改后的配置文件看起来和下面的比较像:

vim /etc/docker/daemon.json

{
  "experimental": true
}

修改完成后,使用以下命令重置服务:

systemctl daemon-reload
systemctl restart docker

拉取指定架构的镜像

在 docker pull 时指定参数,即可完成指定架构镜像的拉取。

docker pull --platform=arm64 镜像

–platform:该参数是用于拉取指定平台的镜像,也是实验性功能,在上面步骤中开启后就会出现。通过该参数可以手动指定需要的CPU平台镜像,而不用自动去识别。

拉取 arm64 架构镜像示例。

docker pull --platform linux/arm64 openjdk

通过以下命令,可以确定其架构信息:

$ docker image inspect openjdk | grep Architecture
"Architecture": "arm64",
  • 1
  • 2

而主机的架构,是 aarch64:

$ arch
aarch64



2023年7月21日星期五

极空间NAS使用Docker运行Ubuntu/Debian并添加自定义启动脚本

极空间Docker运行Ubuntu/Debian并添加自定义启动脚本

1、添加外部文件夹并装载到 /sh 路径
2、打开容器命令选项卡,Console 连接模式选择 Interacticve &TTV(-i-t )模式
3、其他默认,应用,首次运行系统
4、通过运行的容器的ssh连接至控制终端,命令选择:/bin/sh
5、创建st.sh文件

touch /sh/st.sh

5、设置脚本文件权限

chmod 777 /sh/st.sh

7、写入基本命令

echo "
#!/bin/sh
# vim:sw=4:ts=4:et
exec "$@"
" >> /sh/st.sh

或分别执行

echo " service ssh restart " >> /sh/st.sh
echo "# vim:sw=4:ts=4:et" >> /sh/st.sh
echo "exec "$@"" >> /sh/st.sh

检查写入文件内容,确认无误后继续下一步
8、停止容器,打开容器命令选项卡,编辑EntryPoint选项,选择自定义并输入内容 /sh/st.sh (执行脚本路径)
9、应用修改,容器重新启动
10、通过运行的容器的ssh连接至控制终端
11、执行初始化,替换国内源:
Ubuntu

sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list

Debian

sed -i "s@http://ftp.debian.org@https://repo.huaweicloud.com@g" /etc/apt/sources.list
sed -i "s@http://security.debian.org@https://repo.huaweicloud.com@g" /etc/apt/sources.list

如果遇到无法拉取 HTTPS 源的情况,请先使用 HTTP 源并安装:

sudo apt install apt-transport-https ca-certificates

Debian 12 (bookworm) 源:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

# deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# # deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

12、更新系统并安装基本软件

apt-get update &&
apt install -y sudo &&
sudo apt-get -y update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade &&
sudo apt install -y openssh-server &&
sudo apt install -y vim

13、允许root用户远程登陆,修改/etc/ssh/sshd_config文件:

sudo vim /etc/ssh/sshd_config

修改相关内容,

Port 22
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

14、刷新状态:

sudo service ssh restart

15、设定root用户密码
输入 sudo passwd 命令,输入一般用户密码并设定root用户密码

16、自动安装标准软件包(适用于最小安装)
unminimize

17、通过运行的容器的ssh连接至控制终端,命令选择:/bin/sh ,增加 ssh 的自动启动

echo " service ssh restart " >> /sh/st.sh

18、完成基本设定

2023年7月5日星期三

Windows系统常见的系统环境变量

 1.变量示意

%appdata%就代表了C:Users\用户名\AppData\Roaming这个文件夹。

“%”是系统变量的一种表示方法,在升级补丁或者软件需要将某些内容写入系统文件夹时,都是用的这种写法,可以准确的定位。

2.其他常见变量。

环境变量与对应的路径

%ALLUSERSPROFILE%                       C:\ProgramData

%APPDATA%                                         C:\Users\用户名\AppData\Roaming

%COMMONPROGRAMFILES%            C:\Program Files\Common Files

%COMMONPROGRAMFILES(x86)%    C:\Program Files (x86)\Common Files

%COMSPEC%                                       C:\Windows\System32\cmd.exe

%HOMEDRIVE%和%SystemDrive%     C:\

%HOMEPATH%                                     C:\Users\用户名

%LOCALAPPDATA%                            C:\Users\用户名\AppData\Local

%PROGRAMDATA%                            C:\ProgramData

%PROGRAMFILES%                           C:\Program Files

%PROGRAMFILES(X86)%                  C:\Program Files (x86)

%PUBLIC%                                          C:\UsersPublic

%SystemRoot%                                   C:\Windows

%TEMP%和%TMP%                           C:\Users\用户名\AppData\LocalTemp

%USERPROFILE%                             C:\Users用户名

%WINDIR%                                         C:\Windows

%LOCALAPPDATA%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets                   锁屏桌面目录



应用示例:

改变EDGE缓存位置
mklink /d "%HOMEPATH%\AppData\Local\Microsoft\Edge\User Data\Default\Cache" "A:\Cache"