Initial commit: CLEO ERP avec améliorations debug
- Configuration du debug conditionnel pour dev/recette - Fonction debug() globale avec niveaux - Logging des requêtes SQL - Handlers d'exceptions et d'erreurs globaux 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
100
deploy-cleo-dev.sh
Executable file
100
deploy-cleo-dev.sh
Executable file
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script de déploiement de Cleo vers l'environnement de développement
|
||||
|
||||
cd /Users/pierre/dev/cleo
|
||||
|
||||
# Configuration du serveur hôte Debian 12
|
||||
HOST_SSH_HOST=195.154.80.116 # Adresse IP du serveur hôte
|
||||
HOST_SSH_USER=root # Utilisateur SSH sur le serveur hôte
|
||||
HOST_SSH_PORT=22 # Port SSH du serveur hôte
|
||||
HOST_SSH_KEY=/Users/pierre/.ssh/id_rsa_mbpi # Clé SSH privée pour accéder au serveur hôte
|
||||
|
||||
# Configuration du conteneur Incus hébergeant cette application
|
||||
CT_PROJECT_NAME=default # Nom du projet Incus où se trouve le conteneur
|
||||
CT_NAME=dva-front # Nom du conteneur Incus
|
||||
CT_IP=13.23.33.42 # IP interne du conteneur Incus
|
||||
CT_SSH_USER=root # Utilisateur SSH dans le conteneur
|
||||
CT_SSH_PORT=22 # Port SSH interne du conteneur
|
||||
CT_SSH_KEY=/root/.ssh/id_rsa_in3_pierre # Clé SSH privée pour accéder au conteneur
|
||||
|
||||
# Configuration de l'application
|
||||
DOMAIN_NAME=dcleo.unikoffice.com # Nom de domaine du site
|
||||
SERVER_PORT=3000 # Port du serveur Node.js
|
||||
ADMIN_PORT=3001 # Port du serveur d'administration
|
||||
DEPLOY_DIR=/var/www # Répertoire de déploiement sur le conteneur
|
||||
APP_NAME=cleo # Nom de l'application et du fichier de config nginx
|
||||
|
||||
# Propriétaire et groupe pour les fichiers et dossiers de destination
|
||||
OWNER=nginx
|
||||
GROUP=nginx
|
||||
|
||||
# Vérifier que les variables nécessaires sont définies
|
||||
if [ -z "$HOST_SSH_HOST" ] || [ -z "$HOST_SSH_USER" ] || [ -z "$CT_NAME" ] || [ -z "$CT_PROJECT_NAME" ]; then
|
||||
echo "Erreur: Variables HOST_SSH_HOST, HOST_SSH_USER, CT_NAME et CT_PROJECT_NAME requises dans $ENV_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Variables pour les alertes (optionnelles)
|
||||
ALERT_EMAIL=${ALERT_EMAIL:-""}
|
||||
DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL:-""}
|
||||
|
||||
# Utiliser les valeurs par défaut si non définies
|
||||
HOST_SSH_PORT=${HOST_SSH_PORT:-22}
|
||||
SERVER_PORT=${SERVER_PORT:-3000}
|
||||
ADMIN_PORT=${ADMIN_PORT:-3001}
|
||||
DOMAIN_NAME=${DOMAIN_NAME:-$CT_IP}
|
||||
DEPLOY_DIR=${DEPLOY_DIR:-/var/www}
|
||||
APP_NAME=${APP_NAME:-d6soft}
|
||||
SUB_DIR=${SUB_DIR:-web}
|
||||
|
||||
# Afficher les paramètres
|
||||
echo "=== Paramètres de déploiement ==="
|
||||
echo "Serveur hôte: $HOST_SSH_USER@$HOST_SSH_HOST:$HOST_SSH_PORT"
|
||||
echo "Projet Incus: $CT_PROJECT_NAME"
|
||||
echo "Conteneur: $CT_NAME"
|
||||
echo "Domaine: $DOMAIN_NAME"
|
||||
echo "Répertoire de déploiement: $DEPLOY_DIR/$APP_NAME/$SUB_DIR"
|
||||
echo "Propriétaire: $OWNER"
|
||||
echo "Groupe: $GROUP"
|
||||
echo "=================================="
|
||||
|
||||
# Définir les options SSH
|
||||
SSH_OPTS="-p $HOST_SSH_PORT"
|
||||
SCP_OPTS="-P $HOST_SSH_PORT"
|
||||
if [ ! -z "$HOST_SSH_KEY" ]; then
|
||||
SSH_OPTS="$SSH_OPTS -i \"$HOST_SSH_KEY\""
|
||||
SCP_OPTS="$SCP_OPTS -i \"$HOST_SSH_KEY\""
|
||||
fi
|
||||
|
||||
# 1. Copier les fichiers vers le HOST incus
|
||||
echo "=== Copie des fichiers vers le HOST Incus ==="
|
||||
rsync -avz --progress --exclude='.log' --exclude='pub/files/upload' -e "ssh $SSH_OPTS" ./ $HOST_SSH_USER@$HOST_SSH_HOST:/tmp/$APP_NAME/
|
||||
|
||||
# 2. Créer le répertoire de destination dans le conteneur
|
||||
echo "=== Création du répertoire de destination dans le conteneur ==="
|
||||
eval "ssh $SSH_OPTS $HOST_SSH_USER@$HOST_SSH_HOST \"incus project switch $CT_PROJECT_NAME\""
|
||||
eval "ssh $SSH_OPTS $HOST_SSH_USER@$HOST_SSH_HOST \"incus exec $CT_NAME -- mkdir -p $DEPLOY_DIR/$APP_NAME\""
|
||||
|
||||
# 3. Transférer les fichiers vers le conteneur Incus
|
||||
echo "=== Transfert des fichiers vers le conteneur Incus ==="
|
||||
eval "ssh $SSH_OPTS $HOST_SSH_USER@$HOST_SSH_HOST \"incus file push --recursive /tmp/$APP_NAME/. $CT_NAME/$DEPLOY_DIR/\""
|
||||
|
||||
# 4. Configurer les permissions dans le conteneur
|
||||
echo "=== Configuration des permissions dans le conteneur ==="
|
||||
eval "ssh $SSH_OPTS $HOST_SSH_USER@$HOST_SSH_HOST \"incus exec $CT_NAME -- sh -c 'chown -R $OWNER:$GROUP $DEPLOY_DIR/$APP_NAME && \
|
||||
find $DEPLOY_DIR/$APP_NAME -type d -exec chmod 755 {} \\; && \
|
||||
find $DEPLOY_DIR/$APP_NAME -type f -exec chmod 644 {} \\; && \
|
||||
if [ -d $DEPLOY_DIR/$APP_NAME/server/logs ]; then chmod 775 $DEPLOY_DIR/$APP_NAME/server/logs; fi && \
|
||||
if [ -d $DEPLOY_DIR/$APP_NAME/mda/backend/logs ]; then chmod 775 $DEPLOY_DIR/$APP_NAME/mda/backend/logs; fi && \
|
||||
if [ -d $DEPLOY_DIR/$APP_NAME/mda/db ]; then chmod 775 $DEPLOY_DIR/$APP_NAME/mda/db; fi'\""
|
||||
|
||||
# 5. Nettoyer les fichiers temporaires sur l'hôte
|
||||
echo "=== Nettoyage des fichiers temporaires sur l'hôte ==="
|
||||
eval "ssh $SSH_OPTS $HOST_SSH_USER@$HOST_SSH_HOST \"rm -rf /tmp/$APP_NAME\""
|
||||
|
||||
echo "==================================================="
|
||||
echo "Déploiement terminé avec succès !"
|
||||
echo "==================================================="
|
||||
echo "Votre site $APP_NAME est maintenant déployé dans le conteneur $CT_NAME."
|
||||
echo "Chemin de déploiement: $DEPLOY_DIR/$APP_NAME/$SUB_DIR"
|
||||
Reference in New Issue
Block a user