Lightweight, stateless and privacy-first analytics system
  • Go 87.6%
  • Nix 6%
  • JavaScript 4.7%
  • HTML 1.7%
Find a file
NotAShelf 4fba5e5ea3
chore: update example configuration to patch validation schema
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id7b0fde6295fe48e2e766b9d538d3fb06a6a6964
2026-03-02 22:38:15 +03:00
cmd/watchdog chore: format with golines 2026-03-02 22:38:14 +03:00
contrib/systemd meta: provide systemd template files 2026-03-02 22:38:10 +03:00
internal chore: format with golines 2026-03-02 22:38:14 +03:00
nix nix: initial nixos module; complete packaging 2026-03-02 22:38:08 +03:00
test internal/api: better multi-sites support; validate events against allowed domains 2026-03-02 22:38:11 +03:00
testdata chore: update test data for multi-domain support 2026-03-02 22:38:13 +03:00
web web: improve Javascript beacon for Plausible 'compatibility' 2026-03-02 22:38:12 +03:00
.envrc meta: add direnv support 2026-03-02 22:37:48 +03:00
.gitignore initial commit 2026-03-02 22:37:45 +03:00
config.example.yaml chore: update example configuration to patch validation schema 2026-03-02 22:38:15 +03:00
flake.lock nix: initial tooling 2026-03-02 22:37:46 +03:00
flake.nix nix: add nixosModules to the flake 2026-03-02 22:38:09 +03:00
go.mod chore: bump deps; tidy 2026-03-02 22:37:59 +03:00
go.sum chore: bump deps; tidy 2026-03-02 22:37:59 +03:00
main.go various: HTTP server; migrate to cobra pattern for repository 2026-03-02 22:37:56 +03:00
README.md docs: improve introduction paragraph; tiny cleanup 2026-03-02 22:37:49 +03:00

Watchdog

Watchdog is a privacy-preserving web analytics platform similar to Plausible, where data visualisation is deferred to a Prometheus-compatible dashboard such as Grafana. It is designed to be as simple and lightweight as possible, without any additional web components to worry about. You, in turn, get to use your existing monitoring stack to also collect information about your web applications tracked by Watchdog.

Design

  • No raw event storage
  • No persistent identifiers
  • Bounded cardinality by design
  • Aggregate at ingestion
  • Prometheus-native export

Quick Start

# Build the prıject
$ go build -o watchdog ./cmd/watchdog

# Start the Watchdog daemon with your own config
$ ./watchdog --config config.yaml