Files
PiDoBot/setup.sh
2026-03-03 22:08:15 +00:00

62 lines
1.9 KiB
Bash

#!/bin/bash
# Konfiguration
REPO_URL="https://git.pi-farm.de/pi-farm/PiDoBot.git"
INSTALL_DIR="pi-orchestrator"
echo ">>> Starte Setup für den Pi-Orchestrator Master..."
# 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
# 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
echo "--- Installiere Python-Pakete aus requirements.txt..."
pip install --upgrade pip
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 (für passwortlosen Zugriff auf Nodes)
if [ ! -f "$HOME/.ssh/id_rsa" ]; then
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
echo ">>> Installation abgeschlossen!"
echo "--- Starte den Master-Server auf Port 8000..."
# 6. Programm starten
python3 -m uvicorn main:app --host 0.0.0.0 --port 8000