homelab-brain/homelab.conf

310 lines
13 KiB
Text

# ============================================================
# homelab.conf — EINZIGE QUELLE DER WAHRHEIT
# ============================================================
# Wenn sich eine IP, URL, ein Container oder Passwort ändert:
# → NUR DIESE DATEI editieren.
# → sync-state.sh liest hieraus und generiert alles andere.
# → Niemals STATE.md, MOTDs oder Issues manuell pflegen.
# ============================================================
# --- DOMAINS ---
DOMAIN_PRIMARY="arakavanews.com"
DOMAIN_OLD="arakava-news-2.orbitalo.net"
DOMAIN_MATOMO="matomo.orbitalo.net"
DOMAIN_SEAFILE="seafile.orbitalo.net"
DOMAIN_GRAFANA="grafana.orbitalo.net"
DOMAIN_PDM="pdm.orbitalo.info"
DOMAIN_RSS="rss-manager.orbitalo.net"
DOMAIN_REDAX="redax.orbitalo.net"
# ============================================================
# SERVER — Eindeutige Benennung nach Standort
# ============================================================
# Kambodscha (KA): 3 Server, LAN 192.168.0.x
# Muldenstein (MU): 3 Server (1 offline), LAN 192.168.178.x
# Ramsin (HE): 1 Server bei Helmut
# Hetzner DC: 1 Server
# ============================================================
# --- HETZNER ---
SRV_HETZNER="100.88.230.59"
# --- KAMBODSCHA (3 Server, Takeo) ---
SRV_KA1="100.122.56.60"
SRV_KA1_LOCAL="192.168.0.197"
SRV_KA1_HOSTNAME="pve-ka-1"
SRV_KA2="100.120.126.95"
SRV_KA2_LOCAL="192.168.0.198"
SRV_KA2_HOSTNAME="pve-ka-2"
SRV_KA3="100.103.90.94"
SRV_KA3_LOCAL="192.168.0.199"
SRV_KA3_HOSTNAME="pve-ka-3"
# --- PHNOM PENH (2 Server, Kondo — pp-cluster) ---
SRV_PP1="100.126.26.46"
SRV_PP1_LOCAL="192.168.0.171"
SRV_PP1_HOSTNAME="pve-pp-1"
SRV_PP2="100.95.156.25"
SRV_PP2_LOCAL="192.168.0.227"
SRV_PP2_HOSTNAME="pve-pp-2"
# --- MULDENSTEIN (3 Server, pve-mu-1 aktuell offline) ---
# SRV_MU1="???"
# SRV_MU1_HOSTNAME="pve-mu-1"
SRV_MU2="100.99.101.37"
SRV_MU2_LOCAL="192.168.178.123"
SRV_MU2_HOSTNAME="pve-mu-2"
SRV_MU3="100.109.101.12"
SRV_MU3_LOCAL="192.168.178.250"
SRV_MU3_HOSTNAME="pve-mu-3"
# --- RAMSIN (bei Helmut) ---
SRV_HE="100.87.235.11"
SRV_HE_HOSTNAME="pve-he"
# --- CURSOR / MONITORING BOT (CT 116 auf pve-mu-2, Muldenstein) ---
SRV_CURSOR="100.88.230.74"
SRV_CURSOR_HOSTNAME="monitoring-bot"
# --- KI-SERVER (Windows, Muldenstein — Cursor + GPU-Workloads) ---
SRV_KI="100.84.255.83"
SRV_KI_HOSTNAME="KI-Server"
SRV_KI_USER="wutti"
SRV_KI_GPU="NVIDIA RTX 3090 24GB"
SRV_KI_OS="Windows 10 Build 26200"
SRV_KI_SSH="ssh ki-server (Key-Auth via monitoring-bot SOCKS5)"
# --- BACKUP (PBS) ---
SRV_PBS_MU="100.99.139.22"
SRV_PBS_KA="lokal"
# --- PASSWÖRTER ---
PW_HETZNER="Astral-Proxmox!2026"
PW_DEFAULT="astral66"
PW_WP_ADMIN="eJIyhW0p5PFacjvvKGufKeXS"
PW_5V8_USER="Holgerhh"
PW_5V8_PASS="ddlhh"
PW_EDELMETALL_DASHBOARD=""
PW_PDM_USER="root"
PW_PDM_PASS="astral66"
# ============================================================
# CONTAINER — Format: CT_<VMID>_<SERVER>="name|tailscale_ip|dienste"
# Servercodes: HZ=Hetzner, KA1/2/3=Kambodscha, MU2/3=Muldenstein, HE=Ramsin
# ============================================================
# --- pve-hetzner (Hauptinfrastruktur) ---
CT_101_HZ="wordpress-v2|100.91.212.19|WordPress + MySQL (Docker) — arakavanews.com"
CT_103_HZ="seafile|100.75.247.60|Seafile (Docker)"
CT_109_HZ="rss-manager|100.113.244.101|RSS Manager + Matomo — WP intern via http://10.10.10.101"
CT_110_HZ="portainer|100.109.206.43|Portainer Docker UI + Loki Stack"
CT_111_HZ="forgejo|100.89.246.60|Forgejo Git Server"
CT_112_HZ="fuenfvoracht|100.73.171.62|FuenfVorAcht Telegram Bot"
CT_113_HZ="redax-wp|100.69.243.16|Redakteur WordPress KI-Autor + DeutschlandBlog"
CT_115_HZ="flugscanner-hub|100.92.161.97|Flugpreisscanner Hub + Scheduler"
CT_116_HZ="homelab-ai-bot (1 GB RAM)|100.123.47.7|Hausmeister Bot (Qwen3-VL 30B via Ollama/KI-Server, Text+Vision) + Save.TV Web-UI + web_search via SearXNG"
CT_121_HZ="deep-research|100.74.196.29|Open Deep Research + SearXNG — LangGraph API auf Port 2024"
CT_117_HZ="memory-service|100.121.192.94|Memory Service API (FastAPI + SQLite)"
CT_144_HZ="muldenstein-backup|—|Backup-Archiv (Read-Only)"
CT_999_HZ="cluster-docu|100.79.8.49|Dokumentation"
# --- pve-ka-1 (Kambodscha, Hauptserver) ---
CT_110_KA1="uptime-kuma|—|Uptime Monitoring"
CT_115_KA1="flugscanner-asia|100.112.190.22|Scraping-Node Asia"
CT_118_KA1="Django-Klon-Neu|—|Django App (Taxi)"
CT_134_KA1="gold-silber-v3|100.72.230.87|Edelmetall Dashboard + Telegram Bot"
CT_200_KA1="doc-converter|—|Dokument-Konverter"
CT_888_KA1="MCP-Proxmox|—|MCP Server"
CT_999_KA1="cluster-docu|—|Dokumentation"
VM_100_KA1="debian|—|Debian VM"
# --- pve-pp-1 (Phnom Penh, Kondo — Arbeitsmaschine) ---
CT_100_PP1="yt-desktop|100.112.224.39|XFCE Desktop + xrdp + Chromium/Firefox + Seafile-Sync (Videos) + NFS-Mount Torrents"
CT_103_PP1="torrent|—|qBittorrent Web-UI :8080 (192.168.0.129) + NFS-Export → CT 100"
# --- pve-pp-2 (Phnom Penh, Kondo — Reserve/Standby) ---
CT_101_PP2="yt-desktop-standby|—|Standby-Kopie CT 100 (gestoppt)"
CT_102_PP2="torrent|—|qBittorrent Web-UI :8080 (192.168.0.193)"
# --- pve-ka-2 (Kambodscha, Shop-Server) ---
CT_504_KA2="Shop-Template|—|Shop Template (stopped)"
CT_8000_KA2="Kunde0-Shop|—|Kunde 0 Shop (stopped)"
CT_8010_KA2="Kunde1-Shop|—|Kunde 1 Shop (stopped)"
# --- pve-ka-3 (Kambodscha, Webcam + Dienste) ---
CT_101_KA3="freshrss|—|FreshRSS Reader"
CT_103_KA3="Intercity-Taxi|—|Intercity Taxi App"
CT_104_KA3="bt-search|—|BT Search"
CT_141_KA3="llm-router-dev|—|LLM Router Entwicklung"
CT_600_KA3="webcam|100.80.76.118|Restreamer + Dahua 4K Cam → cam.arakavanews.com"
VM_500_KA3="frigate-vm|100.104.64.99|Frigate NVR + Coral TPU — 3 Kameras, GUI :5000"
# --- pve-mu-2 (Muldenstein, Shop- & Entwicklungsserver) ---
CT_111_MU2="uptimekuma|—|Uptime Monitoring"
CT_112_MU2="myspeed|—|Internet Speedtest"
CT_113_MU2="pve-scripts-local|—|PVE Helper Scripts"
CT_114_MU2="djangoadmin|—|Django Admin"
CT_115_MU2="Takeo-PC-Shop-Engl|—|PC Shop (englisch)"
CT_116_MU2="monitoring-bot|100.88.230.74|Cursor IDE + Tailscale-Gateway (userspace) + SSH-Hub — CT 116 auf pve-mu-2 (Debian 13, 3.4GB RAM)"
CT_117_MU2="Intercity-Taxi|—|Intercity Taxi"
CT_123_MU2="Kofi-Shop-PP|—|Kofi Shop Phnom Penh"
CT_128_MU2="rustdeskserver|—|RustDesk Remote Desktop"
CT_130_MU2="PC-Shop-Takeo|—|PC Shop Takeo"
CT_131_MU2="PC-Shopp-PP|—|PC Shop Phnom Penh"
CT_136_MU2="Seleniumbase|—|Selenium Scraping"
CT_140_MU2="Alfredo-Pizza|—|Pizza Alfredo"
CT_150_MU2="Pizza-Express-Wolfen|—|Pizza Express Wolfen"
CT_160_MU2="Red-Pizza|—|Red Pizza"
CT_180_MU2="Mellensa-Pizza|—|Mellensa Pizza"
CT_190_MU2="Ali-Baba|—|Ali Baba"
CT_200_MU2="Pizza-Di-Angelo|—|Pizza Di Angelo"
CT_500_MU2="Test-Shop|—|Test Shop"
CT_501_MU2="Test-Shop-Prod|—|Test Shop Produktion"
CT_502_MU2="Test-Shop-2|—|Test Shop 2"
# --- pve-mu-3 (Muldenstein, Infrastruktur + Mirrors) ---
CT_139_MU3="Syncthing-Muldenstein|—|Syncthing"
CT_141_MU3="syncthing|—|Syncthing"
CT_142_MU3="WG-easy|—|WireGuard VPN"
CT_143_MU3="Raspi-Broker|—|ioBroker MQTT Broker"
CT_145_MU3="flugscanner-mu|100.75.182.15|Flugpreisscanner Node DE"
CT_504_MU3="projektscan-template|—|Projektscan Template"
CT_600_MU3="wp-mirror|100.92.205.101|WordPress Mirror (Redundanz CT 101)"
CT_601_MU3="rss-mirror|—|RSS Manager Mirror (Redundanz CT 109)"
CT_700_MU3="ragflow|192.168.178.154|RAGFlow PDF-RAG (Docker, Ollama/KI-Server, Synology SMB) — ~13k PDFs"
VM_144_MU3="BT-Bridge|—|BT Bridge VM"
# --- pve-he (Ramsin, bei Helmut) ---
# Container noch nicht inventarisiert
# --- TELEGRAM BOTS ---
TG_CHAT_ID="674951792"
TG_MUTTER_TOKEN="8551565940:AAHIUpZND-tCNGv9yEoNPRyPt4GxEPYBJdE"
TG_FUENFVORACHT_TOKEN="8799990587:AAEoQuohGdoJ2WudoOHs_j5Ns3iwft6OlFc"
TG_EDELMETALL_TOKEN="8262992299:AAEf8YHPsz42ZdP85DV7JqC4822Ts75GqF4"
TG_HAUSMEISTER_TOKEN="8390233104:AAHdgF6r7qZsQEZHIBHPV1ky3v-6-YULvj8"
# --- PROXMOX API TOKENS ---
PVE_TOKEN_HETZNER_NAME="mcp-homelab"
PVE_TOKEN_HETZNER_VALUE="e986d3d5-36c0-425c-b1bb-20ed650a8065"
# --- API KEYS ---
FORGEJO_TOKEN="b874766bdf357bd4c32fa4369d0c588fc6193336"
FORGEJO_SYNC_TOKEN="b874766bdf357bd4c32fa4369d0c588fc6193336"
GITHUB_PAT="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"
OPENROUTER_KEY="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"
OPENAI_API_KEY="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"
MEMORY_API_TOKEN="Ai8eeQibV6Z1RWc7oNPim4PXB4vILU1nRW2-XgRcX2M"
MEMORY_API_URL="http://100.121.192.94:8400"
MATOMO_TOKEN="7d3987d48dcd7fdf9776bd81a4da1778"
MATOMO_URL="http://100.113.244.101"
MATOMO_SITE_ID="1"
# --- HOMELAB MCP-SERVER (auf pve-hetzner Host) ---
MCP_PATH="/root/homelab-mcp"
MCP_VENV="/root/homelab-mcp/.venv"
MCP_TOOLS="homelab_overview,homelab_all_containers,homelab_container_status,homelab_query_logs,homelab_get_errors,homelab_check_silence,homelab_host_health,homelab_metrics,homelab_get_config,homelab_loki_labels,homelab_prometheus_targets"
# --- SAVE.TV (Online-Videorecorder) ---
SAVETV_USER="739281"
SAVETV_PASS="Astral1966"
SAVETV_URL="https://www.save.tv"
# Download-Pipeline: AKTIV (Save.TV → Hetzner CT116 → Jellyfin-Server → NAS Muldenstein)
# savetv_sync.py läuft stündlich auf Jellyfin-Server (100.77.105.3), 24h±30min Delay, min. 700MB
# CT 116 /etc/hosts: www.save.tv → 172.66.146.119 (DNS-GIL-Fix)
# CT 116 RAM: 1 GB (war 512 MB, hat alles einfrieren lassen)
# Ziel: Samba-Share auf RAID in Muldenstein → Jellyfin-Mediathek
# Architektur: Save.TV → pve-hetzner (temp) → Samba/CIFS → Jellyfin-Ordner
# TODO: Share-IP, Share-Name, Credentials, Jellyfin-Pfad ermitteln
# TODO: Download-Endpoint reverse-engineeren (vermutlich SendungsDetails.cfm)
# TODO: cifs-mount oder smbclient fuer Transfer
# Status: Login+EPG+AutoRecord FERTIG | Download+Sync OFFEN
# --- E-MAIL (All-Inkl IMAP-Spiegel von GMX) ---
MAIL_IMAP_SERVER="w0206aa8.kasserver.com"
MAIL_IMAP_PORT="993"
MAIL_USER="info@orbitalo.info"
MAIL_PASS="Astral-66"
# --- LOKI ---
LOKI_URL="http://100.109.206.43:3100"
LOKI_CT="110"
# --- PROMETHEUS ---
PROMETHEUS_URL="http://100.88.230.59:9090"
PROMETHEUS_STATUS="aktiv"
# --- ROUTING (Cloudflare Tunnels) ---
# Format: TUNNEL_<ct>_<server>="domain|ziel|status"
TUNNEL_101_HZ="arakavanews.com|:80|aktiv"
TUNNEL_101_HZ_OLD="arakava-news-2.orbitalo.net|301→arakavanews.com|aktiv"
TUNNEL_109_HZ="matomo.orbitalo.net|:80|aktiv"
TUNNEL_600_KA3="cam.arakavanews.com|:8080|aktiv"
TUNNEL_600_MU3="arakavanews.com|:80|standby"
TUNNEL_601_MU3="rss-manager|:8080|standby"
# ============================================================
# GEPLANTE HARDWARE (noch nicht online)
# ============================================================
# --- KI-Tower (Muldenstein, geplant) ---
# Logischer Name: ki-tower
# CPU: AMD Ryzen 7 7700 (8C/16T)
# RAM: 64 GB DDR5
# GPU: NVIDIA RTX 3090 (24 GB VRAM)
# Storage: 1 TB NVMe
# Rolle: Chef — Orchestrator, Szenenplan (Qwen 14B), Hero-Bilder (FLUX.1-dev),
# Assembly (FFmpeg + NVENC), production.db (SQLite)
# Skripte: GPT-5.4 via OpenAI API (Cloud, ~0.10-0.50 EUR/Skript)
# OS: geplant Debian 12 + Docker + CUDA
# Dienste: vLLM (:8401), ComfyUI (:8402), Orchestrator (Python)
# Projekt: ki-video/PLAN.md
# Status: geplant
# --- NVIDIA Worker-Rig (Muldenstein, geplant) --- PRIMAERER WORKER
# Logischer Name: gpu-worker
# GPUs: 4x NVIDIA RTX 3080 (je 10 GB GDDR6X, PCIe 4.0 x16)
# CUDA: voll unterstuetzt, identischer Stack wie ki-tower
# Rolle: Produktiver Worker-Pool fuer KI-Video Pipeline
# GPU #0: XTTS v2 (TTS, ~4 GB) → danach SDXL Bilder (~7 GB) :8501
# GPU #1: SDXL (Standard-Szenen, ~7 GB, durchgehend) :8502
# GPU #2: SadTalker (Avatar lip-sync, ~6 GB, wartet auf TTS) :8503
# GPU #3: Real-ESRGAN (Upscaling) + Whisper (Untertitel) :8504
# OS: geplant Debian 12 + Docker + CUDA
# Architektur: 1 Container pro GPU, feste Zuordnung, HTTP-API pro Worker
# Status: geplant
#
# --- AMD Mining-Rig (Muldenstein, Reserve) --- NEBENROLLE
# Logischer Name: gpu-reserve
# GPUs: 8x AMD Radeon RX 6600 XT Dual (je 8 GB GDDR6, PCIe 4.0 x8)
# Chip: Navi 23 (gfx1032), RDNA 2
# ROCm: inoffiziell (HSA_OVERRIDE_GFX_VERSION=10.3.0 noetig)
# Funktion: Reserve/Nebenrolle — Whisper (whisper.cpp), CPU-Batch-Jobs
# Prioritaet: Niedrig. Nur einsetzen wenn 3080-Rig ausgelastet.
# Alternative: Verkaufen und Erloese in Storage/RAM investieren.
# OS: geplant Debian 12 + Docker + ROCm (falls benoetigt)
# Status: zurueckgestellt, Entscheidung nach 3080-Rig-Aufbau
# ============================================================
# NAMENS-MAPPING (Alt → Neu) — Referenz für Migration
# ============================================================
# pve-hetzner → pve-hetzner (unverändert)
# pve1 → pve-ka-1 (Kambodscha, Hauptserver)
# pve-Shops → pve-ka-2 (Kambodscha, Shop-Server)
# pve3 (KH) → pve-ka-3 (Kambodscha, Webcam + Dienste)
# pve2 → pve-mu-2 (Muldenstein, Shops & Entwicklung)
# pve3 (MU) → pve-mu-3 (Muldenstein, Infra + Mirrors)
# pve-mu-1 → offline (Muldenstein, noch nicht inventarisiert)
# helmut-pve → pve-he (Ramsin, bei Helmut)
# PBS → pbs-mu (PBS Muldenstein)
# ============================================================
# OpenMemory (CT 122) - optional, Default: http://10.10.10.122:8765
# OPENMEMORY_API_URL="http://10.10.10.122:8765"
# OPENMEMORY_USER_ID="orbitalo"