DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

whyself /

whyself/Amadeus

Topic repository only

Amadeus: a web workspace for DSH with cloud and web agents, online code editing, PDF/Office/Markdown/LaTeX previews, TeX compilation, file management, and an integrated terminal.

★ 3 Stars1 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@951d9ff5

Amadeus logo

Amadeus

扩展 DSH 的文档查看、文本编辑与选区对话能力

Version Node.js DSH

Amadeus 产品首页

Amadeus 是一组面向单用户服务器工作台的 DSH 插件。它把项目文件、终端、文档阅读、代码编辑和选区对话放在同一个界面中,使 DSH 可以直接处理 PDF、Office、Markdown、LaTeX 和常见文本文件。

v1.0.0 是后续开发基座。该版本统一了 Amadeus 命名空间、部署结构、插件版本和文档,同时固定兼容 @deepseek-ai/dsh@0.1.6-alpha.1。

主要能力

领域 能力
文档阅读 PDF、DOC/DOCX、PPT/PPTX 分页阅读,PDF.js 文字层、页码跳转、缩放、移动端双指缩放与大文件 Range 请求
文本编辑 CodeMirror 6 语法高亮、自动换行、字号缩放、撤销/重做、Ctrl/Cmd+S、未保存状态与关闭确认
保存冲突 文件版本比较、服务器版本/本地版本选择、自动合并非重叠修改、@codemirror/merge 三方差异编辑
Markdown 安全解析、浏览器 KaTeX 数学公式、同标签预览、右侧并排预览与打印导出
LaTeX SwiftLaTeX XeTeX/dvipdfmx WASM 编译、ctexart、中文字体、常用 TikZ、PDF 文字层与下载
选区对话 对话或文件选区加入注释,回答中的蓝色引用支持悬浮查看和原文定位,原选区以浅蓝荧光高亮
文件管理 文件和文件夹上传、ZIP 下载、重名确认、删除确认、目录轮询与服务器变更自动刷新
终端 持久 WebSocket 连接、高延迟输入合并、会话恢复与 Amadeus 默认工作目录
远程访问 浏览器原生 Basic 认证、HTTPS 反向代理、登录后完整 DSH 设置能力

工作方式

浏览器
  ├─ DSH 对话与模型能力
  ├─ Amadeus 文件树 / CodeMirror / PDF.js / KaTeX / SwiftLaTeX
  └─ HTTPS + WebSocket
          │
Amadeus Node.js 服务
  ├─ 认证与静态前端
  ├─ 文件、保存、终端和 TeX Live 路由
  └─ ONLYOFFICE Document Builder → PDF 缓存

Office 文件通过 ONLYOFFICE Document Builder 转为 PDF 阅读版本,再由 PDF.js 渲染页面与可选择文字层。原文件不会被修改。Markdown 在浏览器中解析;LaTeX 在浏览器 WASM 中编译,服务器只通过 kpsewhich 提供所需 TeX Live 文件。

环境要求

  • Linux 服务器,推荐 Ubuntu 24.04 x86_64
  • Node.js 24 或更高版本
  • npm
  • PDF/Word/PPT 预览所需的 ONLYOFFICE DocumentServer Community 转换组件
  • LaTeX 预览所需的 XeTeX、中文与 TikZ TeX Live 包
  • 公网部署使用 nginx 或等价反向代理提供 HTTPS

安装

git clone https://github.com/whyself/Amadeus.git
cd Amadeus
npm ci
npm run build
cp amadeus.example.yml amadeus.local.yml
chmod 600 amadeus.local.yml

编辑 amadeus.local.yml:

username: your-name
password: 'replace-with-a-long-random-password'
host: 127.0.0.1
port: 3080
workspace: /srv/amadeus-workspace
onlyOfficeMode: native
onlyOfficeBuilder: /opt/amadeus/vendor/onlyoffice/var/www/onlyoffice/documentserver/server/FileConverter/bin/docbuilder
previewWorkers: 1

执行 npm start,访问 http://127.0.0.1:3080。登录后在 DSH 设置中配置模型。登录密码与模型 API 密钥分别管理。

ONLYOFFICE 转换组件

下载 ONLYOFFICE DocumentServer Community v9.4.0 的官方 Ubuntu 包。Amadeus 只解包并调用其中的转换 CLI,不启动 DocumentServer、数据库或编辑服务。

curl -fLO https://github.com/ONLYOFFICE/DocumentServer/releases/download/v9.4.0/onlyoffice-documentserver_amd64.deb
echo '0860e68c4fecf429b4e13602a4a5ec6945e6ec9f0e9af9867ef0171845aa07df  onlyoffice-documentserver_amd64.deb' | sha256sum -c
sudo apt install libxml2 libcurl4t64 libcurl3t64-gnutls fonts-noto-cjk fonts-liberation fonts-dejavu-core fonts-opensymbol fontconfig
sudo mkdir -p /opt/amadeus/vendor/onlyoffice
sudo dpkg-deb -x onlyoffice-documentserver_amd64.deb /opt/amadeus/vendor/onlyoffice
sudo fc-cache -f

