Core Settings
HTTP server listen port.
Directory for DuckDB database files and local assets.Must be writable by the Sparklytics process. In Docker, map this to a volume for persistence.
Public-facing URL for your Sparklytics instance.Used for generating tracking script URLs and dashboard links.
Runtime mode:
selfhosted or cloud.Most users should keep the default. Cloud mode requires additional infrastructure (PostgreSQL, ClickHouse).Authentication
See Authentication for detailed setup guides.Authentication mode:
none | password | locallocal(recommended): One-time setup page, then login with stored credentialspassword: Login with password fromSPARKLYTICS_PASSWORDenv varnone: No authentication (development only)
Required when
SPARKLYTICS_AUTH=passwordMaster password for dashboard access. Minimum 12 characters recommended.Controls secure cookie flags.Set to
false only for local development over plain HTTP. Keep true when using HTTPS/TLS.JWT session cookie lifetime in days (1-30).
Argon2id memory cost in KB (64 MB default).Only used in
local auth mode for password hashing. Higher values increase security but use more RAM during login.Database & Performance
DuckDB query memory limit.Accepts any DuckDB size string:
512MB, 1GB, 2GB, 4GB, 8GB, etc.Recommended values:- 1-2 GB VPS:
1GB - 4-8 GB VPS:
2GB - 16+ GB VPS:
4GBto8GB
How long to keep raw event data (in days).Events older than this are automatically deleted. See Data Retention.
GeoIP & Enrichment
See GeoIP Setup for detailed configuration.Path to MaxMind MMDB-format GeoIP database file.Docker images bundle DB-IP City Lite at
/geoip/dbip-city-lite.mmdb. For bare-metal installs, download a database first.If the file is missing, Sparklytics still runs but geo fields (country, city, region) are stored as NULL.CORS & Security
Comma-separated list of allowed origins for analytics query endpoints.
/api/collect (event ingestion) is always CORS-enabled. This setting controls dashboard API endpoints if you need to access them from a different domain.Advanced Settings
Benchmarking only. Disables the 60 req/min rate limiter on
/api/collect.Never enable in production — this makes your instance vulnerable to abuse.Example Configurations
Minimal Self-Hosted (Local Auth)
Production Behind Reverse Proxy
Single Password Mode
Development (No Auth)
Docker Compose Example
See Also
- Authentication Setup — Detailed auth mode configuration
- GeoIP Setup — GeoIP database installation
- Data Retention — Retention policy configuration