fix: Bindeadresse war in der Vorlage stillschweigend vorbelegt
.env.example setzte APP_BIND=127.0.0.1 als fertigen Wert, mitten zwischen lauter anderen fertigen Werten. Wer die Datei kopiert und seinen Reverse Proxy auf einem anderen Server betreibt, kommt damit nicht an die Anwendung heran - und der Fehler sieht aus, als laege es am Proxy. Der sichere Standard bleibt 127.0.0.1. Er wird nur nicht mehr als "schon erledigt" praesentiert, sondern als Entscheidung mit drei benannten Faellen: Proxy daneben, Proxy woanders mit privatem Netz, Proxy woanders ohne. Beim dritten Fall steht die Firewallregel dabei. Die Installationsanleitung nennt APP_BIND jetzt schon in Schritt 3, wo die .env ausgefuellt wird - nicht erst in Schritt 7, wo der Proxy drankommt. Wer der Anleitung von oben nach unten folgt, stolpert sonst erst vier Schritte spaeter darueber. Dazu ein eigener Abschnitt in der Fehlersuche mit den zwei curl-Proben, die den Unterschied zwischen falscher Bindeadresse und Firewall zeigen - und dem Hinweis, dass dafuer kein Neubau noetig ist. Am Programm aendert sich nichts. Etappe: 8 Phase: Haertung
This commit is contained in:
+23
-7
@@ -19,15 +19,31 @@ AUTH_URL=http://localhost:3000
|
||||
# Hinter einem Reverse Proxy auf true setzen.
|
||||
AUTH_TRUST_HOST=true
|
||||
|
||||
# --- Erreichbarkeit ---------------------------------------------------------
|
||||
# Auf welcher Adresse und welchem Port horcht die Anwendung?
|
||||
# --- Erreichbarkeit: HIER MUSST DU DICH ENTSCHEIDEN -------------------------
|
||||
#
|
||||
# Proxy auf DEMSELBEN Server: 127.0.0.1 (Standard, nichts zu tun)
|
||||
# Proxy auf einem ANDEREN: die Adresse des privaten Netzes bzw. des
|
||||
# WireGuard-Tunnels, z.B. 10.0.0.5
|
||||
# Auf welcher Adresse soll die Anwendung erreichbar sein? Das haengt davon
|
||||
# ab, WO dein Reverse Proxy laeuft. Waehl genau eine Zeile aus:
|
||||
#
|
||||
# 0.0.0.0 nur, wenn eine Firewall den Port ausschliesslich fuer die IP des
|
||||
# Proxy-Servers oeffnet. Die Anwendung beendet kein TLS.
|
||||
# Proxy auf DEMSELBEN Server
|
||||
# APP_BIND=127.0.0.1
|
||||
# Von aussen kommt niemand heran, nur der Proxy nebenan. Sicherste
|
||||
# Variante - aber ein Proxy auf einem anderen Rechner erreicht die
|
||||
# Anwendung damit NICHT.
|
||||
#
|
||||
# Proxy auf einem ANDEREN Server, privates Netz oder WireGuard vorhanden
|
||||
# APP_BIND=10.0.0.5 <- die Adresse DIESES Servers in dem Netz
|
||||
# Erste Wahl, wenn der Proxy woanders steht.
|
||||
#
|
||||
# Proxy auf einem ANDEREN Server, kein privates Netz
|
||||
# APP_BIND=0.0.0.0
|
||||
# Nur zusammen mit einer Firewallregel, die den Port ausschliesslich
|
||||
# fuer die IP des Proxy-Servers oeffnet:
|
||||
# ufw allow from <IP-des-Proxys> to any port 3000 proto tcp
|
||||
# ufw deny 3000/tcp
|
||||
#
|
||||
# Zwischen Proxy und Anwendung laeuft unverschluesseltes HTTP - die
|
||||
# Anwendung beendet kein TLS. Dieser Weg darf nie durchs offene Netz gehen.
|
||||
# Einzelheiten: docs/INSTALLATION.md, Schritt 7.
|
||||
APP_BIND=127.0.0.1
|
||||
APP_PORT=3000
|
||||
|
||||
|
||||
+34
-1
@@ -26,6 +26,38 @@ Wiederherstellung*.
|
||||
|
||||
_Noch nichts._
|
||||
|
||||
## [1.0.3] – 2026-08-22
|
||||
|
||||
Keine Änderung am Programm — nur an der Konfigurationsvorlage und der
|
||||
Anleitung. Ein Neubau des Abbilds ist nicht nötig.
|
||||
|
||||
### Behoben
|
||||
|
||||
- **`.env.example` band die Anwendung stillschweigend an `127.0.0.1`.**
|
||||
Der Wert stand dort als fertig ausgefüllte Zeile zwischen lauter anderen
|
||||
fertigen Zeilen. Wer die Datei kopiert hat und seinen Reverse Proxy auf
|
||||
einem **anderen** Server betreibt, kam nicht an die Anwendung heran —
|
||||
und der Fehler sah aus, als läge es am Proxy.
|
||||
|
||||
Jetzt steht dort eine Entscheidung mit drei benannten Fällen statt eines
|
||||
Vorgabewerts. Der sichere Standard bleibt `127.0.0.1`; er wird nur nicht
|
||||
mehr als „schon erledigt" präsentiert.
|
||||
|
||||
Für bestehende Installationen genügt eine Zeile in der `.env`:
|
||||
|
||||
```bash
|
||||
APP_BIND=10.0.0.5 # Adresse, über die der Proxy diesen Server erreicht
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Geändert
|
||||
|
||||
- **`docs/INSTALLATION.md`** nennt `APP_BIND` jetzt schon in Schritt 3, wo
|
||||
die `.env` ausgefüllt wird — nicht erst in Schritt 7, wo der Proxy
|
||||
drankommt. Dazu ein eigener Abschnitt in der Fehlersuche: „Der Proxy
|
||||
erreicht die Anwendung nicht", mit den zwei `curl`-Proben, die den
|
||||
Unterschied zwischen falscher Bindeadresse und Firewall zeigen.
|
||||
|
||||
## [1.0.2] – 2026-08-22
|
||||
|
||||
### Behoben
|
||||
@@ -264,7 +296,8 @@ Was davon wann angegangen wird, steht in [`docs/ROADMAP.md`](docs/ROADMAP.md).
|
||||
|
||||
---
|
||||
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.2...HEAD
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.3...HEAD
|
||||
[1.0.3]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.2...v1.0.3
|
||||
[1.0.2]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.1...v1.0.2
|
||||
[1.0.1]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.0.0...v1.0.1
|
||||
[1.0.0]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/releases/tag/v1.0.0
|
||||
|
||||
@@ -205,6 +205,14 @@ S3_SECRET_ACCESS_KEY=<aus Schritt 2>
|
||||
|
||||
# --- Sicherung ---
|
||||
SICHERUNG_PASSWORT=<aus Schritt 2>
|
||||
|
||||
# --- Erreichbarkeit ---
|
||||
# Steht dein Proxy auf einem ANDEREN Server, muss hier die Adresse hinein,
|
||||
# ueber die er diesen Server erreicht. Bleibt es bei 127.0.0.1, kommt er
|
||||
# NICHT heran - und der Fehler sieht aus, als sei der Proxy schuld.
|
||||
# Welcher Wert der richtige ist, steht in Schritt 7a.
|
||||
APP_BIND=127.0.0.1
|
||||
APP_PORT=3000
|
||||
```
|
||||
|
||||
> **`AUTH_URL` muss exakt der Adresse entsprechen**, unter der du die
|
||||
@@ -875,6 +883,41 @@ Fehlt eine Umgebungsvariable, sagt die Anwendung beim Start, welche.
|
||||
Die `.env` liegt nicht neben der `docker-compose.yml`, oder die Zeile ist
|
||||
leer. Prüf mit dem Befehl aus Schritt 3.
|
||||
|
||||
### Der Proxy erreicht die Anwendung nicht („502", „Connection refused")
|
||||
|
||||
Fast immer steht in der `.env` noch `APP_BIND=127.0.0.1`, während der
|
||||
Proxy auf einem anderen Server läuft. Dann horcht die Anwendung nur auf
|
||||
der Loopback-Adresse — erreichbar ausschließlich vom Anwendungsserver
|
||||
selbst.
|
||||
|
||||
Prüf, worauf sie tatsächlich horcht:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
# unter PORTS muss die Adresse stehen, die der Proxy erreicht,
|
||||
# NICHT 127.0.0.1
|
||||
```
|
||||
|
||||
Und ob sie überhaupt antwortet — erst lokal, dann vom Proxy-Server aus:
|
||||
|
||||
```bash
|
||||
# auf dem Anwendungsserver
|
||||
curl -s http://127.0.0.1:3000/api/gesundheit
|
||||
|
||||
# auf dem Proxy-Server
|
||||
curl -s http://<APP_BIND-Adresse>:3000/api/gesundheit
|
||||
```
|
||||
|
||||
Antwortet der erste, aber nicht der zweite, ist `APP_BIND` falsch oder
|
||||
eine Firewall dazwischen. Setz den richtigen Wert (Schritt 7a) und
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Ein Neubau des Abbilds ist dafür **nicht** nötig — es ist nur eine
|
||||
Umgebungsänderung, der Behälter wird neu erzeugt.
|
||||
|
||||
### Port 3000 ist schon belegt
|
||||
|
||||
```bash
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "betreuungs-cockpit",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"private": true,
|
||||
"description": "Arbeits- und Dokumentationswerkzeug fuer die ehrenamtliche rechtliche Betreuung",
|
||||
"engines": {
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
/** Muss zur "version" in der package.json passen. */
|
||||
export const VERSION = '1.0.2'
|
||||
export const VERSION = '1.0.3'
|
||||
|
||||
/**
|
||||
* Kurzer Git-Stand, beim Bauen hineingereicht:
|
||||
|
||||
Reference in New Issue
Block a user