SysDock — Linux / EC2 monitoring agent with live terminal dashboard and Docker metrics
Project description
SysDock
Linux / EC2 monitoring agent with a live terminal dashboard, accurate Docker metrics, and a pip-installable CLI.
pip install sysdock
sysdock # opens the live dashboard — like htop, but more
Features
- 🖥 Live terminal dashboard — CPU per-core, RAM, disk, network, processes, Docker, security
- 🐳 Accurate Docker metrics — CPU %, memory, network I/O per container (matches
docker stats) - 📊 htop-accurate readings — CPU sampled at 1s interval; RAM uses htop's exact formula
- 🌐 HTTP metrics API — JSON snapshot + live SSE stream on one port
- 🔒 Security panel — Falco events, SSH failures, fail2ban status
- ⚡ Zero config — works on any Linux distro, Python 3.6+
Install
# From PyPI
pip install sysdock
# With Docker SDK (richer container stats)
pip install "sysdock[docker]"
# With everything
pip install "sysdock[all]"
# From source
git clone https://github.com/Kavyvachhani/SysDock.git
cd SysDock
pip install -e .
Quick Start
sysdock # open live dashboard (default — no subcommand needed)
sysdock dash # same as above
sysdock start # start metrics HTTP server on :5010
sysdock status # one-shot snapshot (rich table)
sysdock status --json # raw JSON
sysdock status --section docker # Docker only
sysdock check # verify all dependencies
On EC2 — one-step install
sudo bash install.sh # auto-installs Python, pip, sysdock + systemd service
HTTP API
curl http://localhost:5010/health
curl http://localhost:5010/
curl -N http://localhost:5010/stream # live SSE stream
| Endpoint | Description |
|---|---|
GET / |
Full JSON snapshot — all metrics |
GET /stream |
Server-Sent Events — pushes every 5s |
GET /health |
{"status": "ok"} |
Metric Accuracy
| Metric | Method |
|---|---|
| CPU % | 1-second sampling (matches htop) |
| RAM used | total − free − buffers − cached (htop formula) |
| Docker CPU | (cpu_delta / sys_delta) × nCPUs × 100 (matches docker stats) |
| Docker memory | Subtracts inactive_file (cgroups v2) / cache (cgroups v1) |
CLI Reference
sysdock → live dashboard (default)
sysdock dash → live dashboard (with --refresh option)
sysdock start → HTTP metrics server [--port 5010] [--host 0.0.0.0]
sysdock status → snapshot [--section system|disk|processes|network|docker|security|all] [--json]
sysdock check → dependency check
sysdock install → systemd service (requires root)
sysdock uninstall → remove service (requires root)
sysdock --version → 1.1.0
Project Structure
SysDock/
├── pyproject.toml pip package config (entry point: sysdock)
├── setup.py legacy pip fallback
├── MANIFEST.in
├── install.sh one-step Linux installer
├── test_sysdock.py self-test suite
├── SETUP_GUIDE.md full setup + PyPI publishing guide
├── EC2_DEPLOY_GUIDE.md EC2 transfer + test + deploy guide
└── infravision_agent/
├── cli.py sysdock CLI (auto-launches dashboard)
├── server.py HTTP server on port 5010
├── collectors/
│ ├── system.py CPU / RAM / load / uptime
│ ├── disk.py partitions + I/O
│ ├── processes.py top processes
│ ├── network.py interfaces + connections
│ ├── docker_collector.py container stats (SDK + CLI fallback)
│ └── security.py Falco / SSH / fail2ban
└── display/
└── dashboard.py Rich live TUI dashboard
Compatibility
| Distro | Status |
|---|---|
| Ubuntu 20.04 / 22.04 / 24.04 | ✅ |
| Debian 10 / 11 / 12 | ✅ |
| Amazon Linux 2 / 2023 | ✅ |
| CentOS 7 / Stream 8 / 9 | ✅ |
| RHEL 7 / 8 / 9 | ✅ |
| Alpine Linux | ✅ |
| Arch Linux | ✅ |
Python 3.6 – 3.12. Requires Linux /proc filesystem.
Security Note
When exposing the HTTP API, restrict port 5010 to your monitoring server only:
aws ec2 authorize-security-group-ingress \
--group-id sg-xxxxxxxxxx \
--protocol tcp --port 5010 \
--cidr <monitoring-server-ip>/32
License
MIT © 2026 Kavyvachhani
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sysdock-1.2.4.tar.gz.
File metadata
- Download URL: sysdock-1.2.4.tar.gz
- Upload date:
- Size: 37.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26a5e38d249815b1948fa4b3cb58a4a1d141caf5c2ce1d1a1e0068653c6b839b
|
|
| MD5 |
4f760707186497e65a24b4467ef31bd8
|
|
| BLAKE2b-256 |
e5a619f86bad0f769d99ef5dff1575756aec2af553c6b53a2ea4689ddf31d7ae
|
Provenance
The following attestation bundles were made for sysdock-1.2.4.tar.gz:
Publisher:
workflow.yml on Kavyvachhani/SysDock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sysdock-1.2.4.tar.gz -
Subject digest:
26a5e38d249815b1948fa4b3cb58a4a1d141caf5c2ce1d1a1e0068653c6b839b - Sigstore transparency entry: 1091184921
- Sigstore integration time:
-
Permalink:
Kavyvachhani/SysDock@dde53bc90126cc0d4ae579e261a203d31d6635d4 -
Branch / Tag:
refs/tags/v1.2.4 - Owner: https://github.com/Kavyvachhani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@dde53bc90126cc0d4ae579e261a203d31d6635d4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sysdock-1.2.4-py3-none-any.whl.
File metadata
- Download URL: sysdock-1.2.4-py3-none-any.whl
- Upload date:
- Size: 35.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c78f9af5b3ad0a1f117f6957b54117b1562985673c9e0e907bfb6c72a2f563a6
|
|
| MD5 |
5a5116f6a5849fa52c97ec66b55f6984
|
|
| BLAKE2b-256 |
8cff29158ab68107450fffb383a5a43bf279f1b8ed28e42db43367ca8568d981
|
Provenance
The following attestation bundles were made for sysdock-1.2.4-py3-none-any.whl:
Publisher:
workflow.yml on Kavyvachhani/SysDock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sysdock-1.2.4-py3-none-any.whl -
Subject digest:
c78f9af5b3ad0a1f117f6957b54117b1562985673c9e0e907bfb6c72a2f563a6 - Sigstore transparency entry: 1091184922
- Sigstore integration time:
-
Permalink:
Kavyvachhani/SysDock@dde53bc90126cc0d4ae579e261a203d31d6635d4 -
Branch / Tag:
refs/tags/v1.2.4 - Owner: https://github.com/Kavyvachhani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@dde53bc90126cc0d4ae579e261a203d31d6635d4 -
Trigger Event:
push
-
Statement type: