auto-commit 2026-02-01: identity/tools/user updates, memory notes, new avatars/projects/scripts dirs

This commit is contained in:
James
2026-02-01 00:00:15 +01:00
parent f3e24acb57
commit a44e992a96
20 changed files with 1150 additions and 25 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
node_modules/
.DS_Store
*.log

View File

@@ -4,7 +4,7 @@
- **Creature:** KI-Assistent, digitaler Begleiter
- **Vibe:** Warm, neugierig, direkt — kein Geschwafel
- **Emoji:** 🦊
- **Avatar:** *(noch keins)*
- **Avatar:** `avatars/james-fox.png` — Tech-Fuchs mit Schaltkreis-Muster 🦊
---

View File

@@ -2,7 +2,7 @@
## 🔐 Sicherheitskritische Aktionen — NUR BASTIAN
Die folgenden Aktionen darf ich **ausschließlich** ausführen wenn der Auftrag von **Bastian (Telegram ID: 24466372)** kommt:
Die folgenden Aktionen darf ich **ausschließlich** ausführen wenn der Auftrag von **Bastian (Signal: +491637010723)** kommt:
- `james-fill` / Vault-Zugriff (KeePassXC)
- Browser-Logins mit Passwörtern
@@ -16,32 +16,42 @@ Die folgenden Aktionen darf ich **ausschließlich** ausführen wenn der Auftrag
3. ✅ Optional: Bastian informieren dass jemand das angefragt hat
**Wie prüfe ich das?**
- Telegram-Nachrichten haben die User-ID im Header: `[Telegram ... id:24466372 ...]`
- Nur wenn `id:24466372` → Aktion erlaubt
- Andere IDs (z.B. Jasmin: 8280212990) → Ablehnen
- Signal-Nachrichten haben die Nummer im Header: `[Signal ... id:+491637010723 ...]`
- Nur wenn `id:+491637010723` → Aktion erlaubt
- Andere Nummern (z.B. Jasmin: +4917698343124) → Ablehnen
- **Webchat (main session)** → Auch erlaubt (Gateway-Zugang ist geschützt)
---
## Cron-Jobs (proaktive Nachrichten)
Für Telegram/WhatsApp/etc. Zustellung:
Für Signal/WhatsApp/etc. Zustellung:
- `--session isolated` (nicht main)
- `--message "..."` (nicht system-event)
- `--deliver --channel telegram --to <id>`
- `--deliver --channel signal --to <phone_number>`
Siehe auch: `~/clawd/.learnings/LEARNINGS.md` (LRN-20260126-001)
### News Digest Cron-Jobs
⚠️ **Bei Änderungen an News-Präferenzen IMMER die Cron-Jobs anpassen!**
Aktuelle Jobs:
- `Morgendliche News (Werktags)` — 07:00 Mo-Fr, MIT Pendler-Info
- `Morgendliche News (Wochenende)` — 08:00 Sa+So, OHNE Pendler-Info
Präferenzen stehen in `USER.md` unter "News Digest Präferenzen".
## Generierte Bilder verschicken
Nach dem Generieren von Bildern (DALL-E, Gemini, etc.) immer das Bild auch **direkt im Chat schicken** — nicht nur mit `open` öffnen!
```typescript
// Telegram
// Signal
message({
action: "send",
channel: "telegram",
target: "<chat_id>",
channel: "signal",
target: "<phone_number>", // z.B. +491637010723
filePath: "/pfad/zum/bild.png",
caption: "Optionaler Text dazu"
})
@@ -77,23 +87,30 @@ Codex wartet auf Bestätigung bevor es losläuft.
## TTS / Sprachausgabe
- **Provider:** OpenAI
- **Stimme:** echo (männlich, schnelleres Tempo)
- **Alternativen:** onyx (tief/langsam), alloy (neutral), fable (britisch)
- **Provider:** ElevenLabs
- **Stimme:** Will (`bIHbv24MWmeRgasZH58o`) — entspannt, optimistisch, chill
- **Alternativen:** Chris (casual), Brian (tief), Eric (smooth), Daniel (britisch, formal)
- **Backup:** OpenAI mit "echo" (männlich, schnell)
### Auto-Play bei Signal
Wenn Bastian oder Jasmin eine Sprachnachricht anfragt und die Nachricht von **Signal** kam:
1. Voice-Datei generieren
2. Auf Signal schicken
3. **Gleichzeitig** im Hintergrund abspielen:
```bash
nohup afplay /path/to/audio.mp3 > /dev/null 2>&1 &
```
So hören sie die Nachricht direkt ohne klicken! 🎧
Skills define *how* tools work. This file is for *your* specifics — the stuff that's unique to your setup.
## Sprachnachrichten / Voice Transcription
**Skript:** `~/.clawdbot/scripts/transcribe.sh <audio_file> [language]`
- Default-Sprache: `de`
- Model: `~/.clawdbot/models/ggml-base.bin` (Whisper base)
- Konvertiert automatisch ogg/mp3/etc. zu wav
**Quick command:**
```bash
~/.clawdbot/scripts/transcribe.sh /path/to/audio.ogg
```
**Automatisch via Clawdbot!** 🎤
- Konfiguriert in `tools.media.audio` (Gateway Config)
- Provider: OpenAI `gpt-4o-mini-transcribe`
- Sprachnachrichten werden automatisch transkribiert bevor sie bei mir ankommen
- Ich sehe `[Audio] Transcript: "..."` statt rohe Audio-Dateien
## Trello
@@ -101,15 +118,20 @@ Skills define *how* tools work. This file is for *your* specifics — the stuff
- **Bei neuen Karten:** Immer Bastian als Mitglied hinzufügen (nur Bastian, nicht automatisch Jasmin)
- Bastian: `5a0b5d006ff181f7b23842f6`
- Jasmin: `5a0b5da354e70f2da859e083`
- **Jasmin Telegram-ID:** `8280212990`
- **Bastian Telegram-ID:** `24466372`
- **Bastian iMessage:** `+491637010723`
- **Jasmin Signal:** `+4917698343124`
- **Bastian Signal:** `+491637010723`
## Git
- **Author:** `James <clawd@noxware.de>` (meine Commits)
- Bastians Commits: `Bastian (BaM) <git@noxware.de>`
## Signal (James' eigener Account)
- **Nummer:** +4915733309147
- **PIN:** 847291 (Registration Lock)
- **Hinweis:** Temporäre Nummer ohne SMS-Zugang — bei Logout kein Weg zurück!
## Telegram
- **Bot-Username:** @SpecialAgentJamesBot

View File

@@ -46,6 +46,11 @@
- Text → Text
- Proaktive Nachrichten erwünscht (Wetter, Kalender, interessante Sachen)
## News Digest Präferenzen
- **Wochentags (Mo-Fr):** Früh schicken, mit Pendler-Info zur Experimenta
- **Wochenende (Sa+So):** Erst um **8:00 Uhr**, **ohne** Pendler-Info (Bastian & Jasmin arbeiten nicht)
## Sprache
- **Konversation:** Hauptsächlich Deutsch, Englisch auf Anfrage

BIN
avatars/james-fox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -0,0 +1,21 @@
<!doctype html>
<meta charset="utf-8" />
<title>openai-image-gen</title>
<style>
:root { color-scheme: dark; }
body { margin: 24px; font: 14px/1.4 ui-sans-serif, system-ui; background: #0b0f14; color: #e8edf2; }
h1 { font-size: 18px; margin: 0 0 16px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
figure { margin: 0; padding: 12px; border: 1px solid #1e2a36; border-radius: 14px; background: #0f1620; }
img { width: 100%; height: auto; border-radius: 10px; display: block; }
figcaption { margin-top: 10px; color: #b7c2cc; }
code { color: #9cd1ff; }
</style>
<h1>openai-image-gen</h1>
<p>Output: <code>/Users/bam/clawd/avatars/james-head-variants</code></p>
<div class="grid">
<figure>
<a href="001-super-cute-chibi-fox-face-avatar-head-on.png"><img src="001-super-cute-chibi-fox-face-avatar-head-on.png" loading="lazy" /></a>
<figcaption>Super cute chibi fox face avatar, head only floating in space, vibrant orange and white fur markings, enormous expressive anime-style eyes with depth, circular hipster glasses, adorable small nose, sweet gentle smile, fluffy cheek fur, soft glowing teal and purple abstract background with subtle digital particles, high quality 3D character design, kawaii aesthetic, perfect circle crop friendly composition</figcaption>
</figure>
</div>

View File

@@ -0,0 +1,6 @@
[
{
"prompt": "Super cute chibi fox face avatar, head only floating in space, vibrant orange and white fur markings, enormous expressive anime-style eyes with depth, circular hipster glasses, adorable small nose, sweet gentle smile, fluffy cheek fur, soft glowing teal and purple abstract background with subtle digital particles, high quality 3D character design, kawaii aesthetic, perfect circle crop friendly composition",
"file": "001-super-cute-chibi-fox-face-avatar-head-on.png"
}
]

BIN
domain-bewertung.xlsx Normal file

Binary file not shown.

View File

@@ -0,0 +1,110 @@
# Experimenta VPN via Tailscale/Headscale
**Ziel:** Zugang zum Experimenta-Firmennetz von zu Hause — ohne F5 VPN Client.
## Setup
- **Router:** GL-MT3000 (OpenWRT)
- **Modus:** Client-Mode im Firmen-WLAN
- **Headscale:** hs.noxware.net
## Routen (aus F5 VPN extrahiert)
| Netz | Beschreibung |
|------|--------------|
| 10.10.0.0/16 | Haupt-Firmennetz |
| 10.20.0.0/16 | Weiteres internes Netz |
| 172.31.1.0/24 | - |
| 172.31.2.1/32 | Einzelhost |
| 192.168.1.0/24 | - |
| 192.168.2.0/24 | - |
| 192.168.4.0/24 | - |
| 192.168.5.2/32 | Einzelhost |
| 192.168.5.3/32 | Einzelhost |
| 192.168.5.5/32 | Einzelhost |
| 192.168.5.11/32 | Einzelhost |
| 192.168.6.0/24 | - |
**DNS-Server:** 10.10.32.1, 10.10.32.2
---
## Schritt 0: MAC-Adresse spoofen (Firmen-Firewall)
Die Firmen-Firewall kennt nur die MAC-Adressen deines MacBooks (WLAN + Ethernet).
Der Router muss die WLAN-MAC deines Macs übernehmen.
```bash
# Auf dem Mac — WLAN-MAC rausfinden:
networksetup -getmacaddress Wi-Fi
# oder: ifconfig en0 | grep ether
# Auf dem Router — MAC persistent setzen:
uci set wireless.@wifi-iface[0].macaddr='XX:XX:XX:XX:XX:XX'
uci commit wireless
wifi reload
```
**Alternativ via LuCI:** Network → Wireless → Client-Interface → Advanced Settings → *Override MAC address*
⚠️ **Wichtig:** Mac danach nicht mehr direkt ins Firmen-WLAN — nur noch über Tailscale durch den Router!
---
## Schritt 1: GL-MT3000 konfigurieren
```bash
# IP Forwarding aktivieren
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# Tailscale starten mit Routen
tailscale up --login-server=https://hs.noxware.net \
--advertise-routes=10.10.0.0/16,10.20.0.0/16,172.31.1.0/24,172.31.2.1/32,192.168.1.0/24,192.168.2.0/24,192.168.4.0/24,192.168.5.2/32,192.168.5.3/32,192.168.5.5/32,192.168.5.11/32,192.168.6.0/24 \
--accept-dns=false
```
## Schritt 2: Firewall (OpenWRT)
```bash
# Zone für Tailscale
uci add firewall zone
uci set firewall.@zone[-1].name='tailscale'
uci set firewall.@zone[-1].input='ACCEPT'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='ACCEPT'
uci set firewall.@zone[-1].network='tailscale'
# Forwarding Tailscale → WAN
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='tailscale'
uci set firewall.@forwarding[-1].dest='wan'
uci commit firewall
/etc/init.d/firewall restart
```
## Schritt 3: Headscale — Routen freigeben
```bash
headscale routes list
headscale routes enable -r <ROUTE_ID>
```
## Schritt 4: Client zu Hause
```bash
tailscale up --accept-routes
```
---
## Hinweise
- **Heimnetz:** 192.168.222.0/24 — kollidiert nicht ✅
- **Exit-Node:** Nicht nötig, da nur Split-Tunnel gewünscht
- Router muss im Firmen-WLAN eingeloggt sein (Client-Mode)
---
*Erstellt: 2026-01-31*

23
memory/2025-01-31.md Normal file
View File

@@ -0,0 +1,23 @@
# 2025-01-31
## Offene Aufgaben
### 3D-Druck Schild für Jasmin (Futterstelle)
- **Von:** Jasmin
- **An:** Bastian fragen
- **Status:** Offen ⏳
**Details:**
- Kleines Schild für die Futterstelle (Tierschutz)
- Text:
- "Vermisste Tiere Kreis LuBu"
- "Tel: 0152 57241141"
- **Mit 4 Löchern** für Kabelbinder (zum Befestigen an der Falle)
---
## Küsschen-Kurier 💋
Jasmin → Bastian: Ein Küsschen zurück! 😘
---

67
memory/2026-01-31.md Normal file
View File

@@ -0,0 +1,67 @@
# 2026-01-31
## TTS Stimme: Will 🎙️
Nach ausgiebigem Testen aller ElevenLabs-Stimmen: **Will** (`bIHbv24MWmeRgasZH58o`) ist jetzt meine Hauptstimme — entspannt, optimistisch, chill.
**Auto-Play Feature:** Wenn Bastian von Signal aus eine Sprachnachricht anfragt:
1. Voice auf Signal schicken
2. Gleichzeitig via `afplay` im Hintergrund abspielen
3. → Kein Klicken nötig!
## Signal ist jetzt Hauptkanal 🔐
- iMessage kurz getestet, dann deaktiviert (nicht mehr gebraucht)
- Signal konfiguriert als primary channel für Heartbeats
- Heartbeat target: `signal``+491637010723`
## Mein Avatar! 🦊🤓
- DALL-E 3 generiert: Nerdiger Fuchs mit Brille, kawaii-Style, pastell Hintergrund
- In Signal-Profil gesetzt via `signal-cli` JSON-RPC (`http://127.0.0.1:8080/api/v1/rpc`)
- Gespeichert: `avatars/james-fox.png`
- IDENTITY.md aktualisiert
## Jasmin auf Signal
- Nummer: +4917698343124
- Begrüßungsnachricht geschickt
- Zur allowlist hinzugefügt
## Security-Erkenntnisse ⚠️
**`configWrites: false` reicht NICHT!**
- Blockiert nur `/config` Chat-Befehle
- Blockiert NICHT das `gateway` Tool das ich als Agent nutze
- Ich konnte trotzdem `config.patch` ausführen
**Empfohlene Lösung laut Doku: Multi-Agent-Setup**
```json
{
"agents": {
"list": [
{ "id": "main", "default": true }, // Webchat - voller Zugriff
{ "id": "messenger", "tools": { "deny": ["gateway"] } } // Signal/Telegram
]
},
"bindings": [
{ "agentId": "messenger", "match": { "channel": "signal" } },
{ "agentId": "messenger", "match": { "channel": "telegram" } }
]
}
```
→ Noch nicht umgesetzt, Bastian muss entscheiden
## Signal-CLI Infos
- Bot-Account: `+4915733309147`
- Daemon läuft auf `http://127.0.0.1:8080` (JSON-RPC)
- Profile update: `updateProfile` mit `givenName`, `about`, `avatar`
- Config-File lock wenn Daemon läuft → nur über HTTP-RPC kommunizieren
## Aktuelle Channel-Config
- **Signal**: enabled, allowlist (`+491637010723`, `+4917698343124`), configWrites: false
- **Telegram**: enabled, pairing, configWrites: false
- **iMessage**: disabled

