Bisheriger Default /home/claude-dev/.claude/local/claude existiert auf dem Live-Server nicht. Folge: jeder call_claude im verwaltungsportal stirbt mit FileNotFoundError [Errno 2]. Konkret betroffen: bulk_classify (alle Quellen- Klassifizierungen schlugen still fehl bzw. brachen nach der ersten Quelle ab). Live wurde uebergangsweise per CLAUDE_PATH-Env in /home/claude-dev/AegisSight -Monitor-Verwaltung/.env ueberschrieben. Dieser Commit zieht den Fix in den Code, damit der Default auch ohne .env-Override funktioniert (bzw. die .env- Zeile spaeter wieder entfernt werden kann). Monitor-config.py:30 hat einen abweichenden Default (/usr/bin/claude) — nicht in diesem Commit angefasst, da Monitor heute funktioniert; getrennt nachhalten falls auch dort Drift auftritt.
58 Zeilen
2.3 KiB
Python
58 Zeilen
2.3 KiB
Python
"""Konfiguration fuer das Verwaltungsportal."""
|
|
import os
|
|
|
|
# Pfade
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
STATIC_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "static")
|
|
|
|
# Gemeinsame Datenbank (gleiche wie OSINT-Monitor)
|
|
DB_PATH = os.environ.get("DB_PATH", "/mnt/gitea/osint-data/osint.db")
|
|
|
|
# JWT (eigener Secret fuer Verwaltungsportal)
|
|
JWT_SECRET = os.environ.get("PORTAL_JWT_SECRET")
|
|
if not JWT_SECRET:
|
|
raise RuntimeError("PORTAL_JWT_SECRET Umgebungsvariable muss gesetzt sein")
|
|
JWT_ALGORITHM = "HS256"
|
|
JWT_EXPIRE_HOURS = 8
|
|
|
|
# Server
|
|
PORT = int(os.environ.get("PORTAL_PORT", "8892"))
|
|
|
|
# SMTP (gleiche wie OSINT-Monitor)
|
|
SMTP_HOST = os.environ.get("SMTP_HOST", "")
|
|
SMTP_PORT = int(os.environ.get("SMTP_PORT", "587"))
|
|
SMTP_USER = os.environ.get("SMTP_USER", "")
|
|
SMTP_PASSWORD = os.environ.get("SMTP_PASSWORD", "")
|
|
SMTP_FROM_EMAIL = os.environ.get("SMTP_FROM_EMAIL", "noreply@aegis-sight.de")
|
|
SMTP_FROM_NAME = os.environ.get("SMTP_FROM_NAME", "AegisSight Verwaltung")
|
|
SMTP_USE_TLS = os.environ.get("SMTP_USE_TLS", "true").lower() == "true"
|
|
|
|
# Magic Link Base URL (fuer Einladungen Richtung OSINT-Monitor, NICHT Portal-Login)
|
|
MAGIC_LINK_BASE_URL = os.environ.get("MAGIC_LINK_BASE_URL", "https://monitor.aegis-sight.de")
|
|
MAGIC_LINK_EXPIRE_MINUTES = 10
|
|
|
|
# Magic-Link-Auth fuer das Verwaltungsportal SELBST
|
|
# (frueher Passwort-Login, ab 2026-05-09 nur noch Magic-Link)
|
|
ALLOWED_EMAIL = os.environ.get("PORTAL_ALLOWED_EMAIL", "info@aegis-sight.de")
|
|
PORTAL_MAGIC_LINK_BASE_URL = os.environ.get(
|
|
"PORTAL_MAGIC_LINK_BASE_URL", "https://monitor-verwaltung.aegis-sight.de"
|
|
)
|
|
PORTAL_MAGIC_LINK_EXPIRE_MINUTES = int(
|
|
os.environ.get("PORTAL_MAGIC_LINK_EXPIRE_MINUTES", "10")
|
|
)
|
|
|
|
# Source Discovery (geteilte Config mit OSINT-Monitor)
|
|
CLAUDE_PATH = os.environ.get("CLAUDE_PATH", "/usr/local/bin/claude")
|
|
CLAUDE_TIMEOUT = 300
|
|
MAX_FEEDS_PER_DOMAIN = 3
|
|
CLAUDE_MODEL_FAST = "claude-haiku-4-5-20251001"
|
|
CLAUDE_MODEL_MEDIUM = "claude-sonnet-4-6"
|
|
CLAUDE_MODEL_STANDARD = "claude-opus-4-7"
|
|
|
|
# Health-Check (genutzt von shared/services/source_health.py + routers/sources.py)
|
|
HEALTH_CHECK_USER_AGENT = os.environ.get(
|
|
"HEALTH_CHECK_USER_AGENT",
|
|
"Mozilla/5.0 (compatible; AegisSight-HealthCheck/1.0)",
|
|
)
|
|
HEALTH_CHECK_TIMEOUT_S = float(os.environ.get("HEALTH_CHECK_TIMEOUT_S", "15.0"))
|