A lightweight, all-in-one system monitor with Docker support, live metrics, alerts, and full file management
It's a single, dependency-free binary written in Rust, designed for resource-constrained environments like embedded Linux systems
Real-time monitoring, Docker integration, file browsing, and alert management - all in one interface
- Written in Rust: For a memory-safe, high-performance core
- Single Binary: A self-contained executable with no external dependencies to install or manage
- Minimal resource footprint - Perfect for embedded systems and low-power devices
- Real-time metrics - Live tracking of CPU, memory, disk usage, disk I/O, and network activity
- Historical data - Visualize trends with interactive charts
- Cross-platform - Runs on Linux, Windows, Android, and FreeBSD
- Multi-architecture - Native support for x86_64, i686, aarch64, and armv7
- Container monitoring - Track resource usage for all running containers
- Log viewer - Access and search container logs directly from the web interface
- Real-time stats - Per-container CPU and memory metrics
- Filesystem navigation - Browse and explore directories through the web UI
- File viewer - Preview file contents directly in your browser
- File uploads - Upload files with drag-and-drop support
- File operations - Create folders, move files, delete items
- File downloads - Range request support for resumable downloads and media streaming
- Flexible alerts - Set custom thresholds for CPU, memory, disk, and network
- Multiple channels - Send notifications via Telegram, ntfy, or custom webhooks
- Templates - Pre-configured notification templates for quick setup
Download the latest release for your platform from the Releases page and run:
The web interface will be available at http://localhost:30000
To enable file browsing, use either environment variable or CLI flag:
To enable file browsing, add the SIMON_SERVE_DIRS environment variable:
Run with: docker-compose up -d
Note: The default password for the example hash is secret. See Authentication for instructions on generating your own secure hash.
To enable file browsing, add SIMON_SERVE_DIRS to the environment section:
Comprehensive documentation is available in the docs/ directory:
- Setup Guide - Installation methods, Docker configuration, reverse proxy setup, and authentication
- Configuration Reference - Complete list of configuration options and environment variables
- Alerts and Notifications - Setting up alerts, notification methods, and notification templates
| Address | -a, --address | SIMON_ADDRESS | 0.0.0.0 | Network address to bind the server to |
| Port | -p, --port | SIMON_PORT | 30000 | Server port |
| Update Interval | -T, --update-interval | SIMON_UPDATE_INTERVAL | 2 | Metrics refresh interval (seconds) |
| Password Hash | -H, --password-hash | SIMON_PASSWORD_HASH | None | Bcrypt hash for authentication |
| Database Path | --db-path | SIMON_DB_PATH | ./simon-data/simon.db | SQLite database location |
| Serve Directories | --serve-dir | SIMON_SERVE_DIRS | None | Directories for file browser (use flag multiple times or comma-separated env var) |
See the Configuration Reference for all available options.
Simon consists of a Rust backend and a Svelte-based web frontend.
- Rust toolchain (latest stable)
- Bun (for building the web frontend)
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
Simon is built on top of excellent open-source projects:
Backend (Rust)
- axum - Web framework
- sysinfo - System information
- bollard - Docker API client
- tokio - Async runtime
- rusqlite - SQLite interface
Frontend
- Svelte - UI framework
- SvelteKit - Application framework
- Chart.js - Data visualization
- Bun - Build tooling
Thank you to all the contributors and maintainers of these projects!
Happy Monitoring!
.png)




