Auto-Sync: 2026-03-08 05:08
This commit is contained in:
parent
e9638eab27
commit
33005cc418
5 changed files with 120 additions and 48 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
# Arakava News — Live State
|
# Arakava News — Live State
|
||||||
> Auto-generiert: 2026-03-08 05:00
|
> Auto-generiert: 2026-03-08 05:08
|
||||||
|
|
||||||
## Service Status
|
## Service Status
|
||||||
| Service | CT | Status |
|
| Service | CT | Status |
|
||||||
|
|
@ -37,8 +37,8 @@ $5.19 verbleibend
|
||||||
## Container (Mirror — pve3 Muldenstein)
|
## Container (Mirror — pve3 Muldenstein)
|
||||||
| CT | Dienst | Tailscale |
|
| CT | Dienst | Tailscale |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 600 | WordPress Mirror (Docker) | 100.92.205.101 |
|
| 600 | WordPress Mirror (Redundanz CT 101) | 100.92.205.101 |
|
||||||
| 601 | RSS Manager Mirror + n8n | — (kein Tailscale) |
|
| 601 | RSS Manager Mirror (Redundanz CT 109) | — |
|
||||||
|
|
||||||
## Aktive Feeds (17)
|
## Aktive Feeds (17)
|
||||||
| ID | Name | Schedule |
|
| ID | Name | Schedule |
|
||||||
|
|
@ -65,6 +65,7 @@ poster.py, scheduler.py, app.py, db.py
|
||||||
|
|
||||||
## Änderungshistorie
|
## Änderungshistorie
|
||||||
- 08.03.2026: Domain arakavanews.com live, Mirror CT 600/601 auf pve3
|
- 08.03.2026: Domain arakavanews.com live, Mirror CT 600/601 auf pve3
|
||||||
|
- 08.03.2026: homelab.conf als zentrale Quelle der Wahrheit
|
||||||
- 24.02.2026: Scheduler Lock gegen Doppelstarts
|
- 24.02.2026: Scheduler Lock gegen Doppelstarts
|
||||||
- 24.02.2026: Telegram auf HTML-Modus (Sonderzeichen-Fix)
|
- 24.02.2026: Telegram auf HTML-Modus (Sonderzeichen-Fix)
|
||||||
- 24.02.2026: Werbeartikel-Blacklist (Anzeige:, Sponsored, etc.)
|
- 24.02.2026: Werbeartikel-Blacklist (Anzeige:, Sponsored, etc.)
|
||||||
|
|
|
||||||
73
homelab.conf
Normal file
73
homelab.conf
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
# ============================================================
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
# --- SERVER (Tailscale IPs) ---
|
||||||
|
SRV_HETZNER="100.88.230.59"
|
||||||
|
SRV_PVE1="100.122.56.60"
|
||||||
|
SRV_PVE1_LOCAL="192.168.0.197"
|
||||||
|
SRV_HELMUT="100.87.235.11"
|
||||||
|
SRV_PVE2="100.99.101.37"
|
||||||
|
SRV_PVE3="100.109.101.12"
|
||||||
|
SRV_PBS="100.99.139.22"
|
||||||
|
|
||||||
|
# --- PASSWÖRTER ---
|
||||||
|
PW_HETZNER="Astral-Proxmox!2026"
|
||||||
|
PW_DEFAULT="astral66"
|
||||||
|
PW_WP_ADMIN="eJIyhW0p5PFacjvvKGufKeXS"
|
||||||
|
|
||||||
|
# --- CONTAINER: pve-hetzner ---
|
||||||
|
# Format: CT_<nummer>="name|tailscale_ip|dienste"
|
||||||
|
CT_101="wordpress-v2|100.91.212.19|WordPress + MySQL (Docker)"
|
||||||
|
CT_103="seafile|100.75.247.60|Seafile"
|
||||||
|
CT_109="rss-manager|100.113.244.101|RSS Manager + Matomo"
|
||||||
|
CT_110="portainer|100.109.206.43|Portainer Docker UI"
|
||||||
|
CT_111="forgejo|100.89.246.60|Forgejo Git"
|
||||||
|
CT_144="muldenstein-backup|—|Backup-Archiv"
|
||||||
|
CT_999="cluster-docu|100.79.8.49|Dokumentation"
|
||||||
|
|
||||||
|
# --- CONTAINER: pve1 (Kambodscha) ---
|
||||||
|
CT_136="gold-silber-v3|100.72.230.87|Edelmetall-Bot"
|
||||||
|
CT_143_PVE1="smart-home|—|ioBroker + Grafana + InfluxDB"
|
||||||
|
|
||||||
|
# --- CONTAINER: pve3 (Muldenstein) ---
|
||||||
|
CT_139="Syncthing-Muldenstein|—|Syncthing"
|
||||||
|
CT_141="syncthing|—|Syncthing"
|
||||||
|
CT_142="WG-easy|—|WireGuard"
|
||||||
|
CT_143_PVE3="Raspi-Broker|—|MQTT Broker"
|
||||||
|
CT_145="flugscanner-mu|—|Flugpreisscanner Node"
|
||||||
|
CT_504="projektscan-template|—|Projektscan"
|
||||||
|
CT_600="wp-mirror|100.92.205.101|WordPress Mirror (Redundanz CT 101)"
|
||||||
|
CT_601="rss-mirror|—|RSS Manager Mirror (Redundanz CT 109)"
|
||||||
|
|
||||||
|
# --- TELEGRAM BOTS ---
|
||||||
|
TG_CHAT_ID="674951792"
|
||||||
|
TG_MUTTER_TOKEN="8551565940:AAHIUpZND-tCNGv9yEoNPRyPt4GxEPYBJdE"
|
||||||
|
TG_FUENFVORACHT_TOKEN="8799990587:AAEoQuohGdoJ2WudoOHs_j5Ns3iwft6OlFc"
|
||||||
|
TG_EDELMETALL_TOKEN="8262992299:AAEf8YHPsz42ZdP85DV7JqC4822Ts75GqF4"
|
||||||
|
|
||||||
|
# --- API KEYS ---
|
||||||
|
FORGEJO_TOKEN="b874766bdf357bd4c32fa4369d0c588fc6193336"
|
||||||
|
FORGEJO_SYNC_TOKEN="5402da0447b0eb6aede721a8748a08974ddc5c42"
|
||||||
|
GITHUB_PAT="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"
|
||||||
|
OPENROUTER_KEY="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"
|
||||||
|
|
||||||
|
# --- ROUTING (Cloudflare Tunnels) ---
|
||||||
|
# Format: TUNNEL_<ct>="domain|ziel|status"
|
||||||
|
TUNNEL_101_PRIMARY="arakavanews.com|:80|aktiv"
|
||||||
|
TUNNEL_101_OLD="arakava-news-2.orbitalo.net|301→arakavanews.com|aktiv"
|
||||||
|
TUNNEL_109="matomo.orbitalo.net|:80|aktiv"
|
||||||
|
TUNNEL_600="arakavanews.com|:80|standby"
|
||||||
|
TUNNEL_601="rss-manager|:8080|standby"
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# Infrastruktur — Live State
|
# Infrastruktur — Live State
|
||||||
> Auto-generiert: 2026-03-08 05:00
|
> Auto-generiert: 2026-03-08 05:08
|
||||||
|
|
||||||
## pve-hetzner Disk
|
## pve-hetzner Disk
|
||||||
| Mount | Belegt |
|
| Mount | Belegt |
|
||||||
|
|
@ -37,14 +37,9 @@
|
||||||
## Container auf pve3 (Muldenstein)
|
## Container auf pve3 (Muldenstein)
|
||||||
| CT | Name | Tailscale IP | Dienste |
|
| CT | Name | Tailscale IP | Dienste |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 139 | Syncthing-Muldenstein | — | Syncthing |
|
|
||||||
| 141 | syncthing | — | Syncthing |
|
|
||||||
| 142 | WG-easy | — | WireGuard |
|
|
||||||
| 143 | Raspi-Broker | — | MQTT Broker |
|
|
||||||
| 145 | flugscanner-mu | — | Flugpreisscanner Node |
|
|
||||||
| 504 | projektscan-template | — | Projektscan |
|
|
||||||
| 600 | wp-mirror | 100.92.205.101 | WordPress Mirror (Redundanz CT 101) |
|
| 600 | wp-mirror | 100.92.205.101 | WordPress Mirror (Redundanz CT 101) |
|
||||||
| 601 | rss-mirror | — | RSS Manager Mirror (Redundanz CT 109) |
|
| 601 | rss-mirror | — | RSS Manager Mirror (Redundanz CT 109) |
|
||||||
|
| 145 | flugscanner-mu | — | Flugpreisscanner Node |
|
||||||
|
|
||||||
## Routing
|
## Routing
|
||||||
- Cloudflare Tunnel CT 101: arakavanews.com → :80
|
- Cloudflare Tunnel CT 101: arakavanews.com → :80
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,19 @@
|
||||||
# Telegram-Alerts bei Service-Ausfällen und Push-Fehlern
|
# Telegram-Alerts bei Service-Ausfällen und Push-Fehlern
|
||||||
# Stand: 08.03.2026
|
# Stand: 08.03.2026
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
# WICHTIG: Alle variablen Daten kommen aus homelab.conf.
|
||||||
|
# Niemals hier IPs, URLs oder Credentials hardcoden!
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
REPO="/opt/homelab-brain"
|
REPO="/opt/homelab-brain"
|
||||||
FORGEJO_TOKEN="5402da0447b0eb6aede721a8748a08974ddc5c42"
|
|
||||||
TG_TOKEN="8551565940:AAHIUpZND-tCNGv9yEoNPRyPt4GxEPYBJdE"
|
# --- Quelle der Wahrheit laden ---
|
||||||
TG_CHAT="674951792"
|
source "$REPO/homelab.conf"
|
||||||
|
|
||||||
|
TG_TOKEN="$TG_MUTTER_TOKEN"
|
||||||
|
TG_CHAT="$TG_CHAT_ID"
|
||||||
|
FORGEJO_TOKEN="$FORGEJO_SYNC_TOKEN"
|
||||||
DEBOUNCE_DIR="/tmp/homelab_watchdog"
|
DEBOUNCE_DIR="/tmp/homelab_watchdog"
|
||||||
DATE=$(date '+%Y-%m-%d %H:%M')
|
DATE=$(date '+%Y-%m-%d %H:%M')
|
||||||
CHANGED=0
|
CHANGED=0
|
||||||
|
|
@ -96,7 +103,7 @@ OR_BALANCE=$(pct exec 109 -- python3 -c "
|
||||||
import requests
|
import requests
|
||||||
try:
|
try:
|
||||||
r = requests.get('https://openrouter.ai/api/v1/auth/key',
|
r = requests.get('https://openrouter.ai/api/v1/auth/key',
|
||||||
headers={'Authorization': 'Bearer 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'},
|
headers={'Authorization': 'Bearer $OPENROUTER_KEY'},
|
||||||
timeout=5)
|
timeout=5)
|
||||||
d = r.json().get('data', {})
|
d = r.json().get('data', {})
|
||||||
remaining = float(d.get('limit', 20)) - float(d.get('usage', 0))
|
remaining = float(d.get('limit', 20)) - float(d.get('usage', 0))
|
||||||
|
|
@ -126,22 +133,22 @@ $FEED_ACTIVITY
|
||||||
$OR_BALANCE
|
$OR_BALANCE
|
||||||
|
|
||||||
## URLs
|
## URLs
|
||||||
- Blog: https://arakavanews.com
|
- Blog: https://$DOMAIN_PRIMARY
|
||||||
- Admin: https://arakavanews.com/wp-admin (admin / eJIyhW0p5PFacjvvKGufKeXS)
|
- Admin: https://$DOMAIN_PRIMARY/wp-admin (admin / $PW_WP_ADMIN)
|
||||||
- RSS Manager: http://100.113.244.101:8080 (admin / astral66)
|
- RSS Manager: http://$(echo $CT_109 | cut -d'|' -f2):8080 (admin / $PW_DEFAULT)
|
||||||
- Matomo: https://matomo.orbitalo.net (admin / astral66)
|
- Matomo: https://$DOMAIN_MATOMO (admin / $PW_DEFAULT)
|
||||||
|
|
||||||
## Container (Primary — pve-hetzner)
|
## Container (Primary — pve-hetzner)
|
||||||
| CT | Dienst | Tailscale |
|
| CT | Dienst | Tailscale |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 101 | WordPress + MySQL (Docker) | 100.91.212.19 |
|
| 101 | $(echo $CT_101 | cut -d'|' -f3) | $(echo $CT_101 | cut -d'|' -f2) |
|
||||||
| 109 | RSS Manager + Matomo | 100.113.244.101 |
|
| 109 | $(echo $CT_109 | cut -d'|' -f3) | $(echo $CT_109 | cut -d'|' -f2) |
|
||||||
|
|
||||||
## Container (Mirror — pve3 Muldenstein)
|
## Container (Mirror — pve3 Muldenstein)
|
||||||
| CT | Dienst | Tailscale |
|
| CT | Dienst | Tailscale |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 600 | WordPress Mirror (Docker) | 100.92.205.101 |
|
| 600 | $(echo $CT_600 | cut -d'|' -f3) | $(echo $CT_600 | cut -d'|' -f2) |
|
||||||
| 601 | RSS Manager Mirror + n8n | — (kein Tailscale) |
|
| 601 | $(echo $CT_601 | cut -d'|' -f3) | $(echo $CT_601 | cut -d'|' -f2) |
|
||||||
|
|
||||||
## Aktive Feeds (17)
|
## Aktive Feeds (17)
|
||||||
| ID | Name | Schedule |
|
| ID | Name | Schedule |
|
||||||
|
|
@ -168,6 +175,7 @@ poster.py, scheduler.py, app.py, db.py
|
||||||
|
|
||||||
## Änderungshistorie
|
## Änderungshistorie
|
||||||
- 08.03.2026: Domain arakavanews.com live, Mirror CT 600/601 auf pve3
|
- 08.03.2026: Domain arakavanews.com live, Mirror CT 600/601 auf pve3
|
||||||
|
- 08.03.2026: homelab.conf als zentrale Quelle der Wahrheit
|
||||||
- 24.02.2026: Scheduler Lock gegen Doppelstarts
|
- 24.02.2026: Scheduler Lock gegen Doppelstarts
|
||||||
- 24.02.2026: Telegram auf HTML-Modus (Sonderzeichen-Fix)
|
- 24.02.2026: Telegram auf HTML-Modus (Sonderzeichen-Fix)
|
||||||
- 24.02.2026: Werbeartikel-Blacklist (Anzeige:, Sponsored, etc.)
|
- 24.02.2026: Werbeartikel-Blacklist (Anzeige:, Sponsored, etc.)
|
||||||
|
|
@ -198,13 +206,13 @@ cat > "$REPO/infrastructure/STATE.md" << EOF
|
||||||
## Aktive Container auf pve-hetzner
|
## Aktive Container auf pve-hetzner
|
||||||
| CT | Name | Tailscale IP | Dienste |
|
| CT | Name | Tailscale IP | Dienste |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 101 | wordpress-v2 | 100.91.212.19 | WordPress + MySQL (Docker) |
|
| 101 | $(echo $CT_101 | cut -d'|' -f1) | $(echo $CT_101 | cut -d'|' -f2) | $(echo $CT_101 | cut -d'|' -f3) |
|
||||||
| 103 | seafile | 100.75.247.60 | Seafile (seafile.orbitalo.net) |
|
| 103 | $(echo $CT_103 | cut -d'|' -f1) | $(echo $CT_103 | cut -d'|' -f2) | $(echo $CT_103 | cut -d'|' -f3) ($DOMAIN_SEAFILE) |
|
||||||
| 109 | rss-manager | 100.113.244.101 | RSS Manager + Matomo |
|
| 109 | $(echo $CT_109 | cut -d'|' -f1) | $(echo $CT_109 | cut -d'|' -f2) | $(echo $CT_109 | cut -d'|' -f3) |
|
||||||
| 110 | portainer | 100.109.206.43 | Portainer Docker UI |
|
| 110 | $(echo $CT_110 | cut -d'|' -f1) | $(echo $CT_110 | cut -d'|' -f2) | $(echo $CT_110 | cut -d'|' -f3) |
|
||||||
| 111 | forgejo | 100.89.246.60 | Forgejo Git (http://100.89.246.60:3000) |
|
| 111 | $(echo $CT_111 | cut -d'|' -f1) | $(echo $CT_111 | cut -d'|' -f2) | $(echo $CT_111 | cut -d'|' -f3) (http://$(echo $CT_111 | cut -d'|' -f2):3000) |
|
||||||
| 144 | muldenstein-backup | — | Backup-Archiv |
|
| 144 | $(echo $CT_144 | cut -d'|' -f1) | $(echo $CT_144 | cut -d'|' -f2) | $(echo $CT_144 | cut -d'|' -f3) |
|
||||||
| 999 | cluster-docu | 100.79.8.49 | Dokumentation (http://100.79.8.49:8080) |
|
| 999 | $(echo $CT_999 | cut -d'|' -f1) | $(echo $CT_999 | cut -d'|' -f2) | $(echo $CT_999 | cut -d'|' -f3) (http://$(echo $CT_999 | cut -d'|' -f2):8080) |
|
||||||
|
|
||||||
## Gelöschte Container (24.02.2026)
|
## Gelöschte Container (24.02.2026)
|
||||||
| CT | Name | Grund |
|
| CT | Name | Grund |
|
||||||
|
|
@ -219,35 +227,30 @@ cat > "$REPO/infrastructure/STATE.md" << EOF
|
||||||
## Container auf pve1 (Kambodscha)
|
## Container auf pve1 (Kambodscha)
|
||||||
| CT | Name | Dienste |
|
| CT | Name | Dienste |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 136 | gold-silber-v3 | Edelmetall-Bot (Tailscale: 100.72.230.87) |
|
| 136 | $(echo $CT_136 | cut -d'|' -f1) | $(echo $CT_136 | cut -d'|' -f3) (Tailscale: $(echo $CT_136 | cut -d'|' -f2)) |
|
||||||
| 143 | smart-home | ioBroker + Grafana + InfluxDB |
|
| 143 | $(echo $CT_143_PVE1 | cut -d'|' -f1) | $(echo $CT_143_PVE1 | cut -d'|' -f3) |
|
||||||
|
|
||||||
## Container auf pve3 (Muldenstein)
|
## Container auf pve3 (Muldenstein)
|
||||||
| CT | Name | Tailscale IP | Dienste |
|
| CT | Name | Tailscale IP | Dienste |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 139 | Syncthing-Muldenstein | — | Syncthing |
|
| 600 | $(echo $CT_600 | cut -d'|' -f1) | $(echo $CT_600 | cut -d'|' -f2) | $(echo $CT_600 | cut -d'|' -f3) |
|
||||||
| 141 | syncthing | — | Syncthing |
|
| 601 | $(echo $CT_601 | cut -d'|' -f1) | $(echo $CT_601 | cut -d'|' -f2) | $(echo $CT_601 | cut -d'|' -f3) |
|
||||||
| 142 | WG-easy | — | WireGuard |
|
| 145 | $(echo $CT_145 | cut -d'|' -f1) | $(echo $CT_145 | cut -d'|' -f2) | $(echo $CT_145 | cut -d'|' -f3) |
|
||||||
| 143 | Raspi-Broker | — | MQTT Broker |
|
|
||||||
| 145 | flugscanner-mu | — | Flugpreisscanner Node |
|
|
||||||
| 504 | projektscan-template | — | Projektscan |
|
|
||||||
| 600 | wp-mirror | 100.92.205.101 | WordPress Mirror (Redundanz CT 101) |
|
|
||||||
| 601 | rss-mirror | — | RSS Manager Mirror (Redundanz CT 109) |
|
|
||||||
|
|
||||||
## Routing
|
## Routing
|
||||||
- Cloudflare Tunnel CT 101: arakavanews.com → :80
|
- Cloudflare Tunnel CT 101: $DOMAIN_PRIMARY → :80
|
||||||
- Cloudflare Tunnel CT 101: arakava-news-2.orbitalo.net → 301 → arakavanews.com
|
- Cloudflare Tunnel CT 101: $DOMAIN_OLD → 301 → $DOMAIN_PRIMARY
|
||||||
- Cloudflare Tunnel CT 109: matomo.orbitalo.net → :80
|
- Cloudflare Tunnel CT 109: $DOMAIN_MATOMO → :80
|
||||||
- Cloudflare Tunnel CT 600: Standby (WordPress Mirror)
|
- Cloudflare Tunnel CT 600: Standby (WordPress Mirror)
|
||||||
- Cloudflare Tunnel CT 601: Standby (RSS Manager Mirror)
|
- Cloudflare Tunnel CT 601: Standby (RSS Manager Mirror)
|
||||||
- Kein Traefik, kein PBS-Gateway mehr
|
- Kein Traefik, kein PBS-Gateway mehr
|
||||||
|
|
||||||
## Zugangsdaten
|
## Zugangsdaten
|
||||||
- pve-hetzner: root / Astral-Proxmox!2026
|
- pve-hetzner: root / $PW_HETZNER
|
||||||
- pve1: root / astral66
|
- pve1: root / $PW_DEFAULT
|
||||||
- Alle CTs: root / astral66
|
- Alle CTs: root / $PW_DEFAULT
|
||||||
- Seafile: admin@orbitalo.net / astral66
|
- Seafile: admin@orbitalo.net / $PW_DEFAULT
|
||||||
- Forgejo: orbitalo / astral66
|
- Forgejo: orbitalo / $PW_DEFAULT
|
||||||
|
|
||||||
## Telegram Bots
|
## Telegram Bots
|
||||||
| Bot | Token (Auszug) | Chat-ID |
|
| Bot | Token (Auszug) | Chat-ID |
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# Smart Home Muldenstein — Live State
|
# Smart Home Muldenstein — Live State
|
||||||
> Auto-generiert: 2026-03-08 05:00
|
> Auto-generiert: 2026-03-08 05:08
|
||||||
|
|
||||||
## Backup-Status
|
## Backup-Status
|
||||||
- Letztes Backup: 513M Mar 8 04:01
|
- Letztes Backup: 513M Mar 8 04:01
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue