A Cloudron community app packaging of SmokePing — latency logging, graphing, and alerting with RRDtool.
This repository contains only the Cloudron packaging files for SmokePing. The SmokePing source is downloaded from oetiker/SmokePing at image-build time, pinned to a known release via the SMOKEPING_VERSION build arg (kept current automatically by Renovate).
The upstream SmokePing project is the authoritative source for the daemon, probes, and web UI; this repo provides the Dockerfile, nginx config, supervisor unit files, default configuration, and the operator-facing glue needed to run cleanly on Cloudron.
- Upstream: oetiker/SmokePing — GPL-2.0
- Packaging: pronetivity/cloudron-smokeping — GPL-2.0
- Container image:
ghcr.io/pronetivity/cloudron-smokeping(public on GHCR; no registry credentials needed)
- ICMP, DNS, HTTP, SSH and 40+ other probe types — see SmokePing probes.
- ~80 default monitoring targets covering DNS resolvers, all 13 root servers, social networks, dev tools, and cloud providers.
- 10 pre-configured alert rules for packet loss, latency spikes, and flapping.
- HTTP basic auth with auto-generated credentials at
/app/data/htpasswd.txt; overridable via/app/data/.env. - Email alerts via the Cloudron
sendmailaddon. Surface-test with/app/pkg/test-email.sh. - Split configuration files under
/app/data/config/(General, Database, Alerts, Presentation, Probes, Targets). Deleting a file restores its default on next restart. - Health check endpoint at
/healthz. - SVG graph format.
The catalog URL is:
https://raw.githubusercontent.com/pronetivity/cloudron-smokeping/master/CloudronVersions.json
- Cloudron dashboard → Settings → App Store → Add custom app.
- Paste the catalog URL above.
- Click Install on SmokePing, pick a subdomain, confirm.
cloudron install --server my.example.com \
--versions-url https://raw.githubusercontent.com/pronetivity/cloudron-smokeping/master/CloudronVersions.json \
--location smokeping.example.comEither way, new versions appear in your Cloudron's update notifications automatically as they land in the catalog.
See PUBLISHING.md for the other install paths (--image, server-side build) and the release workflow.
Right after install, retrieve the auto-generated basic-auth credentials via the Web Terminal:
cat /app/data/htpasswd.txtTo set your own credentials instead, edit /app/data/.env:
SMOKEPING_ADMIN_USER=admin
SMOKEPING_ADMIN_PASS=your-passwordRestart the app to apply.
All operator-facing knobs live in /app/data/.env. The two most important ones:
TZ=Europe/Berlin # graph timestamps
SMOKEPING_ALERT_TO=admin@example.com,ops@example.com # email alert recipients
SMOKEPING_OWNER=My Company # shown in the UI footerRestart the app for changes to take effect. For deeper customization, edit the split config files under /app/data/config/ (General, Database, Alerts, Presentation, Probes, Targets). Deleting any of them restores the bundled default on the next restart.
/app/pkg/test-email.sh your@email.comThe test message includes the container hostname, the Cloudron app domain, and the Cloudron host so alert-delivery diagnostics are unambiguous.
Local container build (no Cloudron required):
docker build -t cloudron-smokeping:dev .Test against a Cloudron, building on the server (no GHCR pull):
cloudron install --server my.example.com --location smokeping.example.com
cloudron update --server my.example.com --app smokeping.example.comnode scripts/release.js <patch | minor | major | X.Y.Z> does the whole bump — CloudronManifest.json, CHANGELOG.md, the per-version CHANGELOG snippet, the commit, and the annotated tag. Push the commit and the tag and CI takes over: builds the image, pushes to GHCR, opens a GitHub Release, runs cloudron versions add, and commits the updated CloudronVersions.json back to master.
Full details in VERSIONING.md and PUBLISHING.md.
For issues with the Cloudron packaging (install, config-defaults, nginx, supervisor, env handling, alerting glue), open an issue here: pronetivity/cloudron-smokeping/issues.
For issues with SmokePing itself (probes, RRD storage, the web UI), open an issue upstream: oetiker/SmokePing/issues.
GPL-2.0. See the upstream SmokePing COPYING for the underlying daemon's license. Packaging contributions in this repository are © 2026 ProNetivity Inc., released under the same GPL-2.0 license.
