Sign inSign up

algebransoft/spitfire

By algebransoft

โ€ขUpdated 19 minutes ago

Self-hosted, no-code distributed load testing: HTTP, gRPC, Kafka, MQTT, SQL and more. Web UI + CLI.

Image
0

4.2K

algebransoft/spitfire repository overview

โ Spitfire โ€” self-hosted distributed load testing

Spitfire is a self-hosted, distributed load testing, stress testing and performance testing platform with a web UI. Build a test step by step in the browser (or write it as JSON), let runners in one or more locations generate the load, and watch requests per second, p95/p99 latency and error rate live โ€” with thresholds that turn every run into a pass/fail result.

๐ŸŒ Website: https://spitfire.tr/enโ  ยท ๐Ÿ“˜ Install guide: https://spitfire.tr/en/installโ  ยท ๐Ÿ“š Guides: https://spitfire.tr/en/guidesโ  ยท ๐Ÿงช Examples: https://github.com/taner-akdemir/spitfire-examplesโ 

โ Quick start

Requirements: Docker (plus kubectl for Kubernetes).

# single machine: Postgres + controller + web UI + 2 runners
curl -fsSL https://spitfire.tr/install.sh | bash -s -- docker

# into the current kubectl context
curl -fsSL https://spitfire.tr/install.sh | bash -s -- kubernetes

Windows (Docker Desktop, PowerShell): irm https://spitfire.tr/install.ps1 | iex

The web UI opens on port 8470.

โ What it does

  • Load test more than HTTP โ€” HTTP/HTTPS (REST, JSON, XML), WebSocket, Server-Sent Events, gRPC, Kafka, MQTT, AMQP / RabbitMQ, Redis, SQL (PostgreSQL, MySQL, SQL Server, Oracle) and MongoDB, all in the same test.
  • No scripting required โ€” user journeys with values extracted from responses (JSONPath, XPath, regex, headers), checks on every response, CSV test data, think time.
  • Realistic traffic models โ€” virtual users or a fixed arrival rate, stages, several scenarios side by side.
  • Distributed and multi-location โ€” split one run across runners and locations (e.g. 60% Istanbul, 40% Frankfurt). Remote runners connect outbound over TLS with key pinning; no inbound ports.
  • Thresholds and CI โ€” p(95)<500, rate<0.01; a crossed threshold fails the run and the CI job.
  • Findings and the breaking point โ€” the run page lists what its numbers show, and Find the breaking point climbs the load in steps to state your system's capacity.
  • Backend view, no agent โ€” OpenTelemetry (OTLP), Prometheus, Tempo, Jaeger and Loki data aligned with the load stages.
  • Import โ€” OpenAPI 3 / Swagger 2.0, Postman collections, HAR recordings, k6 scripts and JMeter plans.
  • Your data stays in your network โ€” tests, results and encrypted connection credentials live in your own Postgres.

โ The image

One multi-arch image (linux/amd64, linux/arm64) holds every component:

BinaryRole
spitfire-controller (default command)web UI, REST API, scheduling; ports 8470 (UI/API) and 8471 (TLS gRPC for remote runners)
spitfire-runnergenerates the load and streams metrics to the controller every second
spitfirethe CLI: run, validate, plan, convert, cloud run for CI

The image runs as a non-root user (uid 10001). The install script above sets up Postgres, the secrets and the network for you; it is the supported way to run the controller.

Run a test file locally with the CLI, no controller needed (ready-made tests for HTTP, gRPC, Kafka, MQTT, RabbitMQ, Redis and SQL: spitfire-examplesโ ):

docker run --rm -v "$PWD:/work" -w /work algebransoft/spitfire spitfire validate test.json
docker run --rm -v "$PWD:/work" -w /work algebransoft/spitfire spitfire run test.json

โ Tags

  • latest โ€” the newest release
  • X.Y.Z (e.g. 0.17.0) โ€” a specific release; pin this in production

Release notes: https://spitfire.tr/en/release-notesโ 

โ License

Spitfire is commercial software with a free edition (100 virtual users, 15-minute runs, one runner per run; every protocol and CI pass/fail included). Paid plans raise or remove the limits with a license key verified offline โ€” no phone-home. Pricing: https://spitfire.tr/en/buyโ 

Tag summary

Content type

Image

Digest

sha256:d3af0e9d5โ€ฆ

Size

215.7 MB

Last updated

19 minutes ago

docker pull algebransoft/spitfire