Show HN: I ditched Grafana for my home server and built this instead

2 hours ago 1

Latest Release Build Status Docker Pulls Docker Image Size License

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

Simon Demo - Live system monitoring interface
Real-time monitoring, Docker integration, file browsing, and alert management - all in one interface

View All Screenshots


  • 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

📁 File Browser & Management

  • 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

Option 1: Prebuilt Binary

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:

# 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:

Key Configuration Options

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

System Dashboard Network Stats
Docker Integration Alerts & Notifications

View All Screenshots →


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)

Frontend

Thank you to all the contributors and maintainers of these projects!


Happy Monitoring!

Read Entire Article