Scrap-Dji / setup.py
joel
Initial deployment: Scrap-Dji with API
dfdddb1
#!/usr/bin/env python3
"""
Script de configuration pour Scrap-Dji
Initialise les bases de données et les services nécessaires
"""
import os
import sys
import subprocess
from pathlib import Path
def check_python_version():
"""Vérifie la version de Python"""
if sys.version_info < (3, 10):
print("❌ Python 3.10+ requis")
sys.exit(1)
print("✅ Version Python OK")
def install_dependencies():
"""Installe les dépendances"""
print("📦 Installation des dépendances...")
try:
subprocess.run([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"], check=True)
print("✅ Dépendances installées")
except subprocess.CalledProcessError:
print("❌ Erreur lors de l'installation des dépendances")
sys.exit(1)
def create_directories():
"""Crée les répertoires nécessaires"""
directories = [
"storage_data",
"logs",
"data",
"temp"
]
for directory in directories:
Path(directory).mkdir(exist_ok=True)
print(f"✅ Répertoire créé: {directory}")
def setup_env_file():
"""Configure le fichier .env"""
if not os.path.exists(".env"):
if os.path.exists("config.env.example"):
os.system("copy config.env.example .env")
print("✅ Fichier .env créé (à configurer)")
else:
print("⚠️ Créez un fichier .env basé sur config.env.example")
else:
print("✅ Fichier .env existe déjà")
def init_databases():
"""Initialise les bases de données"""
print("🗄️ Initialisation des bases de données...")
try:
from db.postgres_connector import init_db
init_db()
print("✅ Base PostgreSQL initialisée")
except Exception as e:
print(f"⚠️ Erreur PostgreSQL: {e}")
print(" Assurez-vous que PostgreSQL est installé et configuré")
def check_services():
"""Vérifie les services requis"""
services = {
"PostgreSQL": "postgresql://localhost:5432",
"MongoDB": "mongodb://localhost:27017",
"Typesense": "http://localhost:8108",
"Qdrant": "http://localhost:6333"
}
print("🔍 Vérification des services...")
for service, url in services.items():
try:
# Vérification basique
print(f" {service}: {'✅' if 'localhost' in url else '⚠️'}")
except:
print(f" {service}: ❌")
def main():
print("🚀 Configuration de Scrap-Dji")
print("=" * 40)
check_python_version()
install_dependencies()
create_directories()
setup_env_file()
init_databases()
check_services()
print("\n" + "=" * 40)
print("✅ Configuration terminée!")
print("\n📋 Prochaines étapes:")
print("1. Configurez le fichier .env avec vos paramètres")
print("2. Installez et démarrez PostgreSQL, MongoDB, Typesense, Qdrant")
print("3. Configurez vos sources dans sources.json")
print("4. Lancez le scraping avec: python -m scraper.main")
if __name__ == "__main__":
main()