Back to docs

Installation Methods

Self-Hosting (VPC / On-Prem)

Run BLAZLE entirely inside your own environment: a VPC, your data center, or a fully air-gapped network. Prompts, commands and diffs are inspected on your own infrastructure and never leave it. BLAZLE is delivered as a prebuilt container image (no source code) and requires a license key issued by Kolerr Lab.

Requirements

  • Docker and Docker Compose on a 64-bit Linux host.
  • PostgreSQL and Redis (both are bundled in the Compose stack).
  • A database superuser for the first run: the initial migration creates the restricted role that database-level isolation runs as, which needs permission to create roles.
  • A valid, unexpired BLAZLE_LICENSE_KEY.

Quickstart

# 1. Configure
cp .env.example .env
#    edit .env: BLAZLE_LICENSE_KEY, JWT secrets, PROVIDER_ENC_KEY,
#    POSTGRES_PASSWORD, BOOTSTRAP_ADMIN_EMAIL, BOOTSTRAP_ADMIN_PASSWORD

# 2. Start (app + PostgreSQL + Redis)
docker compose up -d

# 3. Check health
curl http://localhost:8080/health   # -> ok

On first start, the admin account from BOOTSTRAP_ADMIN_EMAIL / BOOTSTRAP_ADMIN_PASSWORD is created automatically (only when the database has no users yet). Sign in with it, then invite your team and issue API keys as usual.

Licensing

Set the license token in BLAZLE_LICENSE_KEY. It is verified offline at startup, so no outbound connection is needed, which is essential for air-gapped installs. The service refuses to start on a missing or expired license. Your plan limits (request allowance, seats, validity) are carried inside the license. Contact us before expiry to renew.

What differs from the hosted version

  • Billing is handled by contract, not by card. Quota comes from your license.
  • Outbound email is optional. Without it, accounts are auto-verified; configure an email provider only if you want password-reset and invitation emails.
  • Durable archive storage is optional. Leave it off to keep records in the database only, or point it at your own S3-compatible store.

Optional: object-storage archive

To keep a durable, long-term copy of blocked-request records, enable the bundled S3-compatible store (MinIO):

# in .env
AWS_S3_BUCKET=blazle
AWS_S3_ENDPOINT=http://minio:9000
AWS_ACCESS_KEY_ID=minioadmin
AWS_SECRET_ACCESS_KEY=minioadmin

# start with the archive profile
docker compose --profile archive up -d

Backups & upgrades

# Backup the database
docker compose exec db pg_dump -U postgres blazle > blazle-backup.sql

# Upgrade to a new image (migrations run automatically on start)
docker compose pull        # or load the new image you received
docker compose up -d

Get a license / support

Self-hosting is available on Enterprise plans. Talk to us to get a license and onboarding help.