Diese Seite beschreibt die zentrale Projektkonfiguration und wie Werte zur Laufzeit im Browser landen.
src/config/minecraftGilde.tssrc/config/site.tssrc/scripts/app-config.tssrc/lib/http/apiUrl.tsastro.config.mjsscripts/check-config-drift.mjs
In src/config/minecraftGilde.ts werden zentrale Projektwerte gepflegt:
- Brand-Informationen (
name,alternateName,defaultMetaDescription,logo,sameAs) - Server-/Community-Links (
discord,map,status, Voting-Links) - Serverdaten (
serverIp,mcVersion) - API-Ursprung (
apiOrigin) - optionales Repository (
repoUrl)
apiOrigin wird wie folgt ermittelt:
- Primär:
import.meta.env.PUBLIC_API_ORIGIN - Fallback:
/api - Danach: Entfernen von abschließenden
/per.replace(/\/+$/, '')
Dadurch bleiben API-URLs stabil, unabhängig davon, ob der Env-Wert mit oder ohne Trailing Slash gesetzt ist.
src/lib/http/apiUrl.ts baut aus einem Pfad eine Ziel-URL:
- Eingaben mit und ohne führendes
/sind erlaubt. - Ein vorhandenes
/api/-Präfix wird entfernt. - Ergebnis ist immer
minecraftGilde.apiOrigin + <Pfad ohne /api>
Beispiel:
- Input:
/api/summary?metrics=hours - Output:
/api/summary?metrics=hours(oder entsprechenderPUBLIC_API_ORIGIN)
browserAppConfig in src/config/minecraftGilde.ts enthält nur browserrelevante, nicht-sensitive Werte:
serverIpdiscordGuildIddiscordInvitediscordInviteCodedynmapUrlstatusUrl
Diese Werte werden in src/layouts/BaseLayout.astro auf <html> als data-* Attribute gesetzt und in src/scripts/app-config.ts ausgelesen.
Wichtig:
readBrowserAppConfig(fallback)mergedfallback+ Dataset-Werte.- Leere Strings werden verworfen (
pickString).
src/config/site.ts ist die zentrale Stelle für:
siteUrl(z. B.https://minecraft-gilde.de)- normalisierte
site-URL canonicalFor(pathname)mittrailingSlash-Regel (always)
scripts/check-config-drift.mjs verhindert Konfigurationsdrift:
- liest
siteausastro.config.mjs - liest
siteUrlaussrc/config/site.ts - normalisiert URLs für Vergleich (ohne Query/Hash, konsistente Trailing-Slash-Logik)
Lokaler Check:
npm run config:check- Bei Domain-/API-Änderungen
minecraftGilde.ts,site.tsund ggf.astro.config.mjsgemeinsam prüfen. - Danach
npm run config:checkausführen. - Bei API-Ursprung-Änderungen Frontend-Aufrufe unter
src/features/*/api.tsundsrc/lib/http/apiUrl.tsgegenprüfen.
Mit lokaler API (Worker + DB):
npm run devHinweis für Hyperdrive:
CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE sollte für
die lokale Cloudflare-Runtime als echte Shell-Umgebungsvariable gesetzt werden.
Ohne lokale API (nur Frontend):
npm run devOhne lokale API, aber mit externem API-Ziel:
PUBLIC_API_ORIGIN=https://<dein-api-host> npm run devProduktionsnahe Vorschau (nach Build):
npm run build
npm run previewDetails zu Endpunkten, .dev.vars und Secrets: docs/stats-api.md.