#!/bin/bash # Chargement des variables d'environnement depuis .env (si présent) set -a if [ -f .env ]; then . ./.env fi set +a SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # Workaround pour WSL: SQLite ne fonctionne pas bien sur /mnt/c/... # Utiliser un chemin Linux natif pour la base de données (force override) if [[ "$(pwd)" == /mnt/* ]]; then mkdir -p ~/homelab-data/logs export DATABASE_URL="sqlite+aiosqlite:////home/$USER/homelab-data/homelab.db" export LOGS_DIR="$HOME/homelab-data/logs" echo "⚠️ WSL détecté: BD stockée dans ~/homelab-data/" fi # copier les clés SSH du répertoire docker/ssh_keys vers ~/.ssh cp docker/ssh_keys/id_automation_ansible ~/.ssh/ cp docker/ssh_keys/id_automation_ansible.pub ~/.ssh/ # ajouter les droits aux clés SSH (sans changer le répertoire courant du script) ( cd ~/.ssh chmod 600 id_automation_ansible chmod 644 id_automation_ansible.pub ) # Appliquer les migrations avant de démarrer l'app (important si la BD vient d'être supprimée) # Utiliser le venv du projet si présent (important: dépendances runtime comme asyncssh) PYTHON_BIN="python" ALEMBIC_BIN="alembic" if [ -x ".venv/bin/python" ]; then PYTHON_BIN=".venv/bin/python" if [ -x ".venv/bin/alembic" ]; then ALEMBIC_BIN=".venv/bin/alembic" else ALEMBIC_BIN="$PYTHON_BIN -m alembic" fi fi $ALEMBIC_BIN upgrade head # Commande de démarrage du backend FastAPI $PYTHON_BIN -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload