Files
yourchat/deploy
Torsten Schulz (local) d619d70a76 Füge Unterstützung für SSL/TLS in die Konfiguration und das Build-System ein
- Integriere die libwebsockets-Bibliothek für SSL/TLS WebSocket-Unterstützung in `CMakeLists.txt`.
- Aktualisiere `chatconfig.json`, um SSL-Optionen wie `ssl_enabled`, `ssl_cert_path` und `ssl_key_path` hinzuzufügen.
- Ergänze das `deploy.sh`-Skript um einen Schritt zur optionalen Einrichtung von SSL/TLS.
- Modifiziere `update_config.sh`, um die SSL-Konfiguration in die Servereinstellungen zu integrieren.
- Implementiere eine Überprüfung in `main.cpp`, um den SSL-Status zu prüfen und entsprechende Meldungen auszugeben.
2025-09-04 12:05:22 +02:00
..

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 yourchat Benutzer
  • 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

  1. Repository klonen/übertragen:

    # Auf dem Ubuntu Server
    git clone <your-repo-url>
    cd YourChat
    
  2. Vollständiges Deployment:

    chmod +x deploy/*.sh
    ./deploy/deploy.sh
    
  3. 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.*: Datenbankverbindung
  • rooms: 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 yourchat Benutzer
  • Konfigurationsdateien haben restriktive Berechtigungen
  • Service startet nicht automatisch nach Reboot (kann mit systemctl enable aktiviert werden)
  • Logs werden über systemd journal verwaltet