selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

kraken logo

Self-host kraken

v1.7

On-premise CI/CD system focused on massive-scale testing

ReleaseOpen SourceApache-2.0
docker run -e KRAKEN_SERVER_ADDR=<host-addr>:6363 -e KRAKEN_CLICKHOUSE_ADDR=<host-addr>:9001 -e KRAKEN_MINIO_ADDR=<host-addr>:9999 --rm us-docker.pkg.dev/kraken-261806/kkagent:<version>
Updated8 hours ago
LanguagePython
Setup difficultyAdvanced
ThemeDark mode
Stars
160
Ports
8080 (Web UI), 6000 (API Server), 7997 (Planner), 9001 (ClickHouse Proxy), 9999 (MinIO)
Requires
ClickHouse, Minio, PostgreSQL, Redis
Kraken CI main dashboard showing projects and branchesBranch results page with test run overviewTest results view for a runBranch management interfaceRun execution viewTest result charts and analyticsLogin page with admin credentialsDocker Compose services starting in terminalDiscovered agents awaiting authorizationAgents management page

What is kraken?

Kraken CI is an open-source, on-premise continuous integration and testing system built for massive-scale test execution. It supports hundreds of thousands of tests per build and specializes in hardware testing where hardware may be unstable and require monitoring or rebooting. The system uses a Python/Starlark-based workflow schema to define jobs, triggers, and environments. It can execute jobs locally, in Docker containers, or in LXD containers across bare metal, VMs, and Kubernetes. Kraken includes cloud autoscaling for AWS EC2/ECS, Azure VMs, and Kubernetes. Test results are tracked over time with regression detection, performance analytics, and charts. It integrates with GitHub, GitLab, Gitea, and Radicle via webhooks, and sends notifications via Email, Slack, Discord, and GitHub PR. Installation options include Docker Compose, Helm charts for Kubernetes, and manual installation on Ubuntu. The web UI supports dark mode and LDAP/OIDC authentication.

Should you self-host kraken?

kraken scores 48/100 on selfhost.directory (how scoring works) and ranks #23 of 28 in CI/CD. It has 160 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is Apache-2.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is jenkins (82/100, 26 704 stars). It scores higher overall, so compare the two before you pick. See kraken vs jenkins side by side.

Features

  • Artifact storage
  • Cloud autoscaling
  • Hardware testing focus
  • Job designer
  • LDAP/OIDC Authentication
  • Massive-scale testing
  • Multiple Executors
  • Notifications
  • Performance testing
  • Python/Starlark workflow schema
  • Real-time test streaming
  • Test result tracking
  • User management with roles
  • Webhook Triggers

kraken README

How to install kraken

Install kraken with Docker

Docker, access to Kraken server, ClickHouse proxy, and MinIO
Environment variables
KRAKEN_SERVER_ADDR, KRAKEN_CLICKHOUSE_ADDR, KRAKEN_MINIO_ADDR

Run agent in Docker container:

$ docker run -e KRAKEN_SERVER_ADDR=<host-addr>:6363 \
             -e KRAKEN_CLICKHOUSE_ADDR=<host-addr>:9001 \
             -e KRAKEN_MINIO_ADDR=<host-addr>:9999 \
             --rm \
             us-docker.pkg.dev/kraken-261806/kkagent:<version>

For running additional agents in Docker

How to configure kraken

  • KRAKEN_CLICKHOUSE_ADDRclickhouse-proxy:9001Location of ClickHouse Proxy

    Location of ClickHouse Proxy

  • KRAKEN_CLICKHOUSE_PORT9001Port of ClickHouse Proxy for collection logs

    Port of ClickHouse Proxy for collection logs

  • KRAKEN_CLICKHOUSE_URLhttp://clickhouse:8123/URL to ClickHouse, it is used to query ClickHouse database

    URL to ClickHouse, it is used to query ClickHouse database

  • KRAKEN_DB_URLpostgresql://kraken:kk123@postgres:5432/krakenURL of the Kraken's PostgreSQL database

    URL of the Kraken's PostgreSQL database

  • KRAKEN_MINIO_ADDRminio:9999Location of MinIO in address:port form

    Location of MinIO in address:port form

  • KRAKEN_MINIO_PORT9999Port of MinIO

    Port of MinIO

  • KRAKEN_PLANNER_URLhttp://controller:7997/URL of Kraken Planner

    URL of Kraken Planner

  • KRAKEN_REDIS_ADDRredisLocation of Redis in address:port form

    Location of Redis in address:port form

  • KRAKEN_SERVER_ADDRserver:6000Location of Kraken API server in address:port form

    Location of Kraken API server in address:port form

  • KRAKEN_SERVER_PORT6000Port of Kraken API Server

    Port of Kraken API Server

  • KRAKEN_UI_PUBLIC_PORT8080Public port of Kraken's web UI that is exposed to users

    Public port of Kraken's web UI that is exposed to users

  • MINIO_ACCESS_KEYUFSEHRCFU4ACUEWHCHWUAccess key to MinIO

    Access key to MinIO

  • MINIO_SECRET_KEYHICSHuhIIUhiuhMIUHIUhGFfUHugy6fGJuyyfiGYSecret key to MinIO

    Secret key to MinIO

  • POSTGRES_DBkrakenName of the Kraken's PostgreSQL database

    Name of the Kraken's PostgreSQL database

  • POSTGRES_PASSWORDkk123Password used to access PostgreSQL database

    Password used to access PostgreSQL database

  • POSTGRES_USERkrakenUser name used to access PostgreSQL database

    User name used to access PostgreSQL database

kraken releases & version history

More in Testing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…