SimolZimol fd0820ae49 new file: Dockerfile
new file:   README.md
	new file:   docker-compose.yml
	new file:   nginx/templates/default.conf.template
2026-08-06 17:37:50 +02:00
2026-08-06 17:37:50 +02:00
2026-08-06 17:37:50 +02:00
2026-08-06 17:37:50 +02:00
2026-08-06 17:37:50 +02:00

Bluemap Reverse Proxy (Nginx) für Coolify

Nginx-basierter Reverse Proxy, der deine Bluemap (http://devanturas.net:8100) über HTTPS auf map.devanturas.net ausliefert und in einem iframe einbettbar macht.

Struktur

ReversProxy/
├── docker-compose.yml              <- Coolify importiert diese Datei
└── nginx/
    └── templates/
        └── default.conf.template   <- Nginx-Proxy-Konfiguration (envsubst)

So liefere ich es bei Coolify aus

Die Foundation: Coolify übernimmt die Domain map.devanturas.net und das HTTPS-Zertifikat (via Let's Encrypt über seinen eigenen Traefik/Caddy-Proxy). Dein Nginx-Container läuft dahinter nur noch auf HTTP. So funktioniert der iframe dann https://map.devanturas.net.

Schritte in Coolify

  1. Neues Projekt → Ressource → Docker Compose anlegen.
  2. Compose-Inhalt aus docker-compose.yml (bzw. den Ordner) einfügen.
  3. In den Domain-Einstellungen der Ressource: map.devanturas.net eintragen.
    • Coolify klinkt die Domain über seinen Proxy an den Nginx-Container an.
    • Port-Ziel: 80.
  4. HTTPS aktivieren (Let's Encrypt) Coolify erledigt das automatisch.
  5. Deploy.

Wichtig: Bluemap-Adresse anpassen

In docker-compose.yml unter environment:

UPSTREAM_HOST: "devanturas.net"
UPSTREAM_PORT: "8100"
  • Läuft Bluemap im selben Docker-Netzwerk wie dieser Proxy → setze UPSTREAM_HOST auf den Container-/Service-Namen von Bluemap (z.B. bluemap). Das ist am schnellsten und sichersten.
  • Andernfalls nimm den Hostnamen oder die IP, die devanturas.net:8100 bereitstellt (bzw. die Docker-Brückengateway-IP, z.B. 172.17.0.1 unter Linux).

Netzwerk-Hinweis: Damit dieser Nginx-Container den Bluemap-Container erreichen kann, müssen beide im Ersten Netzwerk hängen. Wenn Coolify deine Compose-Ressource bereits in ein eigenes Netzwerk legt, füge Bluemap dort hinzu oder setze UPSTREAM_HOST auf den öffentlichen Hostnamen.

Iframe-Einbettung

Auf deiner Einbettungsseite einfach die Karte per HTTPS einbinden:

<iframe
  src="https://map.devanturas.net"
  width="100%"
  height="600"
  style="border:0;"
  allowfullscreen
  title="Bluemap">
</iframe>

Eingebettete Quellen einschränken (empfohlen)

Standardmäßig erlaubt die Konfiguration frame-ancestors https://* http://* (alles). Aus Sicherheitsgründen solltest du das in docker-compose.yml auf deine echten Seiten einschränken:

FRAME_ANCESTORS: "https://devanturas.net"

Hinweis: Die einfache FRAME_ANCESTORS-Variable lässt sich mit dem Official-Nginx-Image nicht direkt in eine Dynamische CSP einsetzen (es werden nur definierte Variablen ersetzt). Für eine strenge Einschränkung editiere daher den frame-ancestors-Wert in nginx/templates/default.conf.template direkt (z.B. frame-ancestors https://devanturas.net;).

WebSockets

Bluemap nutzt WebSockets für Live-Updates. Die Konfiguration hebt den Upgrade-/Connection-Header entsprechend an und verlängert die Timeouts, damit die Karte live mitläuft und Verbindungen nicht abbrechen.

Lokal testen (ohne Coolify)

docker compose up -d
curl http://localhost:8080/        # sollte die Bluemap-Startseite liefern
curl http://localhost:8080/health  # -> ok
Description
No description provided
Readme 30 KiB
Languages
Dockerfile 100%