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
| Einstellung | Was sie bewirkt |
ConnectionStrings__DefaultConnection | Die Datenbank, in der die Daten des Standard-Workspaces liegen, etwa Host=postgres;Database=omnicore-db;Username=archestack;Password=.... Pflicht. |
ConnectionStrings__Core | Die Metadaten des Standard-Workspaces: Entities, Seiten, Skripte. Datenbank omnicore-core. Pflicht. |
ConnectionStrings__Identity | Benutzer, Workspaces und Schlüssel, geteilt von allen Workspaces. Datenbank omnicore-identity. Pflicht. |
ConnectionStrings__Keycloak | Nur beim Übernehmen von Benutzern aus Keycloak. Sonst leer setzen. |
ConnectionStrings__Cluster | Wie 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__CreateMissing | true 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
| Einstellung | Was sie bewirkt |
ASPNETCORE_URLS | Wo die API im Container lauscht: http://+:8080. |
ASPNETCORE_ENVIRONMENT | Immer Production. Alles andere zeigt jedem Fehlerdetails. |
Http__PathBase | Der Pfad, unter dem die API ausgeliefert wird, etwa /archestack. Leer an der Wurzel. |
Identity__AppBaseUrl | Die Adresse des Builders, etwa https://apps.example.com/archestack. Links in Einladungen und zum Zurücksetzen von Passwörtern zeigen hierhin. |
ForwardedHeaders__TrustedProxies | Die 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__HostSuffix | Liefert jeden Workspace auf einem eigenen Hostnamen aus, <label>.<suffix>, und lässt Workspaces eigene Domains hinzufügen. Standardmäßig leer. |
API: Anmeldung
| Einstellung | Was sie bewirkt |
Identity__Provider | Builtin: Archestack meldet Personen selbst an. Standard. |
Identity__InitialAdminEmail, Identity__InitialAdminPassword | Der 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__AllowCompanySignup | true 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__AccessTokenMinutes | Wie lange ein Anmelde-Token hält, bevor es erneuert wird. Standard 15. |
Identity__RefreshTokenDays | Wie lange jemand angemeldet bleibt, ohne Archestack zu benutzen. Standard 30. |
Identity__MinimumPasswordLength | Standard 8. |
Identity__MaxFailedLogins, Identity__LockoutMinutes | Nach so vielen falschen Passwörtern wird ein Konto so lange gesperrt. Standard 10 und 15. |
API: Mail
| Einstellung | Was sie bewirkt |
Smtp__Host, Smtp__Port, Smtp__UseSsl | Der 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__Password | Die Anmeldung am Mailserver. |
Smtp__From, Smtp__FromName | Der Absender, den diese Mails zeigen. |
Mails, die Anwendungen senden, laufen über die Mailkonten, die jeder Workspace in seinem Builder einrichtet.
API: Dateien und Backups
| Einstellung | Was sie bewirkt |
Files__Directory | Wohin 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__MaxFileBytes | Die größte einzelne Datei. Standard 100 MB. |
Files__MaxWorkspaceBytes | Wie viel ein Workspace behalten darf. Standard 0, kein Limit. |
Backup__Directory | Wohin Backups gehen, etwa /backups. Ebenfalls ein Volume, und kopiere, was dort landet, noch an einen anderen Ort. |
Backup__RetentionDays | Wie lange Backups aufbewahrt werden. Standard 30. |
Backup__CronSchedule | Wann das nächtliche Backup läuft, als Quartz-Cron. Standard 0 0 3 * * ?, 03:00. |
API: Skalierung und Limits
| Einstellung | Was sie bewirkt |
Realtime__EntityChanges | false 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__Enabled | Lässt mehrere API-Instanzen wie eine arbeiten. Standard true; lass es eingeschaltet. |
RateLimiting__Enabled | Anfragelimits pro Aufrufer. Standard true. Die Limits gelten pro API-Instanz. |
RateLimiting__PermitsPerMinute | Anfragen, die eine Person pro Minute stellen darf. Standard 2000. |
RateLimiting__AuthPermitsPerMinute | Anmeldeversuche pro Minute von einer Adresse. Standard 20. |
RateLimiting__PublicPagePermitsPerMinute | Was ein Besucher ohne Konto pro Minute von öffentlichen Seiten anfragen darf. Standard 240. |
Scripting__TypedData__Enabled | Business Entities als typisierte Mengen in Skripten (Db.Order). Standard true. |
API: Schlüssel
| Einstellung | Was sie bewirkt |
DataProtection__CertificatePath, DataProtection__CertificatePassword | Ein 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__Subject | Ein 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
| Einstellung | Was sie bewirkt |
Observability__Enabled | Sendet Traces, Metriken und Logs über OpenTelemetry. Standard false. |
Observability__OtlpEndpoint | Wohin, etwa http://otel-collector:4317. |
Observability__Instance, Observability__Environment | Benennen diese Installation in den Dashboards. |
Das Web-Image
| Einstellung | Was sie bewirkt |
VITE_API_URL | Die Adresse der API, wie der Browser sie erreicht, etwa https://api.example.com. Leer, wenn die API auf derselben Adresse unter /api liegt. |
BASE_PATH | Der Pfad, unter dem es ausgeliefert wird, etwa /archestack. Leer an der Wurzel. |
VITE_UI_MODE | dashboard 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_URL | Mit kiosk die Adresse des Builders, wenn er auf einem anderen Hostnamen liegt. |
VITE_APP_URL | Mit dashboard die Adresse der veröffentlichten App, wenn sie auf einem anderen Hostnamen liegt. |
API_INTERNAL_URL | Die 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
| Einstellung | Was sie bewirkt |
POSTGRES_USER, POSTGRES_PASSWORD | Der 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_DB | postgres. Die API legt ihre eigenen Datenbanken an. |
PGDATA | Nur 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.