Skip to content

Smoking Pi

Smoking Pi — a steaming raspberry pie

Continuous network monitoring for your home or lab, in a box. Smoking Pi wraps SmokePing in Docker Compose and grows with you: from a single container reading a YAML file, to a full stack with a web admin, Grafana dashboards, a time-series database, alerting that speaks only when it matters, and an MCP server so an AI assistant can answer "how's my internet?" from months of recorded history instead of a live ping. Built for a Raspberry Pi (ARM64); runs anywhere Docker does.

The code, issues and releases live at github.com/estcarisimo/smoking-pi. New here? Getting started takes a bare Raspberry Pi to a stack that is measuring, in seven numbered steps. This site is the reference for what the stack does and why it is built the way it is.

Three editions

Edition For What you get
Basic One box, one person LinuxServer.io SmokePing, targets in a YAML file, the classic web UI, RRD storage
Standard A small team + web admin with login, PostgreSQL as the source of truth, a REST API, bulk target management
Pro Everything + Grafana dashboards, InfluxDB or ClickHouse, IPv6 and DNS probes, HTTP and TCP probes, Wi-Fi uplink stats, alerting, MCP server, AI reports, the doctor

Since v2.12.0 Smoking Pi is a package: a signed apt repository, a .deb that manages the Compose deployment, a systemd unit, and one smoking-pi command for the whole lifecycle — install, upgrade, backup, restore, passwords, doctor, purge.

sudo apt install smoking-pi     # after adding the repository
sudo smoking-pi install         # edition, backend, optional services; starts at boot

The repository lines, the requirements and what to check afterwards are in Getting started; a clone still works exactly as it did, and is the way to run an unreleased branch.

What is measured

  • Latency and loss to your targets, every 300 s, with every individual ping kept (the "smoke"), over IPv4 and, when the host really has it, IPv6 (IPv6 gating).
  • DNS resolution time against public resolvers (DNS resolver probes).
  • The same page over HTTP/1.1, HTTP/2 and HTTP/3, each version enforced rather than requested, with the bare TCP handshake underneath as the floor (HTTP and TCP probes).
  • The first hop: the CPE probed five times a second, in 10 s windows, for microcuts, and, when the Pi is on wireless, the Wi-Fi link itself — signal, bitrate, throughput, disconnects (Wi-Fi uplink stats). What the gateway will not tell you about the physical last mile is written down too (the last mile from the CPE).
  • Netflix's Open Connect appliances serving your network, discovered and tracked.
  • What the house actually uses (Pro, opt-in). When the router forwards DNS to the Pi, the DNS observer learns which services the house resolves and scores them. smoking-pi dns adopt turns the top ones into targets, so the monitor measures your services instead of a generic list. It sees DNS queries, not traffic. Apps with their own encrypted DNS, VPNs and iCloud Private Relay stay out of view.

What happens with it

  • Alerts only when it matters. One message per episode -- the Internet down, a material degradation, their end, the monitor blind for 15 minutes -- each saying the cause (your line, your provider, this Pi) and how sure, and mutable by asking in chat. A weekly summary, sent only when the week had something worth telling, says what it added up to (Alerting).
  • An assistant that has read the history. The MCP server exposes latency, loss, microcut and Wi-Fi statistics, system status and on-request charts to any MCP client; the OpenClaw skill turns that into "how was the line last night?" (MCP server, OpenClaw integration, OpenClaw on another machine).
  • Reports written by a model from the same data, when you want prose instead of a chart (AI health reports).
  • An instrumentation doctor that checks the dashboards, exporters, containers and DNS actually agree with each other, statically in CI and live on the box (Instrumentation doctor).

Operating it

Remote access goes through Cloudflare tunnels, temporary ones with no account (Quick tunnels) or permanent ones with yours (Permanent Cloudflare tunnels); put authentication in front of anything you expose. Upgrades between versions are in Upgrading, the alternative time-series backend and its traps in ClickHouse backend, and how the package, the images, the apt repository and the supported hosts fit together in Packaging. Every release is accepted on a real Raspberry Pi before it ships (Release acceptance).

The Changelog says, release by release, what was wrong, what it cost, and what changed.