Unkey

Ctrl

Run the Unkey control plane service for managing infrastructure and services

Command Syntax

unkey run ctrl [flags]

Some flags are required for this command to work properly.

Flags

--http-port

HTTP port for the control plane server to listen on. Default: 8080

  • Type: integer
  • Default: 8080
  • Environment: UNKEY_HTTP_PORT

--color

Enable colored log output. Default: true

  • Type: boolean
  • Default: true
  • Environment: UNKEY_LOGS_COLOR

--platform

Cloud platform identifier for this node. Used for logging and metrics.

  • Type: string
  • Environment: UNKEY_PLATFORM

--image

Container image identifier. Used for logging and metrics.

  • Type: string
  • Environment: UNKEY_IMAGE

--region

Geographic region identifier. Used for logging and routing. Default: unknown

  • Type: string
  • Default: "unknown"
  • Environment: AWS_REGION

--instance-id

Unique identifier for this instance. Auto-generated if not provided.

  • Type: string
  • Default: "ins_5PkxT8"
  • Environment: UNKEY_INSTANCE_ID

--database-primary (required)

MySQL connection string for primary database. Required for all deployments. Example: user:pass@host:3306/unkey?parseTime=true

  • Type: string
  • Environment: UNKEY_DATABASE_PRIMARY

--database-partition (required)

MySQL connection string for partition database. Required for all deployments. Example: user:pass@host:3306/partition_002?parseTime=true

  • Type: string
  • Environment: UNKEY_DATABASE_PARTITION

--otel

Enable OpenTelemetry tracing and metrics

  • Type: boolean
  • Default: false
  • Environment: UNKEY_OTEL

--otel-trace-sampling-rate

Sampling rate for OpenTelemetry traces (0.0-1.0). Only used when --otel is provided. Default: 0.25

  • Type: float
  • Default: 0.25
  • Environment: UNKEY_OTEL_TRACE_SAMPLING_RATE

--tls-cert-file

Path to TLS certificate file for HTTPS. Both cert and key must be provided to enable HTTPS.

  • Type: string
  • Environment: UNKEY_TLS_CERT_FILE

--tls-key-file

Path to TLS key file for HTTPS. Both cert and key must be provided to enable HTTPS.

  • Type: string
  • Environment: UNKEY_TLS_KEY_FILE

--auth-token

Authentication token for control plane API access. Required for secure deployments.

  • Type: string
  • Environment: UNKEY_AUTH_TOKEN

--krane-address (required)

Full URL of the krane service for VM operations. Required for deployments. Example: https://krane.example.com:8080

  • Type: string
  • Environment: UNKEY_KRANE_ADDRESS

--api-key (required)

API key for simple authentication (demo purposes only). Will be replaced with JWT authentication.

  • Type: string
  • Environment: UNKEY_API_KEY

--spiffe-socket-path

Path to SPIFFE agent socket for mTLS authentication. Default: /var/lib/spire/agent/agent.sock

  • Type: string
  • Default: "/var/lib/spire/agent/agent.sock"
  • Environment: UNKEY_SPIFFE_SOCKET_PATH

--vault-master-keys (required)

Vault master keys for encryption

  • Type: string[]
  • Environment: UNKEY_VAULT_MASTER_KEYS

--vault-s3-url (required)

S3 Compatible Endpoint URL

  • Type: string
  • Environment: UNKEY_VAULT_S3_URL

--vault-s3-bucket (required)

S3 bucket name

  • Type: string
  • Environment: UNKEY_VAULT_S3_BUCKET

--vault-s3-access-key-id (required)

S3 access key ID

  • Type: string
  • Environment: UNKEY_VAULT_S3_ACCESS_KEY_ID

--vault-s3-access-key-secret (required)

S3 secret access key

  • Type: string
  • Environment: UNKEY_VAULT_S3_ACCESS_KEY_SECRET

--acme-enabled

Enable Let's Encrypt for acme challenges

  • Type: boolean
  • Default: false
  • Environment: UNKEY_ACME_ENABLED

--acme-cloudflare-enabled

Enable Cloudflare for wildcard certificates

  • Type: boolean
  • Default: false
  • Environment: UNKEY_ACME_CLOUDFLARE_ENABLED

--acme-cloudflare-api-token

Cloudflare API token for Let's Encrypt

  • Type: string
  • Environment: UNKEY_ACME_CLOUDFLARE_API_TOKEN

--default-domain

Default domain for auto-generated hostnames

  • Type: string
  • Default: "unkey.app"
  • Environment: UNKEY_DEFAULT_DOMAIN

On this page