feat(docker): host-adresse und port konfigurierbar machen
BIND_ADDRESS und HOST_PORT statt eines fest verdrahteten 127.0.0.1:3000. Die Voreinstellung bleibt localhost - wer den Reverse Proxy auf einem anderen Host betreibt oder Port 3000 schon belegt hat, aendert jetzt zwei Zeilen in der .env statt der compose-Datei. Der komplette Stack wurde damit einmal durchgespielt: docker compose up laeuft, Container wird healthy, Migrationen greifen und /data landet mit Datenbank und Dateiverzeichnis auf dem Host. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,12 @@ MAX_UPLOAD_MB=25
|
||||
# Zeitzone des Containers.
|
||||
TZ=Europe/Berlin
|
||||
|
||||
# Wo der Container auf dem Host lauscht. Voreinstellung: nur localhost, weil
|
||||
# der Reverse Proxy auf demselben Host laeuft. Sitzt der Proxy woanders:
|
||||
# BIND_ADDRESS=0.0.0.0 (und dann unbedingt die Firewall zuziehen).
|
||||
# BIND_ADDRESS=127.0.0.1
|
||||
# HOST_PORT=3000
|
||||
|
||||
# Optional (ab Phase 2): Rebrickable-API-Key fuer den Lego-Import.
|
||||
# Ohne Key funktioniert alles manuell weiter.
|
||||
# REBRICKABLE_API_KEY=
|
||||
|
||||
+17
-16
@@ -116,15 +116,19 @@ proxy_set_header X-Real-IP $remote_addr;
|
||||
`client_max_body_size` muss mindestens so groß sein wie `MAX_UPLOAD_MB` in
|
||||
deiner `.env` (Standard 25 MB); 64m gibt Luft.
|
||||
|
||||
> **Läuft NPM im selben Docker-Netz?** Dann in `docker-compose.yml` das
|
||||
> Port-Mapping auf `- "3000:3000"` ändern oder ganz entfernen und beide
|
||||
> Container in ein gemeinsames Netzwerk hängen. Als Forward Hostname trägst du
|
||||
> dann `bricktrack` ein (den Container-Namen), Port `3000`.
|
||||
> **Wo lauscht der Container?** Voreinstellung ist `127.0.0.1:3000` – die App
|
||||
> ist dann ausschließlich über einen Proxy auf demselben Host erreichbar.
|
||||
> Zwei Fälle brauchen eine Anpassung in der `.env`:
|
||||
>
|
||||
> Die Voreinstellung `127.0.0.1:3000:3000` bindet den Port nur an localhost –
|
||||
> die App ist dann ausschließlich über den Proxy erreichbar. Sitzt NPM auf
|
||||
> einem **anderen** Host, muss das Mapping auf `3000:3000` geändert und der
|
||||
> Zugriff per Firewall beschränkt werden.
|
||||
> - **NPM läuft auf einem anderen Host:** `BIND_ADDRESS=0.0.0.0` setzen und
|
||||
> den Zugriff per Firewall auf die Proxy-IP beschränken.
|
||||
> - **Port 3000 ist schon belegt:** `HOST_PORT=3001` (o. ä.) setzen und im
|
||||
> Proxy denselben Port eintragen.
|
||||
>
|
||||
> **Läuft NPM im selben Docker-Netz?** Dann brauchst du gar kein
|
||||
> Port-Mapping: die `ports`-Zeile in `docker-compose.yml` entfernen, beide
|
||||
> Container in ein gemeinsames Netzwerk hängen und als Forward Hostname den
|
||||
> Container-Namen `bricktrack` mit Port `3000` eintragen.
|
||||
|
||||
## 6. Ersten Nutzer anlegen
|
||||
|
||||
@@ -155,15 +159,12 @@ eigener Passkey – Handy, Tablet, Laptop.
|
||||
**„Zur Wunschliste hinzufügen"**.
|
||||
7. **Wunschlisten → Liste öffnen → Link kopieren** und verschicken.
|
||||
|
||||
Zum Ausprobieren gibt es Beispieldaten:
|
||||
Wie das im Einzelnen aussieht, zeigt die [bebilderte
|
||||
Anleitung](docs/ANLEITUNG.md).
|
||||
|
||||
```bash
|
||||
docker compose exec app node -e "process.exit(0)" # laeuft der Container?
|
||||
docker compose exec app sh -c 'echo "Seed nur in der Entwicklung"'
|
||||
```
|
||||
|
||||
Das Seed-Skript ist bewusst nicht im Produktions-Image. Zum Ausprobieren
|
||||
lokal: `pnpm db:seed`.
|
||||
> Beispieldaten (`pnpm db:seed`) gibt es nur in der Entwicklungsumgebung – das
|
||||
> Produktions-Image bringt sie bewusst nicht mit, damit in deiner Sammlung
|
||||
> nichts steht, was dir nicht gehört.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -79,6 +79,8 @@ Alle Werte kommen aus `.env` (Vorlage: `.env.example`).
|
||||
| `DATA_DIR` | nein | `/data` | Datenverzeichnis im Container. Nicht ändern. |
|
||||
| `MAX_UPLOAD_MB` | nein | `25` | Größenlimit je Datei. Muss zum Proxy passen. |
|
||||
| `TZ` | nein | `Europe/Berlin` | Zeitzone des Containers. |
|
||||
| `BIND_ADDRESS` | nein | `127.0.0.1` | Auf welcher Host-Adresse der Container lauscht. `0.0.0.0`, wenn der Proxy auf einem anderen Host läuft. |
|
||||
| `HOST_PORT` | nein | `3000` | Port auf dem Host, falls 3000 belegt ist. |
|
||||
| `REBRICKABLE_API_KEY` | nein | – | Ab Version 0.2.0: Lego-Import. Ohne Key läuft alles manuell. |
|
||||
|
||||
### Reverse Proxy
|
||||
|
||||
+4
-3
@@ -24,9 +24,10 @@ services:
|
||||
PORT: 3000
|
||||
|
||||
ports:
|
||||
# Nur an localhost binden: erreichbar wird die App ueber den Reverse
|
||||
# Proxy. Laeuft der Proxy in einem anderen Docker-Netz, siehe README.
|
||||
- "127.0.0.1:3000:3000"
|
||||
# Standardmaessig nur an localhost gebunden: erreichbar wird die App
|
||||
# ueber den Reverse Proxy. Sitzt der Proxy auf einem anderen Host, in
|
||||
# der .env BIND_ADDRESS=0.0.0.0 setzen (und die Firewall zuziehen).
|
||||
- "${BIND_ADDRESS:-127.0.0.1}:${HOST_PORT:-3000}:3000"
|
||||
|
||||
volumes:
|
||||
# Das eine Verzeichnis, das gesichert werden muss.
|
||||
|
||||
Reference in New Issue
Block a user