Configure backend proxy for remote deployment

This commit is contained in:
faligam
2026-09-06 16:52:21 +02:00
parent 37636e144b
commit fac3d1ce2c
4 changed files with 18 additions and 20 deletions

View File

@@ -53,8 +53,8 @@ cp .env.example .env
Minimale `.env`-Konfiguration:
```env
# URL des NSCT Backend API (Docker-Netzwerk)
NSCT_API_BASE_URL=http://nsct-api:8080
# Erreichbarer Host:Port des Backend-Rechners (kein Docker-Netzwerk nötig)
NSCT_API_UPSTREAM=backend.example.com:8080
# Optional: Domain für HTTPS-Zugriff über Caddy
CADDY_DOMAIN=nsct.example.com
@@ -172,11 +172,7 @@ Port 80 und 443 müssen im Firewall-Regelwerk freigeschaltet sein.
| Variable | Beschreibung | Default | Beispiel |
|---|---|---|---|
| `NSCT_API_BASE_URL` | URL des NSCT-Backend-API | `http://nsct-api:8080` | `http://nsct-api:8080` |
| `DEFAULT_THEME` | Start-Theme | `dark` | `light` |
| `NODE_ENV` | Laufzeit-Modus | `production` | (fest im Dockerfile) |
| `HOST` | Bind-Adresse | `0.0.0.0` | (fest im Dockerfile) |
| `PORT` | Port | `3000` | (fest im Dockerfile) |
| `PORT` | Port des statischen Webservers | `3000` | (fest im Caddyfile) |
### Caddy-Container (`caddy` service)
@@ -184,13 +180,14 @@ Port 80 und 443 müssen im Firewall-Regelwerk freigeschaltet sein.
|---|---|---|---|
| `CADDY_DOMAIN` | Domain für HTTPS / Zertifikat | leer | `nsct.example.com` |
| `NSCT_RATE_LIMIT` | Rate-Limiting (optional) | leer | `100/second` |
| `NSCT_API_UPSTREAM` | Host:Port des Backend-Rechners | `host.docker.internal:8080` | `backend.example.com:8080` |
### Konfiguration am Beispiel
#### Lokale Entwicklung (HTTP only)
```env
NSCT_API_BASE_URL=http://host.docker.internal:8080
NSCT_API_UPSTREAM=host.docker.internal:8080
CADDY_DOMAIN=
DEFAULT_THEME=dark
```
@@ -198,7 +195,7 @@ DEFAULT_THEME=dark
#### Produktionsumgebung (HTTPS)
```env
NSCT_API_BASE_URL=http://nsct-api:8080
NSCT_API_UPSTREAM=backend.example.com:8080
CADDY_DOMAIN=nsct.example.com
DEFAULT_THEME=dark
```
@@ -206,7 +203,7 @@ DEFAULT_THEME=dark
#### Light-Mode (z.B. für bestimmte Nutzergruppen)
```env
NSCT_API_BASE_URL=http://nsct-api:8080
NSCT_API_UPSTREAM=backend.example.com:8080
CADDY_DOMAIN=nsct.example.com
DEFAULT_THEME=light
```
@@ -520,7 +517,7 @@ NSCT_RATE_LIMIT=100/second
### CORS
Das Frontend stellt keine Cross-Origin-Anfragen. Alle API-Calls gehen direkt an `NSCT_API_BASE_URL` (gleicher Container/Netzwerk). CORS ist kein Problem, da keine fremden Domains angesprochen werden.
Das Frontend stellt keine Cross-Origin-Anfragen. Alle API-Calls gehen an den Same-Origin-Pfad `/api`; Caddy leitet ihn an `NSCT_API_UPSTREAM` weiter. Frontend und Backend können daher auf getrennten Rechnern laufen, ohne dass der Browser CORS zum Backend benötigt.
### API-Key-Speicherung
@@ -870,4 +867,4 @@ GET /api/share/abc123 ───────────────────
│ │ - username │ │ - research_id │ │
│ └───────────────┘ └───────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
```
```