- 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.
4.3 KiB
YourChat Deployment Scripts
Diese Scripts ermöglichen das einfache Deployment von YourChat auf Ubuntu 22.04 Servern.
Voraussetzungen
- Ubuntu 22.04 LTS Server
- Sudo-Rechte
- Internetverbindung für Paket-Downloads
Scripts Übersicht
1. deploy.sh - Vollständiges Deployment
Verwendung: ./deploy/deploy.sh
Führt alle Deploy-Schritte automatisch aus:
- Installation der Abhängigkeiten
- Bauen der Anwendung
- Installation als Systemdienst
- Konfigurations-Setup
2. install_dependencies.sh - Abhängigkeiten installieren
Verwendung: ./deploy/install_dependencies.sh
Installiert alle benötigten Pakete:
- GCC-13 (als Standard-Compiler)
- CMake, Build-Tools
- OpenSSL, jsoncpp, pqxx
- PostgreSQL (optional)
3. build.sh - Anwendung bauen
Verwendung: ./deploy/build.sh
Baut die Anwendung mit aktiviertem Debug-Flag:
- Erstellt
build/Verzeichnis - Konfiguriert CMake mit
YC_DEBUG=ON - Kompiliert mit allen verfügbaren CPU-Kernen
4. install.sh - Anwendung installieren
Verwendung: ./deploy/install.sh
Installiert die Anwendung als Systemdienst:
- Erstellt
/opt/yourchat/Verzeichnis - Kopiert Binaries und Konfiguration
- Erstellt systemd Service
- Erstellt
yourchatBenutzer - Aktiviert Service
5. update_config.sh - Konfiguration aktualisieren
Verwendung: ./deploy/update_config.sh
Aktualisiert die Konfiguration sicher:
- Überschreibt keine bestehenden Einträge
- Ergänzt nur fehlende Konfigurationsoptionen
- Erstellt automatisch Backups
- Zeigt Änderungen an
6. update.sh - Anwendung aktualisieren
Verwendung: ./deploy/update.sh
Für zukünftige Updates:
- Stoppt Service
- Baut neue Version
- Aktualisiert Binaries
- Aktualisiert Konfiguration
- Startet Service neu
Schnellstart
-
Repository klonen/übertragen:
# Auf dem Ubuntu Server git clone <your-repo-url> cd YourChat -
Vollständiges Deployment:
chmod +x deploy/*.sh ./deploy/deploy.sh -
Service starten:
sudo systemctl start yourchat sudo systemctl status yourchat
Konfiguration
Die Konfiguration wird unter /opt/yourchat/config/chatconfig.json installiert.
Wichtige Einstellungen:
server.port: Port für den Chat-Server (Standard: 1235)database.*: Datenbankverbindungrooms: Vordefinierte Chat-Räume
Konfiguration bearbeiten:
sudo nano /opt/yourchat/config/chatconfig.json
Service-Verwaltung
# Service starten
sudo systemctl start yourchat
# Service stoppen
sudo systemctl stop yourchat
# Service neu starten
sudo systemctl restart yourchat
# Status prüfen
sudo systemctl status yourchat
# Logs anzeigen
sudo journalctl -u yourchat -f
# Service deaktivieren (startet nicht automatisch)
sudo systemctl disable yourchat
Firewall
Falls eine Firewall aktiv ist, den Port freigeben:
sudo ufw allow 1235/tcp
Troubleshooting
Service startet nicht
# Logs prüfen
sudo journalctl -u yourchat -n 50
# Konfiguration prüfen
sudo cat /opt/yourchat/config/chatconfig.json | python3 -m json.tool
Port bereits belegt
# Prüfen welcher Prozess den Port verwendet
sudo netstat -tlnp | grep 1235
# Port in Konfiguration ändern
sudo nano /opt/yourchat/config/chatconfig.json
Berechtigungsprobleme
# Berechtigungen korrigieren
sudo chown -R yourchat:yourchat /opt/yourchat
sudo chmod 755 /opt/yourchat
sudo chmod 644 /opt/yourchat/config/chatconfig.json
Backup & Wiederherstellung
Backup erstellen
# Konfiguration
sudo cp /opt/yourchat/config/chatconfig.json /backup/chatconfig.json.backup
# Datenbank (falls lokal)
sudo pg_dump yourchat > /backup/database.backup
Wiederherstellung
# Konfiguration
sudo cp /backup/chatconfig.json.backup /opt/yourchat/config/chatconfig.json
sudo chown yourchat:yourchat /opt/yourchat/config/chatconfig.json
# Service neu starten
sudo systemctl restart yourchat
Updates
Für zukünftige Updates:
# Code aktualisieren
git pull
# Anwendung updaten
./deploy/update.sh
Sicherheit
- Die Anwendung läuft als dedizierter
yourchatBenutzer - Konfigurationsdateien haben restriktive Berechtigungen
- Service startet nicht automatisch nach Reboot (kann mit
systemctl enableaktiviert werden) - Logs werden über systemd journal verwaltet