Skip to main content

Configuration Reference

vibeD is configured via a YAML file and environment variables.

Config File

Default search paths: ./vibed.yaml, /etc/vibed/vibed.yaml

server:
transport: "http" # stdio | http | both
httpAddr: ":8080" # HTTP listen address
logFormat: "text" # text | json (structured JSON for log aggregation)
logLevel: "info" # debug | info | warn | error
rateLimit:
enabled: false # Enable per-client HTTP rate limiting
requestsPerSecond: 10 # Steady-state rate per client
burst: 20 # Max burst size per client

auth:
enabled: false # Enable authentication for /mcp/ and /api/ endpoints
mode: "apikey" # apikey | oauth
apiKeys:
- key: "env:VIBED_API_KEY" # Resolve from environment variable
name: "default"
- key: "vibed_sk_..." # Literal API key value
name: "ci-pipeline"
scopes: ["deploy"]
- key: "env:ALICE_KEY" # Per-user storage override
name: "alice"
storage: # Optional: route this user's artifacts to a dedicated repo
backend: "github" # github | gitlab
github:
owner: "alice-org"
repo: "alice-artifacts"
token: "env:ALICE_GITHUB_TOKEN"
tls:
enabled: false # Enable HTTPS
certFile: "" # Path to TLS certificate file
keyFile: "" # Path to TLS private key file
autoTLS: false # Auto-generate self-signed cert (dev only)

deployment:
preferredTarget: "auto" # auto | knative | kubernetes
namespace: "default" # K8s namespace for deployed artifacts

builder:
engine: "buildah" # Container image builder (Buildah via K8s Jobs)
buildah:
image: "quay.io/buildah/stable:latest" # Buildah container image
timeout: "10m" # Build job timeout
insecure: false # Set true for HTTP registries (e.g. in-cluster)

storage:
backend: "local" # local | github | gitlab
local:
basePath: "/data/vibed/artifacts"
github:
owner: ""
repo: ""
branch: "main"
gitlab:
url: "https://gitlab.com" # GitLab instance URL
projectID: 0 # GitLab project ID (required for gitlab backend)
branch: "main"
token: "" # Access token or "env:GITLAB_TOKEN" / "file:/path"

registry:
enabled: false
url: "" # e.g. "ghcr.io/myorg/vibed"
insecure: false # Use HTTP instead of HTTPS (for in-cluster registries)

store:
backend: "sqlite" # sqlite (default) | memory | configmap
sqlite:
path: "/data/vibed.db" # SQLite database file path
configmap:
name: "vibed-artifacts"
namespace: "vibed-system"

gc:
enabled: true # Enable resource garbage collector
interval: "1h" # How often GC runs
maxAge: "24h" # Age threshold for orphaned resources
dryRun: false # Log without deleting (for testing)

kubernetes:
kubeconfig: "" # Empty = in-cluster config
context: "" # Specific kubeconfig context

knative:
domainSuffix: "127.0.0.1.sslip.io"
ingressClass: "kourier.ingress.networking.knative.dev"
gatewayPort: 80 # External gateway port for URLs (0 or 80 = omitted from URLs)

tracing:
enabled: false # Enable OpenTelemetry distributed tracing
endpoint: "" # OTLP gRPC endpoint (e.g. "http://jaeger:4317"); empty = stdout
sampleRate: 1.0 # Sampling rate 0.0-1.0 (1.0 = sample all traces)

Environment Variables

Every config field has an environment variable override:

VariableConfig PathExample
VIBED_SERVER_TRANSPORTserver.transporthttp
VIBED_SERVER_HTTP_ADDRserver.httpAddr:9090
VIBED_LOG_FORMATserver.logFormatjson
VIBED_LOG_LEVELserver.logLeveldebug
VIBED_DEPLOYMENT_PREFERRED_TARGETdeployment.preferredTargetknative
VIBED_DEPLOYMENT_NAMESPACEdeployment.namespaceapps
VIBED_BUILDER_ENGINEbuilder.enginebuildah
VIBED_BUILDER_BUILDAH_IMAGEbuilder.buildah.imagequay.io/buildah/stable:latest
VIBED_BUILDER_BUILDAH_INSECUREbuilder.buildah.insecuretrue
VIBED_STORAGE_BACKENDstorage.backendgithub or gitlab
VIBED_STORAGE_LOCAL_BASE_PATHstorage.local.basePath/data
VIBED_STORAGE_GITHUB_OWNERstorage.github.ownermyorg
VIBED_STORAGE_GITHUB_REPOstorage.github.repovibed-artifacts
VIBED_REGISTRY_ENABLEDregistry.enabledtrue
VIBED_REGISTRY_URLregistry.urlghcr.io/...
VIBED_STORE_BACKENDstore.backendsqlite
VIBED_STORE_SQLITE_PATHstore.sqlite.path/data/vibed.db
VIBED_GC_ENABLEDgc.enabledtrue
VIBED_GC_INTERVALgc.interval1h
VIBED_GC_MAX_AGEgc.maxAge24h
VIBED_GC_DRY_RUNgc.dryRuntrue
VIBED_AUTH_ENABLEDauth.enabledtrue
VIBED_AUTH_MODEauth.modeapikey
VIBED_AUTH_API_KEY(appends API key)vibed_sk_...
VIBED_TLS_ENABLEDauth.tls.enabledtrue
VIBED_TLS_CERT_FILEauth.tls.certFile/etc/tls/tls.crt
VIBED_TLS_KEY_FILEauth.tls.keyFile/etc/tls/tls.key
VIBED_TLS_AUTOauth.tls.autoTLStrue
VIBED_RATE_LIMIT_ENABLEDserver.rateLimit.enabledtrue
VIBED_RATE_LIMIT_RPSserver.rateLimit.requestsPerSecond10
VIBED_RATE_LIMIT_BURSTserver.rateLimit.burst20
VIBED_REGISTRY_INSECUREregistry.insecuretrue
VIBED_KNATIVE_GATEWAY_PORTknative.gatewayPort80
VIBED_TRACING_ENABLEDtracing.enabledtrue
OTEL_EXPORTER_OTLP_ENDPOINTtracing.endpoint (also enables tracing)http://jaeger:4317
VIBED_TRACING_ENDPOINTtracing.endpointhttp://tempo:4317
VIBED_TRACING_SAMPLE_RATEtracing.sampleRate0.1
VIBED_AUTH_OIDC_ISSUERauth.oidc.issuerhttps://accounts.google.com
VIBED_AUTH_OIDC_AUDIENCEauth.oidc.audiencevibed
VIBED_AUTH_OIDC_ADMIN_ROLEauth.oidc.adminRolevibed-admin
KUBECONFIGkubernetes.kubeconfig~/.kube/config
GITHUB_TOKEN(GitHub storage auth)ghp_...
GITLAB_TOKEN(GitLab storage auth)glpat-...