James Bond is a lightweight management suite for JamesDSP headless. It bridges the gap between the JamesDSP CLI and the web, providing a central server for authentication, preset management, and a visual control interface.
- JWT-based authentication (admin + client tokens)
- DSP control API — EQ, bass, tube, convolver, sound position
- Lit web client with DSP controls
- Multi-stage Docker build (JamesDSP + server + web client)
- Preset management — save / load / switch EQ & DSP presets
- Impulse Response library — upload, browse, and apply IR files
- Mobile-optimized UI — responsive touch-friendly controls ...
A server providing:
- Authentication: Multi-client support (Admin/Clients).
- Control API: Translation of REST commands to JamesDSP CLI.
- Storage: Integrated management for IR (Impulse Responses), Presets, and Auth data.
- Documentation: Built-in API documentation.
A modern JS/HTML client built with Lit:
- Configuration: Dynamic server URL setup.
- Connectivity: Secure connection with authentication tokens.
- Visual Editors: Interactive Equalizer and Impulse Response editors.
- Administration: Management pages for backend control.
- Integration: Embeddable widget with client authentication.
- Go 1.26+
- Node.js 22+
- JamesDSP headless (for runtime)
- Docker & Docker Compose (for containerized deployment)
Copy the example environment file and fill in your values:
cp .env.example .env| Variable | Default | Description |
|---|---|---|
JB_SERVER_PORT |
:8080 |
Server listen address |
JB_DATA_DIR |
./data |
Runtime data directory |
JB_JWT_SECRET |
— | Required. Secret for signing JWT tokens |
JB_JAMESDSP_BIN |
jamesdsp |
Path to JamesDSP headless binary |
JB_ADMIN_USER |
admin |
Admin login |
JB_ADMIN_PASS |
— | Admin password |
JB_CLIENT_TOKENS |
— | Comma-separated pre-issued client tokens |
Pull the pre-built image from Docker Hub:
docker pull imone/james-bond:latestOr build locally:
make docker-buildRun with Docker Compose (ensure PipeWire socket is available on the host): in progress
Run backend (Go) and frontend (Vite dev server) simultaneously:
make dev