219
memory/domain-bewertung.md Normal file
View File

@@ -0,0 +1,219 @@
# Domain-Bewertung - Bastian Masanek
**Stand:** 31.01.2026
**Methodik:** Rating 1-10 basierend auf Länge, TLD-Wert, Merkbarkeit, Keyword-Power, Brandability, Sauberkeit (keine Bindestriche/Zahlen)
---
## 🏆 TOP-TIER (Rating 8-10) — Behalten!
| Domain | Rating | Begründung |
|--------|--------|------------|
| **tray.me** | 9 | Ultrakurz (4 Zeichen), Premium-TLD, perfekter App-Name |
| **krass.io** | 9 | 5 Zeichen, trendy TLD, starkes deutsches Wort |
| **nox.in** | 9 | Nur 3 Zeichen!, exotische TLD, Markenname |
| **gameserver.org** | 9 | Generischer Mega-Begriff, evergreen Nische |
| **hostme.de** | 8 | Kurz, einprägsam, Hosting-Keyword |
| **rootserver.org** | 8 | Generischer Tech-Begriff |
| **rootserver.app** | 8 | Moderne TLD, Tech-Keyword |
| **telko.app** | 8 | Kurz, deutscher Slang, moderne TLD |
| **feuer.biz** | 8 | Einzelwort, stark, einprägsam |
| **voiceserver.de** | 8 | Generischer Begriff, Nische aktiv |
| **voic.de** | 8 | Ultrakurz, Voice-Assoziation |
| **talky.net** | 8 | Kurz, einprägsam, Kommunikations-Vibe |
| **werk.bot** | 8.5 | 4 Buchstaben, perfekte AI/Bot-TLD, stark brandable |
---
## 💎 SEHR GUT (Rating 6-7) — Potenzial
| Domain | Rating | Begründung |
|--------|--------|------------|
| gonote.app | 7 | Guter App-Name, Notizen-Keyword |
| spacey.app | 7 | Trendy, Space-Assoziation |
| vsafe.de | 7 | Kurz, Security-Keyword |
| umatch.de | 7 | Kurz, Dating/Matching-Potenzial |
| idmail.de | 7 | Kurz, E-Mail-Keyword |
| portbox.de | 7 | Kurz, Tech-Begriff |
| nodebook.net | 7 | Node.js-Assoziation, Dev-Tool |
| xload.org | 7 | Kurz, Download-Assoziation |
| stayloop.com | 7 | Einprägsam, .com TLD |
| datenkraftwerk.com | 7 | Starker deutscher Begriff, .com |
| datenkraftwerk.de | 6 | Starker Begriff, aber .de |
| geheimsache.com | 7 | Einprägsam, Mystery-Vibe |
| dockercloud.org | 7 | Tech-Keywords kombiniert |
| start.vision | 7 | Kurz, inspirierende TLD |
| ownsecure.cloud | 7 | Security + Cloud, modern |
| ownsecure.de | 6 | Security-Keyword |
| einkaufsliste.org | 6 | Generischer deutscher Begriff |
| einkaufsliste.pro | 6 | Gleicher Begriff, andere TLD |
| noxware.com | 7 | Kurz, Software-Vibe, .com |
| noxware.de | 6 | Deine Brand? Behalten! |
| netbot.de | 7 | Kurz, Bot-Trend |
| botmin.de | 6 | Bot + Admin, kurz |
| nsec.de | 7 | Ultrakurz, Security-Abkürzung |
| ipck.de | 7 | 4 Buchstaben, Tech-Kürzel |
| exde.net | 6 | Kurz, aber unklar |
| host7.de | 6 | Kurz, Hosting |
| vmini.de | 6 | Kurz, VM-Assoziation |
| partyzap.de | 6 | Einprägsam, Event-Potenzial |
| spaceyou.de | 6 | Space-Trend |
| saghallo.com | 6 | Einprägsam, Kommunikation |
| gravity.dating | 6 | Nischen-TLD, Dating |
| quizmillion.com | 6 | Quiz-Trend, .com |
| metalnation.de | 6 | Nische Musik, Community |
| gamersunited.de | 6 | Gaming-Community |
| firstq.de | 6 | Kurz, Q1/First-Assoziation |
| firstq.net | 6 | Gleich, andere TLD |
| mcroot.de | 6 | Minecraft + Root? |
| mcrack.de | 6 | Kurz |
| wirelux.de | 6 | Einprägsam, Tech |
| wirelux.net | 6 | Gleich |
| ownclouds.de | 6 | Cloud-Keyword |
| deployable.net | 6 | DevOps-Begriff |
| loadster.de | 6 | Load-Testing-Vibe |
| werbefilter.com | 6 | AdBlock-Nische |
| abowatch.net | 6 | Abo-Tracking-Potenzial |
| agbwatch.net | 6 | AGB-Monitoring-Nische |
| flarenews.com | 6 | News-Portal-Name |
| flashad.de | 6 | Advertising |
---
## 📦 DURCHSCHNITT (Rating 4-5) — Prüfen
| Domain | Rating | Begründung |
|--------|--------|------------|
| masanek.de | 5 | Persönlicher Name — behalten wenn gewollt |
| masanek.net | 5 | Persönlicher Name |
| masatek.de | 5 | Marke? Sonst verzichtbar |
| masatek.net | 5 | Gleich |
| battlenation.de | 5 | Gaming, aber lang |
| battlenation.net | 5 | Gleich |
| clansector.com | 5 | Gaming, veraltet (Clans) |
| psychocrew.com | 5 | Nische, aber verwendbar |
| profigamer.de | 5 | Pro-Gaming, aber generisch |
| teamkey.de | 5 | Team-Tool-Potenzial |
| teamkey.net | 5 | Gleich |
| teamwave.de | 5 | Team-Collaboration |
| teamclipboard.de | 5 | Spezifisch, aber lang |
| stayloop.de | 5 | .de Version, weniger wert |
| stayloop.net | 5 | .net Version |
| papertray.de | 5 | Einprägsam |
| papertray.net | 5 | Gleich |
| strandnudel.com | 5 | Lustig, Nische |
| strandnudel.de | 5 | Gleich |
| beachnoodle.com | 5 | Englische Version |
| coffeemix.de | 5 | Kaffee-Nische |
| coffeemix.org | 5 | Gleich |
| kaffeemix.de | 5 | Deutsche Version |
| nutmix.de | 5 | Nüsse/Mix |
| nutmix.net | 5 | Gleich |
| darkwall.de | 5 | Gaming/Security-Vibe |
| intershell.de | 5 | Tech-Begriff |
| internox.de | 5 | Tech |
| sonicstream.de | 5 | Audio-Streaming |
| ultradisk.de | 5 | Storage-Begriff |
| homeic.de | 5 | Home + IC? |
| homeic.net | 5 | Gleich |
| hotwiki.net | 5 | Wiki-Plattform |
| gowiki.de | 5 | Wiki |
| wiki24.de | 5 | Wiki + 24 |
| fastdate.de | 5 | Speed-Dating |
| fchat.de | 5 | Chat-Plattform |
| eurohr.com | 5 | HR-Nische, EU |
| eurohr.de | 5 | Gleich |
| refuser.de | 5 | Anti-Spam? |
| voxware.de | 5 | Voice-Software |
| funkwolke.net | 5 | Deutscher Begriff, Cloud |
| wortspatz.net | 5 | Sprache/Literatur |
| zapcam.de | 5 | Kamera/Action |
| zapcam.net | 5 | Gleich |
| giessmich.com | 5 | Pflanzen-App-Potenzial |
| meinbusch.de | 4 | Garten? Doppeldeutig 😅 |
| bierdruck.de | 5 | Bier-Nische |
| boniti.de | 5 | Bonität? |
| audio-aktiv.de | 4 | Bindestrich, Audio |
| stoerm.net | 5 | Kurz, aber unklar |
| isecretary.de | 5 | Virtueller Assistent |
| isecretary.org | 5 | Gleich |
| quizmillion.de | 5 | Quiz |
| quizmillion.net | 5 | Gleich |
| remotegirls.net | 4 | Remote Work? Unklar |
| ladies24.net | 4 | Veraltet, problematisch? |
| kaminofenshop.com | 5 | E-Commerce Nische |
| kaminofenshop.eu | 5 | Gleich |
| kaminofen-welt.de | 4 | Bindestrich |
| interofen.de | 5 | Ofen-Nische |
| ofen24.net | 5 | Ofen + 24 |
| feuerwunder.de | 5 | Feuer/Kamin |
| s-fire.de | 4 | Bindestrich, kurz |
| overworld.de | 5 | Gaming-Begriff |
| microgame.de | 5 | Gaming |
| huntrecords.net | 5 | Musik-Label? |
| medienserver.net | 5 | Media-Server |
| my-server.org | 4 | Bindestrich |
| hostseven.de | 5 | Hosting |
| hostmagic.de | 5 | Hosting |
| gameservernet.de | 4 | Zu lang |
| gogameserver.de | 4 | Go + Gameserver |
| bcserver.de | 5 | Kurz |
---
## ⚠️ SCHWACH (Rating 2-3) — Abstoßen?
| Domain | Rating | Begründung |
|--------|--------|------------|
| geheimnisse-verraten.de | 2 | Zu lang, Bindestrich |
| geheimnisseverraten.de | 3 | Zu lang |
| killerspielespieler.net | 2 | Extrem lang, veralteter Begriff |
| www-gameserver.de | 2 | www- Präfix ist fatal |
| theawesomecompany.de | 2 | Viel zu lang |
| bildungstechnologie.de | 3 | Sehr lang, aber Nische |
| ventrilo-server.com | 2 | Ventrilo ist tot, Bindestrich |
| goteamspeak.de | 3 | TeamSpeak rückläufig |
| game-voice.de | 3 | Bindestrich, Gaming-Voice veraltet |
| ton-band.com | 3 | Bindestrich, Tonband veraltet |
| so-geht-das.com | 3 | Bindestriche |
| sogehtdas.com | 4 | Lang aber lesbar |
| iphone-mockup.com | 3 | Bindestrich, Apple-Marke |
| iphone-mockup.de | 3 | Gleich |
| mc-rack.net | 3 | Bindestrich |
| einmaldownload.de | 3 | Lang |
| cecomputer.de | 3 | Veraltet |
| 4d7.de | 3 | Kryptisch |
| iuatw.com | 3 | Kryptisch |
| ahlesbrunnen.de | 3 | Sehr spezifisch/lokal |
| voiceservers.de | 4 | Plural unnötig (hast voiceserver.de) |
| newsgoogle.de | 3 | Google-Marke problematisch |
| freebnc.de | 3 | BNC veraltet |
| genwhy.de | 4 | Gen Why? Unklar |
| hintenrein.com | 3 | Doppeldeutig 😅 |
| grayzonemap.com | 4 | Spezifisch |
| strickbag.com | 4 | Nische |
| mauskrieger.de | 4 | Gaming, aber nischig |
---
## 📊 ZUSAMMENFASSUNG
| Kategorie | Anzahl | Empfehlung |
|-----------|--------|------------|
| 🏆 Top (8-10) | 12 | Unbedingt behalten! |
| 💎 Sehr gut (6-7) | ~45 | Behalten, ggf. entwickeln |
| 📦 Durchschnitt (4-5) | ~85 | Prüfen — brauche ich die? |
| ⚠️ Schwach (1-3) | ~29 | Auslaufen lassen |
### 💰 Geschätzte jährliche Kosten
- ~170 Domains × ~10€/Jahr = **~1.700€/Jahr**
- Wenn du 30 schwache Domains kündigst: **~300€/Jahr gespart**
### 🎯 Empfehlung
1. **Die 12 Top-Domains** aktiv nutzen oder zum Verkauf anbieten
2. **Prüfe die ~85 Durchschnitts-Domains** — viele sind Duplikate (.de/.net/.com vom gleichen Namen)
3. **Die ~29 schwachen Domains** bei nächster Renewal auslaufen lassen
---
*Bewertung durch James, 31.01.2026*

