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>
This commit is contained in:
82
deploy.sh
Executable file
82
deploy.sh
Executable file
@@ -0,0 +1,82 @@
|
||||
#!/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'"
|
||||
Reference in New Issue
Block a user