mana-server
Der Hauptserver des Vereins — ein Mac mini M4 in Tägerwilen (Schweiz), der die ganze Plattform trägt.
Was drinsteckt
- Modell
- Mac mini M4 (2024 base)
- CPU / RAM
- 10 Cores (4P + 6E) · 16 GB unified
- Storage
- 256 GB intern + 4 TB extern (ManaData)
- Belegt
- 753 GB auf ManaData
- Container
- 107 (103 laufend)
- Postgres-DBs
- 17 separat
- Compose-Projekte
- 22
- OS
- macOS 26.2 · Colima/Docker
- Standort
- Minergie-Haus, nachhaltiger Strom
Ein einziges Gerät. Darauf laufen alle Apps des Vereins, alle Plattform-Services, alle Datenbanken, alle Object-Storage-Buckets, alle Hintergrund-Worker. Keine AWS-Region, kein Hetzner-Rechenzentrum, kein gemieteter Hyperscaler-Tenant.
Die Plattform passt auf einen Mac mini M4 (2024 base) mit 10 Cores (4 Performance + 6 Efficiency), 16 GB unified Memory und 256 GB interner SSD. Daneben hängt eine 4 TB-USB-SSD mit dem Namen ManaData: dort liegen alle Postgres-Volumes und alle MinIO-Buckets, 753 GB belegt (Stand 2026-05-21).
Konkret heißt das gerade: 107 Container in 22 Compose-Projekten,
davon 103 dauerhaft laufend. Darunter 17 eigenständige
Postgres-Datenbanken — eine pro Service, schema-isoliert via Drizzle
pgSchema. Wer einen Service löscht, löscht eine ganze DB, nicht
ausgewählte Tabellen in einer fremden Cloud.
Das ist kein Trick — es ist die direkte Konsequenz davon, dass Verein-Services schlank gebaut sind und sich Hardware teilen statt jede für sich Resources zu beanspruchen. Ehrlich gerechnet ist das Gerät teurer im Strom über fünf Jahre als in der Anschaffung — aber beides liegt jeweils im niedrigen vierstelligen Bereich, nicht im Hyperscaler-Universum.
Standort: Minergie-Sparhaus in Tägerwilen (Schweiz), betrieben mit nachhaltig erzeugtem Strom. Wer wissen will, wo seine Daten liegen, bekommt eine Adresse statt einer SLA-Klausel.
Was die Maschine nicht kann: Hochverfügbarkeit. Wenn der Mac mini ausfällt — Hardware-Tod, Stromausfall, Internet-Ausfall — ist die ganze Plattform offline, bis er wieder läuft. Drei Antworten darauf sind in Arbeit:
- Failover auf den GPU-Server als Zwischenschritt — der zweite
Verein-Rechner steht im selben Haus und kann bei Hardware-Ausfall
die Last übernehmen. Konzept und Varianten in
docs/SERVER_FAILOVER.md. - Geografische Redundanz über mana-server-2 an einem zweiten Schweizer Standort, sobald der Verein juristisch verankert ist.
- Strom-Souveränität über die geplante Solar-Eigenversorgung,
beschrieben in
docs/STROM_AUTARKIE.md.
Plattform-Services, die hier aufsitzen
Diese Services nennen mana-server in ihrem Infrastruktur-Frontmatter — sie sind direkt von diesem Baustein abhängig.
- mana-authIdentität, Sessions und JWKS für alle Vereins-Apps — eine Anmeldung, lokale Token-Verifikation, kein Cloud-Auth-Anbieter.
- mana-auth-webDas Anmelde-Portal als eigene Web-App — gemeinsame Login-Seite für alle Vereins-Apps mit App-spezifischem Branding.
- mana-meUser-globale Profil-Referenzen — welches Foto ist gerade dein Gesicht, welches dein Körper, über alle Apps hinweg.
- mana-creditsDie Geldbörse der Plattform — Mana-Guthaben, Stripe-Brücke, Buchhaltung, 2-Phase-Debit über alle Apps.
- auraPrivater Anerkennungs-Ledger für Beiträge zum Ökosystem — sechs Botanik-Ränge, kleine reale Geschenke, kein Leaderboard.
- xpGeplantes Lern- und Kompetenz-Backbone der Plattform — Skill-XP pro App, neun Intelligenz-Domains, globaler Level, opt-in-Portfolio.
- mana-shareFöderations-Drehscheibe für Cross-App-Datentransfers — App-Manifeste, Routing, Retry-Queue, Audit-Log.
- mana-linksDeep-Link-Resolver — Apps registrieren ihre URI-Schemata, andere verlinken stabil quer durch das Ökosystem.
- mana-eventsPlattform-Pub/Sub — Topic-basiertes Event-Bus mit At-least-once-Delivery, DLQ und Wildcard-Subscriptions.
- mana-mcpTool-Registry und MCP-Gateway — sammelt AI-Tools aus App-Manifesten und liefert sie an Claude-Clients per Model Context Protocol.
- mana-searchFöderierte Aggregat-Suche — verteilt eine Anfrage über alle Apps eines Users und vereint die Ergebnisse.
- mana-llmEine Schnittstelle vor Anthropic, OpenAI, Gemini — ein Ort für API-Keys, ein Cost-Tracking, ein Audit.
- mana-image-editsReference-basierte Image-Edits — Plattform-Service vor OpenAI gpt-image-2 und Gemini-Image-Edits.
- mana-mediaObjekt-Speicher für alle Vereins-Uploads — S3-kompatibles MinIO im Eigenbetrieb, Buckets pro App.
- mana-transcodeVideo-Transcoding-Worker — liest BullMQ-Jobs, läuft ffmpeg, schreibt 720p/480p/Poster zurück in mana-media.
- mana-researchWeb-Research-Orchestrator — 16+ Provider hinter einer Schnittstelle mit Auto-Routing nach Query-Typ.
- mana-syncEvent-Store-Server für die Event-Sourced-Plattform — Append-only Event-Log pro User pro App, JWT-Auth via mana-auth.
- mana-presenceLive-State + SSE-Fanout — was läuft gerade auf welchem Gerät, bidirektional zwischen Phone und Web.
- mana-mailTransaktionale Email für die ganze Plattform — Welcome, Passwort-Reset, Spendenbescheinigung, alles über Vereins-Stalwart.
- mana-notifyPush-Versand für iOS, Android und Web-Push — Templates und Throttling zentral, keine Push-SaaS-Anbieter.
- mana-news-poolGeteilter RSS/JSON-Feed-Pool — kuratierte Quellen, die alle Apps gemeinsam lesen können.
- mana-adminVereins-Backoffice — Mitglieder, Spenden, DSGVO-Fan-out, Einladungen, Aura-Ledger und Gift-Versand in einem Werkzeug.
Was mana-server für den Verein verkörpert
- UnabhängigkeitSchweizer Verein, keine Investoren.
- EigenbetriebEigene Infrastruktur, quelloffener Stack.
- SelbstkostenpreisKeine Werbung, kein Aufschlag.
- LanglebigkeitBewährte Stacks, gute Doku.
Weitere Infrastruktur dieser Art
Hardware mit Standort — physisch greifbar, nicht in einer fremden Cloud.
mana-server ist ein Baustein der Vereins-Infrastruktur — eine von drei Schichten unter den Plattform-Services und Apps.