Thank you for your interest in contributing! collectd-web is a web interface for collectd — contributions that improve monitoring UX, fix bugs, or modernize the stack are very welcome.
- Report bugs — open a bug report
- Discuss ideas — GitHub Discussions
- Fix bugs or add features — see the workflow below
- Improve docs — typos, examples, better installation instructions
- Python 3.9+
- collectd installed locally (for end-to-end testing with real RRD data)
rrdtoolsystem package
# Clone the repo
git clone https://github.com/httpdss/collectd-web.git
cd collectd-web
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install dependencies (once Python backend PR #168 is merged)
pip install flask rrdtool
# Run the development server
python runserver.pypip install pytest
pytest tests/ -vdocker build -t collectd-web .
docker run -p 8888:8888 -v /var/lib/collectd:/var/lib/collectd collectd-web- Fork the repo and create a branch from
master - Make your changes — focused PRs are easier to review
- Add tests if you are changing backend logic
- Open a PR — describe what changed and why
PR title format: type: short description
Examples: fix: correct RRD graph time range, feat: add JSON API endpoint, docs: update Docker instructions
collectd-web graph types are defined in collection.modified.conf (current) and will be ported to Python data structures as part of the Python backend rewrite (PR #168).
To add a new graph type, add an entry following the existing pattern. Once PR #168 is merged, graph definitions will live in src/graph_defs.py as plain Python dicts — much easier to read and contribute.
If you are building tooling around collectd (plugins, dashboards, automation), check out structkit — a YAML-first scaffolding tool that makes it easy to generate consistent project structures for monitoring and DevOps automation.
Open a GitHub Discussion — we are happy to help.