From d0bba3d3f88639d1520aac82a0276141d1192302 Mon Sep 17 00:00:00 2001 From: luptmoor Date: Thu, 23 Apr 2026 11:42:03 +0200 Subject: [PATCH] EXTENSION.md updated and completed --- EXTENSION.md | 141 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 123 insertions(+), 18 deletions(-) diff --git a/EXTENSION.md b/EXTENSION.md index c24a72b..b230e1f 100644 --- a/EXTENSION.md +++ b/EXTENSION.md @@ -1,8 +1,47 @@ -## Neue Ideenkarte anlegen -1. DNS record `````` A 195.59.32.237 600s -2. Nginx Weiterleitung in ```default.conf```: +# Neue Ideenkarte anlegen +## Übersicht + +| Variable | Bedeutung | +|---|---| +| `` | Name der Kommune (z.B. `lohne`) | +| `` | Eindeutige Port-ID für die Datenbank (z.B. `4` → Port `5434`) | +| `` | Git-Branch des Frontend-Repos | + +--- + +## Schritt 1 — DNS Record anlegen + +Im DNS-Panel einen neuen A-Record anlegen: + +| Feld | Wert | +|---|---| +| Name | `` | +| Typ | `A` | +| Ziel | `195.59.32.237` | +| TTL | `600s` | + +> ⚠️ DNS muss vollständig propagiert sein, bevor Certbot in Schritt 3 ausgeführt wird. + +Propagation prüfen: +```bash +dig .endex-geodaten.de ``` + +--- + +## Schritt 2 — Nginx `default.conf` anpassen + +### 2a — Subdomain in den Port-80-Block eintragen + +```nginx +server_name endex-geodaten.de www.endex-geodaten.de git.endex-geodaten.de lohne.endex-geodaten.de .endex-geodaten.de localhost; +``` + +### 2b — Neuen HTTPS-Server-Block hinzufügen + +```nginx +# WEBGIS server { listen 443 ssl; server_name .endex-geodaten.de; @@ -18,7 +57,7 @@ server { } location ~ \.php$ { - fastcgi_pass webgis--php:9000; + fastcgi_pass webgis--php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; @@ -26,8 +65,34 @@ server { } ``` -3. Docker container für UI +--- + +## Schritt 3 — SSL-Zertifikat erneuern + +Da kein Wildcard-Zertifikat verwendet wird, muss das Cert neu ausgestellt werden: + +```bash +docker compose run --rm certbot certonly --webroot \ + --webroot-path=/var/www/certbot \ + -d endex-geodaten.de \ + -d www.endex-geodaten.de \ + -d git.endex-geodaten.de \ + -d lohne.endex-geodaten.de \ + -d .endex-geodaten.de ``` + +Nginx neu laden: +```bash +docker compose exec nginx nginx -s reload +``` + +--- + +## Schritt 4 — Docker Container in `docker-compose.yml` anlegen + +### PHP/UI Container + +```yaml webgis--php: build: php-docker/ container_name: webgis--php @@ -38,41 +103,81 @@ server { - webgis--nw ``` -und Datenbank anlegen. +### Datenbank Container -``` - webgis-db: +```yaml + webgis--db: image: postgis/postgis:15-3.3 container_name: webgis--db restart: always ports: - "127.0.0.1:543:5432" # inside the container always 5432 environment: - - POSTGRES_USER=${WEBGIS_DB_USER} # maybe go back to default username - - POSTGRES_PASSWORD=${WEBGIS_DB_PW} # must be secure and unique - - POSTGRES_DB=${WEBGIS_DB_NAME} #same as container name + - POSTGRES_USER=${WEBGIS__DB_USER} + - POSTGRES_PASSWORD=${WEBGIS__DB_PW} + - POSTGRES_DB=${WEBGIS__DB_NAME} volumes: - ./webgis--data:/var/lib/postgresql/data networks: - webgis--nw ``` -4. nginx Volume für neue Stadt in ```docker-compose.yml``` anlegen -``` -./webgis-:/var/www/webgis- +### Netzwerk ergänzen + +Unter dem `networks:` Block am Ende der `docker-compose.yml`: + +```yaml +networks: + webgis--nw: + driver: bridge ``` +--- -5. Frontend source code nach ```webgis-``` klonen +## Schritt 5 — Nginx Volume ergänzen + +Beim nginx-Service in `docker-compose.yml` das neue Volume eintragen: + +```yaml +volumes: + - ./webgis-:/var/www/webgis- ``` + +--- + +## Schritt 6 — Frontend Source Code klonen + +```bash git submodule add -b https://git.endex-geodaten.de/lukas.uptmoor/webgis-.git ``` -Jede Kommune sollte ein eigenes Repo kriegen, da Features am Anfang variieren. +> Jede Kommune erhält ein eigenes Repo, da Features initial variieren können. +--- -6. Mit der Datenbank verbinden über SSH-Tunnel +## Schritt 7 — Container starten + +```bash +docker compose up -d webgis--php webgis--db ``` + +Logs prüfen: +```bash +docker compose logs -f webgis--php +docker compose logs -f webgis--db +``` + +--- + +## Schritt 8 — Datenbank vorbereiten + +SSH-Tunnel öffnen: +```bash ssh -L 5433:localhost:543 root@endex-geodaten.de ``` -und Datenbank für Anwendung vorbereiten. \ No newline at end of file + +Strukturen laden: + +```bash +docker exec -it webgis--db psql -U $POSTGRES_USER -d $POSTGRES_DB < migrations/001_initial_schema.sql +``` \ No newline at end of file