- 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>
83 lines
2.4 KiB
Bash
Executable File
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'"
|