bext.config.toml
Référence complète pour toutes les options de configuration. Voir docs/platform/06-config-reference.md dans le référentiel bext pour les spécifications complètes.
Sections#
| Section | Description |
|---|---|
[server] |
Adresse d'écoute, répertoire statique, URL proxy en mode hybride |
[cache] |
Cache ISR (entrées maximales, TTL, SWR), cache locataire TTL |
[render] |
Nombre de travailleurs, chemin du bundle, streaming + bascules RSC |
[build] |
Construire un script, regarder les répertoires, configuration CSS |
[build.css] |
Sources et fichiers CSS supplémentaires pour Tailwind natif de Rust |
[nextjs] |
Rendu à la demande, durée de vie du cache, limites du shell |
[admin] |
Activation du panneau d'administration, secret JWT, utilisateurs |
[auth] |
Secret JWT, nom du cookie, contournement de l'hôte local |
[cors] |
Origines autorisées, âge maximum |
[rate_limit] |
Requêtes par minute, activer/désactiver |
[i18n] |
Paramètres régionaux, paramètres régionaux par défaut, stratégie de préfixe |
[database] |
URL PostgreSQL, pool de connexions |
[license] |
Clé de licence pour les fonctionnalités Pro/Entreprise |
[redis] |
URL Redis pour la mise à l'échelle horizontale |
[tls] |
Auto-TLS (ACME), certificats manuels |
[waf] |
Règles WAF, filtre IP, géoblocage |
[realtime] |
Configuration du hub SSE/ WebSocket |
[plugins] |
Répertoires de plugins, configuration WASM |
[storage] |
Stockage d'objets pour les sauvegardes (local, S3, R2) |
[storage.backup] |
Planification et conservation automatiques des sauvegardes |
[endpoints] |
Visibilité des points de terminaison (santé, métriques, API, obs, admin) |
[telemetry] |
Point final OpenTelemetry, échantillonnage |
[license]#
[license]
# License key for Pro or Enterprise features.
# Can also be set via BEXT_LICENSE_KEY environment variable.
# Omit for Community (free) tier.
key = "BEXT-PRO-eyJ0aWVy..."
Préférez la variable d'environnement BEXT_LICENSE_KEY plutôt que de placer la clé directement dans bext.config.toml : elle garde les secrets hors du contrôle de version et permet à différents environnements d'utiliser différents niveaux sans modifier le fichier.
Voir Licence pour plus de détails sur les niveaux et Installation pour les options de configuration.
[storage]#
Stockage d'objets pour les sauvegardes. Prend en charge le système de fichiers local, AWS S3 et Cloudflare R2.
[storage]
provider = "s3" # "local", "s3", or "r2"
bucket = "my-bext-backups"
region = "us-east-1" # Ignored for R2
endpoint = "" # Required for R2/MinIO
prefix = "bext/prod/" # Optional key prefix
access_key_env = "BEXT_STORAGE_ACCESS_KEY" # Env var name for access key
secret_key_env = "BEXT_STORAGE_SECRET_KEY" # Env var name for secret key
local_path = ".bext/storage" # Path for local provider
[storage.backup]
enabled = true # Enable automatic scheduled backups
schedule = "0 2 * * *" # Cron schedule (default: daily 2am)
retention_days = 30 # Auto-delete backups older than N days
include_blobs = true # Include blob files in backups
include_databases = true # Include SQLite databases
include_cache = false # Include ISR cache snapshot
max_size_mb = 0 # Max backup size (0 = unlimited)
Utilisation de la CLI :
bext-server backup create --provider s3 --bucket my-bext
bext-server backup list
bext-server backup restore backup-20260404-020000
Voir Référence CLI pour tous les indicateurs.
Exemple rapide#
[server]
listen = "0.0.0.0:3061"
static_dir = "./dist/static"
[license]
key = "BEXT-PRO-eyJ0aWVy..."
[cache.isr]
max_entries = 10_000
default_ttl_ms = 60_000
default_swr_ms = 3_600_000
[render]
bundle_path = "dist/ssr-bundle.js"
workers = 4
[rate_limit]
requests_per_minute = 600
enabled = true
Moteur de rendu#
[render]
workers = 4 # SSR worker thread count (applies to both engines)
bundle_path = "dist/ssr-bundle.js" # Pre-built SSR bundle path
# Streaming SSR (V8 only) — react-dom/server renderToReadableStream
# driven by bext's custom event-loop driver. Required for async server
# components, Suspense boundaries, and the use(promise) hook.
streaming = true
streaming_timeout_ms = 5000 # Wall-clock cap per render
streaming_stall_ms = 250 # Bail out if no new chunk for this long
# React Server Components (V8 only, experimental). When enabled,
# /__bext/rsc/<path> serves the route's Flight payload via
# react-server-dom-parcel. Compiled in a separate bundle with
# --conditions=react-server.
rsc = false
Voir Moteur de rendu V8 pour l'architecture complète de streaming + RSC.
Next.js / PRISM à la demande#
[nextjs]
compat = "full" # "full" (real layouts) or "prism" (default)
on_demand = true # Per-route compilation (default: false)
shared_react = false # Use globalThis.React (auto-set when V8 layered pipeline active)
cache_ttl = 60 # Response cache TTL in seconds (default: 60)
cache_swr = 300 # Stale-while-revalidate window in seconds (default: 300)
max_shell_size = 524288 # Max site shell bundle size in bytes (default: 512KB)
Construction CSS#
[build.css]
extra_sources = ["../shared/ui/src"] # Additional dirs to scan for Tailwind classes
extra_css = [ # CSS files to concatenate into styles.css
"../shared/ui/src/styles/tokens.css",
"../shared/ui/src/styles/global.css",
"../shared/ui/src/styles/components.css",
]
Générez du CSS avec : bext-server css [dir] ou bext-server css --all sites/
Panneau d'administration#
[admin]
enabled = true
jwt_secret = "your-admin-jwt-secret"
[[admin.users]]
username = "admin"
password_hash = "sha256:<sha256-hash>" # echo -n 'password' | sha256sum
Accès à /__bext/admin/. Point de terminaison de connexion JSON à /__bext/admin/api/login/json.
Générez des informations d'identification avec la CLI au lieu du hachage manuel :
bext config credentials create --username admin --role super_admin
Visibilité des points de terminaison#
Contrôlez quels groupes de points de terminaison intégrés sont exposés. Les groupes handicapés renvoient 404.
[endpoints]
health = true # GET /health (default: true)
metrics = false # GET /metrics — Prometheus (default: true)
api = true # /api/* management — requires super_admin (default: true)
obs = true # /__bext/obs/* observability — requires viewer (default: true)
admin = true # /__bext/admin/* panel — overrides [admin].enabled when set
Lorsque admin est omis, il suit [admin].enabled. Voir Points de terminaison et informations d'identification pour les outils CLI et la liste complète des points de terminaison.
En rapport#
- Variables d'environnement — remplacements de la variable d'environnement pour chaque champ de configuration
- Points de terminaison et informations d'identification — Visibilité des points finaux et gestion des informations d'identification
- Indicateurs de construction et de fonctionnalités — Fonctionnalités Cargo qui déterminent quelles sections de configuration sont actives
- Moteur de rendu V8 — streaming complet + référence de configuration RSC
- Moteur CSS Rust — Analyse approfondie de
[build.css] - Licence — détails du niveau et liste des fonctionnalités Pro/Enterprise