Skip to main content
Reference
Start a local instance. By default the container starts in the background and the CLI waits for GET /healthz to report ready before returning. Local only.
helix run is a backwards-compatible alias for helix start.

Usage

Arguments

Options

Behavior

  • Defaults to ghcr.io/helixdb/helixdb:v0.0.9. Flags override the image tag and pull policy set in [local.<instance>].
  • always requires a successful pull, missing uses a cached image when available, and never fails if the image is not cached. A failed pull never silently falls back to an older cached image.
  • All required images are resolved before overrides are saved or containers are replaced, so a failed resolution leaves helix.toml unchanged. Helix and disk-mode dependencies start by their resolved immutable image IDs.
  • The disk-mode SeaweedFS image defaults to missing unless a pull policy is explicitly configured.
  • Names the container helix-<project>-<instance> and publishes the configured port to container port 8080.
  • Uses Docker or Podman based on [project] container_runtime in helix.toml.
  • Default storage is in-memory. Passing --disk starts a SeaweedFS S3 sidecar (ghcr.io/chrislusf/seaweedfs:4.47, pinned by digest) that creates the helix-db bucket, waits up to 60 seconds for the bucket to accept signed requests, and runs helixdb with S3-compatible storage environment variables.
  • With --disk or S3 storage, the server caches data on disk in a per-instance helix-<project>-<instance>-cache volume mounted at /var/cache/helix. The CLI sets its budget (HELIX_DISK_CACHE_BYTES) to 64 MiB in disk mode, where SeaweedFS already keeps the data on your machine, and to 1 GiB for an S3 bucket.
  • --s3-region, --s3-endpoint-url, and --s3-allow-http require --storage-uri, unless the instance already uses S3 storage; then they override its saved S3 settings for this run.
  • The CLI loads .env from the project root before starting. For S3 storage, it passes any AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_PROFILE, AWS_REGION, and AWS_DEFAULT_REGION values from the environment into the container.
  • Background mode (-d, --restart unless-stopped) waits up to ~30 seconds for GET /healthz readiness and prints the URL and container name when ready. Progress goes to stderr.
  • Foreground mode (--rm) streams the container’s stdout/stderr until Ctrl-C, then removes the container.
The default helixdb storage mode is in-memory. Stopping or restarting an in-memory instance wipes all local data. The CLI shows this warning the first time you start each in-memory instance.
With --disk, helix stop removes the Helix and SeaweedFS containers but keeps the persistent local volume. helix prune removes that volume and deletes the persisted local data. helix stop also keeps the disk-cache volume, so the next start reads recently used data locally, and helix prune removes it. With S3 storage, helix stop, helix restart, and helix prune never delete remote data. Older CLI releases stored disk-mode data with MinIO, which SeaweedFS cannot read. helix start removes an old MinIO sidecar, starts on a new SeaweedFS volume, and warns while the MinIO volume remains. See Migrate MinIO disk data.

Examples