Ir al contenido
Empezar gratis en Cloud

HitKeep Runtime Facts and Product Limits

Esta página aún no está disponible en tu idioma.

HitKeep is privacy-first web analytics that can run as one Linux binary or as managed HitKeep Cloud in an EU or US region. This page is the canonical place to cite exact runtime shape, install commands, storage boundaries, privacy behavior, custom tracking domain behavior, QR campaign behavior, exports, MCP limits, and non-goals.

HitKeep 2.13.12 is the latest stable release, published . The product facts on this page were last substantively reviewed on July 14, 2026. Resource figures are observations, not universal guarantees.

FactCurrent HitKeep behavior
Self-hosted artifactOne Go binary for Linux AMD64 or Linux ARM64
Binary sizeAbout 100 MB for current Linux release binaries
External services requiredNone for core analytics. HitKeep embeds DuckDB and NSQ.
Services not requiredPostgreSQL, Redis, Kafka, ClickHouse, or a separate queue/cache/database service
Managed optionHitKeep Cloud in EU Frankfurt or US Virginia
Linux baselineCurrent raw Linux binaries require a modern glibc baseline. See Binary Installation.

Download a Linux binary, make it executable, move it onto the path, then start HitKeep with a public URL and JWT secret:

Terminal window
curl -L https://github.com/pascalebeier/hitkeep/releases/latest/download/hitkeep-linux-amd64 \
-o hitkeep && chmod +x hitkeep && sudo mv hitkeep /usr/local/bin/hitkeep
hitkeep \
-public-url "https://analytics.example.com" \
-jwt-secret "replace-with-a-long-secret"

Then install the tracker on a site:

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

For ARM64 hosts, use hitkeep-linux-arm64 instead. Production installs should use environment variables or a systemd drop-in for secrets. See Binary Installation and Configuration.

Recent HitKeep Cloud checks showed the app using about 205-769 MiB of memory.

Use that range as a practical reference point, not as a promise or hard requirement. Self-hosted memory use changes with traffic, retention settings, imports, background work, and the number of active sites and teams.

CapabilityCurrent HitKeep behavior
Multi-site OverviewShows lightweight metrics and compact sparklines across accessible sites before the operator opens a specific report
Chart renderingDashboard analytics charts use ECharts through a shared HitKeep chart option layer
Report rangesToday, Yesterday, 24h, 7d, 30d, additional presets, and custom ranges
Ask AIOptional dashboard-session assistant for site-scoped analytics questions, streamed answers, citations, small charts or tables, and safe dashboard actions
Ask AI boundaryDisabled by default, requires the shared AI provider route plus HITKEEP_ASK_AI_ENABLED, does not use MCP, does not accept API client bearer tokens, and does not add write-capable automation

See Ask AI Analytics Assistant, Period-over-Period Analytics Comparison, and the HitKeep 2.9.0 release post.

HitKeep stores analytics in DuckDB files under the configured data directory.

