Environment variables
Environment values override the JSON file and are themselves overridden by explicit command-line values. An invalid value stops startup with environment variable NAME has an invalid value.
The release-pinned JSON Schema is authoritative for types and bounds.
Core and network
| Variable | Purpose |
|---|---|
JIANDU_DATA_DIR | Installation data directory |
JIANDU_BIND | Private application listener |
JIANDU_REQUEST_TIMEOUT_SECONDS | Bounded request timeout |
JIANDU_INGRESS_MODE | Ingress boundary mode |
JIANDU_PUBLIC_ORIGIN | Exact public HTTPS origin |
JIANDU_INGRESS_TRUSTED_PROXY_CIDRS | Comma-separated direct proxy CIDRs |
JIANDU_PUBLIC_HOSTNAME, JIANDU_TRUST_TLS_TERMINATION, and JIANDU_TRUSTED_PROXY_CIDRS are deprecated migration inputs. Use them only as the complete legacy set and never mix them with JIANDU_INGRESS_*.
Database
| Variable | Purpose |
|---|---|
JIANDU_DATABASE_BACKEND | sqlite or postgres |
JIANDU_DATABASE_PATH | SQLite database path |
JIANDU_DATABASE_URL_FILE | Owner-only PostgreSQL URL file |
JIANDU_DATABASE_MAX_CONNECTIONS | Maximum pool size |
JIANDU_DATABASE_MIN_CONNECTIONS | Minimum PostgreSQL pool size |
JIANDU_DATABASE_BUSY_TIMEOUT_MS | SQLite busy timeout |
JIANDU_DATABASE_ACQUIRE_TIMEOUT_MS | Pool acquire timeout |
JIANDU_DATABASE_CONNECT_TIMEOUT_MS | PostgreSQL connect timeout |
JIANDU_DATABASE_TLS_MODE | PostgreSQL TLS policy |
JIANDU_DATABASE_TLS_CA_PATH | PostgreSQL CA file |
JIANDU_POSTGRES_PG_DUMP_PATH | Explicit server-major-matching PostgreSQL dump tool |
JIANDU_POSTGRES_PG_RESTORE_PATH | Explicit archive/server-major-matching PostgreSQL restore tool |
Blob storage
| Variable | Purpose |
|---|---|
JIANDU_BLOB_BACKEND | Local, S3-compatible, or WebDAV selection |
JIANDU_BLOB_ROOT | Local blob root |
JIANDU_BLOB_WORK_ROOT | Private staging/work root |
JIANDU_BLOB_PREFIX | Remote namespace prefix |
JIANDU_BLOB_ALLOW_HTTP | Explicit HTTP exception for allowed local/test endpoints |
JIANDU_S3_BUCKET | Bucket name |
JIANDU_S3_REGION | S3 region |
JIANDU_S3_ENDPOINT | S3-compatible endpoint override |
JIANDU_S3_VIRTUAL_HOSTED_STYLE | S3 addressing style |
JIANDU_WEBDAV_ENDPOINT | WebDAV endpoint |
JIANDU_WEBDAV_USERNAME | WebDAV username |
JIANDU_WEBDAV_PASSWORD_FILE | Owner-only password file |
Access and connectors
| Variable | Purpose |
|---|---|
JIANDU_OWNER_TOKEN_PATH | Owner recovery-token file |
JIANDU_SESSION_TTL_SECONDS | Session lifetime |
JIANDU_SESSION_ROTATE_AFTER_SECONDS | Session rotation interval |
JIANDU_REVOKED_SESSION_RETENTION_SECONDS | Revocation retention |
JIANDU_CONNECTOR_SECRET_KEY_PATH | Base64 32-byte connector sealing-key file |
JIANDU_CONNECTOR_OAUTH_CLIENT_ID | Connector OAuth client ID |
JIANDU_CONNECTOR_OAUTH_CLIENT_SECRET_PATH | Connector OAuth client-secret file |
JIANDU_CONNECTOR_PUBLIC_ORIGIN | Exact public HTTPS connector origin |
The older singleton JIANDU_OIDC_* variables remain a deprecated compatibility surface. New multi-provider registries are file-only so the complete provider boundary is reviewed together.
Resources and telemetry
| Variable | Purpose |
|---|---|
JIANDU_MAX_UPLOAD_BYTES | Legacy multipart/snapshot compatibility bound |
JIANDU_MAX_PAGES | Legacy page compatibility bound |
JIANDU_MAX_IMAGE_PIXELS | Legacy image compatibility bound |
JIANDU_WORKER_COUNT | Concurrent processing snapshots |
JIANDU_JSON_LOGS | Structured local logs |
JIANDU_REMOTE_TELEMETRY | Master consent for network telemetry |
JIANDU_PRODUCT_METRICS_TELEMETRY | Separate product-use metrics consent |
JIANDU_OTEL_QUEUE_BYTES | Bounded exporter queue |
JIANDU_OTEL_SHUTDOWN_TIMEOUT_MS | Exporter shutdown budget |
JIANDU_OTEL_METRIC_CARDINALITY_LIMIT | Metric cardinality ceiling |
JIANDU_OTLP_ALLOW_INSECURE | Explicit plaintext non-loopback exception |
Standard OpenTelemetry variables may also configure the selected OTLP exporter. Remote consent and Jiandu safety bounds still apply.