Skip to content
Start in Cloud

Single-Binary Self-Hosted Analytics

HitKeep is a self-hosted analytics path for teams that want one process, one data directory, and no required PostgreSQL, ClickHouse, Redis, Kafka, separate queue, or hosted analytics service to secure, monitor, patch, and back up.

Choose this path when you want:

  • one Linux binary for the application, queue, and database path
  • embedded DuckDB for analytics storage
  • embedded NSQ for internal queueing
  • no required PostgreSQL, ClickHouse, Redis, Kafka, or hosted analytics service
  • low idle resource usage on a small VPS or internal VM
  • direct control over backups, retention, and network policy
  • optional Search Console import, AI visibility, AI chatbot analytics, and MCP access without adding another analytics service
Visitor page -> hk.js -> HitKeep HTTP server -> embedded NSQ -> DuckDB

The control plane stores users, sessions, teams, sites, and settings. Tenant analytics data lives in the main data directory, and non-default teams use tenant-local DuckDB files under tenants/*/hitkeep.db.

Search Console facts, AI fetch records, chatbot events, ecommerce events, goals, funnels, and normal pageviews all use that same tenant-aware storage model. MCP, when enabled, is a read-only route on the same binary rather than a separate service.

Use the binary guide for the full setup, but the deployment shape stays small:

Terminal window
./hitkeep \
-public-url "https://analytics.example.com" \
-jwt-secret "replace-with-a-long-secret"

Then add the tracker:

<script async src="https://analytics.example.com/hk.js"></script>

Use Facts and Limits as the canonical source when you need exact statements for procurement, migration notes, or comparison pages.

FactHitKeep detail
BinaryOne Linux AMD64 or ARM64 binary, about 100 MB
Runtime servicesEmbedded DuckDB and embedded NSQ in one process
Services not requiredPostgreSQL, Redis, Kafka, ClickHouse, separate queue, separate cache, or hosted analytics service
Cloud memoryAbout 205-769 MiB in recent HitKeep Cloud checks
Storage boundaryBack up the full data directory, including hitkeep.db, tenants/*/hitkeep.db, archive path, and backup path
ExportsJSON, CSV, Parquet, NDJSON, and XLSX where the product surface supports them
Non-replacementsNot a session replay, feature flag, experimentation, SIEM, CRM, CMP, or warehouse replacement

Use HitKeep Cloud first when the main goal is evaluating reporting coverage quickly. You can still use self-hosted HitKeep later when infrastructure ownership becomes the deciding factor.