# MOBEA β€” Das Startup, das jeden Tag ein anderes Startup ist TΓ€gliche KI-Satire. Jeden Tag eine neue absurde Fake-Firma β€” todernst verkauft. [🌐 mobea.de](https://mobea.de/) --- ## Das Konzept 1. AI wΓΌrfelt 1–2 Themen aus dem Pool (Buzzwords, Esoterik, Pet-Tech,…) 2. **OpenRouter** generiert Landing-Page-Inhalte (Pitch, Features, Preise, Testimonials, FAQ) 3. Optional: **Pixazo SDXL** erzeugt ein Hero-Bild 4. **Jinja2** rendert `public/index.html` + Archiv-Eintrag 5. **nginx** liefert statisch aus β€” alle CTAs fΓΌhren zu `/echt-jetzt/` (Satire-Disclaimer) > πŸ“– [SOUL.md](SOUL.md) β€” VollstΓ€ndige Vision, Ton und Design-Regeln ## Projektstruktur ``` / β”œβ”€β”€ compose.yml # nginx + Generator (Production) β”œβ”€β”€ compose.dev.yml # Lokale Dev-Umgebung (kein Traefik) β”œβ”€β”€ nginx.conf # nginx Konfiguration (JSON logging, security) β”œβ”€β”€ generator/ β”‚ β”œβ”€β”€ config.py # Einstellungen aus Environment-Variablen β”‚ β”œβ”€β”€ generate.py # CLI-Entry-Point fΓΌr manuelles/backfill β”‚ β”œβ”€β”€ pipeline.py # Pipeline-Orchestrator (LLM β†’ HTML β†’ Archive) β”‚ β”œβ”€β”€ llm.py # OpenRouter API mit retries + hedging β”‚ β”œβ”€β”€ images.py # Responsive Hero-Image Pipeline (PIL) β”‚ β”œβ”€β”€ topics.py # Themen-Pool & Selection β”‚ β”œβ”€β”€ templates.py # Jinja2 Rendering & Template Utilities β”‚ β”œβ”€β”€ feed.py # Atom Feed Generator β”‚ β”œβ”€β”€ share.py # Share Card SVG Generator β”‚ β”œβ”€β”€ health.py # Health Check Status β”‚ β”œβ”€β”€ entrypoint.sh # Cron-Loop (prodcution) β”‚ β”œβ”€β”€ Dockerfile # Multi-stage build (python:alpine) β”‚ └── templates/ β”‚ β”œβ”€β”€ startup.html.j2 # TΓ€glich generierte Landing Page β”‚ β”œβ”€β”€ archiv.html.j2 # Archiv-Übersicht β”‚ └── _head_common.j2 # Favicon, OG/Twitter tags β”œβ”€β”€ public/ # Webroot (generiert, gitignored) β”‚ β”œβ”€β”€ echt-jetzt/ # Satire-Disclaimer (statisch, im Repo) β”‚ └── index.html # Heute (generiert) β”œβ”€β”€ data/ # archive.json (generiert, gitignored) └── generate_health.py # Health.json generieren ``` ## Schnelleinstieg ### Voraussetzungen - Docker + Docker Compose - Optional lokal: Python 3.12+, venv ### API-Keys ```bash cp .env.example .env # Editor auf β†’ Keys eintragen ``` | Variable | Pflicht | Zweck | |----------|---------|-------| | `OPENROUTER_API_KEY` | βœ… | Text-Generierung | | `OPENROUTER_MODEL` | | z.B. `openai/gpt-4o-mini` | | `PIXAZO_API_KEY` | | Hero-Bilder (optional) | ### Einmal generator starten ```bash cd generator python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt SITE_DIR=../public DATA_DIR=../data python generate.py ``` Output: `public/index.html` + `public/archiv/YYYY-MM-DD.html` ### Lokal dev-en (einzeln) ```bash # Generator ausfΓΌhren SITE_DIR=../public DATA_DIR=../data python generator/generate.py # nginx fΓΌr statische Ausgabe docker run --rm -p 8081:80 \ -v "$(pwd)/public:/usr/share/nginx/html:ro" \ -v "$(pwd)/nginx.conf:/etc/nginx/nginx.conf:ro" \ nginx # β†’ http://localhost:8081 ``` ### Kompletter Stack (Docker Compose) ```bash # Lokal (kein Traefik nΓΆtig) docker compose -f compose.yml -f compose.dev.yml up -d --build # β†’ http://localhost:8081 # Auf boka (Traefik aus compose.yml) docker compose up -d --build ``` ### Archive backfillen ```bash cd generator source .venv/bin/activate python generate.py --backfill 2026-01-01 2026-01-07 ``` ## Deployment auf boka ```bash ssh frank-schwenk.de cd /home/frank/mobea.de git pull docker compose up -d --build ``` ## Theming 5 visuelle Themes (deterministisch pro Tag gewΓΌrfelt): | Theme | Accent | Vibe | |-------|--------|------| | **corporate** | `#2563eb` Blau | Clean SaaS, System-UI | | **neon** | `#00f5d4` + `#a855f7` | Dark Cyber, Glow | | **mystic** | `#d4a853` Gold | Dunkelviolet, Georgia | | **brutalist** | `#ff0000` Rot | Schwarz-Weiß, Courier | | **pastel** | `#f472b6` Pink | Soft Gradients, große Radien | ## Gesundheit ```bash # Health-Status als JSON curl -s http://localhost:8081/health # Generator health generieren python generate_health.py # β†’ public/health.json ``` ## Non-Goals (Anti-Manifest) - Kein echtes Startup, keine Leads, kein Impressum - Kein Tracking/Analytics β€” Privacy by design - Kein Engagement-Bait oder Newsletter-Tracking - Keine Datenansammlung β€” nichts wird gespeichert außer dem Archiv --- **Made with AI, satirized by humans.** [SOUL.md](SOUL.md) fΓΌr Design-Regeln.