[![License][license-shield]][license-url]
[![Release][release-shield]][release-url]
[![Build][build-shield]][build-url]
[![Container][container-shield]][container-url]
[![Last commit][commit-shield]][commit-url]
Pixies
Self-hosted internet speed test analytics.
Pixies runs speed tests on your own schedule, keeps the results for as long as you configure,
and turns them into charts, exports and metrics you can query.
## Table of Contents
- [Features](#features)
- [Screenshots](#screenshots)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [Architecture](#architecture)
- [Development](#development)
- [Deployment](#deployment)
- [Contributing](#contributing)
- [License](#license)
## Features
**Measurement**
- Runs Ookla, LibreSpeed or Cloudflare speed tests and records ping, jitter, download and upload.
- Manages multiple speed test servers (nodes) and lets you switch between them from the dashboard.
- Downloads and manages the provider CLIs and server lists itself.
**Analytics**
- Dashboard with a test list and statistics over time for speed, ping and jitter.
- Configurable retention period; expired results are pruned automatically (default: 365 days).
- CSV and JSON export for any date range.
**Automation**
- Cron-based scheduling with an optional start offset, plus manual test runs from the UI.
- Optional test run on server startup.
**Integrations**
- Prometheus metrics (`pixies_*`) for Grafana dashboards and alerting.
- Health check pings for test started, test finished, test failed and minute-passed events.
- Notifications through Discord, Telegram, Gotify, ntfy, Pushover, InfluxDB and generic webhooks.
**Deployment**
- One Bun server that serves the dashboard, the REST API and the Prometheus endpoint.
- SQLite by default, MySQL supported through environment variables.
- Docker image, prebuilt binaries for Linux, macOS and Windows, an MSI installer and an install script.
- Installable dashboard (PWA) available in 13 languages.
## Screenshots
| Dashboard | Test history |
| --- | --- |
| 