xBeacon is a cross-platform notification system for VDI environments consisting of:
- xBeacon Windows - System tray app with WPF dashboard (Windows 11+)
- xBeacon CLI - Daemon with libnotify notifications (Linux)
- xBeacon Server - Cross-platform notification server with web dashboard and API
Designed for VDI (Virtual Desktop Infrastructure) environments where administrators need to notify users about:
- Session time remaining - How much time is left in their reservation
- Support information - Where to get help
- System announcements - Maintenance windows, alerts, etc.
- Single portable executable (~15-30MB)
- Cross-platform: Windows tray app or Linux CLI daemon
- Smart HTTP caching (ETag/Last-Modified)
- Exponential backoff on errors
- Optional run-at-startup (Task Scheduler on Windows, systemd on Linux)
- Platform-agnostic (works on any VDI platform)
- Download
xBeacon-win-x64.exefrom Releases - Create
config.jsonnext to it:{ "url": "https://your-server.com/notifications", "headers": { "X-API-Key": "xbk_your_api_key_here" }, "pollIntervalSeconds": 60 } - Run
xBeacon-win-x64.exe
- Download
xBeacon-linux-x64from Releases - Create config file at
~/.config/xbeacon/config.json:{ "url": "https://your-server.com/notifications", "headers": { "X-API-Key": "xbk_your_api_key_here" }, "pollIntervalSeconds": 60 } - Run the daemon:
chmod +x xBeacon-linux-x64 ./xBeacon-linux-x64 daemon
- Download
xBeaconServer-*for your platform from Releases - Run the server:
# Windows ./xBeaconServer-win-x64.exe # Linux ./xBeaconServer-linux-x64 # macOS ./xBeaconServer-osx-arm64
- Generate an API key:
./xBeaconServer-* generate-key --name "VDI Pool 1"
- Access the web dashboard at
http://localhost:5100
- Single portable executable (~15-30MB)
- Runs in Windows system tray
- WPF dashboard popup with notification history
- Smart HTTP caching (ETag)
- Exponential backoff on errors
- Optional run-at-startup via Task Scheduler
- Single portable executable
- Daemon mode with libnotify integration
- Console fallback when libnotify unavailable
- Systemd service support
- XDG-compliant config paths
- Cross-platform (Windows, Linux, macOS)
- Web dashboard for management
- API key authentication (prefix:
xbk_) - Notification scheduling
- File-based storage (no database)
- Single executable deployment
- Windows Service / systemd support
- User Guide - Client installation and usage
- Server Guide - Server deployment and configuration
- Architecture - System design
- Release Process - How to create releases
- ADRs - Architecture decisions
- spec.yaml - Single source of truth for all features and components
HTTP GET
X-API-Key: xbk_...
JSON notifications
│
▼
┌──────────────────┐
│ xBeacon Server │
│ (Any OS) │
└────────┬─────────┘
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────┐ ┌──────────────────┐
│ xBeacon │ │ xBeacon CLI │ │ Web Dashboard │
│ Windows │ │ (Linux) │ │ (Browser) │
│ (Tray App) │ │ │ │ │
└────────┬────────┘ └──────┬──────┘ └──────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────┐
│ Windows Toast │ │ libnotify │
│ Notifications │ │ Popups │
└─────────────────┘ └─────────────┘