MaimoryLab/dib

DSH-in-Box packages DeepSeek Harness with a private Node.js runtime and a small Go launcher.

catalog 简介 / catalog descriptioncatalog description:DSH-in-Box: A DSH runtime and plugin packager

项目介绍Project Overview

dib 是 DSH-in-Box 打包工具,将 DeepSeek Harness 与私有 Node.js 运行时组合,由 Go 启动器调用。GUI 目标使用系统 WebView:Windows 用 WebView2,macOS 用 WKWebView,Linux 用 WebKitGTK;serve 目标仅启动 dsh web。适用于需要为多平台打包 DSH 的场景。注意 GUI 因 CGO 限制需借助构建矩阵,跨平台需配置交叉工具链;预设插件需以构建后包形式发布,pnpm 生命周期脚本在打包时禁用。

dib is a packaging tool that bundles DeepSeek Harness with a private Node.js runtime, driven by a small Go launcher. GUI targets rely on the OS WebView (WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux) and ship no browser engine; serve targets only launch dsh web. Use it to produce DSH distributions for multiple platforms. Native WebViews require CGO, so a build matrix is needed for the six-target release and a cross-toolchain plus SDK for cross builds; preset plugins must be published as prebuilt packages because pnpm scripts are disabled during packaging.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:MaimoryLab/dib

MaimoryLab/dib 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dib

DSH-in-Box packages DeepSeek Harness with a private Node.js runtime and a small Go launcher.

gui targets use the operating system WebView: WebView2 on Windows, WKWebView on macOS, and WebKitGTK on Linux. No browser engine is included. serve targets only start dsh web.

Build

Requirements: Go, pnpm 11.21.0, and network access. GUI launchers also require a C/C++ toolchain for the target. Linux requires the GTK 4 and WebKitGTK 6.0 development packages while building, and their runtime libraries on the destination machine.

go run . -dry-run
go run . -target darwin/arm64
go run .                         # build every configured target

Because native WebViews use CGO, the simplest six-target release is a build matrix that runs go run . -target "$TARGET" on the matching Windows, macOS, and Linux architecture. Cross builds can set cc and cxx on a target in dib.yaml when a suitable cross-toolchain and target SDK are installed:

targets:
  - os: windows
    arch: arm64
    cc: aarch64-w64-mingw32-gcc
    cxx: aarch64-w64-mingw32-g++

Each archive contains dshbox, Node.js, @deepseek-ai/dsh, and packages listed in dsh.plugins. pnpm lifecycle scripts are disabled during packaging; preset plugins should therefore be published as built packages.

Set icon to a 512x512 PNG. dib converts it into the Windows executable/installer/shortcut icon, the macOS app and DMG volume icon, and the Linux desktop/taskbar icon.

icon: icon.png

node.base_url defaults to https://nodejs.org/dist; the example uses npmmirror for networks where nodejs.org is unavailable. The selected source must expose Node's normal v<version>/SHASUMS256.txt layout. Node downloads, the pnpm store, and installed DSH runtimes are reused from cache.

macOS DMG and signing

macos.format: dmg creates an HFS+/LZMA DMG containing DeepSeek Harness.app and an Applications shortcut. HFS+ avoids APFS padding differences between macOS runners. DMG creation requires macOS. Use tar.gz to keep the portable archive layout.

Unsigned builds need no identity:

macos:
  format: dmg
  sign:
    enabled: false

Signed builds sign and verify both the app bundle and final DMG:

macos:
  format: dmg
  sign:
    enabled: true
    identity: "Developer ID Application: Example Corp (TEAMID)"

Windows NSIS

windows.format: nsis creates a compressed installer with user or machine scope, architecture and Windows version checks, shortcuts, and an uninstaller. It requires makensis; use zip to keep the portable archive.

Install the packager with brew install nsis on macOS or apt install nsis on Debian/Ubuntu build hosts.

windows:
  format: nsis
  app_name: DeepSeek Harness
  publisher: DeepSeek AI
  install_scope: user

The installer uses the system WebView2 runtime and does not bundle a browser engine.

Linux packages

Linux can emit either or both nFPM-backed formats. The packages install the runtime under /opt/dsh, link dshbox into /usr/bin, and add a desktop entry. Building requires the nfpm command.

go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v2.47.0
linux:
  formats: [deb, rpm]
  package_name: dsh
  maintainer: DeepSeek Harness <https://github.com/MaimoryLab/dib/blob/HEAD/noreply@deepseek.com>
  depends:
    deb: [libgtk-4-1, libwebkitgtk-6.0-4]
    rpm: [gtk4, webkitgtk6.0]

Dependency package names vary between distributions; set both lists for the distributions you publish to.

Official releases

Run the Release official DSH workflow manually and enter an exact published DSH version without a leading v. It builds unsigned macOS DMGs, Windows NSIS installers, and Linux DEB/RPM packages for amd64 and arm64, then publishes them under the matching v<dsh-version> GitHub Release. Official release builds always exclude preset plugins.

上一个 Prev veripower 下一个 Next chicheng-push