main
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
Das Konzept
- AI würfelt 1–2 Themen aus dem Pool (Buzzwords, Esoterik, Pet-Tech,…)
- OpenRouter generiert Landing-Page-Inhalte (Pitch, Features, Preise, Testimonials, FAQ)
- Optional: Pixazo SDXL erzeugt ein Hero-Bild
- Jinja2 rendert
public/index.html+ Archiv-Eintrag - nginx liefert statisch aus — alle CTAs führen zu
/echt-jetzt/(Satire-Disclaimer)
📖 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
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
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)
# 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)
# 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
cd generator
source .venv/bin/activate
python generate.py --backfill 2026-01-01 2026-01-07
Deployment auf boka
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
# 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 für Design-Regeln.
Description
Mit uns verwandelst du dein Bewusstsein in Energie. Tauche ein in die Zukunft der spirituellen Technologie.
https://mobea.de
Languages
Jinja
47.6%
Python
42.3%
HTML
9.4%
Shell
0.4%
Dockerfile
0.3%