Initial commit - AHAD QUANT v1
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user