183 lines
3.7 KiB
Markdown
183 lines
3.7 KiB
Markdown
# 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:
|
|
```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 {
|
|
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:
|
|
|
|
```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:
|
|
build: php-docker/
|
|
container_name: webgis-<name>-php
|
|
volumes:
|
|
- ./webgis-<name>:/var/www/webgis-<name>
|
|
networks:
|
|
- frontend
|
|
- webgis-<name>-nw
|
|
```
|
|
|
|
### Datenbank Container
|
|
|
|
```yaml
|
|
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`:
|
|
|
|
```yaml
|
|
networks:
|
|
webgis-<name>-nw:
|
|
driver: bridge
|
|
```
|
|
|
|
---
|
|
|
|
## 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
|
|
```
|
|
|
|
> Jede Kommune erhält ein eigenes Repo, da Features initial variieren können.
|
|
|
|
---
|
|
|
|
## 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
|
|
```
|
|
|
|
Strukturen laden:
|
|
|
|
```bash
|
|
docker exec -it webgis-<name>-db psql -U $POSTGRES_USER -d $POSTGRES_DB < migrations/001_initial_schema.sql
|
|
``` |