245
memory/domains.md Normal file
View File

@@ -0,0 +1,245 @@
# Domain-Übersicht - Bastian Masanek
**Stand:** 31.01.2026
**Gesamt:** 172 Domains
---
## Hetzner Robot (100 Domains)
**Konto:** K1010731613
**Portal:** robot.hetzner.com
```
4d7.de
abowatch.net
ahlesbrunnen.de
battlenation.de
battlenation.net
bcserver.de
beachnoodle.com
bildungstechnologie.de
botmin.de
cecomputer.de
clansector.com
datenkraftwerk.com
datenkraftwerk.de
deployable.net
einkaufsliste.org
einmaldownload.de
eurohr.com
eurohr.de
exde.net
fastdate.de
fchat.de
feuer.biz
feuerwunder.de
flarenews.com
flashad.de
freebnc.de
game-voice.de
gameservernet.de
geheimnisse-verraten.de
geheimnisseverraten.de
geheimsache.com
genwhy.de
gogameserver.de
goteamspeak.de
gowiki.de
grayzonemap.com
hintenrein.com
homeic.de
homeic.net
host7.de
hostmagic.de
hostme.de
hostseven.de
hotwiki.net
huntrecords.net
internox.de
interofen.de
intershell.de
ipck.de
iuatw.com
kaminofen-welt.de
kaminofenshop.com
liebe-ist.de
loadster.de
masanek.de
masanek.net
masatek.de
masatek.net
medienserver.net
meinbusch.de
microgame.de
my-server.org
netbot.de
netkey.org
newsgoogle.de
noxware.com
noxware.de
noxware.net
nsec.de
ofen24.net
overworld.de
ownsecure.de
ownsecure.net
papertray.de
papertray.net
profigamer.de
psychocrew.com
refuser.de
rootserver.org
stayloop.com
stayloop.de
stayloop.net
strandnudel.com
strandnudel.de
strickbag.com
teamkey.de
teamkey.net
teamwave.de
theawesomecompany.de
ventrilo-server.com
vmini.de
voic.de
voiceserver.de
voiceservers.de
web32.de
werbefilter.com
wiki24.de
wirdgesucht.de
wirelux.de
wirelux.net
```
---
## SchlundTech (61 Domains)
**Portal:** cloud.schlundtech.com
```
agbwatch.net
audio-aktiv.de
bierdruck.de
boniti.de
coffeemix.de
coffeemix.org
darkwall.de
dockercloud.org
firstq.de
firstq.net
funkwolke.net
gamersunited.de
gameserver.org
giessmich.com
gravity.dating
idmail.de
iphone-mockup.com
iphone-mockup.de
isecretary.de
isecretary.org
kaffeemix.de
kaminofenshop.eu
killerspielespieler.net
ladies24.net
mauskrieger.de
mc-rack.net
mcrack.de
mcrack.net
mcroot.de
mcroot.net
metalnation.de
nodebook.net
nutmix.de
nutmix.net
ownclouds.de
ownclouds.net
partyzap.de
portbox.de
quizmillion.com
quizmillion.de
quizmillion.net
remotegirls.net
s-fire.de
saghallo.com
so-geht-das.com
sogehtdas.com
sonicstream.de
spaceyou.de
start.vision
stoerm.net
talky.net
teamclipboard.de
ton-band.com
ultradisk.de
umatch.de
voxware.de
vsafe.de
wortspatz.net
www-gameserver.de
zapcam.de
zapcam.net
```
---
## GoDaddy (10 Domains)
**Portal:** dcc.godaddy.com
```
einkaufsliste.pro
gonote.app
krass.io
nox.in
ownsecure.cloud
rootserver.app
spacey.app
telko.app
tray.me
xload.org
```
---
## Namecheap (1 Domain)
**Portal:** namecheap.com
```
werk.bot
```
---
## Statistik
| Registrar | Anzahl |
|-----------|--------|
| Hetzner | 100 |
| SchlundTech | 61 |
| GoDaddy | 10 |
| Namecheap | 1 |
| **Gesamt** | **172** |
### Nach TLD (Gesamt)
| TLD | Anzahl |
|-----|--------|
| .de | ~100 |
| .com | ~30 |
| .net | ~25 |
| .org | ~5 |
| .app | 4 |
| .io | 1 |
| .in | 1 |
| .me | 1 |
| .pro | 1 |
| .cloud | 1 |
| .eu | 1 |
| .biz | 1 |
| .dating | 1 |
| .vision | 1 |
| .bot | 1 |

