Forum analytics for Flarum — server-side, zero JavaScript, no cookies. Your stats live in your own database.
composer require linkrobins/birdseye
Then enable it in your forum's admin panel under Extensions.
Forum analytics for Flarum — captured server-side, with zero JavaScript, no cookies, and no external tracker. Your analytics history lives in your own database and stays there.
The extension records events (page and discussion views, searches, posts, registrations) on the server as requests happen. Visitors are counted with a daily-rotating salted hash — no IP address is ever stored, no cookie is ever set, and nothing runs in your visitors' browsers.
Events sit in a short-lived local buffer (72 hours max). Once a day, the buffer is rolled up into small per-day aggregate rows in your database — that's the permanent history, a few kilobytes per month.
View forum analytics permission lets any
group you choose open the dashboard from their user menu, without admin
access. Nobody holds it until you grant it.1.8 or 2.x, PHP >= 8.0php flarum schedule:run via cron).hash(secret + date + IP + user agent), truncated;
the salt rotates daily so visitors cannot be tracked across days.CF-IPCountry by default; point the Trusted
country header setting at e.g. X-Country if nginx-geoip supplies it.
The header is trusted as-is, so if your forum is not behind such a
proxy, blank the setting (a client talking to your server directly could
otherwise forge its country). Without a header, an anonymized IP
prefix (/24 for IPv4, /48 for IPv6 — never the full address) is kept in
the 72-hour buffer solely for country lookup during processing, then
discarded. This can be disabled in settings, and no full IP is written to
disk either way.The frontend deliberately builds with a bare webpack + babel config instead
of flarum-webpack-config. One artifact serves Flarum 1.8 and 2.x, and
flarum-webpack-config's module prologue references flarum.reg, which does
not exist on 1.x — a bundle built with it dies on load there. Details are in
the header of js/webpack.config.js; please don't "modernize" the build
without checking the 1.8 leg of CI.