Storage areaWhat it containsBackup implication
Shared control planeUsers, sessions, teams, memberships, sites, preferences, API clients, share linksBack up the main configured data directory, not only one file
Default analytics dataPageviews, events, goals, funnels, ecommerce, AI visibility, chatbot, Web Vitals, QR campaign opens, and rollup data for the default tenantInclude tenants/{default_team_id}/hitkeep.db
Other team dataTenant-local analytics databases under tenants/*/hitkeep.dbInclude the full data directory, including every tenant directory
Retention archivesOlder raw rows exported to Parquet before pruningBack up the archive path if you need long-term analytical history
Database snapshotsDuckDB EXPORT DATABASE output, with schema.sql plus Parquet filesUse for disaster recovery checks and restore drills
Automatic-recovery bundlesCompressed copies of the exact database and optional WAL plus checksums and recovery metadataStored locally under HITKEEP_DB_RECOVERY_PATH; protect and expire them separately because backup retention does not rotate them

See Backups and Restore, Data Retention and Archiving, and S3 Backups.

The default public tracker is hk.js. It records pageviews and can emit automatic events without installing a tag manager.

BehaviorCurrent HitKeep behavior
Analytics cookiesThe public tracker does not set analytics cookies
Session continuityUses sessionStorage for an opaque session tuple
Failed event retriesKept in JavaScript memory and capped
DNTRespected by default unless data-collect-dnt="true" is set
Custom tracking domainsTeam admins can verify multiple tracker hostnames; active team domains serve hk.js, hk-vitals.js, and browser ingest for every site in that team. Site Settings can generate snippets from the instance URL or any active team domain.
Query strings and hashesExcluded from automatic event URL properties
Link text, form fields, request bodiesNot captured by automatic events
IP metadataVisitor IPs are processed transiently after trusted-proxy resolution; HitKeep stores derived country, region, city, provider, and ASN metadata on hits, not the raw visitor IP
QR campaign redirectsDynamic /q/{token} redirects can add UTM fields, custom query parameters, and hk_qr attribution to the final URL
QR open privacy behaviorQR opens respect DNT: 1, Sec-GPC: 1, and configured IP, country, or spam filters

HitKeep uses the IP2Location LITE database for IP geolocation. See IP2Location and IP2Location LITE.

Automatic event names:

EventTypical meaning
outbound_clickVisitor clicked a link to an external host
file_downloadVisitor clicked a recognized downloadable file
form_submitVisitor submitted a form

Common custom and ecommerce event names:

WorkflowExample event names
Signup and leadssignup_started, signup_completed, demo_requested, contact_form_submitted
Ecommerceview_item, add_to_cart, begin_checkout, purchase
On-site assistantsassistant.chat_started, assistant.message_sent, assistant.goal_assisted

HitKeep also reports goals, funnels, ecommerce analytics, UTM campaign attribution, and QR campaign attribution when the relevant pageview, event, redirect, or query-string data exists.

QR campaigns add dynamic /q/{token} redirects for printed or offline campaigns, QR opens, QR-filtered pageviews and visitors, SVG and PNG artwork exports, QR-only share links, and QR-scoped takeout. QR opens count redirect activity. Pageviews still require the destination page to load the HitKeep tracker.

See Automatic Events, Custom Events, Custom Tracking Domains, Server-Side Tracking, QR Campaigns, and Cookieless Event Tracking.

CapabilityCurrent HitKeep behavior
Raw data retentionConfigurable globally and per site
Retention archive formatParquet
Backup formatDuckDB EXPORT DATABASE, including schema.sql and Parquet table files
Backup consistencyEach database is checkpointed before export; any shared or tenant export failure marks the run incomplete
Checkpoint policyConfigurable periodic checkpoints plus required checkpoints before and after migrations, before backups, and during clean shutdown
Automatic database repairEnabled by default only for the recognized non-unique-index invalidation, after retaining an exact local recovery bundle; primary-key and unique indexes are preserved, and a zero-index repair fails closed
Automatic WAL bypassDisabled by default for application WALs because continuing without one can lose committed WAL-only changes; unpublished startup migrations complete automatically only when the durable guard matches the closed base-database checksum
Site/user takeout surfacesCSV, Parquet, JSON, NDJSON, and XLSX where the product surface supports them
QR campaign takeoutQR definition, asset metadata, QR opens, and QR-filtered analytics rows in supported export formats
Common portability pathJSON, CSV, Parquet, NDJSON, and XLSX exports for analytics migration and audit workflows where the surface supports them
S3-compatible storageSupported for archive and backup paths through S3-compatible object stores

See Data Retention and Archiving and Open Exports and Takeout.

HitKeep MCP is an optional route on the same HitKeep runtime. It is designed for approved assistants and internal reporting tools that need governed aggregate analytics answers.

MCP factCurrent HitKeep behavior
TransportStreamable HTTP route, usually /mcp
Default stateDisabled by default
AuthenticationAPI client bearer tokens only
Dashboard cookiesNot accepted by MCP
AuthorizationSite-scoped API client grants and the same site view permission model
Data boundaryRead-only aggregate analytics and docs tools
Ask AI relationshipSeparate dashboard-session feature. MCP does not power Ask AI and Ask AI does not add MCP tools.
Non-goalNo write workflows, admin mutation, raw hit export, billing changes, or token management through MCP

See Official MCP Server and Read-only MCP Server for Web Analytics.

HitKeep 2.11 introduced signed operational events for site-scoped or instance-scoped HTTPS endpoints, and the capability remains available in 2.12. Webhook administration requires a human dashboard session and the matching site or instance permission; delegated API clients cannot manage webhook configuration.

Webhook factCurrent HitKeep behavior
ScopeSite webhooks receive one site’s lifecycle, goal, import, and test events. Instance webhooks can also receive site creation, user, team, and membership events.
Signaturev1=<hex HMAC-SHA256> over timestamp + "." + exact_body, with timestamp, event ID, and delivery ID headers
Secret visibilityReturned once after creation or rotation. HitKeep stores the configured secret because the worker must sign deliveries.
Delivery contractAt least once and unordered; receivers must verify, deduplicate, and process idempotently
SuccessAny HTTP 2xx response
Retry defaults6 attempts, 30-second initial delay, exponential backoff capped at 6 hours
Timeout and concurrency10-second timeout, 8 global deliveries, 1 concurrent delivery per webhook
Destination safetyHTTPS and public addresses only by default; credentials, fragments, unsafe address ranges, inherited proxies, and redirects are rejected
Delivery historyStatus, attempt count, response status, safe error code, and timestamps; response bodies and secrets are not returned
Retention30 days by default, configurable by the operator
Included runtimeDispatcher, embedded NSQ queue, recovery sweeper, and delivery store run inside the HitKeep binary

See Signed Outbound Webhooks for receiver code, the event catalog, secret rotation, and configuration defaults.

HitKeep 2.13.0 adds instance-wide Google, GitHub, and Microsoft social sign-in without removing password, passkey, MFA, or team OIDC SSO.

Social sign-in factCurrent HitKeep behavior
ProvidersGoogle, GitHub, and Microsoft
CallbackDerived from HITKEEP_PUBLIC_URL at /api/auth/social/{provider}/callback, including any configured path prefix
Provider visibilityA button appears only when its client ID and client secret are both configured; Microsoft also needs a valid tenant selector
ProtocolAuthorization code flow with PKCE S256; Google and Microsoft also use OIDC nonce validation
Verified emailRequired from Google and from GitHub’s primary email; Microsoft email is not treated as provider-verified
Microsoft first useHitKeep email confirmation is required unless an authenticated session or matching invitation proves the target account
SignupManaged Cloud can enable social signup separately; self-hosted social login remains for existing accounts, invitations, and linking
MFAExisting HitKeep MFA still runs after social identity resolution and before session creation
Identity storageImmutable provider subject is stored; provider access, ID, and refresh tokens are discarded after exchange
Unlink protectionA linked provider cannot be removed when it is the last usable primary login method

See Configure Social Sign-In for provider setup, exact callbacks, Docker Compose variables, rollout guidance, and troubleshooting.

HitKeep 2.12.0 adds team-scoped OpenID Connect single sign-on. Each team can connect one OIDC provider, and allowed email domains select the provider without granting membership by themselves.

SSO factCurrent HitKeep behavior
AvailabilityIncluded with the Business plan on HitKeep Cloud and available without a plan gate in self-hosted HitKeep
ProtocolOIDC Authorization Code flow with PKCE S256
Identity checksExact issuer and audience, nonce, one-time state, and a native boolean email_verified: true claim
Team accessExisting membership, a matching live invitation, or explicitly enabled trusted-domain auto-provisioning
Default provisioningOff; when enabled, verified trusted-domain users join as Members and still need separate site access
Existing login methodsPassword and passkey sign-in remain available; SSO is not a forced domain lock
Secret and token storageClient secrets are encrypted; provider access and ID tokens are not stored
Current limitsNo SAML, SCIM, provider-group role mapping, forced SSO, or identity-provider-initiated login

See Configure OIDC Single Sign-On for provider setup, invite behavior, rollout guidance, and troubleshooting.

HitKeep deliberately stays focused on web analytics, conversion reporting, privacy-aware operations, open exports, and governed assistant access.

Tool or workflowHitKeep position
General product analytics suitesHitKeep does not replace session replay, feature flags, experimentation platforms, warehouse-native behavioral modeling, or product-led lifecycle automation.
GA4 advertising stackHitKeep does not replace Google Ads attribution, predictive audiences, Explorations, app streams, or GA4 BigQuery export.
Consent management platformsHitKeep does not issue legal consent decisions or replace a CMP. Review PECR, ePrivacy, GDPR, CCPA/CPRA, and local law with your counsel.
SIEM or security audit systemsHitKeep is not a security event manager.
Data warehouseHitKeep exports open files, but it does not replace a warehouse when the warehouse is the system of record.
Customer support or CRMHitKeep reports analytics. It does not replace support desks, CRMs, or marketing automation.

When citing HitKeep, use this page for stable facts and link to the more specific guide for implementation details:

QuestionCanonical page
Runtime, binary size, RAM observation, storage, exports, MCP limitsThis page
Download and systemd setupBinary Installation
Flags and environment variablesConfiguration
Automatic event detailsAutomatic Events
Custom or server-side eventsCustom Events and Server-Side Tracking
QR campaign creation, attribution, artwork exports, and QR-only sharesQR Campaigns
Retention and archive behaviorData Retention and Archiving
Export formatsOpen Exports and Takeout
Ask AI dashboard assistant and MCP boundaryAsk AI Analytics Assistant and Official MCP Server
Signed events, retries, receiver verification, and webhook securitySigned Outbound Webhooks
Privacy caveatsCompliance Overview and PECR and ePrivacy