Kalzit ist in früher Entwicklung. Diese Seiten beschreiben, was heute existiert, und ändern sich mit den Meilensteinen.
Konfiguration
Kalzit liest seine Einstellungen aus drei Schichten: eingebaute Standardwerte, dann die
Konfigurationsdatei kalzit.toml, dann Umgebungsvariablen. Eine Umgebungsvariable geht vor der
Datei. Netzwerk- und TLS-Einstellungen gibt es nur hier, nie in der Weboberfläche, damit ein
falscher Wert keinen Admin aus der Einstellungsseite aussperrt.
Einstellungen in der Weboberfläche kommen mit M1. Was in Datei oder Umgebung gesetzt ist, erscheint dort gesperrt, mit Angabe der Quelle.
Wo die Datei liegt
Kalzit nimmt die erste Datei, die es findet:
- die mit
--config <datei>(oder der VariableKALZIT_CONFIG) angegebene Datei, kalzit.tomlim aktuellen Verzeichnis,- unter Windows
%ProgramData%\Kalzit\kalzit.toml, unter Linux/etc/kalzit/kalzit.toml.
Ohne Datei gelten die Standardwerte. Unbekannte Schlüssel sind ein Fehler, damit ein Tippfehler
nicht unbemerkt bleibt. Prüfen kannst du eine Datei mit kalzit check-config.
Umgebungsvariablen
Zu jedem Schlüssel gibt es eine Variable KALZIT_<ABSCHNITT>_<SCHLÜSSEL> in Großbuchstaben, zum
Beispiel KALZIT_SERVER_HTTP_ADDR für http_addr in [server]. Der Wert wird als TOML-Wert
gelesen, wenn er einer ist (eine Zahl, true oder false, eine Liste wie ["10.0.0.0/8"]),
sonst als Text.
Zwei weitere Variablen gehören zu keinem Abschnitt:
| Variable | Bedeutung |
|---|---|
KALZIT_CONFIG |
Pfad der Konfigurationsdatei. |
KALZIT_SETUP_TOKEN |
Ein fester Einrichtungscode für automatische Installationen, siehe Erster Start. |
Ein Beispiel
[server]
http_addr = "127.0.0.1:3000"
public_url = "https://kalzit.example.com"
[security]
trusted_proxies = ["127.0.0.1/32", "::1/128"]
[log]
format = "json"
[server]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
http_addr |
"0.0.0.0:3000" |
Adresse und Port für HTTP. Ein leerer Text schaltet HTTP ab. |
https_addr |
"" (aus) |
Adresse und Port für HTTPS, zum Beispiel "0.0.0.0:443". Braucht tls.cert_file und tls.key_file. |
public_url |
nicht gesetzt | Die Adresse, die Benutzer öffnen, zum Beispiel https://kalzit.example.com. Dient der Origin-Prüfung und für Links. Muss mit http:// oder https:// beginnen. |
redirect_http_to_https |
true |
Ist HTTPS an, leitet HTTP auf HTTPS um. /healthz und /readyz bleiben per HTTP erreichbar. |
Mindestens eine der beiden Adressen http_addr und https_addr muss gesetzt sein.
[tls]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
cert_file |
nicht gesetzt | Zertifikatskette als PEM-Datei. |
key_file |
nicht gesetzt | Privater Schlüssel als PEM-Datei. |
min_version |
"1.2" |
Niedrigste TLS-Version: "1.2" oder "1.3". |
reload_interval_secs |
60 |
Wie oft die beiden Dateien auf Änderungen geprüft werden, in Sekunden. 0 schaltet das Neuladen ab. |
[security]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
hsts |
true |
Strict-Transport-Security bei HTTPS-Antworten senden. |
hsts_max_age_secs |
31536000 |
Dauer von HSTS in Sekunden (ein Jahr). |
trusted_proxies |
[] |
IP-Bereiche der Reverse Proxys, deren X-Forwarded-*-Header vertraut wird, zum Beispiel ["10.0.0.0/8"]. Die aller anderen werden ignoriert. |
login_max_failures |
10 |
Erlaubte Fehlversuche bei der Anmeldung pro Zeitfenster, danach werden weitere abgelehnt. |
login_window_secs |
900 |
Länge dieses Zeitfensters in Sekunden (15 Minuten). |
[sessions]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
lifetime_hours |
720 |
Längste Lebensdauer einer Sitzung (30 Tage). Mindestens 1. |
idle_timeout_hours |
168 |
Eine Sitzung ohne Aktivität endet nach dieser Zeit (7 Tage). 0 schaltet die Grenze ab. |
[database]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
url |
SQLite-Datei | sqlite:... oder postgres://.... Ohne Angabe nimmt Kalzit kalzit.db im Datenverzeichnis. |
max_connections |
10 |
Größe des Verbindungspools. |
[paths]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
data_dir |
"data" |
Datenverzeichnis, relativ zum aktuellen Verzeichnis, wenn nicht absolut. Enthält die SQLite-Datenbank und während der Einrichtung setup-token.txt. |
[log]
| Schlüssel | Standard | Bedeutung |
|---|---|---|
level |
"info" |
Ein Log-Filter, zum Beispiel "info" oder "kalzit=debug,info". |
format |
"text" |
"text" oder "json". |