How dbrobot/home-server works
Home-Server is a declarative self-hosted family-server project with Rust services and client tools. A representative user flow is: a person uses the dd CLI to manage identity and device credentials, publishes or retrieves signed identity entries through directories, then accesses box-hosted services; the verifier supplies identity-aware access for services such as games. Other documented capabilities include encrypted library/archive storage, media playback and transcoding, games, and encrypted Git remotes. The supplied tree omits the README’s Nix, fleet, and secrets directories, and sampled source is partial, so those deployment internals and uncertain service wiring are not mapped.
Main entry points: src/main.rs dd CLI · src/lib.rs Verifier service · src/lib.rs Desktop app · src/main.rs Games service
Components 24
Member clients
- dd CLI
client/cli/src/main.rs - Desktop app
app/src/lib.rs - App pages
app/web/app.js - App networking
app/src/net.rs
Identity and access
- Device auth
client/auth/src/lib.rs - Signed identity
client/identity/src/lib.rs - Directory client
client/directory/src/lib.rs - Verifier service
box/verify/src/lib.rs - Web sessions
box/verify/src/session.rs
Box services
- Games service
box/games/src/main.rs - Game manager
box/games/src/lib.rs - Release agent
box/release/src/lib.rs - Photos integration
box/verify/src/library.rs
Media and storage
- Encrypted library
client/library/src/lib.rs - Archive backend
box/archive/src/lib.rs - Media client
client/media/src/lib.rs - Transcode service
box/transcode/src/main.rs
Shared tools
- Encrypted Git remote
client/gitremote/src/main.rs
Other components
- Member
- Browser
- Directory servers
- Chunk store
- FFmpeg
- Git forge
Connections 28
- Member → dd CLI: runs commands
- dd CLI → Device auth: opens credentials
- dd CLI → Signed identity: manages identity
- dd CLI → Directory client: publishes entries
- Directory client → Directory servers: reads and writes
- Encrypted Git remote → Directory servers: fetches entries
- Encrypted Git remote → Signed identity: verifies signatures
- Encrypted Git remote → Git forge: pushes encrypted state
- Member → Browser: uses
- Browser → Verifier service: authenticates
- Verifier service → Signed identity: checks identity
- Verifier service → Web sessions: issues sessions
- Verifier service → Photos integration: configures photos
- App pages → Desktop app: invokes commands
- Desktop app → Device auth: opens keystore
- Desktop app → Directory client: reads entries
- Desktop app → App networking: controls network
- Member → Encrypted library: uses via client
- dd CLI → Archive backend: manages archives
- Media client → Encrypted library: opens chunks
- Transcode service → Chunk store: fetches chunks
- Transcode service → Encrypted library: decrypts chunks
- Transcode service → FFmpeg: serves plaintext
- Browser → Games service: requests game service
- Games service → Game manager: manages instances
- Games service → Game manager: restores worlds
- Verifier service → Games service: provides user context
- dd CLI → Release agent: uses release commands