Install Collectd-web in minutes
Three supported installation paths cover almost every environment: a Debian package for traditional servers, a Docker image for container hosts, and a source-based runner for development or air-gapped deployments. Each path converges on the same configuration file so you can switch later without rewriting anything.
Before you start
Collectd-web is a front-end for Collectd. It assumes Collectd is already installed and writing RRD files to disk. If that's not the case yet, install Collectd from your distribution's package manager first (apt install collectd on Debian/Ubuntu, dnf install collectd on Fedora) and verify that /var/lib/collectd or your configured datadir is filling up with per-host subdirectories. Collectd-web reads from that directory; it does not collect data itself.
You will also need Python 3.6 or newer (the source runner uses it directly, and the Debian package depends on it). The Docker image bundles its own Python, so you don't need it on the host.
Option 1 — Debian / Ubuntu (.deb package)
The recommended path for traditional Linux servers. The package wires up a systemd service, sets sensible defaults, and pulls in the right Python dependencies. Releases are published on GitHub.
# Download the latest .deb
wget $(curl -s https://api.github.com/repos/httpdss/collectd-web/releases/latest \
| grep "browser_download_url.*\.deb" | cut -d '"' -f 4)
# Install
sudo dpkg -i collectd-web*.deb
sudo apt-get install -f # resolve any dependencies
# Enable and start the service
sudo systemctl enable --now collectd-web
# Confirm it's listening
sudo systemctl status collectd-webBy default the service binds to 0.0.0.0:8888. For anything beyond a trusted local network, put it behind a reverse proxy with TLS and basic auth — there's a copy-pasteable nginx config in the docs.
Option 2 — Docker
Useful when you already run a container stack or want to keep the host's package set minimal. Mount your Collectd configuration and data directories read-only and expose the web port.
docker run -d --name collectd-web \
--restart unless-stopped \
-p 8888:8888 \
-v /etc/collectd:/etc/collectd:ro \
-v /var/lib/collectd:/var/lib/collectd:ro \
httpdss/collectd-web:latest
# Tail the logs to confirm it started
docker logs -f collectd-webThe Docker image expects the same directory layout as the .deb package, so configuration files written for one path work unchanged in the other. If you're orchestrating with Compose or Kubernetes, the same volume mounts and port mappings apply.
Option 3 — From source
Best for development, air-gapped environments, or anyone who wants to read the code before running it. Clone, install Python dependencies, and launch the standalone server.
git clone https://github.com/httpdss/collectd-web.git
cd collectd-web
# (optional) create a virtualenv
python3 -m venv .venv && source .venv/bin/activate
# Run the standalone Python server (3.6+)
python3 ./runserver.py
# Then open http://localhost:8888For a long-running source install, write a small systemd unit that invokes runserver.py from inside the virtualenv. The Debian package ships a known-good unit file you can use as a reference.
Configuration
All three install paths read the same configuration file. The most important setting is datadir, which tells Collectd-web where to look for per-host RRD files.
# /etc/collectd/collection.conf
datadir: "/var/lib/collectd/"
# Expected layout:
# /var/lib/collectd/<hostname>/<plugin>/<metric>.rrd
#
# New host directories appear in the UI automatically —
# no restart required.Verifying the install
Open http://<host>:8888 in a browser. You should see a sidebar with one entry per host directory under your datadir. Click any host to expand its plugins and render a graph. If the sidebar is empty, the most likely causes are an unset or wrong datadir, a Collectd instance that hasn't written any RRD files yet, or a permissions issue preventing the Collectd-web process from reading the data directory.
Next steps
Once the dashboard is up, the docs cover production hardening: putting Collectd-web behind nginx with TLS, centralizing metrics from multiple hosts over Collectd's Network plugin, and tuning RRD retention. The blog has shorter, scenario-driven walkthroughs for common environments.