Building
Prerequisites
Section titled “Prerequisites”- Rust 1.95 or newer (
rustup) and a C compiler. Some crates build bundled C code: SQLite, libwebp and WebRTC VAD. - Node.js 20 or newer with npm, for the web UI.
- For the desktop app, Tauri 2’s system dependencies:
- Linux:
libwebkit2gtk-4.1-dev libgtk-3-dev librsvg2-dev libsoup-3.0-dev libjavascriptcoregtk-4.1-dev - macOS: the Xcode command-line tools
- Windows: WebView2 (preinstalled on Windows 11) and the MSVC build tools
- Linux:
Web UI
Section titled “Web UI”cd webnpm cinpm run dev # http://localhost:5173, proxies /api and /mcp to 127.0.0.1:8420npm test # vitestnpm run build # → web/dist, embedded into the server binaryTo work on the UI against real tools, run a debug server next to it:
cargo build -p dogubako-cli./target/debug/dogubako server start --no-auth --data-dir /tmp/dgbA debug build serves web/dist from disk, so npm run build and a reload is
enough to see changes on port 8420.
CLI and server
Section titled “CLI and server”cargo build --release -p dogubako-cli # → target/release/dogubako./target/release/dogubako server start # http://127.0.0.1:8420Release builds embed web/dist at compile time, so build the web UI first.
Without it the server still works and shows a short notice at /.
Smaller binaries
Section titled “Smaller binaries”The full binary is about 62 MiB stripped, because it embeds image codecs, barcode engines, a jq implementation, DNS and TLS stacks, spreadsheet readers and the web UI. Category features trim it:
cargo build --release -p dogubako-cli --no-default-features \ --features dogubako-tools/text,dogubako-tools/image,dogubako-server/all-toolsThe dogubako-tools features are image, media, docs, files, text,
net and system.
Desktop app (Tauri 2)
Section titled “Desktop app (Tauri 2)”cargo install tauri-cli --version '^2'cd apps/desktop/src-tauricargo tauri dev # runs the Vite dev server and the appcargo tauri build # .dmg/.app, .msi/.exe, .deb/.rpm/.AppImageThe desktop crate is a separate Cargo workspace, so building the server never needs GTK or WebKit.
Docker
Section titled “Docker”docker build -t dogubako .docker build --build-arg WITH_WHISPER=1 -t dogubako:whisper .See Docker for every build argument.
cargo test --workspace # Rust tests; tests needing missing programs skipcargo clippy --workspace --all-targets -- -D warningscargo fmt --all --checkcd web && npm testIntegration tests use FFmpeg, ImageMagick, libvips, ExifTool, qpdf, Poppler,
Ghostscript, Tesseract and 7-Zip when installed; CI installs them on Linux.
Set DOGUBAKO_TEST_MODELS=<dir> with model files to enable model-based
tests.
Continuous integration
Section titled “Continuous integration”.github/workflows/ci.yml runs on every pull request:
- Web UI:
npm ci, tests and build. - Rust on Linux, macOS and Windows: build, workspace tests, clippy (on Linux) and a CLI smoke test.
- Desktop app and Docker builds.
Tagging v* runs .github/workflows/release.yml, which builds draft desktop
releases for all three platforms and CLI binaries.
The docs site has its own workflow; see The docs site.