Skip to main content

Environment Variables

Comprehensive reference for all environment variables used across Proxima Console components.

Loading order: environment variables > hardcoded defaults. All components (backend, agent, MCP server) are configured via environment variables only — there is no YAML config file.

How config is supplied in production (Kubernetes)

In the proxima-production cluster (namespace console-system), the backend's environment comes from two places, both managed via GitOps in the argocd-infra repo:

  • Non-secret defaults and endpoints are set as plain env on the backend Rollout pod spec (e.g. PROXIMA_SERVER_BIND=0.0.0.0, the VictoriaMetrics/VictoriaLogs URLs below).
  • Secrets are injected by the External-Secrets Operator (ESO), which syncs them from the in-cluster Vault (vault.prxm.uz) into a Kubernetes Secret the pod loads via envFrom. No secret values appear in any manifest.

The variable names and meanings documented below are unchanged — only the source differs (pod env + ESO-from-Vault in production, an .env file or shell in local dev). The production endpoints they point at are called out in the relevant sections ( VictoriaMetrics, VictoriaLogs, OpenTelemetry, Core). See Backend Deployment for the full topology.

Key production endpoints at a glance:

Variable(s)Production target
PROXIMA_DB_URLExternal managed psql0110.10.3.11:30034 (PG 16, pgBackRest backups)
VM_INSERT_URL / VM_SELECT_URLIn-cluster VM cluster via vmauth-proxy.monitoring:8427
VM_PROJECT_ID / VM_AUTH_USERNAME42 / vmuser-console (Console's isolated VM project + VMUser)
PROXIMA_NATS_URLnats://nats.prxm.uz:4222 — on the box (interim, moves to a dedicated VM)
PROXIMA_VICTORIALOGS_URLVictoriaLogs on the box (interim, moves to a dedicated VM)
PROXIMA_OTEL_EXPORTER_ENDPOINTTempo on the box, :4317 (interim, moves to a dedicated VM)

Backend

Core

VariableDefaultRequiredDescription
PROXIMA_DB_URLYesPostgreSQL connection string. Format: postgres://user:pass@host:5432/dbname?sslmode=disable. Production: external managed psql01 at 10.10.3.11:30034 (PG 16).
PROXIMA_NATS_URLnats://localhost:4222NoNATS server URL. Production: nats://nats.prxm.uz:4222 — still on the box (interim, moves to a dedicated VM).
PROXIMA_SERVER_PORT8080NoHTTP server listening port
PROXIMA_SERVER_BIND127.0.0.1NoAddress the HTTP server binds to. Production: set to 0.0.0.0 so kubelet probes and the in-cluster Service can reach :8080 (the istio gateway terminates TLS, not a same-host nginx).
PROXIMA_LOG_LEVELinfoNoLog level: debug, info, warn, error
PROXIMA_CORS_ORIGINShttp://localhost:5173NoComma-separated allowed CORS origins
PROXIMA_GRPC_PORT0 (disabled)NogRPC server port for CLI terminal access. Defaults to 0, which disables the gRPC server — set a non-zero port to enable it. Production: TLS is terminated at the istio Gateway and gRPC traffic on api-console.prxm.uz:443 (HTTP/2) is routed to this port.
PROXIMA_GRPC_BIND127.0.0.1NoAddress the gRPC server binds to. Production: 0.0.0.0 so the Service can reach the gRPC port.
PROXIMA_GRPC_TLS_CERTNoPath to TLS certificate for gRPC server (empty = plaintext; in production the istio Gateway terminates TLS).
PROXIMA_GRPC_TLS_KEYNoPath to TLS private key for gRPC server

Session Recording (Cloudflare R2)

VariableDefaultRequiredDescription
PROXIMA_R2_ENDPOINTNoCloudflare R2 S3-compatible endpoint URL. When empty, session recordings are disabled.
PROXIMA_R2_BUCKETNoR2 bucket name for storing session recordings
PROXIMA_R2_ACCESS_KEY_IDNoR2 access key ID
PROXIMA_R2_SECRET_ACCESS_KEYNoR2 secret access key
PROXIMA_R2_REGIONautoNoR2 region (typically auto for Cloudflare)

Database Pool

VariableDefaultDescription
PROXIMA_DB_MAX_OPEN_CONNS25Maximum number of open database connections
PROXIMA_DB_MAX_IDLE_CONNS5Maximum number of idle connections in the pool
PROXIMA_DB_CONN_MAX_LIFETIME300Connection maximum lifetime in seconds

Authentication

VariableDefaultDescription
PROXIMA_INSTALL_TOKENShared install token for agent enrollment (development only). In production, use per-client install tokens via the API.
PROXIMA_JWT_SECRETJWT signing secret for access tokens. Required for JWT auth.
PROXIMA_JWT_ACCESS_TTL900Access token TTL in seconds (default 15 minutes).
PROXIMA_JWT_REFRESH_TTL604800Refresh token TTL in seconds (default 7 days).
PROXIMA_VALKEY_URLValkey (Redis-compatible) URL for auth caches (lockout, MFA tokens, access resolution).

WebAuthn (Passkeys)

Added in v0.4.5

Passkey authentication is disabled when PROXIMA_WEBAUTHN_RP_ID is not set. See Passkeys for setup details.

VariableDefaultRequiredDescription
PROXIMA_WEBAUTHN_RP_IDFor passkeysRelying Party ID — the domain passkeys are bound to (e.g., app-console.prxm.uz). Must match the production domain exactly.
PROXIMA_WEBAUTHN_RP_NAMEProxima ConsoleNoDisplay name shown in browser/OS passkey dialogs.
PROXIMA_WEBAUTHN_RP_ORIGINSPROXIMA_FRONTEND_URLNoComma-separated list of allowed origins for WebAuthn ceremonies.
PROXIMA_WEBAUTHN_CHALLENGE_TTL300NoChallenge expiry in seconds (default 5 minutes). Controls how long a user has to complete a passkey ceremony.

AI Chat

Added in v0.5.0

AI Chat requires LiteLLM gateway and Vault Transit for message encryption. Chat is automatically disabled if either is unavailable.

VariableDefaultRequiredDescription
PROXIMA_LITELLM_URLhttp://litellm:4000For AI chatLiteLLM gateway URL
PROXIMA_LITELLM_MASTER_KEYFor AI chatLiteLLM admin API key
PROXIMA_DEEPSEEK_API_KEYFor AI chatPlatform DeepSeek API key (standard tier)
PROXIMA_KIMI_API_KEYFor AI chatPlatform Kimi/Moonshot API key (complex tier)
PROXIMA_GOOGLE_API_KEYFor AI chatPlatform Google AI API key (expert tier)
PROXIMA_CHAT_RATE_LIMIT30NoChat messages per minute per user
PROXIMA_CHAT_MAX_TOOL_CALLS10NoMax MCP tool calls per message (safety limit)
PROXIMA_CHAT_MAX_CONVERSATION_MESSAGES100NoSoft limit on messages per conversation
PROXIMA_CHAT_MAX_MESSAGE_LENGTH10000NoMaximum chat message length in characters
PROXIMA_CHAT_CONTEXT_WINDOW50NoMax messages sent to LLM as context (sliding window)
PROXIMA_CHAT_VAULT_KEK_NAMEproxima-chat-kekNoVault Transit key name for DEK encryption
PROXIMA_MCP_BASE_URLhttp://localhost:8081NoMCP server URL for tool execution

NATS JWT

Added in v0.3.0

These variables configure NATS JWT/operator mode authentication and Vault Transit credential encryption. See NATS Security and Credentials for details.

VariableDefaultDescription
PROXIMA_NATS_CREDS_FILEPath to backend NATS credentials file
PROXIMA_NATS_SYS_CREDS_FILEPath to sys-admin NATS credentials file (for JWT revocation)
PROXIMA_NATS_CA_FILEPath to NATS TLS CA certificate
VAULT_ADDRVault server address (for nkey seed storage and credential encryption via Transit)
VAULT_TOKENVault root token (from vault-init.sh output or infra/vault/.vault-keys)
VAULT_ROLE_IDVault AppRole role ID (production — use instead of VAULT_TOKEN)
VAULT_SECRET_IDVault AppRole secret ID (production — use instead of VAULT_TOKEN)

Google OIDC SSO

VariableDefaultDescription
PROXIMA_GOOGLE_CLIENT_IDGoogle OAuth 2.0 client ID. When set (along with secret), the "Sign in with Google" button appears on the login page.
PROXIMA_GOOGLE_CLIENT_SECRETGoogle OAuth 2.0 client secret.
PROXIMA_GOOGLE_ALLOWED_DOMAINproximaops.ioGoogle Workspace domain (hd) that SSO logins are restricted to; users outside it are rejected. Also gates auto-provisioning: when unset or empty, the backend will not auto-create or email-link accounts from a verified Google identity — SSO then succeeds only for accounts already explicitly linked by provider ID. Set it to enable safe open provisioning.
PROXIMA_BACKEND_URLhttp://localhost:8080Backend public URL, used to build OIDC redirect URIs.

Google Groups RBAC

VariableDefaultDescription
PROXIMA_GOOGLE_SERVICE_ACCOUNT_KEYPath to Google service account JSON key file for Groups API. If unset, group sync is disabled.
PROXIMA_GOOGLE_ADMIN_EMAILGoogle Workspace admin email for domain-wide delegation. Required if service account key is set.

Server

VariableDefaultDescription
PROXIMA_ENABLE_DEBUG_ENDPOINTStrueEnable /swagger and /metrics debug endpoints. Set to false in production to hide these endpoints.

Rate Limiting

VariableDefaultDescription
PROXIMA_API_RATE_LIMIT1000Max API requests per minute per IP on all /api/v1/ routes.
PROXIMA_AUTH_RATE_LIMIT5Max public auth requests per minute per IP (login, refresh, forgot-password, reset-password, accept-invite). Protected auth routes (sessions, me, mfa) use the general API limit.
PROXIMA_CREDENTIAL_RATE_LIMIT10Max agent credential requests per minute per IP (/agents/enroll, /agents/credentials/renew, and /agents/credentials/renew/nonce).

Admin Seeding

VariableDefaultDescription
PROXIMA_ADMIN_EMAILEmail for the initial super-admin user seeded at startup. Skipped if empty.
PROXIMA_ADMIN_PASSWORDPassword for the initial super-admin user. Must meet the password policy (12+ characters).
First Run

Set both variables on the first startup to create a super-admin account. The seed is idempotent — if a user with that email already exists, it is skipped. You can unset them after the first run.

MFA

VariableDefaultDescription
PROXIMA_MFA_ENCRYPTION_KEYHex-encoded 32-byte AES-256 key for encrypting TOTP secrets at rest.

Email

VariableDefaultDescription
PROXIMA_EMAIL_PROVIDERsmtpEmail delivery provider: smtp or resend.
PROXIMA_EMAIL_FROM[email protected]Sender email address.
PROXIMA_EMAIL_FROM_NAMEProxima ConsoleSender display name.
PROXIMA_RESEND_API_KEYResend API key (required when provider is resend).
PROXIMA_SMTP_HOSTSMTP server hostname (required when provider is smtp).
PROXIMA_SMTP_PORT587SMTP server port.
PROXIMA_SMTP_USERNAMESMTP authentication username.
PROXIMA_SMTP_PASSWORDSMTP authentication password.
PROXIMA_FRONTEND_URLhttps://app-console.prxm.uzFrontend URL used in email links (password reset, invitations).

Agent Liveness

VariableDefaultDescription
PROXIMA_AGENT_STALE_TIMEOUT_SECONDS300Seconds without a heartbeat before marking an agent offline. Must be > 0.
PROXIMA_AGENT_STALE_CHECK_SECONDS60Interval in seconds between stale-agent detection sweeps. Must be > 0.
Validation

Both PROXIMA_AGENT_STALE_TIMEOUT_SECONDS and PROXIMA_AGENT_STALE_CHECK_SECONDS must be greater than 0, or the backend will fail to start.

Jira Integration (Feedback Widget)

VariableDefaultDescription
PROXIMA_JIRA_BASE_URLAtlassian instance URL (e.g. https://yourorg.atlassian.net). When empty, the feedback widget logs submissions to structured logs instead of creating Jira issues.
PROXIMA_JIRA_EMAILService account email for Jira API authentication (Basic Auth).
PROXIMA_JIRA_API_TOKENJira API token (paired with email for Basic Auth).
PROXIMA_JIRA_PROJECT_KEYTarget Jira project key for feedback issues (e.g. PDD).
PROXIMA_JIRA_ISSUE_TYPETaskJira issue type name for created feedback issues.

Compliance

VariableDefaultDescription
PROXIMA_EXCEPTION_EXPIRY_CHECK_SECONDS300How often to check for expired compliance exceptions (seconds). Must be > 0.

Runbook Rate Limiting

VariableDefaultDescription
PROXIMA_RUNBOOK_RATE_LIMIT_PER_HOST5Max runbook executions per host per rate limit window
PROXIMA_RUNBOOK_RATE_LIMIT_WINDOW_SEC600Rate limit window in seconds (default 10 minutes)

ClickHouse (Service Desk)

Added in v0.5.0

ClickHouse is used as the read store for service desk ticket data. Required for the Service Desk feature.

VariableDefaultDescription
PROXIMA_CLICKHOUSE_HOSTClickHouse server hostname
PROXIMA_CLICKHOUSE_PORT443ClickHouse HTTP port
PROXIMA_CLICKHOUSE_USERdefaultClickHouse username
PROXIMA_CLICKHOUSE_PASSWORDClickHouse password
PROXIMA_CLICKHOUSE_TLS_SKIP_VERIFYfalseSkip TLS certificate verification for ClickHouse connection

JSM (Service Desk Writes)

Added in v0.5.0

Jira Service Management API integration for service desk write operations (create tickets, add comments, transitions).

VariableDefaultDescription
PROXIMA_JSM_BASE_URLJira Service Management REST API base URL
PROXIMA_JSM_API_EMAILJSM API email for Basic auth
PROXIMA_JSM_API_TOKENJSM API token
PROXIMA_JSM_FIELD_CACHE_TTL24hTTL for JSM field metadata cache (Go duration format)
PROXIMA_JIRA_ORGANIZATION_IDJSM organization ID for customer scoping
PROXIMA_SERVICE_DESK_PENDING_TTL5mTTL for pending write operations (Go duration format)

VictoriaMetrics

Added in v0.2.0

These variables configure the connection to VictoriaMetrics Cluster for time-series metrics storage.

VariableDefaultDescription
VM_INSERT_URLhttp://localhost:8480vminsert endpoint for metrics ingestion. Production: the in-cluster VM cluster fronted by vmauth-proxy.monitoring:8427 (full path: vmauth-proxy.monitoring.svc.cluster.local:8427).
VM_SELECT_URLhttp://localhost:8481vmselect endpoint for metrics queries. Production: also vmauth-proxy.monitoring:8427.
VM_WRITE_TIMEOUT10Write timeout in seconds
VM_QUERY_TIMEOUT30Query timeout in seconds
VM_PROJECT_ID0 (local dev)Production: 42 — Console's isolated VM projectID. Combined with each client's per-tenant accountID, Console writes/reads tenant <accountID>:42, separate from the shared cluster's :0 tenants.
VM_AUTH_USERNAMEProduction: vmuser-console — the VMUser that vmauth-proxy authenticates Console as.
VM_AUTH_PASSWORDPassword for the vmuser-console VMUser. Injected via ESO from Vault; never in manifests.
Local dev vs production

In local dev the backend talks to the docker-compose VM cluster directly on :8480/:8481 with no auth and no project isolation. In production all metric reads and writes go through vmauth-proxy:8427 authenticated as vmuser-console, scoped to projectID 42. See VictoriaMetrics Architecture.

VictoriaLogs

Added in v0.3.0

Connection settings for VictoriaLogs (log ingestion and querying).

VariableDefaultDescription
PROXIMA_VICTORIALOGS_URLhttp://localhost:9428VictoriaLogs base URL for log ingestion and queries. Production: VictoriaLogs still on the box at :9428 (interim — firewalled to the cluster egress; moves to a dedicated VM in Phase L).

OpenTelemetry

VariableDefaultDescription
PROXIMA_OTEL_ENABLEDfalseEnable OpenTelemetry distributed tracing
PROXIMA_OTEL_EXPORTER_ENDPOINTlocalhost:4317OTLP exporter endpoint (gRPC). Production: Tempo still on the box at :4317 (interim — firewalled to the cluster egress; moves to a dedicated VM in Phase L).
PROXIMA_OTEL_SERVICE_NAMEproxima-backendService name for trace identification
PROXIMA_OTEL_TRACES_SAMPLERalways_onTrace sampler strategy
PROXIMA_OTEL_TRACES_RATIO1.0Trace sampling ratio (0.0 to 1.0). Only used when sampler is traceidratio.
Trace-ingest reuse

PROXIMA_OTEL_EXPORTER_ENDPOINT is also the endpoint the trace-ingest worker forwards agent spans to (agent spans arrive over NATS; the backend re-exports them to the same Tempo it sends its own spans to). The worker no-ops cleanly if this is unset. See Distributed Tracing.

Agent

Core

VariableDefaultRequiredDescription
PROXIMA_BACKEND_URLYesBackend HTTPS URL for enrollment and renewal.
PROXIMA_INSTALL_TOKENYes (first run)One-time install token for enrollment. Not needed after initial enrollment.
PROXIMA_AGENT_TYPEhostNoAgent type: host (full monitoring), k8s-node-monitor (kubelet metrics only), or collector (K8s API inventory). The Helm chart sets k8s-node-monitor for DaemonSet agents.
PROXIMA_NATS_CA_FILENoPath to NATS TLS CA certificate (received during enrollment)
PROXIMA_NATS_CREDS_FILENoOverride path to NATS credentials file
PROXIMA_LOG_LEVELinfoNoLog level: debug, info, warn, error
Enrollment

PROXIMA_BACKEND_URL and PROXIMA_INSTALL_TOKEN are required for the first run. The agent enrolls over HTTPS and receives NATS credentials, client/environment slugs, and the NATS URL from the backend. On subsequent runs, the agent loads credentials from disk and PROXIMA_INSTALL_TOKEN is no longer needed. See NATS Security.

Paths

Agent config is environment-only (since v0.6.0)

The agent no longer reads a YAML configuration file. It is configured purely via environment variables (plus built-in defaults); the former PROXIMA_AGENT_CONFIG / /etc/proxima-agent/config.yaml has been removed. Operational settings beyond startup are delivered as remote config from the backend over NATS.

VariableDefaultDescription
PROXIMA_AGENT_DATA_DIR/var/lib/proxima-agentDirectory for persistent agent data

Intervals

All intervals are parsed as Go duration strings (e.g., 30s, 5m, 1h).

VariableDefaultDescription
PROXIMA_AGENT_HEARTBEAT_INTERVAL30sHeartbeat publish interval
PROXIMA_AGENT_INVENTORY_INTERVAL15mFull inventory snapshot interval
PROXIMA_AGENT_METRICS_INTERVAL60sMetrics collection interval
PROXIMA_AGENT_PROCESS_INTERVAL30sProcess snapshot interval

Resource Limits

VariableDefaultDescription
PROXIMA_AGENT_MEMORY_LIMIT_MB— (disabled)Go soft memory limit via debug.SetMemoryLimit. Set to a positive integer to enable.
PROXIMA_AGENT_COLLECTOR_TIMEOUT30sPer-collector context deadline. Timed-out collectors degrade gracefully without blocking the agent.

Distributed Tracing

The agent exports its spans to Tempo over NATS (no OTLP ingress needed). Tracing is off by default and the preferred control is the per-host tracing remote config (Agent config → Distributed tracing in the UI), which hot-reloads without a restart. The env vars below are an override for local/OTLP debugging. See Distributed Tracing.

VariableDefaultDescription
PROXIMA_AGENT_OTEL_ENABLEDfalseOverride that forces NATS span export on (also flips the tracing block on), overriding the per-host UI config. Set to true or 1.
PROXIMA_AGENT_OTEL_SAMPLE_RATIO0.1Head-sampling ratio for agent-root traces, applied via ParentBased(TraceIDRatioBased(ratio)). Float in [0,1]; invalid values are ignored with a warning. Also tunable from the UI.

Labels

VariableDefaultDescription
PROXIMA_AGENT_LABELSStatic labels as a JSON object. Example: {"team":"platform","env":"prod"}

Labels from this variable are merged with any labels delivered via the agent's remote labels config (Agent config in the UI). On key conflict, the environment variable wins.

Auto-Discovery

VariableDefaultDescription
PROXIMA_AGENT_AUTO_DISCOVERfalseEnable automatic service detection at startup. Set to true or 1 to enable. See Auto-Discovery.

Integrations

VariableDefaultDescription
PROXIMA_PG_DSNPostgreSQL connection string for the PostgreSQL collector. Setting this automatically enables PostgreSQL metrics collection. Leave empty to disable.
PROXIMA_DOCKER_SOCKET/var/run/docker.sockPath to the Docker Unix socket for the Docker collector. Setting this automatically enables Docker metrics collection.

Log Collection

Added in v0.3.0

Agent-side log collection bootstrap settings. These environment variables set the initial log-collection config; richer settings (watched files, journald units) are delivered via the agent's remote log_collection config from the backend.

VariableDefaultDescription
PROXIMA_AGENT_LOG_COLLECTION_ENABLEDfalseEnable log collection (true or 1)
PROXIMA_AGENT_LOG_INTERVAL10sLog flush interval (Go duration format)

Kubernetes

These variables apply to both the node agent (DaemonSet) and the cluster agent.

VariableDefaultDescription
PROXIMA_K8S_NODE_METRICSfalseEnable kubelet/cAdvisor metrics collection (node agent only)
PROXIMA_K8S_METRICS_INTERVAL30sKubelet scrape interval (node agent only)
PROXIMA_K8S_NODE_NAME(downward API)Node name used as the agent enrollment name. Set via spec.nodeName in the DaemonSet for stable, idempotent re-enrollment.
PROXIMA_CLUSTER_NAME(required)Cluster display name (cluster agent only).
PROXIMA_CLUSTER_SLUG(derived from name)URL-safe cluster identifier used as the stable agent name for idempotent enrollment. Auto-derived from PROXIMA_CLUSTER_NAME if not set.
PROXIMA_K8S_SYNC_INTERVAL5mFull K8s inventory sync interval (cluster agent only).
PROXIMA_K8S_HEARTBEAT_INTERVAL30sInterval between liveness heartbeats published by the cluster agent.
PROXIMA_K8S_POD_LIMIT5000Max pods per sync. When exceeded, non-Running pods are prioritized (cluster agent only).
PROXIMA_K8S_EXCLUDE_NAMESPACES(empty)Comma-separated namespaces to exclude from collection (cluster agent only).

MCP Server

Added in v0.5.0

The MCP server is a standalone service that exposes infrastructure data to LLM clients. See MCP Server Overview for details.

Core

VariableDefaultRequiredDescription
PROXIMA_API_URLYesProxima Backend base URL (shared with other components)
PROXIMA_MCP_LISTEN_ADDR:8081NoHTTP listen address
PROXIMA_MCP_TRANSPORThttpNoTransport: http (Streamable HTTP) or stdio
PROXIMA_LOG_LEVELinfoNoLog level: debug, info, warn, error (shared convention)
PROXIMA_API_KEYNoAPI key for stdio transport (injected into request context)

TLS

VariableDefaultDescription
PROXIMA_MCP_TLS_CERTPath to TLS certificate file
PROXIMA_MCP_TLS_KEYPath to TLS private key file

Auth & Limits

VariableDefaultDescription
PROXIMA_MCP_AUTH_CACHE_TTL60sAuth validation cache TTL (Go duration)
PROXIMA_MCP_MAX_RESPONSE_TOKENS4000Hard cap on tokens per tool response. Must be > 0.

OpenTelemetry

VariableDefaultDescription
PROXIMA_MCP_OTEL_ENABLEDfalseEnable OpenTelemetry distributed tracing
PROXIMA_MCP_OTEL_ENDPOINTlocalhost:4317OTLP gRPC exporter endpoint

Frontend (Vite)

These variables are embedded at build time. Changes require a rebuild.

VariableDefault (dev)Default (prod)Description
VITE_API_BASE_URLhttp://localhost:8080/api/v1https://api-console.prxm.uz/api/v1Backend API base URL

Product Analytics (PostHog)

VariableDefaultRequiredDescription
VITE_POSTHOG_KEYNoPostHog project API key. When empty, analytics are disabled.
VITE_POSTHOG_HOSTNoPostHog instance URL (e.g. https://eu.posthog.com)
VITE_POSTHOG_ENABLEDtrueNoSet to false to disable analytics for self-hosted deployments

Docker Compose (Development)

These variables configure the local development infrastructure in docker-compose.yml:

VariableDefaultServiceDescription
PROXIMA_DB_USERproximapostgresPostgreSQL username
PROXIMA_DB_PASSWORDproxima_devpostgresPostgreSQL password
PROXIMA_DB_NAMEproximapostgresPostgreSQL database name
PROXIMA_DB_PORT5432postgresPostgreSQL port

Example .env File

# Backend
PROXIMA_DB_URL=postgres://proxima:proxima_dev@localhost:5432/proxima?sslmode=disable
PROXIMA_NATS_URL=nats://localhost:4222
PROXIMA_SERVER_PORT=8080
PROXIMA_LOG_LEVEL=debug
PROXIMA_CORS_ORIGINS=http://localhost:5173

# NATS JWT credentials
PROXIMA_NATS_CREDS_FILE=infra/nats/creds/backend.creds
PROXIMA_NATS_SYS_CREDS_FILE=infra/nats/creds/sys-admin.creds
PROXIMA_NATS_CA_FILE=infra/nats/certs/ca.pem

# Vault (run `make vault-init` first, credentials saved to infra/vault/.vault-keys)
VAULT_ADDR=http://localhost:8200
VAULT_TOKEN=<from vault-init output or infra/vault/.vault-keys>
# For production, use AppRole instead:
# VAULT_ROLE_ID=<from vault-init output>
# VAULT_SECRET_ID=<from vault-init output>

# JWT Auth
PROXIMA_JWT_SECRET=your-secret-key
PROXIMA_VALKEY_URL=redis://localhost:6379

# Rate limits (requests per minute per IP)
PROXIMA_API_RATE_LIMIT=1000
PROXIMA_AUTH_RATE_LIMIT=5
PROXIMA_CREDENTIAL_RATE_LIMIT=10

# Admin seeding (first run only)
PROXIMA_ADMIN_EMAIL=[email protected]
PROXIMA_ADMIN_PASSWORD=change-me-on-first-login

# MFA (generate with: openssl rand -hex 32)
PROXIMA_MFA_ENCRYPTION_KEY=your-hex-encoded-32-byte-key

# Email
PROXIMA_EMAIL_PROVIDER=smtp
PROXIMA_SMTP_HOST=smtp.example.com
PROXIMA_SMTP_PORT=587
PROXIMA_SMTP_USERNAME=[email protected]
PROXIMA_SMTP_PASSWORD=smtp-password
PROXIMA_FRONTEND_URL=http://localhost:5173

# VictoriaMetrics
VM_INSERT_URL=http://localhost:8480
VM_SELECT_URL=http://localhost:8481

# OpenTelemetry (optional)
PROXIMA_OTEL_ENABLED=false

# MCP Server
PROXIMA_MCP_LISTEN_ADDR=:8081
PROXIMA_MCP_AUTH_CACHE_TTL=60s
PROXIMA_MCP_MAX_RESPONSE_TOKENS=4000

# Jira feedback integration (optional)
# PROXIMA_JIRA_BASE_URL=https://yourorg.atlassian.net
# [email protected]
# PROXIMA_JIRA_API_TOKEN=your-api-token
# PROXIMA_JIRA_PROJECT_KEY=PDD

See NATS Security for the full setup guide.