merge: remote STATE-Updates integriert, fuenfvoracht-Sprint behalten
Made-with: Cursor
This commit is contained in:
parent
a9ef7739be
commit
cbe681b0c4
6 changed files with 279 additions and 252 deletions
|
|
@ -6,9 +6,12 @@
|
|||
| Aufgabe betrifft... | Lade diese Datei |
|
||||
|-----------------------------------|------------------------------|
|
||||
| WordPress / RSS / Arakava News | arakava-news/STATE.md |
|
||||
| Redakteur / WordPress KI-Autor | redakteur/STATE.md |
|
||||
| Flugpreisscanner / Selenium | flugpreisscanner/STATE.md |
|
||||
| Gold / Silber / Edelmetall-Bot | edelmetall/STATE.md |
|
||||
| Smart Home / ioBroker / Grafana | smart-home/STATE.md |
|
||||
| ESP32 / Display / Heizung | esp32/PLAN.md |
|
||||
| FünfVorAcht / Telegram KI-Poster | fuenfvoracht/STATE.md |
|
||||
| Server / Container / Proxmox | infrastructure/STATE.md |
|
||||
| Telegram Bots allgemein | infrastructure/STATE.md |
|
||||
| Alle Projekte / Übersicht | MASTER_INDEX.md |
|
||||
|
|
|
|||
148
MASTER_INDEX.md
148
MASTER_INDEX.md
|
|
@ -1,122 +1,50 @@
|
|||
# Homelab Master Index
|
||||
> Eine Seite — alles drauf. Für Details: gezielt die STATE.md des Projekts laden.
|
||||
> Letztes Update: Februar 2026
|
||||
> Einmalig lesen für Übersicht. Danach gezielt die STATE.md des betroffenen Projekts laden.
|
||||
> Gesamtvision: [VISION.md](VISION.md)
|
||||
|
||||
---
|
||||
## Projekte
|
||||
|
||||
## Server-Infrastruktur
|
||||
| Projekt | Repo / Pfad | STATE.md | Code |
|
||||
|---|---|---|---|
|
||||
| **Arakava News** (WordPress + RSS + KI) | Orbitalo/Wordpress-V3-MCP-Projekt | arakava-news/STATE.md | arakava-news/src/ |
|
||||
| **Edelmetall Dashboard** (Gold/Silber) | — (in diesem Repo) | edelmetall/STATE.md | edelmetall/src/ |
|
||||
| **Smart Home Muldenstein** (ioBroker, Grafana) | — (in diesem Repo) | smart-home/STATE.md | smart-home/scripts/ |
|
||||
| **ESP32 Projekte** (Heizung, Sensor) | — (in diesem Repo) | esp32/PLAN.md | — |
|
||||
| **FünfVorAcht** (Telegram KI-Poster) | — (in diesem Repo) | fuenfvoracht/STATE.md | fuenfvoracht/src/ |
|
||||
| **Redakteur** (WordPress KI-Autor) | git.orbitalo.net/orbitalo/redakteur | redakteur/STATE.md | redakteur/src/ |
|
||||
| **Flugpreisscanner** (FRA→PNH, Selenium, KI) | git.orbitalo.net/orbitalo/flugpreisscanner | flugpreisscanner/STATE.md | flugpreisscanner/src/ |
|
||||
| **Infrastruktur** (alle Server + CTs) | — (in diesem Repo) | infrastructure/STATE.md | — |
|
||||
|
||||
| Server | Standort | IP / SSH | Passwort | Funktion |
|
||||
|--------|----------|----------|----------|----------|
|
||||
| **pve-hetzner** | Hetzner DE | `ssh root@100.88.230.59` | Astral-Proxmox!2026 | Hauptserver, alle Dienste |
|
||||
| **pbs** | Hetzner DE | `ssh root@159.69.37.185` | astral66 | Traefik/Pangolin Eintrittspunkt für *.orbitalo.net |
|
||||
| **pve1** | Kambodscha | `ssh root@192.168.0.197` | astral66 | Heimserver, homelab-brain Clone |
|
||||
| **pve3** | Muldenstein DE | `100.109.101.12` | astral66 | Smart Home (ioBroker, Grafana) |
|
||||
## Server
|
||||
|
||||
> **Wichtig:** DNS für `*.orbitalo.net` zeigt auf `159.69.37.185` (PBS).
|
||||
> Traefik-Config: `/opt/config/traefik/dynamic_config.yml` auf PBS.
|
||||
| Server | Standort | Tailscale IP | Funktion |
|
||||
|---|---|---|---|
|
||||
| pve-hetzner | Deutschland | 100.88.230.59 | Hauptserver (CT 100-110, 144, 999) |
|
||||
| pve1 | Kambodscha | 192.168.0.197 (lokal) / 100.122.56.60 (TS) | Heimserver (CT 136, 888, 999-Mirror) |
|
||||
| pve3 | Muldenstein, DE | 100.109.101.12 | Smart Home (CT 143, 134) |
|
||||
|
||||
---
|
||||
## Wichtigste Zugangsdaten
|
||||
|
||||
## Container-Übersicht (pve-hetzner)
|
||||
|
||||
| CT | Name | Funktion | Interne IP | Tailscale IP |
|
||||
|-----|-------------------|-----------------------------------|----------------|-------------------|
|
||||
| 100 | traefik | Traefik + Pangolin + Gerbil | 10.10.10.100 | — |
|
||||
| 101 | wordpress-v2 | WordPress (alt) | 10.10.10.101 | — |
|
||||
| 103 | seafile | Seafile Fileserver | 10.10.10.103 | 100.114.178.113 |
|
||||
| 104 | n8n | n8n Workflow Automation | 10.10.10.104 | — |
|
||||
| 106 | wordpress-news | WordPress Arakava News (v3) | 10.10.10.106 | — |
|
||||
| 109 | rss-manager | RSS Manager + Research Dashboard | 10.10.10.109 | 100.113.244.101 |
|
||||
| 110 | portainer | Portainer Docker-Management | 10.10.10.110 | — |
|
||||
| 111 | forgejo | Forgejo Git-Server | 10.10.10.111 | 100.89.246.60 |
|
||||
| 144 | muldenstein-backup| Backup CT | 10.10.10.144 | — |
|
||||
| 999 | cluster-docu | Cluster-Dokumentation | — | — |
|
||||
|
||||
---
|
||||
|
||||
## Öffentliche URLs
|
||||
|
||||
| URL | Dienst | CT |
|
||||
|-----|--------|----|
|
||||
| `https://arakava-news.orbitalo.net` | WordPress News (öffentlich) | 106 |
|
||||
| `https://research.orbitalo.net` | Research Dashboard (privat, PW: astral66) | 109 |
|
||||
| `https://git.orbitalo.net` | Forgejo Git-Server | 111 |
|
||||
| `https://seafile.orbitalo.net` | Seafile | 103 |
|
||||
| `https://pangolin.orbitalo.info` | Pangolin VPN Dashboard | PBS |
|
||||
| `https://status.orbitalo.net` | Uptime Kuma | PBS |
|
||||
| `https://traefik.orbitalo.net` | Traefik Dashboard | PBS |
|
||||
|
||||
---
|
||||
|
||||
## Projekte & Dokumentation
|
||||
|
||||
| Projekt | Zweck | Docs laden |
|
||||
|---------|-------|------------|
|
||||
| **Arakava News V3** | WordPress + RSS + KI-Recherche | `arakava-news/STATE.md` + `arakava-news/ROADMAP.md` |
|
||||
| **Edelmetall Dashboard** | Gold/Silber Preis-Monitor | `edelmetall/STATE.md` |
|
||||
| **Smart Home Muldenstein** | ioBroker, Grafana, Sensoren | `smart-home/STATE.md` |
|
||||
| **ESP32 Projekte** | Heizung, Display, Sensoren | `esp32/PLAN.md` |
|
||||
| **Infrastruktur** | Alle Server + CTs + Netzwerk | `infrastructure/STATE.md` |
|
||||
|
||||
### Arakava News V3 — Ausbaustufen (Kurzübersicht)
|
||||
```
|
||||
✅ Stufe 1: Research Dashboard live (research.orbitalo.net)
|
||||
🔲 Stufe 2: Volltext-Suche & RAG (Artikel-Inhalte in DB)
|
||||
🔲 Stufe 3: Aktive Recherche-Aufträge
|
||||
🔲 Stufe 4: Persönlicher Assistent / "Moltbot V2"
|
||||
🔲 Stufe 5: Public/Private Publishing-Workflow
|
||||
```
|
||||
Details: `arakava-news/ROADMAP.md`
|
||||
|
||||
---
|
||||
|
||||
## Zugangsdaten
|
||||
|
||||
| System | URL / Zugang | Login |
|
||||
|--------|-------------|-------|
|
||||
| pve-hetzner Web | `https://138.201.84.95:8006` | root / Astral-Proxmox!2026 |
|
||||
| pve1 Web | `https://192.168.0.197:8006` | root / astral66 |
|
||||
| WordPress Admin | `https://arakava-news.orbitalo.net/wp-admin` | admin / eJIyhW0p5PFacjvvKGufKeXS |
|
||||
| Research Dashboard | `https://research.orbitalo.net` | astral66 |
|
||||
| Forgejo | `https://git.orbitalo.net` | orbitalo / astral66 |
|
||||
| Seafile | `https://seafile.orbitalo.net` | admin@orbitalo.net / astral66 |
|
||||
| n8n | intern CT 104 | wuttig@gmx.de / Astral66 |
|
||||
| Portainer | intern CT 110 | — |
|
||||
| Grafana | pve3 | admin / astral66 |
|
||||
| OpenRouter | `https://openrouter.ai` | (API Key in CT 109 .env) |
|
||||
|
||||
---
|
||||
|
||||
## Git-Repos
|
||||
|
||||
| Repo | Forgejo (primär) | GitHub (Spiegel) |
|
||||
|------|-----------------|------------------|
|
||||
| homelab-brain | `git.orbitalo.net/orbitalo/homelab-brain` | github.com/Orbitalo/homelab-brain |
|
||||
| Wordpress-V3 | `git.orbitalo.net/orbitalo/Wordpress-V3-MCP-Projekt` | github.com/Orbitalo/Wordpress-V3-MCP-Projekt |
|
||||
|
||||
---
|
||||
| System | Login |
|
||||
|---|---|
|
||||
| pve-hetzner SSH | root / Astral-Proxmox!2026 |
|
||||
| pve1 SSH | root / astral66 |
|
||||
| Alle lokalen CTs | root / astral66 |
|
||||
| WordPress Admin | admin / astral66 |
|
||||
| Seafile | admin@orbitalo.net / astral66 |
|
||||
| n8n | wuttig@gmx.de / Astral66 |
|
||||
| Dify | admin@orbitalo.net / astral66 |
|
||||
| Grafana | admin / astral66 |
|
||||
|
||||
## Telegram Bots
|
||||
|
||||
| Bot | Token | Chat-ID | Einsatz |
|
||||
|-----|-------|---------|---------|
|
||||
| Arakava / Alerts | `8551565940:AAHIUpZND-tCNGv9yEoNPRyPt4GxEPYBJdE` | 674951792 | RSS Alerts, WP Kommentare |
|
||||
| DifyRagBot | `8390483455:AAEUyRWkvESSGQBtvjzAIQ5UKqmpoMTQZ00` | 674951792 | Dify / Grafana |
|
||||
|
||||
---
|
||||
| Bot | Token | Chat-ID | Projekt |
|
||||
|---|---|---|---|
|
||||
| @MutterbotAI_bot | (in infrastructure/STATE.md) | 674951792 | Moltbot allgemein |
|
||||
| @DifyRagBot | 8390483455:AAEUyRWkvESSGQBtvjzAIQ5UKqmpoMTQZ00 | 674951792 | Dify RAG / Grafana Alerts |
|
||||
| Arakava Comments | 8551565940:AAHIUpZND-tCNGv9yEoNPRyPt4GxEPYBJdE | 674951792 | WordPress Kommentare |
|
||||
| Edelmetall Bot | 8262992299:AAEf8YHPsz42ZdP85DV7JqC4822Ts75GqF4 | 674951792 | Gold/Silber Preise (CT 136) |
|
||||
|
||||
## Auto-Sync
|
||||
|
||||
- `sync-state.sh` läuft alle **15 Minuten** auf pve-hetzner (`/opt/homelab-brain/scripts/`)
|
||||
- Pusht zu Forgejo: `git.orbitalo.net/orbitalo/homelab-brain`
|
||||
- pve1 pullt automatisch alle 15 Minuten von Forgejo
|
||||
- Log: `/var/log/homelab-sync.log` auf pve-hetzner
|
||||
|
||||
---
|
||||
|
||||
## Cluster-Dokumentation (CT 999)
|
||||
```bash
|
||||
ssh root@192.168.0.197 # pve1 Kambodscha
|
||||
pct exec 999 -- cat /root/.cursorrules
|
||||
```
|
||||
Die STATE.md Dateien werden täglich um 03:00 Uhr automatisch aktualisiert.
|
||||
Script: `scripts/sync-state.sh` läuft als Cron-Job auf pve-hetzner.
|
||||
|
|
|
|||
|
|
@ -1,72 +1,130 @@
|
|||
# Arakava News — Live State
|
||||
> Auto-generiert: 2026-02-26 16:00
|
||||
# STATE: Arakava News
|
||||
**Stand: 24.02.2026**
|
||||
|
||||
## Service Status
|
||||
| Service | CT | Status |
|
||||
|---|---|---|
|
||||
| rss-manager | 109 | active |
|
||||
| WordPress Docker | 101 | running |
|
||||
---
|
||||
|
||||
## Letzte Feed-Aktivität (Top 5)
|
||||
Antispiegel: 2026-02-26 14:30:12
|
||||
PAZ: 2026-02-26 14:30:09
|
||||
Heise Online: 2026-02-26 14:13:12
|
||||
Rubikon.news: 2026-02-26 14:13:05
|
||||
Junge Freiheit: 2026-02-26 14:00:08
|
||||
## Aktiver Zustand
|
||||
|
||||
## Fehler (letzte 24h)
|
||||
- Fehler gesamt: 0
|
||||
0
|
||||
- Letzter Fehler:
|
||||
### Container-Landschaft (nach Bereinigung)
|
||||
|
||||
## OpenRouter Guthaben
|
||||
$12.20 verbleibend
|
||||
| CT | Dienst | Status | Tailscale |
|
||||
|----|--------|--------|-----------|
|
||||
| 101 | WordPress + MySQL (Docker) | ✅ Läuft | 100.91.212.19 |
|
||||
| 109 | RSS Manager + Matomo | ✅ Läuft | 100.113.244.101 |
|
||||
|
||||
## URLs
|
||||
- Blog: https://arakava-news-2.orbitalo.net
|
||||
- Admin: https://arakava-news-2.orbitalo.net/wp-admin (admin / eJIyhW0p5PFacjvvKGufKeXS)
|
||||
- RSS Manager: http://100.113.244.101:8080 (admin / astral66)
|
||||
- Matomo: https://matomo.orbitalo.net (admin / astral66)
|
||||
**Gelöscht (24.02.2026):** CT 100 (Traefik), CT 102 (Dify), CT 104 (n8n), CT 105, CT 106, CT 113 (Matomo alt)
|
||||
|
||||
## Container
|
||||
| CT | Dienst | Tailscale |
|
||||
|---|---|---|
|
||||
| 101 | WordPress + MySQL (Docker) | 100.91.212.19 |
|
||||
| 109 | RSS Manager + Matomo | 100.113.244.101 |
|
||||
### URLs
|
||||
|
||||
## Aktive Feeds (17)
|
||||
| ID | Name | Schedule |
|
||||
|---|---|---|
|
||||
| 1 | Dr. Bines Substack | 08/14/20 Uhr |
|
||||
| 3 | NachDenkSeiten | 07/13/19 Uhr |
|
||||
| 4 | Tichys Einblick | 07:30/13:30/19:30 |
|
||||
| 5 | Junge Freiheit | 08/14/20 Uhr |
|
||||
| 6 | PAZ | 08:30/14:30/20:30 |
|
||||
| 7 | Apollo News | 09/15/21 Uhr |
|
||||
| 8 | Apolut | 09:30/15:30/21:30 |
|
||||
| 9 | Achgut.com | 10/16/22 Uhr |
|
||||
| 10 | Heise Security | alle 4h |
|
||||
| 11 | Golem.de | alle 2h |
|
||||
| 12 | Heise Online | alle 3h |
|
||||
| 13 | Rubikon.news | alle 3h |
|
||||
| 14 | Corona-Transition | alle 4h |
|
||||
| 15 | Photon.info (KI-Analyse) | alle 6h |
|
||||
| 16 | Antispiegel | 08:30/14:30/20:30 |
|
||||
| 17 | Riehle News | 09:00 Uhr |
|
||||
| Dienst | URL |
|
||||
|--------|-----|
|
||||
| Blog | https://arakava-news-2.orbitalo.net |
|
||||
| Admin | https://arakava-news-2.orbitalo.net/wp-admin |
|
||||
| RSS Manager | http://100.113.244.101:8080 |
|
||||
| Matomo | https://matomo.orbitalo.net |
|
||||
|
||||
## Code (CT 109: /opt/rss-manager/)
|
||||
poster.py, scheduler.py, app.py, db.py
|
||||
---
|
||||
|
||||
## WP-Cron Konfiguration
|
||||
- DISABLE_WP_CRON = true in wp-config.php (Race Conditions behoben)
|
||||
- System-Cron: */5 * * * * curl -sk https://arakava-news-2.orbitalo.net/wp-cron.php?doing_wp_cron
|
||||
- WordPress + Blocksy auf Deutsch (de_DE)
|
||||
## CT 101 — WordPress
|
||||
|
||||
## Änderungshistorie
|
||||
- 24.02.2026: Scheduler Lock gegen Doppelstarts
|
||||
- 24.02.2026: Telegram auf HTML-Modus (Sonderzeichen-Fix)
|
||||
- 24.02.2026: Werbeartikel-Blacklist (Anzeige:, Sponsored, etc.)
|
||||
- 24.02.2026: DISABLE_WP_CRON + System-Cron (Race Condition Fix)
|
||||
- 24.02.2026: WordPress auf Deutsch (de_DE), Blocksy Theme DE
|
||||
- 23.02.2026: Matomo von CT 113 → CT 109 migriert
|
||||
- 23.02.2026: CT 100/102/104/105/106/113 gelöscht
|
||||
**Stack:** Docker (wordpress-app + wordpress-mysql)
|
||||
**Compose:** /opt/wordpress/docker-compose.yml
|
||||
|
||||
### Plugins
|
||||
|
||||
| Plugin | Pfad | Funktion |
|
||||
|--------|------|---------|
|
||||
| arakava-counter | /wp-content/plugins/arakava-counter/ | Besucherzähler, Bot-gefiltert |
|
||||
| blocksy | /wp-content/plugins/blocksy-companion/ | Theme |
|
||||
| matomo-tracking.php | /wp-content/mu-plugins/ | Async Matomo JS |
|
||||
| breaking-news-ticker.php | /wp-content/mu-plugins/ | News Ticker Shortcode |
|
||||
|
||||
### Bot-Filter (arakava-counter.php)
|
||||
|
||||
- User-Agent < 10 Zeichen → ignoriert
|
||||
- Regex für ~20 Bot-Typen (bot, crawl, spider, curl, python, selenium, etc.)
|
||||
- IP-Ausschluss: `103.101.*` (eigene dynamische IP)
|
||||
- Kein Tracking für eingeloggte WordPress-Benutzer
|
||||
|
||||
### Matomo-Tracking
|
||||
|
||||
- **Eingeloggte User:** KEIN Tracking (via `is_user_logged_in()` Check)
|
||||
- **Konfiguration:** Matomo auf CT 109:80, Site-ID 1
|
||||
|
||||
### Design-Anpassungen
|
||||
|
||||
- Header: Dunkel (`#0f172a`) via Blocksy Custom CSS
|
||||
- Homepage: Breaking News Ticker ([breaking_news] Shortcode)
|
||||
- Neue Kategorie "Eigenversorgung & Optimierung" mit mehreren Unterkategorien
|
||||
|
||||
---
|
||||
|
||||
## CT 109 — RSS Manager
|
||||
|
||||
**Stack:** Python/Flask + APScheduler
|
||||
**Pfad:** /opt/rss-manager/
|
||||
|
||||
### Scheduler-Features (Stand 24.02.2026)
|
||||
|
||||
- **Startup-Recovery:** Übersprungene Feeds werden beim Start sofort nachgeholt
|
||||
- **Feed-Lock:** `threading.Lock` pro Feed verhindert Doppelstarts
|
||||
- Alle Locks über `_feed_locks_mutex` (Thread-sicher)
|
||||
|
||||
### Telegram-Integration
|
||||
|
||||
- **Bot:** Mutter (@MutterbotAI_bot)
|
||||
- **Parse-Mode:** HTML (nicht Markdown — Sonderzeichen-Bug behoben 24.02.2026)
|
||||
- Logging für erfolgreiche Sends und API-Fehler
|
||||
|
||||
### Keyword-Filter (Blacklist)
|
||||
|
||||
Aktiv für alle Feeds:
|
||||
- `Anzeige:`
|
||||
- `Sponsored`
|
||||
- `Werbung`
|
||||
- `PR:`
|
||||
|
||||
### Matomo (auf CT 109)
|
||||
|
||||
- Migriert von CT 113 → CT 109 (23.02.2026)
|
||||
- Apache2 + PHP-FPM + MariaDB
|
||||
- Cloudflare Tunnel: matomo.orbitalo.net
|
||||
- Admin: admin / astral66
|
||||
- Eigene Besuche ausgeschlossen (Matomo-Einstellung)
|
||||
|
||||
---
|
||||
|
||||
## Routing
|
||||
|
||||
**Cloudflare Tunnel auf CT 101:**
|
||||
- arakava-news-2.orbitalo.net → localhost:80
|
||||
|
||||
**Cloudflare Tunnel auf CT 109:**
|
||||
- matomo.orbitalo.net → localhost:80
|
||||
|
||||
**Kein Traefik, kein PBS-Gateway mehr.**
|
||||
|
||||
---
|
||||
|
||||
## CT 101 — WP-Cron Konfiguration
|
||||
|
||||
- `DISABLE_WP_CRON = true` in wp-config.php (Race Conditions bei hohem Traffic behoben)
|
||||
- Echter System-Cron in CT 101: `*/5 * * * * curl -sk https://arakava-news-2.orbitalo.net/wp-cron.php?doing_wp_cron`
|
||||
- WordPress auf Deutsch (de_DE) umgestellt, inkl. Blocksy Theme
|
||||
|
||||
## Gesundheitswerte (24.02.2026)
|
||||
|
||||
| Metrik | Wert |
|
||||
|--------|------|
|
||||
| Response Zeit | 0,18s |
|
||||
| RAM WordPress | 257 MB / 2 GB |
|
||||
| RAM MySQL | 443 MB / 2 GB |
|
||||
| Disk | 3,8 GB / 20 GB (21%) |
|
||||
|
||||
---
|
||||
|
||||
## Bekannte Offene Punkte
|
||||
|
||||
- Keine bekannten kritischen Probleme
|
||||
- Scheduler läuft stabil seit 24.02.2026 05:00 Uhr
|
||||
- WP-Cron Race Condition behoben (24.02.2026)
|
||||
|
|
|
|||
|
|
@ -1,68 +1,109 @@
|
|||
# Edelmetall Dashboard — Live State
|
||||
> Auto-generiert täglich 03:00. Manueller Abschnitt am Ende.
|
||||
> Zuletzt aktualisiert: 24.02.2026
|
||||
|
||||
## Services
|
||||
|
||||
| Service | Container | URL | Status |
|
||||
|---|---|---|---|
|
||||
| Dashboard Kambodscha | CT 135, pve1 | http://192.168.0.219:8501 | auto-aktualisiert |
|
||||
| Dashboard Deutschland | CT 134, pve3 | https://blei.orbitalo.info | auto-aktualisiert |
|
||||
| **Dashboard V3** | CT 136, pve1 (Kambodscha) | https://blei.orbitalo.info | ✅ Aktiv |
|
||||
| Dashboard V3 Tailscale | CT 136, pve1 | http://100.72.230.87:8501 | ✅ Aktiv |
|
||||
| **Telegram Bot** | CT 136, pve1 | — | ✅ Aktiv |
|
||||
| CT 135 (V2) | pve1 | — | ⛔ Gestoppt 2026-02-23 |
|
||||
|
||||
## Zugang
|
||||
|
||||
```bash
|
||||
# Dashboard Kambodscha starten/stoppen
|
||||
pct exec 135 -- pkill -f streamlit
|
||||
pct exec 135 -- bash -c "cd /root/edelmetall && source venv/bin/activate && nohup streamlit run dashboard/app.py --server.port 8501 --server.address 0.0.0.0 &"
|
||||
ssh root@100.122.56.60 # pve1 Kambodscha (Tailscale)
|
||||
pct exec 136 -- bash
|
||||
|
||||
# Dashboard Deutschland (pve3)
|
||||
ssh root@100.122.163.2 "pct exec 134 -- ..."
|
||||
systemctl status edelmetall-dashboard # Streamlit
|
||||
systemctl status edelmetall-telegram # Telegram Bot
|
||||
systemctl status cloudflared # Tunnel
|
||||
|
||||
# Logs
|
||||
pct exec 136 -- tail -f /opt/edelmetall/logs/scraper.log
|
||||
pct exec 136 -- journalctl -u edelmetall-telegram -f
|
||||
|
||||
# Scraper manuell
|
||||
pct exec 136 -- bash -c "source /opt/edelmetall/venv/bin/activate && python3 /opt/edelmetall/scrape.py"
|
||||
```
|
||||
|
||||
## Code-Struktur (CT 135: /root/edelmetall/)
|
||||
## Code-Struktur (CT 136: /opt/edelmetall/)
|
||||
|
||||
```
|
||||
dashboard/app.py — Haupt-Dashboard (Streamlit)
|
||||
dashboard/validation.py — Preis-Validierung
|
||||
bot.py — Telegram Bot
|
||||
spot_api.py — Spot-Preis API
|
||||
venv/ — Python venv
|
||||
core/
|
||||
db.py DB-Verbindung + Schema
|
||||
prices.py Spot + Händler, COALESCE(buy_price, sell_price)
|
||||
portfolio.py Portfolio-Berechnung (Krügerrand-Ankaufspreis)
|
||||
scrapers/
|
||||
proaurum.py Selenium — CSS Modules [class*='product-root'] (gefixt 2026-02-24)
|
||||
degussa.py requests Fallback
|
||||
dashboard/
|
||||
app.py, tab_*.py Streamlit Dashboard
|
||||
bot.py Telegram Bot V3
|
||||
scrape.py Haupt-Scraper (PA → Degussa Fallback bei 0 Ergebnissen)
|
||||
fetch_spot.py Spot-Preis alle 30min
|
||||
data/edelmetall.db SQLite
|
||||
```
|
||||
|
||||
## Dashboard-Tabs
|
||||
## Cron-Jobs (CT 136)
|
||||
|
||||
| Tab | Funktion |
|
||||
```
|
||||
*/30 * * * * python3 /opt/edelmetall/fetch_spot.py
|
||||
0 7 * * * python3 /opt/edelmetall/scrape.py
|
||||
0 13 * * * python3 /opt/edelmetall/scrape.py
|
||||
0 21 * * * python3 /opt/edelmetall/scrape.py
|
||||
```
|
||||
|
||||
## Telegram Bot
|
||||
|
||||
| Info | Wert |
|
||||
|---|---|
|
||||
| 📈 Preise | Gold/Silber Live-Preise |
|
||||
| ⚖️ Ratio | Gold/Silber Ratio + Regime-Analyse |
|
||||
| 📊 Strategie | **Allocation Signal Indikator** |
|
||||
| 📊 Spreads | Händler-Spreads |
|
||||
| 💎 Portfolio | Persönliches Portfolio |
|
||||
| 🌍 Makro Liquidität | Makro-Analyse |
|
||||
| 🔧 Scraper | Scraper Status |
|
||||
| Token | 8262992299:AAEf8YHPsz42ZdP85DV7JqC4822Ts75GqF4 |
|
||||
| Service | edelmetall-telegram.service |
|
||||
| Befehle | /start /portfolio /preise /ratio /status |
|
||||
|
||||
## Allocation Signal Logik
|
||||
## Portfolio-Konfiguration
|
||||
|
||||
| Signal | Bedingung | Bedeutung |
|
||||
| Parameter | Wert |
|
||||
|---|---|
|
||||
| Gold | 33 oz Krügerrand |
|
||||
| Silber | 500 oz Silbermünzen |
|
||||
| Startdatum | 2025-12-28 |
|
||||
| Einkauf Gold | 3.774 EUR/oz |
|
||||
| Einkauf Silber | 66,80 EUR/oz |
|
||||
|
||||
## Datenbank (Stand 24.02.2026)
|
||||
|
||||
| Tabelle | Einträge | Zeitraum |
|
||||
|---|---|---|
|
||||
| 🔴 GOLD | ratio > MA(120) AND slope > 0 | Gold bevorzugen |
|
||||
| 🟢 REBALANCING | percentile >= 90 OR ratio > 85 | Silber relativ günstig |
|
||||
| 🟡 NEUTRAL | sonst | Halten |
|
||||
| spot_prices | 2.031 | 2025-12-18 bis heute |
|
||||
| gold_prices | 16.776 | 2025-12-18 bis heute |
|
||||
| silver_prices | 14.033 | 2025-12-18 bis heute |
|
||||
|
||||
Hysterese: Signal wechselt erst nach 7 Tagen stabiler Bedingung.
|
||||
## Scraper-Logik
|
||||
|
||||
## Portfolio (Kambodscha Investment)
|
||||
1. **Pro Aurum** (Selenium) — primär
|
||||
- Selektor: `[class*='product-root']` (CSS Modules, Stand 2026-02-24)
|
||||
- Preise: `[class*='buySellSection-price']` — Index 0 = Kaufpreis, Index 1 = Ankaufspreis
|
||||
- Fallback bei 0 Ergebnissen → Degussa (nicht nur bei Exception!)
|
||||
2. **Degussa** (requests) — Fallback
|
||||
3. Portfolio nutzt **Ankaufspreis** (buy_price) für Bewertung
|
||||
4. COALESCE(buy_price, sell_price) in SQL falls Ankaufspreis fehlt
|
||||
|
||||
| Wohnung | Stock | Kaufpreis | Mieter | Miete |
|
||||
|---|---|---|---|---|
|
||||
| D1603 | 16 | 29.745 EUR | Antonio Ramirez | 250 USD/M |
|
||||
| G2010B | 20 | 34.000 USD | Cheng Qiu | 250 USD/M |
|
||||
## Fixes 24.02.2026
|
||||
|
||||
Netto-Einnahmen: 467 USD/Monat (nach Management Fee)
|
||||
| Problem | Ursache | Fix |
|
||||
|---|---|---|
|
||||
| Scraper: 0 Produkte | Pro Aurum CSS Modules → alter Selektor | `[class*='product-root']` |
|
||||
| Fallback nie aktiv | Exception nur bei Fehler, nicht bei leer | `raise ValueError` bei 0 Ergebnissen |
|
||||
| Bot: "Keine Preise" | SQLite `'localtime'` → +7h Versatz | `'localtime'` entfernt |
|
||||
| Portfolio zu hoch | buy/sell Preise vertauscht (10% Fehler) | `buySellSection-price` Index-Reihenfolge |
|
||||
| buy_price NULL | Neuer Selektor fand Ankauf nicht | `COALESCE(buy_price, sell_price)` |
|
||||
|
||||
## Offene Aufgaben
|
||||
- [ ] Beide Dashboards in CT 112 v3 migrieren
|
||||
- [ ] Bot-Alerts für Allocation Signal
|
||||
## Konnektivität CT 136
|
||||
|
||||
## Notizen (manuell)
|
||||
<!-- Hier können manuelle Ergänzungen eingetragen werden -->
|
||||
| Typ | Wert |
|
||||
|---|---|
|
||||
| Cloudflare Tunnel | c94b28f3-f473-475a-87da-b87c1806ecd8 |
|
||||
| Tailscale | 100.72.230.87 |
|
||||
|
|
|
|||
|
|
@ -1,52 +1,56 @@
|
|||
# Infrastruktur — Live State
|
||||
> Auto-generiert: 2026-02-26 16:00
|
||||
> Auto-generiert: 2026-02-22 06:30
|
||||
|
||||
## pve-hetzner Disk
|
||||
| Mount | Belegt |
|
||||
|---|---|
|
||||
| / (root) | 11% von 98G |
|
||||
| /var/lib/vz (VMs/CTs) | 2% von 2.9T |
|
||||
| /var/lib/vz (VMs) | 5% von 2.9T |
|
||||
|
||||
## Aktive Container auf pve-hetzner
|
||||
## Container auf pve-hetzner
|
||||
| CT | Name | Tailscale IP | Dienste |
|
||||
|---|---|---|---|
|
||||
| 101 | wordpress-v2 | 100.91.212.19 | WordPress + MySQL (Docker) |
|
||||
| 100 | traefik | 100.78.77.115 | Traefik, Pangolin, Gerbil, Uptime-Kuma, cloudflared (Tunnel 7bcbd550) |
|
||||
| 101 | moltbot | 100.91.212.19 | @MutterbotAI_bot |
|
||||
| 102 | dify | 100.113.136.30 | Dify RAG + @DifyRagBot |
|
||||
| 103 | seafile | 100.75.247.60 | Seafile (seafile.orbitalo.net) |
|
||||
| 109 | rss-manager | 100.113.244.101 | RSS Manager + Matomo |
|
||||
| 110 | portainer | 100.109.206.43 | Portainer Docker UI |
|
||||
| 111 | forgejo | 100.89.246.60 | Forgejo Git (http://100.89.246.60:3000) |
|
||||
| 104 | n8n | 100.125.102.93 | n8n (Workflows deaktiviert) |
|
||||
| 106 | wordpress-news | — | WordPress + MySQL (Docker), Cloudflare Tunnel ef43618e |
|
||||
| 107 | ragflow | 100.116.125.12 | RAGFlow (in Einrichtung) |
|
||||
| 109 | rss-manager | — | RSS Manager + KI |
|
||||
| 110 | portainer | 100.109.206.43 | Portainer UI |
|
||||
| 144 | muldenstein-backup | — | Backup-Archiv |
|
||||
| 999 | cluster-docu | 100.79.8.49 | Dokumentation (http://100.79.8.49:8080) |
|
||||
| 999 | cluster-docu | 100.79.8.49 | Dokumentation (/root/docs/) |
|
||||
|
||||
## Gelöschte Container (24.02.2026)
|
||||
| CT | Name | Grund |
|
||||
|---|---|---|
|
||||
| 100 | traefik | Abgelöst durch Cloudflare Tunnel |
|
||||
| 102 | dify | Experiment fehlgeschlagen |
|
||||
| 104 | n8n | Nicht aktiv genutzt |
|
||||
| 105 | debian-12 | Nicht genutzt |
|
||||
| 106 | wordpress-news | Abgelöst durch CT 101 |
|
||||
| 113 | matomo | Integriert in CT 109 |
|
||||
## Container auf pve1 Kambodscha
|
||||
| CT | Name | IP | Tailscale | Dienste |
|
||||
|---|---|---|---|---|
|
||||
| 136 | gold-silber-v3 | 192.168.0.159 | 100.72.230.87 | Dashboard V3 (blei.orbitalo.info), Telegram Bot V3, Cloudflare Tunnel |
|
||||
| 888 | MCP-Proxmox | 192.168.0.116 | — | Proxmox MCP |
|
||||
| 999 | cluster-docu | 192.168.0.209 | — | Doku-Mirror |
|
||||
| ~~135~~ | ~~gold-silber-v2~~ | ~~192.168.0.219~~ | — | ⛔ gestoppt 2026-02-23 |
|
||||
|
||||
## Container auf pve1 (Kambodscha)
|
||||
| CT | Name | Dienste |
|
||||
|---|---|---|
|
||||
| 136 | gold-silber-v3 | Edelmetall-Bot (Tailscale: 100.72.230.87) |
|
||||
| 143 | smart-home | ioBroker + Grafana + InfluxDB |
|
||||
|
||||
## Routing
|
||||
- Cloudflare Tunnel CT 101: arakava-news-2.orbitalo.net → :80
|
||||
- Cloudflare Tunnel CT 109: matomo.orbitalo.net → :80
|
||||
- Kein Traefik, kein PBS-Gateway mehr
|
||||
## Container auf pve3 Muldenstein
|
||||
| CT | Name | IP | Dienste |
|
||||
|---|---|---|---|
|
||||
| 143 | raspi-broker | 192.168.178.36 | InfluxDB, Grafana, ioBroker |
|
||||
| ~~134~~ | ~~gold-silber-de~~ | ~~100.69.161.128~~ | ⛔ gestoppt |
|
||||
|
||||
## Zugangsdaten
|
||||
- pve-hetzner: root / Astral-Proxmox!2026
|
||||
- pve1: root / astral66
|
||||
- Alle CTs: root / astral66
|
||||
- Alle lokalen CTs: root / astral66
|
||||
- Seafile: admin@orbitalo.net / astral66
|
||||
- Forgejo: orbitalo / astral66
|
||||
- n8n: wuttig@gmx.de / Astral66
|
||||
- Dify: admin@orbitalo.net / astral66
|
||||
|
||||
## Telegram Bots
|
||||
| Bot | Token (Auszug) | Chat-ID |
|
||||
|---|---|---|
|
||||
| Mutter (@MutterbotAI_bot) | 8551565940:... | 674951792 |
|
||||
## Änderungen 2026-02-23
|
||||
|
||||
- CT 136 (gold-silber-v3) neu auf pve1 erstellt — Edelmetall Dashboard V3
|
||||
- CT 135 gestoppt (ersetzt durch CT 136)
|
||||
- CT 134 auf pve3 gestoppt (war blei.orbitalo.info, jetzt CT 136)
|
||||
- CT 106 (Bot): Code auf neue Struktur /opt/edelmetall/ migriert, alter Code in /root/edelmetall_v2_archive/
|
||||
- CT 100 (Traefik): edelmetall-router/service entfernt — blei.orbitalo.info läuft jetzt über Cloudflare Tunnel in CT 136
|
||||
- pve1: iptables-persistent installiert (NAT-Regel temporär, danach entfernt)
|
||||
|
||||
## Notizen (manuell)
|
||||
|
|
|
|||
|
|
@ -160,17 +160,10 @@ $OR_BALANCE
|
|||
## Code (CT 109: /opt/rss-manager/)
|
||||
poster.py, scheduler.py, app.py, db.py
|
||||
|
||||
## WP-Cron Konfiguration
|
||||
- DISABLE_WP_CRON = true in wp-config.php (Race Conditions behoben)
|
||||
- System-Cron: */5 * * * * curl -sk https://arakava-news-2.orbitalo.net/wp-cron.php?doing_wp_cron
|
||||
- WordPress + Blocksy auf Deutsch (de_DE)
|
||||
|
||||
## Änderungshistorie
|
||||
- 24.02.2026: Scheduler Lock gegen Doppelstarts
|
||||
- 24.02.2026: Telegram auf HTML-Modus (Sonderzeichen-Fix)
|
||||
- 24.02.2026: Werbeartikel-Blacklist (Anzeige:, Sponsored, etc.)
|
||||
- 24.02.2026: DISABLE_WP_CRON + System-Cron (Race Condition Fix)
|
||||
- 24.02.2026: WordPress auf Deutsch (de_DE), Blocksy Theme DE
|
||||
- 23.02.2026: Matomo von CT 113 → CT 109 migriert
|
||||
- 23.02.2026: CT 100/102/104/105/106/113 gelöscht
|
||||
EOF
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue