refactor: [30388f42] Entferne Legacy-Token-Dateien und Abhängigkeiten

- Bereinigt alle Dockerfiles (market, content, b2b) von COPY gemini_api_key.txt.
- Aktualisiert market_intel_orchestrator.py und b2b_marketing_orchestrator.py, um API-Keys strikt aus Umgebungsvariablen zu lesen.
- Verhindert Build-Fehler durch fehlende lokale Token-Dateien.
This commit is contained in:
2026-03-06 16:32:23 +00:00
parent 5d7b296b00
commit b310105eb7
4 changed files with 21 additions and 28 deletions

View File

@@ -333,12 +333,11 @@ PROMPTS = {
# --- API & SCRAPING HELPERS --- # --- API & SCRAPING HELPERS ---
def load_api_key(): def load_api_key():
try: api_key = os.getenv("GEMINI_API_KEY")
with open("gemini_api_key.txt", "r") as f: if not api_key:
return f.read().strip() logging.error("GEMINI_API_KEY environment variable not found.")
except FileNotFoundError:
logging.error("API key file 'gemini_api_key.txt' not found.")
return None return None
return api_key
def call_gemini_api(prompt, api_key, retries=3): def call_gemini_api(prompt, api_key, retries=3):
url = f"https://generativelanguage.googleapis.com/v1/models/gemini-2.5-flash:generateContent?key={api_key}" url = f"https://generativelanguage.googleapis.com/v1/models/gemini-2.5-flash:generateContent?key={api_key}"

View File

@@ -35,8 +35,5 @@ COPY config.py ./
# Copy built frontend # Copy built frontend
COPY --from=frontend-build /app/frontend/dist ./dist COPY --from=frontend-build /app/frontend/dist ./dist
# Keys and persistence placeholders
RUN touch gemini_api_key.txt serpapikey.txt
EXPOSE 3006 EXPOSE 3006
CMD ["node", "server.cjs"] CMD ["node", "server.cjs"]

View File

@@ -24,10 +24,9 @@ RUN cd general-market-intelligence && npm install --omit=dev
# 4. App Code # 4. App Code
COPY general-market-intelligence/server.cjs ./general-market-intelligence/ COPY general-market-intelligence/server.cjs ./general-market-intelligence/
COPY market_intel_orchestrator.py . COPY general-market-intelligence/market_intel_orchestrator.py .
COPY market_db_manager.py . COPY market_db_manager.py .
COPY config.py . COPY config.py .
COPY gemini_api_key.txt .
# (Falls helpers.py existiert, wird sie durch docker-compose volume gemountet, aber wir kopieren sie für Standalone-Builds) # (Falls helpers.py existiert, wird sie durch docker-compose volume gemountet, aber wir kopieren sie für Standalone-Builds)
COPY helpers.py . COPY helpers.py .

View File

@@ -37,26 +37,24 @@ logging.basicConfig(
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
# --- END AUTARKES LOGGING SETUP --- # # --- END AUTARKES LOGGING SETUP --- #
def load_gemini_api_key(file_path="gemini_api_key.txt"): def load_gemini_api_key(file_path=None):
try: """Loads the Gemini API Key from environment variables."""
with open(file_path, "r") as f: api_key = os.getenv("GEMINI_API_KEY")
api_key = f.read().strip() if not api_key:
return api_key logger.critical("Gemini API Key not found in environment variables.")
except Exception as e: # Fallback for local dev if absolutely necessary, but prefer env
logger.critical(f"Fehler beim Laden des Gemini API Keys: {e}") if file_path and os.path.exists(file_path):
raise with open(file_path, "r") as f: return f.read().strip()
raise ValueError("GEMINI_API_KEY not set")
return api_key
def load_serp_api_key(file_path="serpapikey.txt"): def load_serp_api_key(file_path=None):
"""Lädt den SerpAPI Key. Gibt None zurück, wenn nicht gefunden.""" """Loads the SerpAPI Key from environment variables."""
try: api_key = os.getenv("SERP_API_KEY")
if os.path.exists(file_path): if not api_key:
with open(file_path, "r") as f: logger.warning("SerpAPI Key not found in environment variables.")
return f.read().strip()
# Fallback: Versuche Umgebungsvariable
return os.environ.get("SERP_API_KEY")
except Exception as e:
logger.warning(f"Konnte SerpAPI Key nicht laden: {e}")
return None return None
return api_key
def get_website_text(url): def get_website_text(url):
# Auto-fix missing scheme # Auto-fix missing scheme