- Rust 81.9%
- JavaScript 14.3%
- Shell 1.6%
- CSS 0.9%
- Dockerfile 0.6%
- Other 0.7%
| .cargo | ||
| .devcontainer | ||
| .forgejo/workflows | ||
| .githooks | ||
| docs/security | ||
| scripts | ||
| src | ||
| tests/fixtures/audio | ||
| .dockerignore | ||
| .gitignore | ||
| .updatarr.yaml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| cliff.toml | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| Justfile | ||
| README.md | ||
| renovate.json | ||
| rust-toolchain.toml | ||
| todo.md | ||
| VERSION | ||
VRDS
A modular Matrix automation client with a WebUI-first setup flow.
Features
- WebUI setup — Container starts without a config file, creates the encoded runtime store, and serves the setup UI.
- Commands — Bot commands (
!wetter,!zusammenfassung,!bild, etc.) with live-editable prompts and simple runtime commands. - Voice — Transcribe voice messages with Whisper and summarize long ones with LLM.
- Media — Archive media to WebDAV and sync WhatsApp contacts to CardDAV.
- Webhooks — Forward ChangeDetection.io alerts or any JSON payload to Matrix rooms.
- Email — Poll IMAP and send LLM-summarized emails to Matrix.
All runtime configuration is managed through the WebUI/API.
Quick Start
docker run -p 3000:3000 -v ./runtime:/runtime -v ./data:/data ghcr.io/wuast94/vrds:latest
Open http://localhost:3000/setup.
VRDS creates runtime/config.snapshot.json on first boot. The file is structured JSON, but every leaf value is base64 encoded, including prompts, URLs, room IDs, booleans, numbers, and secrets. Base64 is not encryption; protect the runtime directory like any other secret volume.
WebUI changes are written through VRDS APIs and applied live. The process is not restarted for configuration changes.
Runtime Storage
Default runtime directory:
runtime/
config.snapshot.json
config.events.jsonl
Set RUNTIME_CONFIG_DIR to use another mounted directory.
Legacy YAML import is only used when CONFIG_PATH explicitly points at an existing file. VRDS does not create or require a YAML config file.
Building
cargo build --release
just check
License
MIT