diff --git a/setup.sh b/setup.sh index 6a44c63..b650aea 100644 --- a/setup.sh +++ b/setup.sh @@ -1,50 +1,62 @@ #!/bin/bash -# Farben für die Ausgabe -GREEN='\033[0-32m' -NC='\033[0m' # No Color +# Konfiguration +REPO_URL="https://github.com/DEIN_USER/DEIN_REPO.git" +INSTALL_DIR="pi-orchestrator" -echo -e "${GREEN}>>> Starte Pi-Orchestrator Master Installation...${NC}" +echo ">>> Starte Setup für den Pi-Orchestrator Master..." -# 1. System-Abhängigkeiten installieren -echo "--- Installiere System-Pakete (sshpass, git, python3-venv)..." -sudo apt-get update -sudo apt-get install -y sshpass git python3-pip python3-venv curl - -# 2. Projekt-Verzeichnis vorbereiten (falls nicht schon im Repo) -# Annahme: Das Script wird im Root des Repos ausgeführt -if [ ! -f "requirements.txt" ]; then - echo "Fehler: requirements.txt nicht gefunden. Bitte im Root des Repos ausführen." - exit 1 +# 1. Prüfen, ob Git installiert ist, ansonsten installieren +if ! command -v git &> /dev/null; then + echo "--- Git nicht gefunden. Installiere Git..." + sudo apt-get update + sudo apt-get install -y git +else + echo "--- Git ist bereits installiert." fi -# 3. Python Virtual Environment erstellen -echo "--- Erstelle Virtual Environment..." +# 2. Weitere zwingende System-Abhängigkeiten installieren +# sshpass: Für das automatische Kopieren des SSH-Keys auf neue Nodes +# python3-venv: Für die isolierte Python-Umgebung +echo "--- Installiere benötigte System-Pakete..." +sudo apt-get update +sudo apt-get install -y sshpass python3-pip python3-venv + +# 3. Repository klonen +if [ ! -d "$INSTALL_DIR" ]; then + echo "--- Klone Repository von $REPO_URL..." + git clone "$REPO_URL" "$INSTALL_DIR" +else + echo "--- Verzeichnis $INSTALL_DIR existiert bereits. Überspringe Klonen..." +fi + +# In das Verzeichnis wechseln +cd "$INSTALL_DIR" || exit + +# 4. Virtual Environment und Python-Abhängigkeiten einrichten +echo "--- Erstelle Python Virtual Environment..." python3 -m venv venv source venv/bin/activate -# 4. Python-Abhängigkeiten installieren -echo "--- Installiere Python-Pakete..." +echo "--- Installiere Python-Pakete aus requirements.txt..." pip install --upgrade pip -pip install -r requirements.txt +if [ -f "requirements.txt" ]; then + pip install -r requirements.txt +else + echo "FEHLER: requirements.txt nicht im Repository gefunden!" + exit 1 +fi -# 5. SSH-Key für den Master prüfen/erstellen +# 5. SSH-Key für den Master prüfen/erstellen (für passwortlosen Zugriff auf Nodes) if [ ! -f "$HOME/.ssh/id_rsa" ]; then - echo "--- Generiere SSH-Key für passwortlose Kommunikation..." + echo "--- Generiere SSH-Key für die passwortlose Kommunikation..." ssh-keygen -t rsa -N "" -f "$HOME/.ssh/id_rsa" +else + echo "--- SSH-Key existiert bereits." fi -# 6. Docker installieren (falls noch nicht da) -if ! [ -x "$(command -v docker)" ]; then - echo "--- Installiere Docker..." - curl -sSL https://get.docker.com | sh - sudo usermod -aG docker $USER -fi +echo ">>> Installation abgeschlossen!" +echo "--- Starte den Master-Server auf Port 8000..." -echo -e "${GREEN}>>> Installation abgeschlossen!${NC}" -echo "Starte den Bot auf Port 8000..." - -# 7. Programm starten -# Wir nutzen uvicorn für das FastAPI Backend -source venv/bin/activate +# 6. Programm starten python3 -m uvicorn main:app --host 0.0.0.0 --port 8000 \ No newline at end of file