Configure backend proxy for remote deployment
This commit is contained in:
@@ -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 │ │
|
||||
│ └───────────────┘ └───────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user