Files
webgis-lohne/EXTENSION.md
2026-04-28 09:20:54 +02:00

3.7 KiB

Neue Ideenkarte anlegen

Übersicht

Variable Bedeutung
<name> Name der Kommune (z.B. lohne)
<ID> Eindeutige Port-ID für die Datenbank (z.B. 4 → Port 5434)
<branch-name> Git-Branch des Frontend-Repos

Schritt 1 — DNS Record anlegen

Im DNS-Panel einen neuen A-Record anlegen:

Feld Wert
Name <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:

dig <name>.endex-geodaten.de

Schritt 2 — Nginx default.conf anpassen

2a — Subdomain in den Port-80-Block eintragen

server_name endex-geodaten.de www.endex-geodaten.de git.endex-geodaten.de lohne.endex-geodaten.de <name>.endex-geodaten.de localhost;

2b — Neuen HTTPS-Server-Block hinzufügen

# WEBGIS <NAME>
server {
    listen 443 ssl;
    server_name <name>.endex-geodaten.de;

    ssl_certificate /etc/letsencrypt/live/endex-geodaten.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/endex-geodaten.de/privkey.pem;

    root /var/www/webgis-<name>/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass webgis-<name>-php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Schritt 3 — SSL-Zertifikat erneuern

Da kein Wildcard-Zertifikat verwendet wird, muss das Cert neu ausgestellt werden:

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 <name>.endex-geodaten.de

Nginx neu laden:

docker compose exec nginx nginx -s reload

Schritt 4 — Docker Container in docker-compose.yml anlegen

PHP/UI Container

  webgis-<name>-php:
    build: php-docker/
    container_name: webgis-<name>-php
    volumes:
      - ./webgis-<name>:/var/www/webgis-<name>
    networks:
      - frontend
      - webgis-<name>-nw

Datenbank Container

  webgis-<name>-db:
    image: postgis/postgis:15-3.3
    container_name: webgis-<name>-db
    restart: always
    ports:
      - "127.0.0.1:543<ID>:5432" # inside the container always 5432
    environment:
      - POSTGRES_USER=${WEBGIS_<NAME>_DB_USER}
      - POSTGRES_PASSWORD=${WEBGIS_<NAME>_DB_PW}
      - POSTGRES_DB=${WEBGIS_<NAME>_DB_NAME}
    volumes:
      - ./webgis-<name>-data:/var/lib/postgresql/data
    networks:
      - webgis-<name>-nw

Netzwerk ergänzen

Unter dem networks: Block am Ende der docker-compose.yml:

networks:
  webgis-<name>-nw:
    driver: bridge

Schritt 5 — Nginx Volume ergänzen

Beim nginx-Service in docker-compose.yml das neue Volume eintragen:

volumes:
  - ./webgis-<name>:/var/www/webgis-<name>

Schritt 6 — Frontend Source Code klonen

git submodule add -b <branch-name> https://git.endex-geodaten.de/lukas.uptmoor/webgis-<name>.git

Jede Kommune erhält ein eigenes Repo, da Features initial variieren können.


Schritt 7 — Container starten

docker compose up -d webgis-<name>-php webgis-<name>-db

Logs prüfen:

docker compose logs -f webgis-<name>-php
docker compose logs -f webgis-<name>-db

Schritt 8 — Datenbank vorbereiten

SSH-Tunnel öffnen:

ssh -L 5433:localhost:543<ID> root@endex-geodaten.de

Strukturen laden:

docker exec -it webgis-<name>-db psql -U $POSTGRES_USER -d $POSTGRES_DB < migrations/001_initial_schema.sql