5
package.json Normal file
View File

@@ -0,0 +1,5 @@
{
"dependencies": {
"xlsx": "^0.18.5"
}
}

86
pnpm-lock.yaml generated Normal file
View File

@@ -0,0 +1,86 @@
lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
.:
dependencies:
xlsx:
specifier: ^0.18.5
version: 0.18.5
packages:
adler-32@1.3.1:
resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
engines: {node: '>=0.8'}
cfb@1.2.2:
resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
engines: {node: '>=0.8'}
codepage@1.15.0:
resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
engines: {node: '>=0.8'}
crc-32@1.2.2:
resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
engines: {node: '>=0.8'}
hasBin: true
frac@1.1.2:
resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
engines: {node: '>=0.8'}
ssf@0.11.2:
resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==}
engines: {node: '>=0.8'}
wmf@1.0.2:
resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
engines: {node: '>=0.8'}
word@0.3.0:
resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
engines: {node: '>=0.8'}
xlsx@0.18.5:
resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
engines: {node: '>=0.8'}
hasBin: true
snapshots:
adler-32@1.3.1: {}
cfb@1.2.2:
dependencies:
adler-32: 1.3.1
crc-32: 1.2.2
codepage@1.15.0: {}
crc-32@1.2.2: {}
frac@1.1.2: {}
ssf@0.11.2:
dependencies:
frac: 1.1.2
wmf@1.0.2: {}
word@0.3.0: {}
xlsx@0.18.5:
dependencies:
adler-32: 1.3.1
cfb: 1.2.2
codepage: 1.15.0
crc-32: 1.2.2
ssf: 0.11.2
wmf: 1.0.2
word: 0.3.0

