Refactor proposal mapping in FalukantService to handle null characters

- Updated the proposal mapping logic to filter out proposals with null proposed characters, enhancing data integrity.
- Ensured that noble title is safely accessed with a fallback to null, improving robustness in character data handling.
This commit is contained in:
Torsten Schulz (local)
2026-01-14 14:57:45 +01:00
parent 52c7f1c7ba
commit d1359ccc36
2 changed files with 119 additions and 12 deletions

105
websocket-config-guide.md Normal file
View File

@@ -0,0 +1,105 @@
# WebSocket-Konfiguration für direkte Verbindungen
## Port-Aufteilung
- **Port 2020**: API (HTTP, intern, über Apache-Proxy)
- **Port 4443**: Socket.io (HTTPS, extern, direkt erreichbar)
- **Port 4551**: Daemon-WebSocket (HTTPS, extern, direkt erreichbar)
## Umgebungsvariablen für Backend-Server (Socket.io auf Port 4443)
Füge diese Variablen zur Backend `.env` oder Systemd-Service-Datei hinzu:
```bash
# Socket.io HTTPS-Server
SOCKET_IO_PORT=4443
SOCKET_IO_TLS=1
SOCKET_IO_TLS_KEY_PATH=/etc/letsencrypt/live/www.your-part.de/privkey.pem
SOCKET_IO_TLS_CERT_PATH=/etc/letsencrypt/live/www.your-part.de/fullchain.pem
# Optional:
# SOCKET_IO_TLS_CA_PATH=/etc/letsencrypt/live/www.your-part.de/chain.pem
```
## Umgebungsvariablen für Daemon (Port 4551)
Füge diese Variablen zur Daemon-Systemd-Service-Datei hinzu:
```bash
# Daemon WebSocket HTTPS-Server
DAEMON_PORT=4551
DAEMON_TLS=1
DAEMON_TLS_KEY_PATH=/etc/letsencrypt/live/www.your-part.de/privkey.pem
DAEMON_TLS_CERT_PATH=/etc/letsencrypt/live/www.your-part.de/fullchain.pem
# Optional:
# DAEMON_TLS_CA_PATH=/etc/letsencrypt/live/www.your-part.de/chain.pem
```
## Prüfen der Konfiguration
### 1. Backend-Server-Logs prüfen
```bash
sudo journalctl -u yourpart-backend -n 50 -f
```
Du solltest sehen:
- `[Socket.io] HTTPS-Server für Socket.io konfiguriert auf Port 4443`
- `[Socket.io] HTTPS-Server läuft auf Port 4443 (direkt erreichbar)`
Wenn du stattdessen siehst:
- `[Socket.io] TLS nicht konfiguriert - Socket.io wird nicht verfügbar sein`
Dann sind die Umgebungsvariablen nicht gesetzt.
### 2. Ports prüfen
```bash
sudo netstat -tlnp | grep -E "(4443|4551|2020)"
```
Du solltest sehen:
- Port 2020: Backend API (HTTP)
- Port 4443: Backend Socket.io (HTTPS)
- Port 4551: Daemon WebSocket (HTTPS)
### 3. Firewall prüfen
```bash
sudo ufw status | grep -E "(4443|4551)"
```
Beide Ports sollten erlaubt sein.
## Systemd-Service-Dateien aktualisieren
### Backend-Service (`/etc/systemd/system/yourpart-backend.service`)
Stelle sicher, dass die Umgebungsvariablen in der `[Service]`-Sektion gesetzt sind:
```ini
[Service]
Environment="SOCKET_IO_PORT=4443"
Environment="SOCKET_IO_TLS=1"
Environment="SOCKET_IO_TLS_KEY_PATH=/etc/letsencrypt/live/www.your-part.de/privkey.pem"
Environment="SOCKET_IO_TLS_CERT_PATH=/etc/letsencrypt/live/www.your-part.de/fullchain.pem"
```
### Daemon-Service (`/etc/systemd/system/yourpart-daemon.service`)
Stelle sicher, dass die Umgebungsvariablen in der `[Service]`-Sektion gesetzt sind:
```ini
[Service]
Environment="DAEMON_PORT=4551"
Environment="DAEMON_TLS=1"
Environment="DAEMON_TLS_KEY_PATH=/etc/letsencrypt/live/www.your-part.de/privkey.pem"
Environment="DAEMON_TLS_CERT_PATH=/etc/letsencrypt/live/www.your-part.de/fullchain.pem"
```
Nach dem Ändern der Service-Dateien:
```bash
sudo systemctl daemon-reload
sudo systemctl restart yourpart-backend
sudo systemctl restart yourpart-daemon
```