Skip to content

Settings

NORA can be configured via environment variables, config.toml, or CLI flags. Environment variables take precedence over config file values.

VariableDefaultDescription
NORA_HOST127.0.0.1Bind address
NORA_PORT4000Listen port
NORA_BODY_LIMIT_MB2048Max request body size in MB
RUST_LOGinfoLog level (debug, info, warn, error)
VariableDefaultDescription
NORA_STORAGE_MODElocalStorage backend: local or s3
NORA_STORAGE_PATHdata/storageLocal storage path
NORA_STORAGE_S3_URLS3-compatible endpoint URL
NORA_STORAGE_BUCKETregistryS3 bucket name
VariableDefaultDescription
NORA_AUTH_ENABLEDfalseEnable authentication
NORA_AUTH_HTPASSWD_FILEusers.htpasswdPath to htpasswd file
NORA_AUTH_TOKEN_STORAGEdata/tokensDirectory for API token storage

See the Authentication Guide for setup instructions.

VariableDefaultDescription
NORA_RATE_LIMIT_ENABLEDtrueEnable/disable rate limiting
NORA_RATE_LIMIT_AUTH_RPS1Auth requests per second
NORA_RATE_LIMIT_AUTH_BURST5Auth burst size
NORA_RATE_LIMIT_UPLOAD_RPS200Upload requests per second
NORA_RATE_LIMIT_UPLOAD_BURST500Upload burst size
NORA_RATE_LIMIT_GENERAL_RPS100General requests per second
NORA_RATE_LIMIT_GENERAL_BURST200General burst size

See Rate Limits for tuning guidelines.

VariableDefaultDescription
NORA_DOCKER_UPSTREAMShttps://registry-1.docker.ioComma-separated upstream registries
NORA_DOCKER_PROXY_TIMEOUT60Upstream request timeout (seconds)

See Docker Proxy for usage examples and pull-through cache setup.

VariableDefaultDescription
NORA_SECRETS_PROVIDERenvSecrets provider (env)
NORA_SECRETS_CLEAR_ENVfalseClear env vars after reading

NORA looks for config.toml in the current directory. All settings can also be configured here:

[server]
host = 0.0.0.0
port = 4000
[storage]
mode = local
path = data/storage
# S3 storage (uncomment to use)
# mode = s3
# s3_url = https://s3.amazonaws.com
# bucket = my-registry
[auth]
enabled = true
htpasswd_file = users.htpasswd
token_storage = data/tokens
[rate_limit]
enabled = true
auth_rps = 1
auth_burst = 5
upload_rps = 200
upload_burst = 500
general_rps = 100
general_burst = 200
[secrets]
provider = env
clear_env = false

Complete production example:

services:
nora:
image: ghcr.io/getnora-io/nora:latest
ports:
- 4000:4000
volumes:
- nora-data:/data
- ./users.htpasswd:/data/users.htpasswd:ro
environment:
- RUST_LOG=info
- NORA_HOST=0.0.0.0
- NORA_PORT=4000
- NORA_AUTH_ENABLED=true
- NORA_BODY_LIMIT_MB=4096
restart: unless-stopped
volumes:
nora-data:
URLDescription
/ui/Web UI
/api-docsSwagger UI (OpenAPI)
/healthHealth check
/readyReadiness probe
/metricsPrometheus metrics
/v2/Docker Registry v2
/maven2/Maven repository
/npm/npm registry
/cargo/Cargo registry
/simple/PyPI index