Files
ahad-quant/install_service.sh
2026-06-25 14:00:20 +03:00

95 lines
2.9 KiB
Bash

#!/bin/bash
# AHAD QUANT — Installation service automatique (Linux VPS)
# Lance UNE SEULE FOIS en tant que root
# Apres ca : le serveur demarre automatiquement a chaque reboot
set -e
echo ""
echo "========================================"
echo " AHAD QUANT — Installation service"
echo "========================================"
echo ""
# Detecter le chemin du projet
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$SCRIPT_DIR"
PYTHON_BIN="$(which python3)"
SERVICE_USER="ahad_quant"
INSTALL_DIR="/opt/ahad_quant"
echo "[1/7] Dossier projet source : $PROJECT_DIR"
echo "[2/7] Python : $PYTHON_BIN"
# Créer l'utilisateur dédié (sans droits root, sans shell interactif)
echo "[3/7] Création de l'utilisateur système '$SERVICE_USER'..."
if ! id "$SERVICE_USER" &>/dev/null; then
useradd -r -s /bin/false -d "$INSTALL_DIR" -m "$SERVICE_USER"
echo " ✅ Utilisateur '$SERVICE_USER' créé"
else
echo " ✅ Utilisateur '$SERVICE_USER' existe déjà"
fi
# Copier le projet dans /opt/ahad_quant
echo "[4/7] Déploiement dans $INSTALL_DIR..."
mkdir -p "$INSTALL_DIR"
cp -r "$PROJECT_DIR"/. "$INSTALL_DIR/"
chown -R "$SERVICE_USER:$SERVICE_USER" "$INSTALL_DIR"
chmod 750 "$INSTALL_DIR"
echo " ✅ Fichiers copiés et permissions appliquées"
# Installer les dependances
echo "[5/7] Installation des dependances Python..."
pip3 install -r "$INSTALL_DIR/requirements.txt" -q
echo " ✅ Dépendances installées"
# Creer le fichier service systemd avec utilisateur non-root
echo "[6/7] Creation du service systemd (utilisateur: $SERVICE_USER)..."
cat > /etc/systemd/system/ahad_quant.service << EOF
[Unit]
Description=AHAD QUANT — Web Command Center
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=${SERVICE_USER}
WorkingDirectory=${INSTALL_DIR}
ExecStart=${PYTHON_BIN} ${INSTALL_DIR}/web_ui.py
Restart=always
RestartSec=10
Environment=PYTHONUNBUFFERED=1
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
# Activer et demarrer le service
echo "[7/7] Activation du service..."
systemctl daemon-reload
systemctl enable ahad_quant
systemctl start ahad_quant
echo ""
echo "========================================"
echo " Installation terminee !"
echo "========================================"
echo ""
echo " AHAD QUANT tourne sous l'utilisateur '$SERVICE_USER' (non-root)"
echo " Fichiers deployés dans : $INSTALL_DIR"
echo ""
echo " ⚠️ N'oubliez pas de configurer $INSTALL_DIR/.env :"
echo " cp $INSTALL_DIR/.env.example $INSTALL_DIR/.env"
echo " nano $INSTALL_DIR/.env"
echo ""
echo " Acces : http://$(hostname -I | awk '{print $1}'):8080"
echo ""
echo " Commandes utiles :"
echo " systemctl status ahad_quant # voir le statut"
echo " systemctl stop ahad_quant # arreter"
echo " systemctl restart ahad_quant # redemarrer"
echo " journalctl -u ahad_quant -f # voir les logs"
echo ""