Checkpoint: Version finale avec authentification locale corrigée : utilisation de sdk.createSessionToken() et configuration SameSite=Lax pour compatibilité HTTP
This commit is contained in:
159
setup-env.sh
Executable file
159
setup-env.sh
Executable file
@@ -0,0 +1,159 @@
|
||||
#!/bin/bash
|
||||
|
||||
###############################################################################
|
||||
# Script de configuration du fichier .env pour production
|
||||
###############################################################################
|
||||
|
||||
set -e
|
||||
|
||||
# Couleurs
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo "╔════════════════════════════════════════════════════════════════╗"
|
||||
echo "║ Configuration du fichier .env pour production ║"
|
||||
echo "╚════════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
# Vérifier si .env existe déjà
|
||||
if [ -f ".env" ]; then
|
||||
echo -e "${YELLOW}[WARN]${NC} Le fichier .env existe déjà"
|
||||
read -p "Voulez-vous le remplacer? (y/N) " -n 1 -r
|
||||
echo ""
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Configuration annulée"
|
||||
exit 0
|
||||
fi
|
||||
# Sauvegarder l'ancien
|
||||
cp .env .env.backup.$(date +%Y%m%d_%H%M%S)
|
||||
echo -e "${GREEN}[OK]${NC} Ancien fichier sauvegardé"
|
||||
fi
|
||||
|
||||
echo "Ce script va créer un fichier .env avec les paramètres minimaux requis."
|
||||
echo ""
|
||||
|
||||
# Demander DATABASE_URL
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo " 1. Configuration de la base de données"
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
read -p "Hôte MySQL (défaut: localhost): " DB_HOST
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
|
||||
read -p "Port MySQL (défaut: 3306): " DB_PORT
|
||||
DB_PORT=${DB_PORT:-3306}
|
||||
|
||||
read -p "Nom de la base de données (défaut: formation_manager): " DB_NAME
|
||||
DB_NAME=${DB_NAME:-formation_manager}
|
||||
|
||||
read -p "Utilisateur MySQL: " DB_USER
|
||||
read -sp "Mot de passe MySQL: " DB_PASS
|
||||
echo ""
|
||||
|
||||
DATABASE_URL="mysql://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo " 2. Génération du JWT_SECRET"
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
JWT_SECRET=$(openssl rand -base64 32)
|
||||
echo -e "${GREEN}[OK]${NC} JWT_SECRET généré: ${JWT_SECRET:0:20}..."
|
||||
|
||||
echo ""
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo " 3. Configuration de l'application"
|
||||
echo "═══════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
read -p "Port de l'application (défaut: 3000): " PORT
|
||||
PORT=${PORT:-3000}
|
||||
|
||||
read -p "Titre de l'application (défaut: Gestion des Formations Manager Itinova): " APP_TITLE
|
||||
APP_TITLE=${APP_TITLE:-Gestion des Formations Manager Itinova}
|
||||
|
||||
# Créer le fichier .env
|
||||
cat > .env << EOF
|
||||
# ============================================================================
|
||||
# CONFIGURATION DE PRODUCTION - Formation Manager Itinova
|
||||
# Généré le $(date)
|
||||
# ============================================================================
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Base de données
|
||||
# ----------------------------------------------------------------------------
|
||||
DATABASE_URL=${DATABASE_URL}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Sécurité - JWT
|
||||
# ----------------------------------------------------------------------------
|
||||
JWT_SECRET=${JWT_SECRET}
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Application
|
||||
# ----------------------------------------------------------------------------
|
||||
PORT=${PORT}
|
||||
NODE_ENV=production
|
||||
|
||||
# Titre de l'application
|
||||
VITE_APP_TITLE=${APP_TITLE}
|
||||
|
||||
# Logo de l'application
|
||||
VITE_APP_LOGO=/logo-itinova.png
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# OAuth Manus (configuration minimale pour éviter les erreurs)
|
||||
# ----------------------------------------------------------------------------
|
||||
VITE_APP_ID=formation-manager-itinova
|
||||
OAUTH_SERVER_URL=https://api.manus.im
|
||||
VITE_OAUTH_PORTAL_URL=https://portal.manus.im
|
||||
OWNER_OPEN_ID=local-owner
|
||||
OWNER_NAME=Administrateur
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# SMTP - Configuration email (optionnel)
|
||||
# ----------------------------------------------------------------------------
|
||||
# Laissez vide si vous n'utilisez pas l'envoi d'emails
|
||||
SMTP_HOST=
|
||||
SMTP_PORT=
|
||||
SMTP_USER=
|
||||
SMTP_PASS=
|
||||
SMTP_FROM=
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Analytics (optionnel)
|
||||
# ----------------------------------------------------------------------------
|
||||
VITE_ANALYTICS_ENDPOINT=
|
||||
VITE_ANALYTICS_WEBSITE_ID=
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# API Forge Manus (optionnel)
|
||||
# ----------------------------------------------------------------------------
|
||||
BUILT_IN_FORGE_API_URL=
|
||||
BUILT_IN_FORGE_API_KEY=
|
||||
VITE_FRONTEND_FORGE_API_KEY=
|
||||
VITE_FRONTEND_FORGE_API_URL=
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "╔════════════════════════════════════════════════════════════════╗"
|
||||
echo "║ Fichier .env créé avec succès! ║"
|
||||
echo "╚════════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
echo "📄 Fichier créé: $(pwd)/.env"
|
||||
echo ""
|
||||
echo "⚠️ IMPORTANT:"
|
||||
echo " 1. Le fichier .env contient des informations sensibles"
|
||||
echo " 2. Ne le partagez jamais publiquement"
|
||||
echo " 3. Assurez-vous qu'il n'est pas accessible via le web"
|
||||
echo ""
|
||||
echo "🔄 Prochaines étapes:"
|
||||
echo " 1. Vérifiez la configuration: cat .env"
|
||||
echo " 2. Appliquez les migrations: pnpm db:push"
|
||||
echo " 3. Compilez l'application: pnpm build"
|
||||
echo " 4. Redémarrez le service: sudo systemctl restart formation-manager"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user