Files
Munich-news/backend/config.py
2025-12-10 15:50:11 +00:00

67 lines
2.4 KiB
Python

import os
from dotenv import load_dotenv
from pathlib import Path
# Get the directory where this script is located
backend_dir = Path(__file__).parent
env_path = backend_dir / '.env'
# Load .env file
load_dotenv(dotenv_path=env_path)
# Debug: Print if .env file exists (for troubleshooting)
if env_path.exists():
print(f"✓ Loading .env file from: {env_path}")
else:
print(f"⚠ Warning: .env file not found at {env_path}")
print(f" Current working directory: {os.getcwd()}")
print(f" Looking for .env in: {env_path}")
class Config:
"""Application configuration"""
# MongoDB
MONGODB_URI = os.getenv('MONGODB_URI', 'mongodb://localhost:27017/')
DB_NAME = 'munich_news'
# Email
SMTP_SERVER = os.getenv('SMTP_SERVER', 'smtp.gmail.com')
SMTP_PORT = int(os.getenv('SMTP_PORT', '587'))
EMAIL_USER = os.getenv('EMAIL_USER', '')
EMAIL_PASSWORD = os.getenv('EMAIL_PASSWORD', '')
# Ollama
OLLAMA_BASE_URL = os.getenv('OLLAMA_BASE_URL', 'http://localhost:11434')
OLLAMA_MODEL = os.getenv('OLLAMA_MODEL', 'llama2')
OLLAMA_API_KEY = os.getenv('OLLAMA_API_KEY', '')
OLLAMA_ENABLED = os.getenv('OLLAMA_ENABLED', 'false').lower() == 'true'
# Flask
FLASK_PORT = int(os.getenv('FLASK_PORT', '5000'))
# Tracking
TRACKING_ENABLED = os.getenv('TRACKING_ENABLED', 'true').lower() == 'true'
TRACKING_API_URL = os.getenv('TRACKING_API_URL', f'http://localhost:{os.getenv("FLASK_PORT", "5000")}')
TRACKING_DATA_RETENTION_DAYS = int(os.getenv('TRACKING_DATA_RETENTION_DAYS', '90'))
# ChromaDB
CHROMA_HOST = os.getenv('CHROMA_HOST', 'chromadb')
CHROMA_PORT = int(os.getenv('CHROMA_PORT', '8000'))
CHROMA_COLLECTION = os.getenv('CHROMA_COLLECTION', 'munich_news_articles')
@classmethod
def print_config(cls):
"""Print configuration (without sensitive data)"""
print("\nApplication Configuration:")
print(f" MongoDB URI: {cls.MONGODB_URI}")
print(f" Database: {cls.DB_NAME}")
print(f" Flask Port: {cls.FLASK_PORT}")
print(f" Ollama Base URL: {cls.OLLAMA_BASE_URL}")
print(f" Ollama Model: {cls.OLLAMA_MODEL}")
print(f" Ollama Enabled: {cls.OLLAMA_ENABLED}")
print(f" Tracking Enabled: {cls.TRACKING_ENABLED}")
print(f" Tracking API URL: {cls.TRACKING_API_URL}")
print(f" ChromaDB Host: {cls.CHROMA_HOST}")
print(f" ChromaDB Port: {cls.CHROMA_PORT}")