62 lines
2 KiB
Bash
Executable file
62 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
# Script de démarrage lab pour veza-chat-server
|
|
# Utilise la vraie base de données PostgreSQL veza_lab avec schema dédié 'chat'
|
|
|
|
set -euo pipefail
|
|
|
|
# Couleurs
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
# Vérifier que VEZA_LAB_DSN est défini
|
|
if [ -z "${VEZA_LAB_DSN:-}" ]; then
|
|
echo -e "${RED}❌ ERREUR: VEZA_LAB_DSN n'est pas défini${NC}"
|
|
echo "Définissez-le avec:"
|
|
echo " export VEZA_LAB_DSN='postgres://veza:veza_password@localhost:5432/veza_lab?sslmode=disable'"
|
|
exit 1
|
|
fi
|
|
|
|
# S'assurer que le schema 'chat' existe
|
|
echo -e "${BLUE}🔧 Vérification du schema 'chat'...${NC}"
|
|
psql "$VEZA_LAB_DSN" -c "CREATE SCHEMA IF NOT EXISTS chat;" > /dev/null
|
|
|
|
# Configuration de l'environnement avec schema dédié
|
|
# On ajoute options=-c search_path=chat pour forcer le schema par défaut
|
|
if [[ "$VEZA_LAB_DSN" == *"?"* ]]; then
|
|
export DATABASE_URL="${VEZA_LAB_DSN}&options=-c%20search_path=chat"
|
|
else
|
|
export DATABASE_URL="${VEZA_LAB_DSN}?options=-c%20search_path=chat"
|
|
fi
|
|
|
|
export CHAT_SERVER_PORT="${CHAT_SERVER_PORT:-8081}"
|
|
export CHAT_SERVER_HOST="${CHAT_SERVER_HOST:-0.0.0.0}"
|
|
export RUST_LOG="${RUST_LOG:-info}"
|
|
export RABBITMQ_ENABLE="${RABBITMQ_ENABLE:-false}"
|
|
|
|
# Vérifier que le binaire existe
|
|
if [ ! -f "./target/release/chat-server" ]; then
|
|
echo -e "${YELLOW}⚠️ Binaire non trouvé, compilation...${NC}"
|
|
cargo build --release
|
|
fi
|
|
|
|
# Générer JWT_SECRET si non défini
|
|
if [ -z "${JWT_SECRET:-}" ]; then
|
|
export JWT_SECRET=$(openssl rand -base64 32)
|
|
echo -e "${YELLOW}⚠️ JWT_SECRET généré automatiquement${NC}"
|
|
fi
|
|
|
|
echo -e "${BLUE}🚀 Démarrage veza-chat-server (lab)${NC}"
|
|
echo "=================================="
|
|
echo -e "${GREEN}✅ DATABASE_URL: ${DATABASE_URL%%@*}@***${NC}"
|
|
echo -e "${GREEN}✅ Schema: chat${NC}"
|
|
echo -e "${GREEN}✅ Port: $CHAT_SERVER_PORT${NC}"
|
|
echo -e "${GREEN}✅ Host: $CHAT_SERVER_HOST${NC}"
|
|
echo -e "${GREEN}✅ RUST_LOG: $RUST_LOG${NC}"
|
|
echo ""
|
|
|
|
# Démarrer le serveur
|
|
exec ./target/release/chat-server
|
|
|