Files
Audio-Classifier/deploy.sh
Benoit e863f61103 Add server deployment support with Essentia
- Add install-server.sh for easy deployment on Linux servers
- Update Dockerfile to auto-detect architecture (x86_64/ARM64)
- Add deploy.sh for remote deployment
- Update requirements.txt with Essentia support notes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 23:04:29 +01:00

83 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# Script de déploiement pour Audio Classifier
# Usage: ./deploy.sh [user@]hostname
set -e
if [ -z "$1" ]; then
echo "Usage: ./deploy.sh user@hostname"
echo "Exemple: ./deploy.sh root@mon-serveur.com"
exit 1
fi
SERVER=$1
APP_NAME="audio-classifier"
REMOTE_DIR="~/$APP_NAME"
echo "🚀 Déploiement de Audio Classifier sur $SERVER"
echo ""
# 1. Vérifier la connexion SSH
echo "📡 Vérification de la connexion SSH..."
ssh $SERVER "echo '✅ Connexion SSH OK'" || exit 1
echo ""
# 2. Créer le dossier distant
echo "📁 Création du dossier distant $REMOTE_DIR..."
ssh $SERVER "mkdir -p $REMOTE_DIR"
echo ""
# 3. Copier les fichiers
echo "📦 Transfert des fichiers..."
rsync -avz --progress \
--exclude 'node_modules' \
--exclude '.next' \
--exclude '__pycache__' \
--exclude '*.pyc' \
--exclude '.git' \
--exclude 'backend/models/*.pb' \
./ $SERVER:$REMOTE_DIR/
echo ""
# 4. Télécharger les modèles Essentia sur le serveur
echo "🤖 Téléchargement des modèles Essentia..."
ssh $SERVER "cd $REMOTE_DIR && bash scripts/download-essentia-models.sh"
echo ""
# 5. Vérifier Docker
echo "🐳 Vérification de Docker..."
ssh $SERVER "command -v docker >/dev/null 2>&1" || {
echo "⚠️ Docker n'est pas installé sur le serveur."
echo "Installation de Docker..."
ssh $SERVER "curl -fsSL https://get.docker.com | sudo sh && sudo usermod -aG docker \$(whoami)"
echo "✅ Docker installé. Vous devrez peut-être vous reconnecter au serveur."
}
ssh $SERVER "command -v docker-compose >/dev/null 2>&1 || command -v docker compose >/dev/null 2>&1" || {
echo "⚠️ Docker Compose n'est pas installé."
echo "Installation de Docker Compose..."
ssh $SERVER "sudo apt-get update && sudo apt-get install -y docker-compose-plugin"
}
echo ""
# 6. Build et démarrage
echo "🔨 Build et démarrage de l'application..."
ssh $SERVER "cd $REMOTE_DIR && docker-compose down && docker-compose build && docker-compose up -d"
echo ""
# 7. Vérifier le statut
echo "📊 Vérification du statut..."
sleep 5
ssh $SERVER "cd $REMOTE_DIR && docker-compose ps"
echo ""
echo "✅ Déploiement terminé !"
echo ""
echo "🌐 L'application devrait être accessible sur:"
echo " - Backend API: http://$SERVER:8000"
echo " - Frontend: http://$SERVER:3000"
echo ""
echo "📝 Pour voir les logs:"
echo " ssh $SERVER 'cd $REMOTE_DIR && docker-compose logs -f'"