An open API service indexing awesome lists of open source software.

https://github.com/dani3l0/Status

Simple, lightweight, web-based system monitoring tool for small homeservers running Linux.
https://github.com/dani3l0/Status

linux linux-server python self-hosted system-monitor

Last synced: 13 days ago
JSON representation

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

Awesome Lists containing this project

README

          

**⚠️ Project in maintenance mode**. This means no new features will appear, only bug fixes. For more info, see **[Announcement](announcement.md)**.

## :thinking: What is it?

:information_source: **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.

:balance_scale: **Status** provides a good balance between power and simplicity.

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

:tv: **[Check the live demo!](https://status-ksk5.onrender.com)** (but give it a while to load as Render suspends idle services)

### Web UI

### 📱 iOS app by [@JGeek00](https://github.com/JGeek00) - [AppStore](https://apps.apple.com/us/app/server-status-server-monitor/id6479648296)

## :rocket: Installation

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

### :hammer: Bare-metal

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

:package: You can skip commands with _(venv only)_ comment above if you already have `python3-aiohttp` distro package installed.

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

# Prepare virtual environment in 'venv' dir (venv only)
python3 -m venv venv

# Use the virtual environment (venv only)
source ./venv/bin/activate

# Install required modules (venv only)
pip3 install -r requirements.txt

# Run Status!
python3 status.py
```

In a one combined command (like for `systemd` service), you can use this as `ExecStart`:
```
sh -c "source ./venv/bin/activate && python3 status.py"
```

### :whale: 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](http://localhost:9090).

## :wrench: Configuration

Status can be configured in multiple ways:

1. **:desktop_computer: Command line arguments** - the most important and will override everything.

2. **:national_park: environment variables** - will override configuration file.

3. **:memo: configuration file** - the least important, overrides default configuration only.

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

#### :pencil2: 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`.