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
Download the latest release for your platform from the Releases page and run:
chmod +x simon
./simon
The web interface will be available at http://localhost:30000
To enable file browsing, use either environment variable or CLI flag:
# Using environment variable
export SIMON_SERVE_DIRS="/path/to/dir1,/path/to/dir2"
./simon
# Using CLI flags (can specify multiple directories)
./simon --serve-dir /path/to/dir1 --serve-dir /path/to/dir2
# Custom port and bind address
./simon --port 8080 --address 127.0.0.1 --serve-dir /home --serve-dir /var/log
docker run -d \
--name simon \
-p 30000:30000 \
-v /sys:/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /:/fs:ro \
-v ./simon-data:/app/simon-data \
alibahmanyar/simon
To enable file browsing, add the SIMON_SERVE_DIRS environment variable:
-e SIMON_SERVE_DIRS="/fs/home,/fs/var/log"
services:
simon:
image: alibahmanyar/simon
hostname: simon
ports:
- "30000:30000"
environment:
SIMON_PASSWORD_HASH: "$$2a$$12$$nmCGsgJ3ovx76sc/J8Bcs.Vn235KLQK7Cze83Kzm36a1v59QKVOO."
volumes:
- /sys:/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /:/fs:ro
- ./simon-data:/app/simon-data
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:
environment:
SIMON_SERVE_DIRS: "/fs/home,/fs/var/log"
Comprehensive documentation is available in the docs/ directory:
| Option | CLI Flag | Environment Variable | Default | Description |
|---|---|---|---|---|
| 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.
# Clone the repository
git clone https://github.com/alibahmanyar/simon.git
cd simon
# Setup and build web frontend
make web-setup
make web
# Build Simon
make release


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!
$ claude mcp add simon \
-- python -m otcore.mcp_server <graph>