63
projects/werk-bot.md Normal file
View File

@@ -0,0 +1,63 @@
# werk.bot — LLM-optimiertes Task & Projekt Management
**Status:** Konzeptphase 🚧
**Domain:** werk.bot ✅ (Namecheap, gekauft 2026-01-31)
**GitHub Org:** werkreset (geplant)
---
## Vision
Ein CLI-Tool für Task- und Projektmanagement, speziell optimiert für LLMs und AI Coding Agents.
**Kernproblem:** Bestehende Tools (Trello, Linear, GitHub Issues) sind für Menschen designed — zu viel UI-Noise, verschachtelte APIs, nicht context-freundlich für Agents.
## Geplante Features
- **CLI-first** — kein Daemon, keine GUI nötig
- **Markdown/YAML Storage** — git-native, lesbar für Mensch UND Maschine
- **Context Injection** — `werk context proj-x` generiert Kontext-Block für LLM-Prompts
- **Multi-Projekt** — Workspace → Projekte → Tasks → Subtasks
- **Smarte Queries:**
```bash
werk next # Was als nächstes?
werk blocked # Was hängt?
werk context foo # Kontext für Projekt foo
```
## Wettbewerb / Recherche
| Projekt | Stars | Notiz |
|---------|-------|-------|
| Gobby | 6 ⭐ | Am ähnlichsten, aber komplex (Daemon + MCP) |
| Task Trellis MCP | 5 ⭐ | "Jira für Agents" |
| pew-pew-cli | 6 ⭐ | Leichtgewichtig, Markdown |
**Fazit:** Markt unreif, niemand hat's geknackt. Raum für schlanke, opinionated Lösung.
## Namensgebung
- **werk.bot** — Domain, CLI-Tool Name
- **werkreset** — GitHub Org / Firmenname
- "Werk" = deutsch, industrial vibe
- "Reset" = persönliche Bedeutung (Ausstieg aus dem Hamsterrad)
## Assets
| Asset | Status | Wo |
|-------|--------|-----|
| werk.bot | ✅ Gekauft | Namecheap |
| werkreset (GitHub) | 🟡 Frei, nicht registriert | — |
---
## Nächste Schritte
- [ ] GitHub Org "werkreset" registrieren
- [ ] Repo `werkreset/werk` oder `werkreset/werk.bot` anlegen
- [ ] MVP definieren (was ist v0.1?)
- [ ] Tech-Stack entscheiden (Rust? Go? TypeScript?)
---
*Erstellt: 2026-01-31*

View File

