Five‑minute Docker install

This guide spins up Stella Ops — a .NET 10 LTS back‑end with an Angular 20 UI — on a single host in ≈ 5 minutes.
Ideal for laptops or CI runners with Docker ≥ 25.

Status. The first public α (v0.1) is due late 2025; the commands below will work once the image is tagged :0.1.0‑alpha. Follow the Road‑map for exact dates.

0 · Prerequisites

ItemMinimumNotes
OSUbuntu 22.04 / Alma 9x86‑64 or arm64
CPU / RAM2 vCPU / 2 GiBDev‑laptop baseline
Disk10 GiB SSDSBOM cache
DockerEngine 25 + Compose v2docker ‑v

1 · Download signed Compose files

# create working dir
mkdir stella && cd $_
# grab signed files
curl -LO https://get.stella-ops.org/releases/latest/.env.example
curl -LO https://get.stella-ops.org/releases/latest/.env.example.sig
curl -LO https://get.stella-ops.org/releases/latest/docker-compose.infrastructure.yml
curl -LO https://get.stella-ops.org/releases/latest/docker-compose.infrastructure.yml.sig
curl -LO https://get.stella-ops.org/releases/latest/docker-compose.stella-ops.yml
curl -LO https://get.stella-ops.org/releases/latest/docker-compose.stella-ops.yml.sig

# verify signatures BEFORE editing
cosign verify-blob --key https://stella-ops.org/keys/cosign.pub 
  --signature .env.example.sig  .env.example
cosign verify-blob --key https://stella-ops.org/keys/cosign.pub 
  --signature docker-compose.infrastructure.yml.sig  docker-compose.infrastructure.yml
cosign verify-blob --key https://stella-ops.org/keys/cosign.pub 
  --signature docker-compose.stella-ops.yml.sig      docker-compose.stella-ops.yml

# create working .env and edit credentials
cp .env.example .env

# launch databases
docker compose --env-file .env -f docker-compose.infrastructure.yml up -d

# launch Stella Ops (first run pulls ~50 MB vuln DB)
docker compose --env-file .env -f docker-compose.stella-ops.yml up -d

# Optionally can be done at any time. Add JWT token
docker --env-file .env compose -f docker-compose.stella-ops.yml exec stella set-jwt  <JWT_FROM_EMAIL>

# open https://<host>:8443  (self‑signed)
# default login: admin / changeme

2 · Create .env

# ─── Identity (shows in reports) ───────────────────────────────
COMPANY_NAME="Acme Corp"
ISSUER_EMAIL="ops@acme.example"

# ─── Database secrets ──────────────────────────────────────────
MONGO_INITDB_ROOT_USERNAME=stella_admin
MONGO_INITDB_ROOT_PASSWORD=$(openssl rand -base64 18)
REDIS_PASSWORD=$(openssl rand -base64 18)

# ─── Optional quota token (email token@stella‑ops.org) ─────────
STELLA_JWT="paste‑token‑here"   # {{ quota_token }} scans/day
Re‑use existing Redis or MongoDB? Point compose‑stella.yml at those hosts and keep passwords in .env.

3 · Launch infra

docker compose --env-file .env -f docker-compose.infrastructure.yml  pull
docker compose --env-file .env -f docker-compose.infrastructure.yml  up -d

4 · Launch Stella Ops

docker compose --env-file .env -f docker-compose.stella-ops.yml pull
docker compose --env-file .env -f docker-compose.stella-ops.yml up -d

Open https://<host>:8443 (self‑signed cert). Default admin login: admin / changeme.

5 · Reload the token later

# add new JWT to .env, then:
docker compose --env-file .env -f docker-compose.stella-ops.yml \
  exec stella admin set-jwt <JWT_FROM_EMAIL>

Quota jumps from 33 to 333 scans instantly. A gentle reminder banner appears once you hit 90% daily scan quota; after 333 scans the CLI keeps working but slows by ~10 %.


Next steps

Need a token? Request one →