OnlyOffice 在线文档浏览
建议
ONLYOFFICE文档(英文名ONLYOFFICE Docs) 是由 Ascensio System SIA 公司开发的一套在线办公软件,可以查看并编辑文本文件、电子表格和演示文稿,无需安装任何其他软件。
Docker 部署
Docker 部署
bash
docker run -it -d -p 8080:80 --restart=always --name onlyoffice \
-e JWT_ENABLED=false \
-e USE_UNAUTHORIZED_STORAGE=true \
-e ONLYOFFICE_HTTPS_HSTS_ENABLED=false \
-v /root/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /root/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /root/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /root/onlyoffice/DocumentServer/db:/var/lib/postgresql \
-v /root/onlyoffice/DocumentServer/fonts:/usr/share/fonts \
onlyoffice/documentserver
创建反代
将8080
端口暴露到互联网,确保外网能够正常访问。
创建跳板文件
将下面 html 文件放到/root/onlyoffice/view.html
路径下,使用 Nginx 反代或者 lucky 万吉反代,根据实际情况修改里面的 src,确保外网能够访问。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>OnlyOffice Viewer</title>
</head>
<body>
<div id="placeholder"></div>
<script
type="text/javascript"
src="https://你的域名或IP:8080/web-apps/apps/api/documents/api.js"
></script>
<script>
function getQueryParamValue(name) {
const searchParams = new URLSearchParams(window.location.search);
return searchParams.get(name);
}
const url = decodeURIComponent(getQueryParamValue("src"));
const fileName = url.substring(
url.lastIndexOf("/") + 1,
url.lastIndexOf("?") != -1 ? url.lastIndexOf("?") : url.length
);
const fileExtension = fileName.split(".").pop();
const docEditor = new DocsAPI.DocEditor("placeholder", {
document: {
fileType: fileExtension,
permissions: {
edit: false,
comment: true,
download: true,
print: true,
fillForms: true,
},
title: fileName,
url: url,
},
editorConfig: {
lang: "zh-CN",
mode: "view",
},
height: "1080px",
type: "desktop",
});
</script>
</body>
</html>
添加字体
清除字体包
bash
# 进入onlyOffice容器
docker exec -it onlyoffice /bin/bash
# 找到字体包目录
cd /var/www/onlyoffice/documentserver/core-fonts
# 删除所有字体库
rm -rf *
# 进入字体缓存目录
cd /var/www/onlyoffice/documentserver/fonts
# 删除所有缓存
rm -rf *
# 删除其它目录字体库
cd /usr/share/fonts
# 除了truetype/目录其它都删除,因为这个目录删不了😄
导入字体包
bash
# 退出容器,把导入到Linux系统的字体包拷贝到容器
docker cp fonts.tar onlyoffice:/usr/share/fonts/
# 进入容器
docker exec -it onlyoffice /bin/bash
# 进入字体包目录
cd /usr/share/fonts
# 解压字体包
tar -xf fonts.tar
mv fonts/* ./
# 最后让onlyOffice加载字体缓存即可
/usr/bin/documentserver-generate-allfonts.sh