x86_64 Windows/Linux
Server (Rust)
Options — pick one
Section titled “Options — pick one”Best for a Linux server, homelab or VPS. Image lutgaru/sinsajo-server from Docker Hub, models/records persisted.
services: sinsajo-server: image: lutgaru/sinsajo-server:latest ports: ["8765:8765"] volumes: - sinsajo_models:/app/models - sinsajo_records:/app/records restart: unless-stoppedvolumes: sinsajo_models: sinsajo_records:docker compose up -dOr pin a tag: lutgaru/sinsajo-server:latest or server/v* tag. Pass args after image: ... lutgaru/sinsajo-server:latest --model Canary180M --autodownload-model.
Same image, single command without compose file:
docker pull lutgaru/sinsajo-server:latestdocker run -p 8765:8765 \ -v sinsajo_models:/app/models \ -v sinsajo_records:/app/records \ lutgaru/sinsajo-server:latest --model ParakeetTDT --autodownload-modelNo Docker, no Rust needed — download and run.
# From GitHub Releases -> server/v* assets:# - sinsajo-server (linux x86_64)# - sinsajo-server.exe (windows x86_64)./sinsajo-server --model ParakeetTDT --autodownload-model --port 8765# Windows PowerShell: .\sinsajo-server.exe --model ParakeetTDT --autodownload-model# Custom dirs: --model-dir ./models --records-dir ./recordsGet it at server-latest. No compilation for x86_64 Windows/Linux.
CLI args:
| Arg | Default | Description |
|---|---|---|
--model |
prompt | ParakeetTDT or Canary180M |
--autodownload-model |
false |
Auto-download if missing |
--port |
8765 |
WebSocket port |
--model-dir |
./models |
Model storage |
--records-dir |
./records |
WAV/OGG output |
For any architecture meeting minimum requirements (Rust 1.70+, ~500MB RAM for Int8, ~2–3GB disk for model).
git clone https://github.com/lutgaru/Sinsajo.gitcd Sinsajo/servercargo run --release -- --model ParakeetTDT --autodownload-model# orcargo build --release && ./target/release/sinsajo-server --helpAdd new models in src/config.rs (MODELS array) with HuggingFace repo + folder. If --model is omitted it reads sinsajo-config.json, then prompts.
Available: ParakeetTDT (0.6B, more accurate, English) and Canary180M (180M, faster, multilingual).
Models
Section titled “Models”Auto-download handles ~2–3GB on first run. Subsequent starts ~2–3s. Override dirs with --model-dir / --records-dir.
Current models: ParakeetTDT (TDT 0.6B, English) and Canary180M (Canary 180M Flash, multilingual). Edit server/src/config.rs to add more.
GPU acceleration
Section titled “GPU acceleration”use transcribe_rs::{set_ort_accelerator, OrtAccelerator};set_ort_accelerator(OrtAccelerator::Cuda); // or AutoTranslation
Section titled “Translation”Canary supports target_language from client start message. Server forwards to transcribe_with:
model.transcribe_with(&samples, &CanaryParams { language: Some("es".to_string()), target_language: Some("en".to_string()), ..Default::default()})?;Parakeet is English-only and ignores the target language. See Protocol.
Persistence
Section titled “Persistence”- Models:
models/(or--model-dir) - Recordings:
records/(WAV/OGG, triggered by clientclean) - Config:
sinsajo-config.json(persists last chosen model)
Deployment
Section titled “Deployment”The server is not deployed to GitHub Pages (static). Run it on your LAN, VPS, fly.io / Railway, etc. with Docker or a binary. Expose 8765 and point clients to ws://YOUR_IP:8765 or wss:// behind a reverse proxy (Caddy/Nginx). For remote access consider Tailscale/WireGuard.
Other arch
Linux server