DocsSe connecterInstaller Kastel
Référence

Un seul fichier, aucun secret dedans.

Le fichier kastel.config.yaml règle tout un déploiement. Le voici tel que l’installation l’écrit chez vous le premier jour, commentaires compris.

Une page générée

Le fichier ci-dessous n’est pas un exemple rédigé pour la documentation : c’est la sortie réelle de kastel init, publiée telle quelle. Ses commentaires sont ceux que vous lirez dans votre propre fichier.

01

Où il vit, ce qu’il porte

Le fichier se trouve à la racine de votre déploiement, à côté de vos règles de gouvernance et de votre contenu. Il est versionné avec le reste : c’est un fichier de réglages, pas un coffre.

Aucune clé, aucun mot de passe, aucun secret n’y entre. Les blocs qui ont besoin d’identifiants nomment des variables d’environnement, et les valeurs restent dans votre .env. Le gabarit le dit dès sa première ligne.

02

Le fichier

Chaque bloc porte son propre commentaire, écrit par le moteur. Ce qui est commenté avec un dièse est inactif : ce sont les valeurs livrées, montrées pour que vous sachiez quoi décommenter.

kastel.config.yaml
# Kastel deployment config. Versioned; never put secrets here (use .env).
client:
  name: "Your Company"
  deployer: "set-deployer-id"
# Language of the Brain content and the onboarding interview: en | fr.
# Source documents can be in any language; the Brain is written in this one.
language: en
# Brain structure version (G-7). Set by `kastel init`; do not hand-edit. When a
# newer Kastel changes the Brain structure (folders, frontmatter, conventions),
# run `kastel upgrade` to migrate this deployment and bump this number.
brain_version: 3
server:
  mode: self-hosted          # self-hosted | managed
  region: eu                 # any region in self-host; EU is the managed default
# ONE sovereignty flag (ADR-008). default = BYOK providers: your data never
# passes through Kastel (it goes straight to the providers you chose the keys
# for). max = everything local (implies inference local + local embeddings):
# nothing ever leaves your server. Setting max with a byok provider or a byok
# embedder is a config error.
sovereignty_profile: default # default | max
inference:
  # The thin provider plug, used only by steps that need a model directly
  # (ingest compile, onboarding synthesis). Kastel is not a runtime.
  # byok = your own key, direct to the provider (sovereign default; key in .env)
  # local = a local OpenAI-compatible server (maximum sovereignty)
  default_provider: byok     # byok | local
retrieval:
  # Section-granular chunking of the Brain pages (kastel reindex).
  chunk_max_tokens: 512
  chunk_overlap_tokens: 32
  embeddings:
    # Shipped default: Mistral mistral-embed in byok mode (key in .env as
    # KASTEL_EMBED_API_KEY, separate from the LLM key: the chat provider and
    # the embedding provider can differ, e.g. DeepSeek has no embeddings
    # endpoint). Your data never passes through Kastel.
    # Documented, CI-tested alternative (OpenAI):
    #   model: text-embedding-3-small / dim: 1536 / base_url: https://api.openai.com/v1
    # Local pairings (Ollama; the default under sovereignty_profile: max,
    # where nothing ever leaves your server - a guarantee that assumes
    # base_url points at infrastructure YOU own, e.g. a LAN GPU host):
    #   provider: local / model: bge-m3 / dim: 1024
    #   provider: local / model: nomic-embed-text / dim: 768
    # Changing model or dim = full `kastel reindex` (ADR-008: embedding
    # spaces are never mixed or migrated).
    provider: byok           # byok | local
    model: mistral-embed
    dim: 1024
    base_url: https://api.mistral.ai/v1
budget:
  monthly_eur_cap: 200
moderation:
  require_human_validation_above_risk: medium
# Context score (docs/spec-context-score-addendum.md). The answer-fidelity leg
# asks your OWN provider (BYOK, the key already in .env) whether the retrieved
# context actually supports answering each probe question, and weighs the answer
# at 0.2 of the composite. It is the only leg that spends: `kastel score` costs a
# handful of judge calls, inside your monthly cap like everything else.
# SHIPPED ON since 2026-08-10 (D93-d, PF-D9): a score computed without it is a
# score of retrieval and structure, which is not what the number claims to mean.
# The ENGINE default stays off - an absent `score:` block disables the leg - so a
# deployment that predates this line, or one that deletes it, keeps the judge
# silent. Set false (the YAML boolean, never the string "false") to turn it off:
# a quoted value is refused at load time rather than parsed truthily.
score:
  fidelity:
    enabled: true
# The governed maintenance cycle (docs/spec-maintenance-cycle.md): periodic
# passes that keep the Brain healthy. Level 1 touches derived state only;
# level 2 only STAGES proposals in the moderation feed (a human approves);
# questions go through the freshness digest. The defaults below are the
# shipped values - uncomment to change a cadence, set enabled: false to
# disable the scheduler (kastel doctor --remediate keeps working).
# maintenance:
#   enabled: true
#   mechanical_cadence_hours: 24
#   proposal_cadence_hours: 168
#   compile_cadence_hours: 24
#   pass_budget_seconds: 600
#   max_proposals_per_cycle: 20
#   stub_stale_days: 30
#   orphan_link_candidates: 3
#   duplicate_similarity_pct: 92
# Continuous connectors (optional; docs/spec-connector-web-oauth.md). Each
# block names the ENVIRONMENT VARIABLES holding the OAuth app credentials
# (names only - the values stay in .env, never in this file, ADR-009).
# Absent or empty = the connector is not configured; its connect routes
# answer 409 honestly. Uncomment and fill to enable Google Drive:
# connectors:
#   gdrive:
#     client_id_env: KASTEL_GDRIVE_CLIENT_ID
#     client_secret_env: KASTEL_GDRIVE_CLIENT_SECRET

Généré depuis le gabarit d’installation du moteur, rafraîchi le 2026-08-23 (moteur d1e57f93ef0e).

Une question sur l’installation ?

Écrivez-nous : la question posée par email trouve une réponse le jour même. Notre réseau d’intégrateurs partenaires peut aussi vous accompagner.

Nous contacterVoir le programme intégrateurs