-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathconfig.yaml.example
More file actions
109 lines (98 loc) · 4.71 KB
/
Copy pathconfig.yaml.example
File metadata and controls
109 lines (98 loc) · 4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Example Darb Configuration
# Copy this file to config.yaml and update with your values
server:
port: 8460
mode: development # or "production"
# Max seconds to read a full request body. If omitted, nebi derives this
# from limits.request_body_bytes. Set 0 to disable. Env:
# NEBI_SERVER_READ_TIMEOUT_SECONDS
# read_timeout_seconds: 80
# Local mode only accepts requests with loopback Host/Origin headers.
# When nebi is served through a reverse proxy on a public hostname
# (e.g. JupyterHub's jupyter-server-proxy), list that origin here so
# browser CORS-mode requests (the SPA's crossorigin asset bundle) pass.
# Comma-separated. Env: NEBI_SERVER_ALLOWED_ORIGINS
# allowed_origins: "https://hub.example.com"
database:
driver: sqlite # or "postgres"
dsn: ./nebi.db
# For PostgreSQL:
# driver: postgres
# dsn: "host=localhost user=nebi password=secret dbname=nebi port=5432 sslmode=disable"
# max_idle_conns: 10
# max_open_conns: 100
# conn_max_lifetime: 60
auth:
type: basic
jwt_secret: change-me-in-production
# Optional: Enable OIDC/OAuth authentication
# Uncomment and configure to enable OAuth login button
# Works with any OIDC provider (Google, GitHub, Keycloak, Auth0, Okta, etc.)
# oidc_issuer_url: https://accounts.google.com
# oidc_client_id: your-client-id.apps.googleusercontent.com
# oidc_client_secret: your-client-secret
# oidc_redirect_url: http://localhost:8460/api/v1/auth/oidc/callback
#
# Optional: separate discovery URL for split-horizon deployments where the
# issuer (the public URL browsers use, validated in the token's "iss" claim)
# is not reachable from where nebi runs. nebi fetches
# .well-known/openid-configuration from oidc_discovery_url while still
# validating "iss" against oidc_issuer_url. Defaults to oidc_issuer_url.
# Example (in-cluster Keycloak Service):
# oidc_discovery_url: http://keycloak-http.keycloak.svc.cluster.local/realms/nebari
queue:
type: memory # or "valkey"
# valkey_addr: localhost:6379
log:
format: text # or "json"
level: info # debug, info, warn, error
package_manager:
# pixi_path: /custom/path/to/pixi # Optional: custom binary path
storage:
workspaces_dir: ./data/workspaces
# Resource limits and admission quotas. For all numeric limits, 0 disables
# that specific limit. Environment variable names are shown in comments.
# limits:
# # HTTP and stored-content limits
# request_body_bytes: 20971520 # NEBI_LIMITS_REQUEST_BODY_BYTES
# manifest_bytes: 1048576 # NEBI_LIMITS_MANIFEST_BYTES
# lock_bytes: 16777216 # NEBI_LIMITS_LOCK_BYTES
# metadata_bytes: 65536 # NEBI_LIMITS_METADATA_BYTES
# package_string_bytes: 256 # NEBI_LIMITS_PACKAGE_STRING_BYTES
#
# # Active-job admission quotas. Delete jobs bypass these quotas so a
# # saturated workspace can still be removed.
# active_jobs_per_user: 4 # NEBI_LIMITS_ACTIVE_JOBS_PER_USER
# active_jobs_per_workspace: 2 # NEBI_LIMITS_ACTIVE_JOBS_PER_WORKSPACE
# active_jobs_global: 100 # NEBI_LIMITS_ACTIVE_JOBS_GLOBAL
#
# # Job runtime/resource limits. job_cpu_seconds and job_storage_bytes use
# # fail-closed guards: if nebi cannot apply or check a configured budget,
# # the job fails instead of continuing unbounded. CPU and file-size setup
# # failures exit with code 125.
# job_timeout_seconds: 7200 # NEBI_LIMITS_JOB_TIMEOUT_SECONDS
# job_cpu_seconds: 7200 # NEBI_LIMITS_JOB_CPU_SECONDS (Unix; Windows default is 0)
# job_storage_bytes: 21474836480 # NEBI_LIMITS_JOB_STORAGE_BYTES
# job_log_bytes: 4194304 # NEBI_LIMITS_JOB_LOG_BYTES
#
# Per-job memory and process-count limits are intentionally not configured
# here. Enforce those with worker pod/container limits until Nebi runs jobs in
# isolated execution units.
# Admin-provisioned OCI registries (optional). Entries carry no credentials.
# Entries are declarative: reconciled into the database at every boot,
# marked as config-managed, and locked against UI/API/CLI modification.
# Removing an entry here removes it from the database on next boot.
# This section is YAML-only (no NEBI_* env override for the list).
# registries:
# # Set false to remove the built-in quay.io/nebari_environments registry.
# # (Deleting it via the admin UI also sticks now; it is seeded only once.)
# seed_default: true
# entries:
# - name: acme-registry
# url: registry.acme.com
# namespace: acme-envs
# default: true # at most one entry may set this
# restricted: false # set true to require group grants for access
# Environment variables can override any setting above
# Example: NEBI_AUTH_OIDC_CLIENT_ID=your-id
# Format: NEBI_<SECTION>_<KEY> (dots become underscores)