diff --git a/deploy-server.sh b/deploy-server.sh index 92bf080..7e1387d 100755 --- a/deploy-server.sh +++ b/deploy-server.sh @@ -46,6 +46,13 @@ fi log_info "Starte Server-Side Deployment für YourPart Daemon..." # 1. Prüfe Dependencies +# Prüfe ob wir root-Rechte haben für bestimmte Operationen +check_sudo() { + if ! sudo -n true 2>/dev/null; then + log_info "Einige Operationen benötigen sudo-Rechte..." + fi +} + log_info "Prüfe Dependencies..." if ! command -v cmake &> /dev/null; then log_error "CMake nicht gefunden. Führen Sie zuerst install-dependencies-ubuntu22.sh aus!" @@ -90,7 +97,7 @@ log_success "Build abgeschlossen" log_info "Prüfe Benutzer $DAEMON_USER..." if ! id "$DAEMON_USER" &>/dev/null; then log_info "Erstelle Benutzer $DAEMON_USER..." - useradd --system --shell /bin/false --home-dir "$REMOTE_DIR" --create-home "$DAEMON_USER" + sudo useradd --system --shell /bin/false --home-dir "$REMOTE_DIR" --create-home "$DAEMON_USER" log_success "Benutzer $DAEMON_USER erstellt" else log_info "Benutzer $DAEMON_USER existiert bereits" @@ -99,48 +106,48 @@ fi # 4. Erstelle Verzeichnisse log_info "Erstelle Verzeichnisse..." mkdir -p "$REMOTE_DIR"/{logs,config} -mkdir -p /etc/yourpart -mkdir -p /var/log/yourpart +sudo mkdir -p /etc/yourpart +sudo mkdir -p /var/log/yourpart # 5. Kopiere Dateien log_info "Kopiere Dateien..." -cp "$BUILD_DIR/yourpart-daemon" /usr/local/bin/ -cp daemon.conf /etc/yourpart/ -cp yourpart-daemon.service /etc/systemd/system/ +sudo cp "$BUILD_DIR/yourpart-daemon" /usr/local/bin/ +sudo cp daemon.conf /etc/yourpart/ +sudo cp yourpart-daemon.service /etc/systemd/system/ # 6. Setze Berechtigungen log_info "Setze Berechtigungen..." -chmod +x /usr/local/bin/yourpart-daemon -chown -R "$DAEMON_USER:$DAEMON_USER" "$REMOTE_DIR" -chown -R "$DAEMON_USER:$DAEMON_USER" /var/log/yourpart -chmod 600 /etc/yourpart/daemon.conf +sudo chmod +x /usr/local/bin/yourpart-daemon +sudo chown -R "$DAEMON_USER:$DAEMON_USER" "$REMOTE_DIR" +sudo chown -R "$DAEMON_USER:$DAEMON_USER" /var/log/yourpart +sudo chmod 600 /etc/yourpart/daemon.conf # 7. Lade systemd neu log_info "Lade systemd Konfiguration neu..." -systemctl daemon-reload +sudo systemctl daemon-reload # 8. Aktiviere Service log_info "Aktiviere Service..." -systemctl enable "$SERVICE_NAME" +sudo systemctl enable "$SERVICE_NAME" # 9. Starte Service log_info "Starte Service..." -if systemctl is-active --quiet "$SERVICE_NAME"; then +if sudo systemctl is-active --quiet "$SERVICE_NAME"; then log_info "Service läuft bereits, starte neu..." - systemctl restart "$SERVICE_NAME" + sudo systemctl restart "$SERVICE_NAME" else - systemctl start "$SERVICE_NAME" + sudo systemctl start "$SERVICE_NAME" fi # 10. Prüfe Status log_info "Prüfe Service-Status..." sleep 2 -if systemctl is-active --quiet "$SERVICE_NAME"; then +if sudo systemctl is-active --quiet "$SERVICE_NAME"; then log_success "Service läuft erfolgreich!" - systemctl status "$SERVICE_NAME" --no-pager + sudo systemctl status "$SERVICE_NAME" --no-pager else log_error "Service konnte nicht gestartet werden!" - log_info "Logs anzeigen mit: journalctl -u $SERVICE_NAME -f" + log_info "Logs anzeigen mit: sudo journalctl -u $SERVICE_NAME -f" exit 1 fi @@ -148,12 +155,12 @@ fi log_success "Deployment erfolgreich abgeschlossen!" log_info "" log_info "Nützliche Befehle:" -log_info "- Service-Status: systemctl status $SERVICE_NAME" -log_info "- Service stoppen: systemctl stop $SERVICE_NAME" -log_info "- Service starten: systemctl start $SERVICE_NAME" -log_info "- Service neustarten: systemctl restart $SERVICE_NAME" -log_info "- Logs anzeigen: journalctl -u $SERVICE_NAME -f" -log_info "- Logs der letzten 100 Zeilen: journalctl -u $SERVICE_NAME -n 100" +log_info "- Service-Status: sudo systemctl status $SERVICE_NAME" +log_info "- Service stoppen: sudo systemctl stop $SERVICE_NAME" +log_info "- Service starten: sudo systemctl start $SERVICE_NAME" +log_info "- Service neustarten: sudo systemctl restart $SERVICE_NAME" +log_info "- Logs anzeigen: sudo journalctl -u $SERVICE_NAME -f" +log_info "- Logs der letzten 100 Zeilen: sudo journalctl -u $SERVICE_NAME -n 100" log_info "" log_info "Konfigurationsdatei: /etc/yourpart/daemon.conf" log_info "Log-Verzeichnis: /var/log/yourpart/"