From 4b8ee105de1e8a23bcebd840a87d4d84115d474d Mon Sep 17 00:00:00 2001 From: Auto-Sync Date: Mon, 16 Mar 2026 10:00:10 +0100 Subject: [PATCH] Auto-Sync: 2026-03-16 10:00 --- .../__pycache__/context.cpython-311.pyc | Bin 18863 -> 3944 bytes .../__pycache__/llm.cpython-311.pyc | Bin 9632 -> 18938 bytes infrastructure/STATE.md | 49 ++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/homelab-ai-bot/__pycache__/context.cpython-311.pyc b/homelab-ai-bot/__pycache__/context.cpython-311.pyc index 2c8162643d7d5e6b5c358a413b707eda94ff5e46..aad6c17c03c9fd6d1cd85c530a49ff0505d3688f 100644 GIT binary patch literal 3944 zcmcgv&2JmW72hv@?UJG;N{XZg_Bv85QxYj9EntR8>>vgVxe|1c`hn`u#hNoB*IMqn zv%7JnN`O$fXwXZ9)PM;mfr%U(8OcG1BFWKz!ZIKbVSxfhiXL(*1NY=p-^_{>sShBB zA|vjb+4nX3-u!0f>9bTy=Ac#fzcSv6bKJk^OS{Dm2hU&TIqm_6xK$4ENHF6W#}IQkf7_#B?FJr>{%p0M%Ztg+P?%qp7kYGO4}l~-lp z4a4{ zodZtWE{gg=E5mryvxEjfYw&QE42*}6u)<|WHov@Sx!5#~GKOAVuz~*3&8_Iws_9u} zbMc7j3bbYiUs;Sp8@iKbGu}>JL4_x3%+-~A%nu^jb&VhypWBe%2KkVSFxJA3K?Um z$*aFL2vXm(E!8xudEHsp?iy}IW2w2Eg}hjvyXoei@PuOQi4Z7Mq?tCPiv-Cs#8(Mj zIRuc-IrM|n7w2c~JML`7u0mdK<#Z!=%XT4YZ2chLK|eKQo;ubkFicYq!$5Ype=EaH zWqfbbSBed#*i?$XRD2E+u0%<@by71AoU>B%7-XNfEx2t?;I;t#qa9AKoTV+d0843N z7r^G~E?`ABDUhy11iE3tD1?E-g!y2Ah65@Z4Us80Bmw@P@IkyCV3-+_1a^=r>uv=T zEwm>Y;L)g^2_O)9daRkAY^1ZzbarR{K*_#e@CPq9m25+qZYtBhG)?+I@q4~NX$TU<;h)o;-#SqL8Mk<8k0bn@v!&J35)X;>C zf#_wba~a4E_s?UYUVOi>yVz7N?nQhh-%#>RCGSi5Fx(Na`03(ImTb>zM@s12EKWi* z)Dz&q;aai)0RUh{&V$lLs(5;o;}GQ%Mfa<|GS^V%n#!Cn&9Nwh$RFTP+xY3?9Hi^n zfvtux;MdIZaGS@ew3CE=!&J3iuK{>>ONz!H>kX0Js)S8=P?B7gBGS+X9N9D2k!@$6}rOJJGg;)A=ZY z3!c8x5SS)lswZzYK!Z&0PVgrwG$|PLi^mA+Wn_!51gr;={?qnfCeod4SmFY zk^mqKdv8Ko=CN+NmE83TF0HHI?c5Jb0#~ij^58BuOcguoIyNj7)8YhP=kmAN>(-?SIzFZgSlY54}O(Cg~*>%XXE zi|XcJc=&3p`1ljMFt#h3eew#nV85%2fYzcKBprB#DH-wu;kF(~7DSkp0;yyZOz3V7 zkN@x^0}+mntQ2ktCX5~mlHr$XxN6@v92y?%kYo2js7i_;oP)>t0mu&bOj7;c-$82R z+tm0ssqy;F{bfHj-bfXislv{Ug9{V;BTwJ+GfVLMHnaRqX89oA_ksL3dACqoZp77Q zT&=(QgD4C}|H}c{S!~6*OK;Z}#pJB`AFZT0_eL9-N`qvyP1n1Du&VkRt5NI%TiU77T?D-)_& z!sKm`U!yt`Ku#WFlk_aV)Kn%LN)`$fU&^wOviuTUA%kE79mPI$jCFCph4 z(3Z&ad`pmcsl`!}*}D^ zW_68Zfq#v@zE;Dm+goAXaRO>@)PGL7Z|sE~8+Q@VScI)aX^m+t@^vqK-)BDC(vWvZ d2HIb@Mok`f*{ST<3k*xp# literal 18863 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 Hm^A&r3|Lax diff --git a/homelab-ai-bot/__pycache__/llm.cpython-311.pyc b/homelab-ai-bot/__pycache__/llm.cpython-311.pyc index e7582065ccea0c637c65b467cf913dd921d93166..17a270c285650f5e4450521632b30c2b77e8084d 100644 GIT binary patch literal 18938 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 Oa3V#FlW#6Lum2BV8U;E4 literal 9632 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 P@OXmH@c5m8=kWgn2GGtF diff --git a/infrastructure/STATE.md b/infrastructure/STATE.md index e69de29b..b7ac7ecf 100644 --- a/infrastructure/STATE.md +++ b/infrastructure/STATE.md @@ -0,0 +1,49 @@ +# Infrastruktur — Live State +> Auto-generiert: 2026-03-16 10:00 + +## pve-hetzner Disk +| Mount | Belegt | +|---|---| +| / (root) | 76G 19% | +| /var/lib/vz (VMs/CTs) | 2.7T 3% | + +## Aktive Container auf pve-hetzner +| CT | Name | Tailscale IP | Dienste | +|---|---|---|---| +| 101 | wordpress-v2 | 100.91.212.19 | WordPress + MySQL (Docker) — arakavanews.com | +| 103 | seafile | 100.75.247.60 | Seafile (Docker) | +| 109 | rss-manager | 100.113.244.101 | RSS Manager + Matomo — WP intern via http://10.10.10.101 | +| 110 | portainer | 100.109.206.43 | Portainer Docker UI + Loki Stack | +| 111 | forgejo | 100.89.246.60 | Forgejo Git Server | +| 112 | fuenfvoracht | 100.73.171.62 | FuenfVorAcht Telegram Bot | +| 113 | redax-wp | 100.69.243.16 | Redakteur WordPress KI-Autor + DeutschlandBlog | +| 115 | flugscanner-hub | 100.92.161.97 | Flugpreisscanner Hub + Scheduler | +| 116 | homelab-ai-bot | 100.123.47.7 | Hausmeister Telegram Bot | +| 117 | memory-service | 100.121.192.94 | Memory Service API (FastAPI + SQLite) | +| 144 | muldenstein-backup | — | Backup-Archiv (Read-Only) | +| 999 | cluster-docu | 100.79.8.49 | Dokumentation | + +## Container auf pve1 (Kambodscha) +(keine) + +## Container auf pve3 (Muldenstein) +(keine) + +## Routing (Cloudflare Tunnels) +- CT 101: arakavanews.com → :80 (aktiv) +- CT 101: arakava-news-2.orbitalo.net → 301→arakavanews.com (aktiv) +- CT 109: matomo.orbitalo.net → :80 (aktiv) +- CT 600: cam.arakavanews.com → :8080 (aktiv) +- CT 600: arakavanews.com → :80 (Standby) +- CT 601: rss-manager → :8080 (Standby) + +## Zugangsdaten +- pve-hetzner: root / Astral-Proxmox!2026 +- pve1: root / astral66 +- Alle CTs: root / astral66 + +## Telegram Bots +| Bot | Zweck | +|---|---| +| @MutterbotAI_bot | Watchdog-Alerts | +| @Orbitalo_Hausmeister_bot | Homelab AI-Bot |