Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kodama App

CI Release Latest License

Desktop and mobile application for Kodama, a privacy-focused P2P security camera system.

Built with Tauri v2, the app embeds a full Kodama server and presents a Svelte 5 UI for managing cameras, viewing live streams, and reviewing recordings. The UI communicates entirely over WebSocket and REST — no Tauri IPC is needed for video, audio, or telemetry.

Download

Platform Download
macOS (Apple Silicon) Kodama_x.x.x_aarch64.dmg
macOS (Intel) Kodama_x.x.x_x64.dmg
Linux (deb) Kodama_x.x.x_amd64.deb
Linux (AppImage) Kodama_x.x.x_amd64.AppImage
Linux (rpm) Kodama-x.x.x-1.x86_64.rpm
Windows (exe) Kodama_x.x.x_x64-setup.exe
Windows (msi) Kodama_x.x.x_x64_en-US.msi

Quick Start

Prerequisites: Rust, bun

# Setup (install dependencies, verify build)
./scripts/setup.sh

# Run in development mode
cd app && bun run tauri dev

# Build for release
cd app && bun run tauri build

Architecture

kodama-app/
├── Cargo.toml              # Workspace root
├── app/                    # Tauri v2 desktop app
│   ├── package.json        # Tauri CLI + dev/build scripts
│   └── src-tauri/
│       ├── Cargo.toml      # kodama dependency (git)
│       ├── tauri.conf.json # Window config, bundling, icons
│       └── src/
│           ├── lib.rs      # App setup + embedded server
│           └── main.rs     # Entry point
├── ui/                     # Svelte 5 + Vite frontend (static SPA)
│   ├── package.json
│   └── src/
│       ├── App.svelte      # Root component + hash router
│       ├── pages/          # Dashboard, Settings
│       └── lib/
│           ├── transport-ws.ts  # WebSocket binary protocol
│           ├── types.ts         # Shared type definitions
│           └── components/      # UI components
└── scripts/
    └── setup.sh

The embedded server runs on 127.0.0.1:3000 and uses Iroh for P2P QUIC transport. Cameras connect as peers, and the web UI connects via WebSocket for live video (fMP4), audio, and telemetry.

Configuration

Environment variables for the embedded server:

Variable Default Description
KODAMA_WEB_PORT 3000 Web server port
KODAMA_KEY_PATH OS data dir Path to server identity key
KODAMA_BUFFER_SIZE 512 Frame broadcast buffer capacity
KODAMA_STORAGE_PATH (disabled) Enable recording to this directory
KODAMA_STORAGE_MAX_GB 10 Max recording storage size
KODAMA_RETENTION_DAYS 7 Recording retention period

Headless Web UI

The Svelte UI can also be built as standalone static files for use with kodama-server:

cd ui && bun install && bun run build
# Point kodama-server at the build output:
KODAMA_UI_PATH=./ui/build kodama-server

Related

  • kodama — Core library, headless server, and camera firmware (MIT / Apache-2.0)

License

BSL 1.1 — See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages