Implementiere Benutzerverbindungskontrolle und verbessere Nachrichtenverwaltung
- Füge die Methode `removeUserDisconnected` in der ChatRoom-Klasse hinzu, um Benutzer bei Verbindungsabbrüchen zu entfernen und entsprechende Nachrichten zu senden. - Aktualisiere die ChatUser-Klasse, um einen Token-Getter bereitzustellen und die Verbindungsprüfung zu optimieren. - Ändere die Server-Klasse, um die Benutzerverwaltung bei Raumwechseln zu verbessern und Debug-Informationen hinzuzufügen. - Optimiere die Socket-Optionen für eine schnellere Fehlererkennung und verbessere die Handhabung von Anfragen.
This commit is contained in:
86
deploy/install.sh
Executable file
86
deploy/install.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
|
||||
# YourChat Installations Script
|
||||
# Installiert die Anwendung als Systemdienst
|
||||
|
||||
set -e # Beende bei Fehlern
|
||||
|
||||
echo "=== YourChat - Installation Script ==="
|
||||
|
||||
# Prüfe ob Build existiert
|
||||
if [ ! -f "build/yourchat" ]; then
|
||||
echo "Fehler: Build nicht gefunden. Bitte zuerst ./deploy/build.sh ausführen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Installationsverzeichnis erstellen
|
||||
echo "=== Installationsverzeichnis erstellen ==="
|
||||
sudo mkdir -p /opt/yourchat
|
||||
sudo mkdir -p /opt/yourchat/config
|
||||
sudo mkdir -p /opt/yourchat/logs
|
||||
|
||||
# Anwendung installieren
|
||||
echo "=== Anwendung installieren ==="
|
||||
sudo cp build/yourchat /opt/yourchat/
|
||||
sudo cp build/ws_probe /opt/yourchat/
|
||||
sudo chmod +x /opt/yourchat/yourchat
|
||||
sudo chmod +x /opt/yourchat/ws_probe
|
||||
|
||||
# Konfiguration installieren (nur wenn nicht vorhanden)
|
||||
echo "=== Konfiguration installieren ==="
|
||||
if [ ! -f "/opt/yourchat/config/chatconfig.json" ]; then
|
||||
sudo cp config/chatconfig.json /opt/yourchat/config/
|
||||
echo "Konfigurationsdatei installiert."
|
||||
else
|
||||
echo "Konfigurationsdatei existiert bereits - wird nicht überschrieben."
|
||||
fi
|
||||
|
||||
# Systemd Service erstellen
|
||||
echo "=== Systemd Service erstellen ==="
|
||||
sudo tee /etc/systemd/system/yourchat.service > /dev/null <<EOF
|
||||
[Unit]
|
||||
Description=YourChat Server
|
||||
After=network.target postgresql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=yourchat
|
||||
Group=yourchat
|
||||
WorkingDirectory=/opt/yourchat
|
||||
ExecStart=/opt/yourchat/yourchat
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Benutzer erstellen
|
||||
echo "=== Benutzer erstellen ==="
|
||||
if ! id "yourchat" &>/dev/null; then
|
||||
sudo useradd -r -s /bin/false -d /opt/yourchat yourchat
|
||||
echo "Benutzer 'yourchat' erstellt."
|
||||
else
|
||||
echo "Benutzer 'yourchat' existiert bereits."
|
||||
fi
|
||||
|
||||
# Berechtigungen setzen
|
||||
echo "=== Berechtigungen setzen ==="
|
||||
sudo chown -R yourchat:yourchat /opt/yourchat
|
||||
sudo chmod 755 /opt/yourchat
|
||||
sudo chmod 644 /opt/yourchat/config/chatconfig.json
|
||||
|
||||
# Systemd Service aktivieren
|
||||
echo "=== Systemd Service aktivieren ==="
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable yourchat.service
|
||||
|
||||
echo "=== Installation abgeschlossen! ==="
|
||||
echo ""
|
||||
echo "Nächste Schritte:"
|
||||
echo "1. Konfiguration anpassen: sudo nano /opt/yourchat/config/chatconfig.json"
|
||||
echo "2. Service starten: sudo systemctl start yourchat"
|
||||
echo "3. Status prüfen: sudo systemctl status yourchat"
|
||||
echo "4. Logs anzeigen: sudo journalctl -u yourchat -f"
|
||||
Reference in New Issue
Block a user