-
-
Notifications
You must be signed in to change notification settings - Fork 18
Running without Docker
DOCSight can be run directly on any system with Python 3.12+, without Docker or containers. This is useful for home servers, Raspberry Pis, or setups where Docker is not available or desired.
Note: The Docker-based installation is recommended for most users as it handles dependencies and updates automatically. This guide is for advanced users who prefer a native setup.
- Python 3.12 or newer (
python3 --version) -
pip(usually bundled with Python) git- Network access to your modem (FritzBox, Vodafone Station, etc.)
git clone https://github.com/itsDNNS/docsight.git
cd docsightIt is strongly recommended to use a virtual environment to keep DOCSight's dependencies isolated from your system Python:
python3 -m venv .venv
source .venv/bin/activate # Linux / macOS
# .venv\Scripts\activate # Windows (PowerShell)
pip install -r requirements.txtDOCSight ships two small C programs for ICMP-based features (traceroute, connection monitoring). In Docker these are compiled and installed automatically. For bare-metal installs you need to build them yourself.
Prerequisites: gcc (usually already installed on most Linux systems)
# Install build dependencies if needed (Debian/Ubuntu)
sudo apt install gcc
# Compile the helpers
sudo gcc -O2 -Wall -o /usr/local/bin/docsight-icmp-helper tools/icmp_probe_helper.c
sudo gcc -O2 -Wall -o /usr/local/bin/docsight-traceroute-helper tools/traceroute_helper.c
# Set ownership and setuid bit (required for raw socket access)
sudo chown root:root /usr/local/bin/docsight-icmp-helper /usr/local/bin/docsight-traceroute-helper
sudo chmod 4755 /usr/local/bin/docsight-icmp-helper /usr/local/bin/docsight-traceroute-helperWhy setuid? ICMP raw sockets require elevated privileges. The setuid bit allows DOCSight to run these specific binaries with the necessary permissions while the main process runs as a normal user.
Skip this step? DOCSight works fine without these binaries. Traceroute and ICMP probe features will be unavailable, but everything else (modem polling, speedtest, dashboard, etc.) works normally.
DOCSight stores its configuration and database in a data directory. By default it uses /data, but you can point it anywhere:
mkdir -p ~/docsight-data
export DATA_DIR=~/docsight-dataTip: Add this
exportline to your shell profile (~/.bashrc,~/.zshrc, etc.) to make it permanent.
python3 -m app.mainThen open http://localhost:8765 in your browser and follow the setup wizard.
Port: DOCSight listens on port
8765by default. You can change this in the setup wizard (Settings → Web Port).
To have DOCSight start automatically on boot, create a systemd service unit.
Create /etc/systemd/system/docsight.service (adjust paths as needed):
[Unit]
Description=DOCSight DOCSIS Monitor
After=network.target
[Service]
Type=simple
User=YOUR_USERNAME
WorkingDirectory=/path/to/docsight
Environment="DATA_DIR=/home/YOUR_USERNAME/docsight-data"
ExecStart=/path/to/docsight/.venv/bin/python3 -m app.main
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetThen enable and start it:
sudo systemctl daemon-reload
sudo systemctl enable --now docsight
sudo systemctl status docsightView logs with:
journalctl -u docsight -fTo update DOCSight to the latest version:
cd /path/to/docsight
source .venv/bin/activate
git pull
pip install -r requirements.txt
sudo systemctl restart docsight # if running as a service| Problem | Solution |
|---|---|
ModuleNotFoundError |
Make sure the virtual environment is activated: source .venv/bin/activate
|
| Port 8765 already in use | Change the web port in the setup wizard, or set a different port before first start by editing ~/docsight-data/config.json
|
| Cannot reach modem | Ensure DOCSight runs on the same network as the modem; check firewall rules |
PermissionError on data dir |
Make sure the user running DOCSight has read/write access to DATA_DIR
|
Traceroute helper not found |
Compile and install the native helpers, see Step 2b |
All settings can also be configured via environment variables instead of the setup wizard. Key variables:
| Variable | Default | Description |
|---|---|---|
DATA_DIR |
/data |
Directory for config and database |
MODEM_TYPE |
fritzbox |
Modem driver (fritzbox, vodafone_station, ...) |
MODEM_URL |
http://192.168.178.1 |
URL of your modem's admin interface |
MODEM_USER |
(empty) | Modem login username |
MODEM_PASSWORD |
(empty) | Modem login password |
POLL_INTERVAL |
900 |
Polling interval in seconds |
See Configuration for the full list.
Home | Quick Start | Configuration | API Reference | GitHub
- Quick Start
- Installation
- Running without Docker
- Podman Quadlet
- Configuration
- Reverse Proxy
- Example Compose Stacks
- Dashboard
- Connection Monitor
- Signal Trends
- Before/After Comparison
- Channel Timeline & Compare
- Event Log
- Smart Capture
- Gaming Quality Index
- Modulation Performance
- Cable Segment Utilization
- In-App Glossary
- Speedtest Tracker
- BNetzA Breitbandmessung
- ThinkBroadband BQM
- Smokeping
- Weather
- Netzbremse (Peering)
- Home Assistant (MQTT)
- Prometheus Metrics