Reference

Einstellungen der Images

Beide Images werden über Umgebungsvariablen eingerichtet. Die Namen der API trennen die Ebenen mit einem doppelten Unterstrich, etwa Smtp__Host. Eine weggelassene Einstellung behält ihren Standardwert. Die Starter-Kits unter Hosting mit Docker, Hosting auf Kubernetes und Hosting auf AKS setzen bereits alles, was eine normale Installation braucht; diese Seite ist dafür da, eine davon zu ändern, oder für ein eigenes Setup (Die Images betreiben).

API: Datenbanken

EinstellungWas sie bewirkt
ConnectionStrings__DefaultConnectionDie Datenbank, in der die Daten des Standard-Workspaces liegen, etwa Host=postgres;Database=omnicore-db;Username=archestack;Password=.... Pflicht.
ConnectionStrings__CoreDie Metadaten des Standard-Workspaces: Entities, Seiten, Skripte. Datenbank omnicore-core. Pflicht.
ConnectionStrings__IdentityBenutzer, Workspaces und Schlüssel, geteilt von allen Workspaces. Datenbank omnicore-identity. Pflicht.
ConnectionStrings__KeycloakNur beim Übernehmen von Benutzern aus Keycloak. Sonst leer setzen.
ConnectionStrings__ClusterWie mehrere API-Instanzen einander über Änderungen informieren. Standardmäßig die Identity-Datenbank; setze sie auf PostgreSQL selbst, wenn ein Connection Pooler wie PgBouncer dazwischensitzt.
Database__CreateMissingtrue legt die Datendatenbank an, wenn sie fehlt; die anderen beiden werden in jedem Fall angelegt. Standard false; die Kits setzen true.

Der Benutzer in diesen Strings braucht das Recht, Datenbanken anzulegen: Jeder neue Workspace bekommt zwei eigene, benannt nach den Basisnamen oben.

API: Adressen

EinstellungWas sie bewirkt
ASPNETCORE_URLSWo die API im Container lauscht: http://+:8080.
ASPNETCORE_ENVIRONMENTImmer Production. Alles andere zeigt jedem Fehlerdetails.
Http__PathBaseDer Pfad, unter dem die API ausgeliefert wird, etwa /archestack. Leer an der Wurzel.
Identity__AppBaseUrlDie Adresse des Builders, etwa https://apps.example.com/archestack. Links in Einladungen und zum Zurücksetzen von Passwörtern zeigen hierhin.
ForwardedHeaders__TrustedProxiesDie Adressen der vorgeschalteten Proxys, deren X-Forwarded-For geglaubt wird. Der Standard deckt private Netze ab; ohne den richtigen Wert sieht jeder Besucher wie der Proxy aus und teilt sich ein Rate Limit.
Tenancy__HostSuffixLiefert jeden Workspace auf einem eigenen Hostnamen aus, <label>.<suffix>, und lässt Workspaces eigene Domains hinzufügen. Standardmäßig leer.

API: Anmeldung

EinstellungWas sie bewirkt
Identity__ProviderBuiltin: Archestack meldet Personen selbst an. Standard.
Identity__InitialAdminEmail, Identity__InitialAdminPasswordDer erste Admin, angelegt beim ersten Start, wenn es noch keinen Benutzer gibt. Wird einmal verwendet: Ändere das Passwort danach in Archestack. Lass beide weg, um den Admin stattdessen im Builder anzulegen.
Identity__AllowCompanySignuptrue lässt jeden unter /register ein eigenes Unternehmen anlegen. Standard false. Die Admins eines Unternehmens können Skripte auf dem Server ausführen, lass es also aus, außer du betreibst einen öffentlichen Dienst.
Identity__AccessTokenMinutesWie lange ein Anmelde-Token hält, bevor es erneuert wird. Standard 15.
Identity__RefreshTokenDaysWie lange jemand angemeldet bleibt, ohne Archestack zu benutzen. Standard 30.
Identity__MinimumPasswordLengthStandard 8.
Identity__MaxFailedLogins, Identity__LockoutMinutesNach so vielen falschen Passwörtern wird ein Konto so lange gesperrt. Standard 10 und 15.

API: Mail

EinstellungWas sie bewirkt
Smtp__Host, Smtp__Port, Smtp__UseSslDer Mailserver für Einladungen und das Zurücksetzen von Passwörtern. Standardmäßig Port 587 und SSL. Ohne Host bekommt der Admin, der eine Einladung verschickt, den Link zum Weitergeben.
Smtp__Username, Smtp__PasswordDie Anmeldung am Mailserver.
Smtp__From, Smtp__FromNameDer Absender, den diese Mails zeigen.

Mails, die Anwendungen senden, laufen über die Mailkonten, die jeder Workspace in seinem Builder einrichtet.

API: Dateien und Backups

