setup.sh aktualisiert
This commit is contained in:
78
setup.sh
78
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
|
||||
Reference in New Issue
Block a user