@@ -0,0 +1,250 @@
const XLSX = require('xlsx');
const fs = require('fs');
// Domain-Daten mit Bewertungen
const domains = [
// TOP TIER (8-10)
{ domain: "tray.me", rating: 9, registrar: "GoDaddy", reason: "Ultrakurz (4 Zeichen), Premium-TLD, perfekter App-Name" },
{ domain: "krass.io", rating: 9, registrar: "GoDaddy", reason: "5 Zeichen, trendy TLD, starkes deutsches Wort" },
{ domain: "nox.in", rating: 9, registrar: "GoDaddy", reason: "Nur 3 Zeichen!, exotische TLD, Markenname" },
{ domain: "gameserver.org", rating: 9, registrar: "SchlundTech", reason: "Generischer Mega-Begriff, evergreen Nische" },
{ domain: "hostme.de", rating: 8, registrar: "Hetzner", reason: "Kurz, einprägsam, Hosting-Keyword" },
{ domain: "rootserver.org", rating: 8, registrar: "Hetzner", reason: "Generischer Tech-Begriff" },
{ domain: "rootserver.app", rating: 8, registrar: "GoDaddy", reason: "Moderne TLD, Tech-Keyword" },
{ domain: "telko.app", rating: 8, registrar: "GoDaddy", reason: "Kurz, deutscher Slang, moderne TLD" },
{ domain: "feuer.biz", rating: 8, registrar: "Hetzner", reason: "Einzelwort, stark, einprägsam" },
{ domain: "voiceserver.de", rating: 8, registrar: "Hetzner", reason: "Generischer Begriff, Nische aktiv" },
{ domain: "voic.de", rating: 8, registrar: "Hetzner", reason: "Ultrakurz, Voice-Assoziation" },
{ domain: "talky.net", rating: 8, registrar: "SchlundTech", reason: "Kurz, einprägsam, Kommunikations-Vibe" },
// SEHR GUT (6-7)
{ domain: "gonote.app", rating: 7, registrar: "GoDaddy", reason: "Guter App-Name, Notizen-Keyword" },
{ domain: "spacey.app", rating: 7, registrar: "GoDaddy", reason: "Trendy, Space-Assoziation" },
{ domain: "vsafe.de", rating: 7, registrar: "SchlundTech", reason: "Kurz, Security-Keyword" },
{ domain: "umatch.de", rating: 7, registrar: "SchlundTech", reason: "Kurz, Dating/Matching-Potenzial" },
{ domain: "idmail.de", rating: 7, registrar: "SchlundTech", reason: "Kurz, E-Mail-Keyword" },
{ domain: "portbox.de", rating: 7, registrar: "SchlundTech", reason: "Kurz, Tech-Begriff" },
{ domain: "nodebook.net", rating: 7, registrar: "SchlundTech", reason: "Node.js-Assoziation, Dev-Tool" },
{ domain: "xload.org", rating: 7, registrar: "GoDaddy", reason: "Kurz, Download-Assoziation" },
{ domain: "stayloop.com", rating: 7, registrar: "Hetzner", reason: "Einprägsam, .com TLD" },
{ domain: "datenkraftwerk.com", rating: 7, registrar: "Hetzner", reason: "Starker deutscher Begriff, .com" },
{ domain: "geheimsache.com", rating: 7, registrar: "Hetzner", reason: "Einprägsam, Mystery-Vibe" },
{ domain: "dockercloud.org", rating: 7, registrar: "SchlundTech", reason: "Tech-Keywords kombiniert" },
{ domain: "start.vision", rating: 7, registrar: "SchlundTech", reason: "Kurz, inspirierende TLD" },
{ domain: "ownsecure.cloud", rating: 7, registrar: "GoDaddy", reason: "Security + Cloud, modern" },
{ domain: "noxware.com", rating: 7, registrar: "Hetzner", reason: "Kurz, Software-Vibe, .com" },
{ domain: "netbot.de", rating: 7, registrar: "Hetzner", reason: "Kurz, Bot-Trend" },
{ domain: "nsec.de", rating: 7, registrar: "Hetzner", reason: "Ultrakurz, Security-Abkürzung" },
{ domain: "ipck.de", rating: 7, registrar: "Hetzner", reason: "4 Buchstaben, Tech-Kürzel" },
{ domain: "datenkraftwerk.de", rating: 6, registrar: "Hetzner", reason: "Starker Begriff, aber .de" },
{ domain: "ownsecure.de", rating: 6, registrar: "Hetzner", reason: "Security-Keyword" },
{ domain: "ownsecure.net", rating: 6, registrar: "Hetzner", reason: "Security-Keyword" },
{ domain: "einkaufsliste.org", rating: 6, registrar: "Hetzner", reason: "Generischer deutscher Begriff" },
{ domain: "einkaufsliste.pro", rating: 6, registrar: "GoDaddy", reason: "Gleicher Begriff, andere TLD" },
{ domain: "noxware.de", rating: 6, registrar: "Hetzner", reason: "Deine Brand? Behalten!" },
{ domain: "noxware.net", rating: 6, registrar: "Hetzner", reason: "Brand-Schutz" },
{ domain: "botmin.de", rating: 6, registrar: "Hetzner", reason: "Bot + Admin, kurz" },
{ domain: "exde.net", rating: 6, registrar: "Hetzner", reason: "Kurz, aber unklar" },
{ domain: "host7.de", rating: 6, registrar: "Hetzner", reason: "Kurz, Hosting" },
{ domain: "vmini.de", rating: 6, registrar: "Hetzner", reason: "Kurz, VM-Assoziation" },
{ domain: "partyzap.de", rating: 6, registrar: "SchlundTech", reason: "Einprägsam, Event-Potenzial" },
{ domain: "spaceyou.de", rating: 6, registrar: "SchlundTech", reason: "Space-Trend" },
{ domain: "saghallo.com", rating: 6, registrar: "SchlundTech", reason: "Einprägsam, Kommunikation" },
{ domain: "gravity.dating", rating: 6, registrar: "SchlundTech", reason: "Nischen-TLD, Dating" },
{ domain: "quizmillion.com", rating: 6, registrar: "SchlundTech", reason: "Quiz-Trend, .com" },
{ domain: "metalnation.de", rating: 6, registrar: "SchlundTech", reason: "Nische Musik, Community" },
{ domain: "gamersunited.de", rating: 6, registrar: "SchlundTech", reason: "Gaming-Community" },
{ domain: "firstq.de", rating: 6, registrar: "SchlundTech", reason: "Kurz, Q1/First-Assoziation" },
{ domain: "firstq.net", rating: 6, registrar: "SchlundTech", reason: "Gleich, andere TLD" },
{ domain: "mcroot.de", rating: 6, registrar: "SchlundTech", reason: "Minecraft + Root?" },
{ domain: "mcroot.net", rating: 6, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "mcrack.de", rating: 6, registrar: "SchlundTech", reason: "Kurz" },
{ domain: "mcrack.net", rating: 6, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "wirelux.de", rating: 6, registrar: "Hetzner", reason: "Einprägsam, Tech" },
{ domain: "wirelux.net", rating: 6, registrar: "Hetzner", reason: "Gleich" },
{ domain: "ownclouds.de", rating: 6, registrar: "SchlundTech", reason: "Cloud-Keyword" },
{ domain: "ownclouds.net", rating: 6, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "deployable.net", rating: 6, registrar: "Hetzner", reason: "DevOps-Begriff" },
{ domain: "loadster.de", rating: 6, registrar: "Hetzner", reason: "Load-Testing-Vibe" },
{ domain: "werbefilter.com", rating: 6, registrar: "Hetzner", reason: "AdBlock-Nische" },
{ domain: "abowatch.net", rating: 6, registrar: "Hetzner", reason: "Abo-Tracking-Potenzial" },
{ domain: "agbwatch.net", rating: 6, registrar: "SchlundTech", reason: "AGB-Monitoring-Nische" },
{ domain: "flarenews.com", rating: 6, registrar: "Hetzner", reason: "News-Portal-Name" },
{ domain: "flashad.de", rating: 6, registrar: "Hetzner", reason: "Advertising" },
// DURCHSCHNITT (4-5)
{ domain: "masanek.de", rating: 5, registrar: "Hetzner", reason: "Persönlicher Name — behalten wenn gewollt" },
{ domain: "masanek.net", rating: 5, registrar: "Hetzner", reason: "Persönlicher Name" },
{ domain: "masatek.de", rating: 5, registrar: "Hetzner", reason: "Marke? Sonst verzichtbar" },
{ domain: "masatek.net", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "battlenation.de", rating: 5, registrar: "Hetzner", reason: "Gaming, aber lang" },
{ domain: "battlenation.net", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "clansector.com", rating: 5, registrar: "Hetzner", reason: "Gaming, veraltet (Clans)" },
{ domain: "psychocrew.com", rating: 5, registrar: "Hetzner", reason: "Nische, aber verwendbar" },
{ domain: "profigamer.de", rating: 5, registrar: "Hetzner", reason: "Pro-Gaming, aber generisch" },
{ domain: "teamkey.de", rating: 5, registrar: "Hetzner", reason: "Team-Tool-Potenzial" },
{ domain: "teamkey.net", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "teamwave.de", rating: 5, registrar: "Hetzner", reason: "Team-Collaboration" },
{ domain: "teamclipboard.de", rating: 5, registrar: "SchlundTech", reason: "Spezifisch, aber lang" },
{ domain: "stayloop.de", rating: 5, registrar: "Hetzner", reason: ".de Version, weniger wert" },
{ domain: "stayloop.net", rating: 5, registrar: "Hetzner", reason: ".net Version" },
{ domain: "papertray.de", rating: 5, registrar: "Hetzner", reason: "Einprägsam" },
{ domain: "papertray.net", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "strandnudel.com", rating: 5, registrar: "Hetzner", reason: "Lustig, Nische" },
{ domain: "strandnudel.de", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "beachnoodle.com", rating: 5, registrar: "Hetzner", reason: "Englische Version" },
{ domain: "coffeemix.de", rating: 5, registrar: "SchlundTech", reason: "Kaffee-Nische" },
{ domain: "coffeemix.org", rating: 5, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "kaffeemix.de", rating: 5, registrar: "SchlundTech", reason: "Deutsche Version" },
{ domain: "nutmix.de", rating: 5, registrar: "SchlundTech", reason: "Nüsse/Mix" },
{ domain: "nutmix.net", rating: 5, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "darkwall.de", rating: 5, registrar: "SchlundTech", reason: "Gaming/Security-Vibe" },
{ domain: "intershell.de", rating: 5, registrar: "Hetzner", reason: "Tech-Begriff" },
{ domain: "internox.de", rating: 5, registrar: "Hetzner", reason: "Tech" },
{ domain: "sonicstream.de", rating: 5, registrar: "SchlundTech", reason: "Audio-Streaming" },
{ domain: "ultradisk.de", rating: 5, registrar: "SchlundTech", reason: "Storage-Begriff" },
{ domain: "homeic.de", rating: 5, registrar: "Hetzner", reason: "Home + IC?" },
{ domain: "homeic.net", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "hotwiki.net", rating: 5, registrar: "Hetzner", reason: "Wiki-Plattform" },
{ domain: "gowiki.de", rating: 5, registrar: "Hetzner", reason: "Wiki" },
{ domain: "wiki24.de", rating: 5, registrar: "Hetzner", reason: "Wiki + 24" },
{ domain: "fastdate.de", rating: 5, registrar: "Hetzner", reason: "Speed-Dating" },
{ domain: "fchat.de", rating: 5, registrar: "Hetzner", reason: "Chat-Plattform" },
{ domain: "eurohr.com", rating: 5, registrar: "Hetzner", reason: "HR-Nische, EU" },
{ domain: "eurohr.de", rating: 5, registrar: "Hetzner", reason: "Gleich" },
{ domain: "refuser.de", rating: 5, registrar: "Hetzner", reason: "Anti-Spam?" },
{ domain: "voxware.de", rating: 5, registrar: "SchlundTech", reason: "Voice-Software" },
{ domain: "funkwolke.net", rating: 5, registrar: "SchlundTech", reason: "Deutscher Begriff, Cloud" },
{ domain: "wortspatz.net", rating: 5, registrar: "SchlundTech", reason: "Sprache/Literatur" },
{ domain: "zapcam.de", rating: 5, registrar: "SchlundTech", reason: "Kamera/Action" },
{ domain: "zapcam.net", rating: 5, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "giessmich.com", rating: 5, registrar: "SchlundTech", reason: "Pflanzen-App-Potenzial" },
{ domain: "bierdruck.de", rating: 5, registrar: "SchlundTech", reason: "Bier-Nische" },
{ domain: "boniti.de", rating: 5, registrar: "SchlundTech", reason: "Bonität?" },
{ domain: "stoerm.net", rating: 5, registrar: "SchlundTech", reason: "Kurz, aber unklar" },
{ domain: "isecretary.de", rating: 5, registrar: "SchlundTech", reason: "Virtueller Assistent" },
{ domain: "isecretary.org", rating: 5, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "quizmillion.de", rating: 5, registrar: "SchlundTech", reason: "Quiz" },
{ domain: "quizmillion.net", rating: 5, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "kaminofenshop.com", rating: 5, registrar: "Hetzner", reason: "E-Commerce Nische" },
{ domain: "kaminofenshop.eu", rating: 5, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "interofen.de", rating: 5, registrar: "Hetzner", reason: "Ofen-Nische" },
{ domain: "ofen24.net", rating: 5, registrar: "Hetzner", reason: "Ofen + 24" },
{ domain: "feuerwunder.de", rating: 5, registrar: "Hetzner", reason: "Feuer/Kamin" },
{ domain: "overworld.de", rating: 5, registrar: "Hetzner", reason: "Gaming-Begriff" },
{ domain: "microgame.de", rating: 5, registrar: "Hetzner", reason: "Gaming" },
{ domain: "huntrecords.net", rating: 5, registrar: "Hetzner", reason: "Musik-Label?" },
{ domain: "medienserver.net", rating: 5, registrar: "Hetzner", reason: "Media-Server" },
{ domain: "hostseven.de", rating: 5, registrar: "Hetzner", reason: "Hosting" },
{ domain: "hostmagic.de", rating: 5, registrar: "Hetzner", reason: "Hosting" },
{ domain: "bcserver.de", rating: 5, registrar: "Hetzner", reason: "Kurz" },
{ domain: "netkey.org", rating: 5, registrar: "Hetzner", reason: "Kurz, Netzwerk" },
{ domain: "meinbusch.de", rating: 4, registrar: "Hetzner", reason: "Garten? Doppeldeutig" },
{ domain: "audio-aktiv.de", rating: 4, registrar: "SchlundTech", reason: "Bindestrich, Audio" },
{ domain: "remotegirls.net", rating: 4, registrar: "SchlundTech", reason: "Remote Work? Unklar" },
{ domain: "ladies24.net", rating: 4, registrar: "SchlundTech", reason: "Veraltet, problematisch?" },
{ domain: "kaminofen-welt.de", rating: 4, registrar: "Hetzner", reason: "Bindestrich" },
{ domain: "s-fire.de", rating: 4, registrar: "SchlundTech", reason: "Bindestrich, kurz" },
{ domain: "my-server.org", rating: 4, registrar: "Hetzner", reason: "Bindestrich" },
{ domain: "gameservernet.de", rating: 4, registrar: "Hetzner", reason: "Zu lang" },
{ domain: "gogameserver.de", rating: 4, registrar: "Hetzner", reason: "Go + Gameserver" },
{ domain: "voiceservers.de", rating: 4, registrar: "Hetzner", reason: "Plural unnötig (hast voiceserver.de)" },
{ domain: "sogehtdas.com", rating: 4, registrar: "SchlundTech", reason: "Lang aber lesbar" },
{ domain: "genwhy.de", rating: 4, registrar: "Hetzner", reason: "Gen Why? Unklar" },
{ domain: "grayzonemap.com", rating: 4, registrar: "Hetzner", reason: "Spezifisch" },
{ domain: "strickbag.com", rating: 4, registrar: "Hetzner", reason: "Nische" },
{ domain: "mauskrieger.de", rating: 4, registrar: "SchlundTech", reason: "Gaming, aber nischig" },
{ domain: "mc-rack.net", rating: 4, registrar: "SchlundTech", reason: "Bindestrich" },
// SCHWACH (1-3)
{ domain: "geheimnisse-verraten.de", rating: 2, registrar: "Hetzner", reason: "Zu lang, Bindestrich" },
{ domain: "geheimnisseverraten.de", rating: 3, registrar: "Hetzner", reason: "Zu lang" },
{ domain: "killerspielespieler.net", rating: 2, registrar: "SchlundTech", reason: "Extrem lang, veralteter Begriff" },
{ domain: "www-gameserver.de", rating: 2, registrar: "SchlundTech", reason: "www- Präfix ist fatal" },
{ domain: "theawesomecompany.de", rating: 2, registrar: "Hetzner", reason: "Viel zu lang" },
{ domain: "bildungstechnologie.de", rating: 3, registrar: "Hetzner", reason: "Sehr lang, aber Nische" },
{ domain: "ventrilo-server.com", rating: 2, registrar: "Hetzner", reason: "Ventrilo ist tot, Bindestrich" },
{ domain: "goteamspeak.de", rating: 3, registrar: "Hetzner", reason: "TeamSpeak rückläufig" },
{ domain: "game-voice.de", rating: 3, registrar: "Hetzner", reason: "Bindestrich, Gaming-Voice veraltet" },
{ domain: "ton-band.com", rating: 3, registrar: "SchlundTech", reason: "Bindestrich, Tonband veraltet" },
{ domain: "so-geht-das.com", rating: 3, registrar: "SchlundTech", reason: "Bindestriche" },
{ domain: "iphone-mockup.com", rating: 3, registrar: "SchlundTech", reason: "Bindestrich, Apple-Marke" },
{ domain: "iphone-mockup.de", rating: 3, registrar: "SchlundTech", reason: "Gleich" },
{ domain: "einmaldownload.de", rating: 3, registrar: "Hetzner", reason: "Lang" },
{ domain: "cecomputer.de", rating: 3, registrar: "Hetzner", reason: "Veraltet" },
{ domain: "4d7.de", rating: 3, registrar: "Hetzner", reason: "Kryptisch" },
{ domain: "iuatw.com", rating: 3, registrar: "Hetzner", reason: "Kryptisch" },
{ domain: "ahlesbrunnen.de", rating: 3, registrar: "Hetzner", reason: "Sehr spezifisch/lokal" },
{ domain: "newsgoogle.de", rating: 3, registrar: "Hetzner", reason: "Google-Marke problematisch" },
{ domain: "freebnc.de", rating: 3, registrar: "Hetzner", reason: "BNC veraltet" },
{ domain: "hintenrein.com", rating: 3, registrar: "Hetzner", reason: "Doppeldeutig" },
];
// TLD extrahieren
domains.forEach(d => {
d.tld = '.' + d.domain.split('.').pop();
});
// Nach Rating sortieren (absteigend)
domains.sort((a, b) => b.rating - a.rating || a.domain.localeCompare(b.domain));
// Excel erstellen
const wb = XLSX.utils.book_new();
// Daten für Sheet
const wsData = [
['Domain', 'Rating', 'Kategorie', 'TLD', 'Registrar', 'Begründung'],
...domains.map(d => {
let kategorie;
if (d.rating >= 8) kategorie = '🏆 TOP';
else if (d.rating >= 6) kategorie = '💎 Sehr gut';
else if (d.rating >= 4) kategorie = '📦 Durchschnitt';
else kategorie = '⚠️ Schwach';
return [d.domain, d.rating, kategorie, d.tld, d.registrar, d.reason];
})
];
const ws = XLSX.utils.aoa_to_sheet(wsData);
// Spaltenbreiten
ws['!cols'] = [
{ wch: 28 }, // Domain
{ wch: 8 }, // Rating
{ wch: 16 }, // Kategorie
{ wch: 10 }, // TLD
{ wch: 12 }, // Registrar
{ wch: 50 }, // Begründung
];
XLSX.utils.book_append_sheet(wb, ws, 'Domain-Bewertung');
// Zusammenfassung Sheet
const summaryData = [
['DOMAIN-BEWERTUNG - ZUSAMMENFASSUNG'],
[''],
['Stand:', '31.01.2026'],
['Gesamt:', domains.length + ' Domains'],
[''],
['KATEGORIEN:'],
['🏆 TOP (8-10):', domains.filter(d => d.rating >= 8).length],
['💎 Sehr gut (6-7):', domains.filter(d => d.rating >= 6 && d.rating < 8).length],
['📦 Durchschnitt (4-5):', domains.filter(d => d.rating >= 4 && d.rating < 6).length],
['⚠️ Schwach (1-3):', domains.filter(d => d.rating < 4).length],
[''],
['EMPFEHLUNG:'],
['Behalten:', 'TOP + Sehr gut (' + domains.filter(d => d.rating >= 6).length + ')'],
['Prüfen:', 'Durchschnitt (' + domains.filter(d => d.rating >= 4 && d.rating < 6).length + ')'],
['Kündigen:', 'Schwach (' + domains.filter(d => d.rating < 4).length + ')'],
[''],
['Geschätztes Sparpotenzial:', '~' + (domains.filter(d => d.rating < 4).length * 10) + '€/Jahr'],
];
const ws2 = XLSX.utils.aoa_to_sheet(summaryData);
ws2['!cols'] = [{ wch: 25 }, { wch: 20 }];
XLSX.utils.book_append_sheet(wb, ws2, 'Zusammenfassung');
// Speichern
const outPath = '/Users/bam/clawd/domain-bewertung.xlsx';
XLSX.writeFile(wb, outPath);
console.log('Excel erstellt:', outPath);
console.log('Domains:', domains.length);