EinstellungWas sie bewirkt
Files__DirectoryWohin Uploads und Workspace-Dateien gehen, etwa /files. Lege dort ein Volume hin: In einem Container ohne eines gehen Dateien beim nächsten Update verloren.
Files__MaxFileBytesDie größte einzelne Datei. Standard 100 MB.
Files__MaxWorkspaceBytesWie viel ein Workspace behalten darf. Standard 0, kein Limit.
Backup__DirectoryWohin Backups gehen, etwa /backups. Ebenfalls ein Volume, und kopiere, was dort landet, noch an einen anderen Ort.
Backup__RetentionDaysWie lange Backups aufbewahrt werden. Standard 30.
Backup__CronScheduleWann das nächtliche Backup läuft, als Quartz-Cron. Standard 0 0 3 * * ?, 03:00.

API: Skalierung und Limits

EinstellungWas sie bewirkt
Realtime__EntityChangesfalse sorgt dafür, dass Bildschirme sich nicht mehr aktualisieren, wenn sich ein Datensatz anderswo ändert. Standard true. Ausgeschaltet bedient eine Installation viel mehr Personen gleichzeitig; siehe Kapazität und Dimensionierung.
Cluster__EnabledLässt mehrere API-Instanzen wie eine arbeiten. Standard true; lass es eingeschaltet.
RateLimiting__EnabledAnfragelimits pro Aufrufer. Standard true. Die Limits gelten pro API-Instanz.
RateLimiting__PermitsPerMinuteAnfragen, die eine Person pro Minute stellen darf. Standard 2000.
RateLimiting__AuthPermitsPerMinuteAnmeldeversuche pro Minute von einer Adresse. Standard 20.
RateLimiting__PublicPagePermitsPerMinuteWas ein Besucher ohne Konto pro Minute von öffentlichen Seiten anfragen darf. Standard 240.
Scripting__TypedData__EnabledBusiness Entities als typisierte Mengen in Skripten (Db.Order). Standard true.

API: Schlüssel

EinstellungWas sie bewirkt
DataProtection__CertificatePath, DataProtection__CertificatePasswordEin Zertifikat, das die Schlüssel schützt, mit denen gespeicherte Passwörter verschlüsselt sind. Ohne es liegen diese Schlüssel ungeschützt in der Identity-Datenbank, eine Kopie dieser Datenbank enthält also beide Hälften.
Push__VapidPublicKey, Push__VapidPrivateKey, Push__SubjectEin Schlüsselpaar für Browser-Benachrichtigungen in jedem Workspace. Weggelassen erzeugt jeder Workspace sein eigenes. Ändere es nie, sobald Personen Benachrichtigungen erlaubt haben: Ihre Abonnements funktionieren dann nicht mehr.

API: Monitoring

EinstellungWas sie bewirkt
Observability__EnabledSendet Traces, Metriken und Logs über OpenTelemetry. Standard false.
Observability__OtlpEndpointWohin, etwa http://otel-collector:4317.
Observability__Instance, Observability__EnvironmentBenennen diese Installation in den Dashboards.

Das Web-Image

EinstellungWas sie bewirkt
VITE_API_URLDie Adresse der API, wie der Browser sie erreicht, etwa https://api.example.com. Leer, wenn die API auf derselben Adresse unter /api liegt.
BASE_PATHDer Pfad, unter dem es ausgeliefert wird, etwa /archestack. Leer an der Wurzel.
VITE_UI_MODEdashboard zeigt den Builder unter / und die veröffentlichte App unter /app. kiosk zeigt die veröffentlichte App unter /, für eine Adresse, die nur die App ist.
VITE_DASHBOARD_URLMit kiosk die Adresse des Builders, wenn er auf einem anderen Hostnamen liegt.
VITE_APP_URLMit dashboard die Adresse der veröffentlichten App, wenn sie auf einem anderen Hostnamen liegt.
API_INTERNAL_URLDie Adresse der API innerhalb des Netzwerks, etwa http://api:8080. Linkvorschauen in Chat-Apps und die Seiten, die Suchmaschinen lesen, kommen von dort. Schreibe in Kubernetes den vollständigen Namen des Service, http://<service>.<namespace>.svc.cluster.local:8080.

Das PostgreSQL-Image

EinstellungWas sie bewirkt
POSTGRES_USER, POSTGRES_PASSWORDDer Benutzer, mit dem sich die API verbindet. Das Passwort wird gesetzt, wenn PostgreSQL zum ersten Mal auf einem leeren Datenträger startet; die Variable später zu ändern, ändert es in der Datenbank nicht.
POSTGRES_DBpostgres. Die API legt ihre eigenen Datenbanken an.
PGDATANur auf einem frischen Datenträger, dessen Wurzel lost+found enthält, wie in Kubernetes: ein Ordner unterhalb des Mount-Punkts, etwa /var/lib/postgresql/data/pgdata.

Gib dem Container 1 GB Shared Memory, wie Die Images betreiben erklärt.