EXTENSION.md updated and completed

This commit is contained in:
luptmoor
2026-04-23 11:42:03 +02:00
parent f23897018c
commit d0bba3d3f8

View File

@@ -1,8 +1,47 @@
## Neue Ideenkarte anlegen # Neue Ideenkarte anlegen
1. DNS record ```<name>``` A 195.59.32.237 600s
2. Nginx Weiterleitung in ```default.conf```:
## Ü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:
```bash
dig <name>.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 <name>.endex-geodaten.de localhost;
```
### 2b — Neuen HTTPS-Server-Block hinzufügen
```nginx
# WEBGIS <NAME>
server { server {
listen 443 ssl; listen 443 ssl;
server_name <name>.endex-geodaten.de; server_name <name>.endex-geodaten.de;
@@ -18,7 +57,7 @@ server {
} }
location ~ \.php$ { location ~ \.php$ {
fastcgi_pass webgis-<name>-php:9000; fastcgi_pass webgis-<name>-php:9000;
fastcgi_index index.php; fastcgi_index index.php;
include fastcgi_params; include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 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 <name>.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-<name>-php: webgis-<name>-php:
build: php-docker/ build: php-docker/
container_name: webgis-<name>-php container_name: webgis-<name>-php
@@ -38,41 +103,81 @@ server {
- webgis-<name>-nw - webgis-<name>-nw
``` ```
und Datenbank anlegen. ### Datenbank Container
``` ```yaml
webgis-<name>db: webgis-<name>-db:
image: postgis/postgis:15-3.3 image: postgis/postgis:15-3.3
container_name: webgis-<name>-db container_name: webgis-<name>-db
restart: always restart: always
ports: ports:
- "127.0.0.1:543<ID>:5432" # inside the container always 5432 - "127.0.0.1:543<ID>:5432" # inside the container always 5432
environment: environment:
- POSTGRES_USER=${WEBGIS_DB_USER} # maybe go back to default username - POSTGRES_USER=${WEBGIS_<NAME>_DB_USER}
- POSTGRES_PASSWORD=${WEBGIS_DB_PW} # must be secure and unique - POSTGRES_PASSWORD=${WEBGIS_<NAME>_DB_PW}
- POSTGRES_DB=${WEBGIS_DB_NAME} #same as container name - POSTGRES_DB=${WEBGIS_<NAME>_DB_NAME}
volumes: volumes:
- ./webgis-<name>-data:/var/lib/postgresql/data - ./webgis-<name>-data:/var/lib/postgresql/data
networks: networks:
- webgis-<name>-nw - webgis-<name>-nw
``` ```
4. nginx Volume für neue Stadt in ```docker-compose.yml``` anlegen ### Netzwerk ergänzen
```
./webgis-<name>:/var/www/webgis-<name> Unter dem `networks:` Block am Ende der `docker-compose.yml`:
```yaml
networks:
webgis-<name>-nw:
driver: bridge
``` ```
---
5. Frontend source code nach ```webgis-<name>``` klonen ## Schritt 5 — Nginx Volume ergänzen
Beim nginx-Service in `docker-compose.yml` das neue Volume eintragen:
```yaml
volumes:
- ./webgis-<name>:/var/www/webgis-<name>
``` ```
---
## Schritt 6 — Frontend Source Code klonen
```bash
git submodule add -b <branch-name> https://git.endex-geodaten.de/lukas.uptmoor/webgis-<name>.git git submodule add -b <branch-name> https://git.endex-geodaten.de/lukas.uptmoor/webgis-<name>.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-<name>-php webgis-<name>-db
``` ```
Logs prüfen:
```bash
docker compose logs -f webgis-<name>-php
docker compose logs -f webgis-<name>-db
```
---
## Schritt 8 — Datenbank vorbereiten
SSH-Tunnel öffnen:
```bash
ssh -L 5433:localhost:543<ID> root@endex-geodaten.de ssh -L 5433:localhost:543<ID> root@endex-geodaten.de
``` ```
und Datenbank für Anwendung vorbereiten.
Strukturen laden:
```bash
docker exec -it webgis-<name>-db psql -U $POSTGRES_USER -d $POSTGRES_DB < migrations/001_initial_schema.sql
```