Skip to content
/ Status Public

Simple, lightweight, web-based system monitoring tool for small homeservers running Linux.

License

Notifications You must be signed in to change notification settings

dani3l0/Status

Repository files navigation

⚠️ Project in maintenance mode. This means no new features will appear, only bug fixes. For more info, see Announcement.

🤔 What is it?

ℹ️ Status is a simple, lightweight system monitoring app for small homeservers running Linux. It utilizes virtual filesystems (like /sys, /proc etc.) to retrieve information and give it to end user via nice web interface.

⚖️ Status provides a good balance between power and simplicity.

🏃 Runs flawlessly on most desktop computers, mini PCs and Raspberry Pis. However, virtual isolated environments may cause problems.

📺 Check the live demo! (but give it a while to load as Render suspends idle services)

Web UI

📱 iOS app by @JGeek00 - AppStore

🚀 Installation

This will take you just a few seconds. It's up to you which one you choose :)

🔨 Bare-metal

✔️ Recommended. Status has access to all virtual filesystems in your OS, which means more information and most reliable values.

# Clone the repo
git clone https://github.com/dani3l0/Status && cd Status

# Install required modules
pip3 install -r requirements.txt

# Run Status!
python3 status.py

🐳 Docker

It just works. Most of features should run without hassle, but depending on your OS configuration you may notice some minor limitations.

# Clone the repo
git clone https://github.com/dani3l0/Status && cd Status

# Build & run app
docker-compose up -d

App should be available on localhost:9090.

🔧 Configuration

Status can be configured in multiple ways:

  1. 🖥️ Command line arguments - the most important and will override everything.

  2. 🏞️ environment variables - will override configuration file.

  3. 📝 configuration file - the least important, overrides default configuration only.

It's good not to mix them. Use --help for more information.

✏️ Config keys naming

Config keys are named slightly differently under different ways of configuration. Look at the table:

in JSON config Environment variable Command line argument
The rule {section}.{key} STATUS_{SECTION}_{KEY} --{section}-{key}
Example #1 server.port STATUS_SERVER_PORT --server-port
Example #2 server.address STATUS_SERVER_ADDRESS --server-address
Example #3 misc.debug STATUS_MISC_DEBUG --misc-debug

Command line offers --config (or -c) to set custom config location.

Running Status with --no-config will neither read nor write any configuration file. Overrides --config.