独立 Document Builder 的试用版本可能给 PDF 添加 Unregistered version 水印,不应替换上述社区版组件。字体会影响 Word 分页和布局;中文文档至少应安装 CJK 字体。

可选 Docker 转换模式:

onlyOfficeMode: docker
onlyOfficeImage: onlyoffice/documentserver@sha256:3ab6ebc7c605e5a32b7ae3ff19daed4925090245acc8100ce2230bd766c88212
previewWorkers: 1
# onlyOfficeFontsDir: /srv/amadeus/fonts

Docker 模式只按任务启动 docbuilder,禁用容器网络并限制挂载、内存、CPU 和进程数。

LaTeX 支持

sudo apt install texlive-xetex texlive-lang-chinese texlive-pictures texlive-latex-extra

浏览器首次编译时会下载并缓存格式、宏包和字体,因此耗时较长。后续编译复用 IndexedDB 和服务器的 TeX Live 缓存。用户 .tex 文件不会在服务器执行。

systemd 与 HTTPS

仓库提供 systemd 模板 和 nginx 模板。模板默认使用 /srv/amadeus 与 amadeus 服务用户:

sudo cp deploy/amadeus.service /etc/systemd/system/amadeus.service
sudo systemctl daemon-reload
sudo systemctl enable --now amadeus.service
sudo journalctl -u amadeus.service -f

公网部署应让 Amadeus 监听回环地址,由 nginx 提供 HTTPS。nginx 模板已包含 WebSocket、长连接和大文件上传设置。不要同时暴露另一套未认证的 DSH 服务。

可用 AMADEUS_CONFIG=/absolute/path/config.yml 指定外部配置文件。home 保存 DSH 会话、模型配置和预览缓存;升级前应先备份,不能把整个数据目录当作普通缓存删除。

配置

配置项 默认值 说明
previewWorkers 1 Office 同时转换数,允许 1–4
previewTimeoutMs 120000 单次转换超时,毫秒
previewCacheVersion '1' 转换器或字体变化后递增以失效旧 PDF
maxPreviewBytes 536870912 输入和输出预览上限,512 MiB
maxUploadBytes 1073741824 单文件上传上限,1 GiB
maxTextBytes 5242880 可编辑 UTF-8 文本上限,5 MiB
sessionHours 12 登录 WebSocket 凭据有效期

默认数据目录为 <项目>/.amadeus/dsh-home,默认预览缓存位于 <home>/preview-cache。清理缓存时先停止服务,只删除 preview-cache 内容。

权限与边界

  • Amadeus 是单用户工作台。登录用户能够操作项目文件、终端和 DSH 设置,应视为可信服务器用户。
  • 文件 API 限定在当前会话工作区,拒绝目录越界和符号链接逃逸;工作区根目录不能删除。
  • Basic 认证必须由 HTTPS 保护。HTTP 非安全来源中的 UUID 兼容实现不替代传输加密。
  • 扫描 PDF 和图片文字没有可选择文字层;Amadeus 1.0 不包含 OCR 或 Excel 阅读器。
  • Office 转换、字体替换、复杂公式和演示特效可能与原软件存在显示差异。
  • 仓库不附带 ONLYOFFICE 二进制或系统字体;第三方组件遵循各自许可证。

开发基线

npm test
npm run build
npm run pack:plugins

打包结果位于 .release/:

  • dsh-amadeus-login-1.0.1.tgz
  • dsh-amadeus-terminal-1.0.1.tgz
  • dsh-amadeus-files-1.0.1.tgz
  • dsh-amadeus-reader-1.0.1.tgz

代码结构:

packages/login      认证和静态服务入口
packages/terminal   浏览器终端传输
packages/files      文件浏览与传输
packages/reader     文档阅读、CodeMirror、Markdown、LaTeX 与注释
scripts             构建、打包和启动
tests               Node 集成与状态测试
ui                  Amadeus 共享样式

真实 ONLYOFFICE 测试:

AMADEUS_TEST_ONLYOFFICE=native AMADEUS_TEST_BUILDER=/path/to/docbuilder node --test tests/onlyoffice.test.mjs

注释提示结构见 docs/codex-selection-format.md。reader 插件附带 SwiftLaTeX v20022022 的 XeTeX/dvipdfmx WebAssembly 资产、许可证和源码地址。

1.0 升级说明

1.0 将所有项目自有命名空间统一为 amadeus。HTTP 路由、插件 ID、配置文件、环境变量、缓存键、数据目录、systemd 单元和 DOM 扩展点均发生变化。升级旧部署时应备份数据,并显式迁移到:

  • 配置:amadeus.local.yml
  • 环境变量:AMADEUS_CONFIG
  • 服务:amadeus.service
  • 应用路由:/amadeus/*
  • 数据目录:.amadeus/dsh-home
  • DSH Profile:amadeus

完整变化见 CHANGELOG.md。

—/ 5

No ratings yet

Manifest verification required

Commit 951d9ff5807d

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout