Zum Hauptinhalt springen

Zurรผck zum Devlog

Dienstag, 27. Januar 2026

Feature

11 Commits

12 min Lesezeit

Matrix Self-Hosting, 3 neue Bots & Chat Model Comparison

GDPR-konforme Matrix-Infrastruktur mit Synapse, neue Stats/ProjectDoc/Ollama Bots, GuestWelcomeModal und Chat Model-Vergleichsfeature.

T

Till Schneider

Autor

Strategischer Tag mit 11 Commits und Fokus auf GDPR-Compliance und Developer Experience:

  • Matrix Self-Hosting - Eigene Synapse-Instanz fรผr GDPR
  • 3 neue Matrix Bots - Stats, Project Doc, Ollama
  • Chat Model Comparison - Feature zum Vergleich von AI-Modellen
  • GuestWelcomeModal - Verbessertes Guest Onboarding
  • Cleanup - Mรคrchenzauber-Projekt entfernt

Matrix Self-Hosting fรผr GDPR

Eigene Matrix-Infrastruktur fรผr GDPR-konforme Bot-Kommunikation.

Warum Self-Hosting?

AspektMatrix.orgSelf-Hosted
DatenhoheitโŒ US-Serverโœ… Mac Mini DE
GDPRโš ๏ธ Fragwรผrdigโœ… Voll konform
Latenz~100ms~10ms
KostenKostenlosServer-Kosten
KontrolleKeineVolle

Architektur

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 Mac Mini Server                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                 โ”‚
โ”‚  โ”‚   Synapse   โ”‚    โ”‚  PostgreSQL โ”‚                 โ”‚
โ”‚  โ”‚  (Matrix)   โ”‚โ—„โ”€โ”€โ”€โ”‚   Database  โ”‚                 โ”‚
โ”‚  โ”‚  Port 8448  โ”‚    โ”‚             โ”‚                 โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                 โ”‚
โ”‚         โ”‚                                            โ”‚
โ”‚         โ–ผ                                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚              Matrix Bots                     โ”‚    โ”‚
โ”‚  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค    โ”‚
โ”‚  โ”‚ Stats    โ”‚ Project  โ”‚ Ollama   โ”‚ Clock     โ”‚    โ”‚
โ”‚  โ”‚ Bot      โ”‚ Doc Bot  โ”‚ Bot      โ”‚ Bot       โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚               Element Web Client                     โ”‚
โ”‚          https://element.mana.how                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Docker Konfiguration

# docker-compose.matrix.yml
synapse:
  image: matrixdotorg/synapse:latest
  volumes:
    - ./synapse-data:/data
  environment:
    - SYNAPSE_SERVER_NAME=matrix.mana.how
    - SYNAPSE_REPORT_STATS=no
  ports:
    - '8448:8448'
    - '8008:8008'

postgres-matrix:
  image: postgres:15
  volumes:
    - ./postgres-matrix-data:/var/lib/postgresql/data

OIDC Integration

# homeserver.yaml
oidc_providers:
  - idp_id: manacore
    idp_name: ManaCore SSO
    issuer: 'https://auth.mana.how'
    client_id: 'synapse'
    client_secret: '${MATRIX_OIDC_SECRET}'
    scopes: ['openid', 'profile', 'email']

Neue Matrix Bots

Stats Bot

Statistiken รผber die ManaCore-Plattform direkt in Matrix.

!stats users      - Anzahl registrierter User
!stats apps       - App-Nutzungsstatistiken
!stats daily      - Tรคgliche Aktivitรคt
!global           - Globale Plattform-Stats

Features:

  • Prometheus-Integration fรผr Live-Metriken
  • Grafana-Dashboard-Links
  • Historische Datenanalyse

Project Doc Bot

Dokumentations-Assistent fรผr Entwickler.

!doc search <query>   - Docs durchsuchen
!doc api <endpoint>   - API-Dokumentation
!doc setup <app>      - Setup-Anleitung
!doc claude           - CLAUDE.md anzeigen

Features:

  • Durchsucht alle CLAUDE.md Dateien
  • API-Dokumentation aus OpenAPI Specs
  • Code-Beispiele mit Syntax-Highlighting

Ollama Bot

Direkter Zugang zu lokalen LLMs via Matrix.

!llm <prompt>         - Prompt an Standard-Modell
!llm model <name>     - Modell wechseln
!llm list             - Verfรผgbare Modelle
!code <prompt>        - Code-optimiertes Modell

Verfรผgbare Modelle:

  • gemma3:4b, gemma3:12b
  • llama3.2:3b, llama3.2:11b
  • codellama:13b
  • mistral:7b

Chat Model Comparison

Neues Feature: Vergleiche Antworten verschiedener AI-Modelle.

UI Design

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Model Comparison Mode                    [Toggle]  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚   GPT-4 Turbo    โ”‚  โ”‚   Claude 3.5     โ”‚        โ”‚
โ”‚  โ”‚                  โ”‚  โ”‚                  โ”‚        โ”‚
โ”‚  โ”‚  Response A      โ”‚  โ”‚  Response B      โ”‚        โ”‚
โ”‚  โ”‚                  โ”‚  โ”‚                  โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ”‚                                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”‚
โ”‚  โ”‚   Gemini Pro     โ”‚  โ”‚   Ollama Local   โ”‚        โ”‚
โ”‚  โ”‚                  โ”‚  โ”‚                  โ”‚        โ”‚
โ”‚  โ”‚  Response C      โ”‚  โ”‚  Response D      โ”‚        โ”‚
โ”‚  โ”‚                  โ”‚  โ”‚                  โ”‚        โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Implementation

// apps/chat/apps/web/src/lib/components/ModelComparison.svelte
<script lang="ts">
  let selectedModels = $state<string[]>(['gpt-4-turbo', 'claude-3.5-sonnet']);
  let responses = $state<Record<string, string>>({});

  async function compareModels(prompt: string) {
    const results = await Promise.all(
      selectedModels.map(model =>
        chatService.generate(prompt, { model })
      )
    );
    // ... display results side by side
  }
</script>

GuestWelcomeModal

Verbessertes Onboarding fรผr Guest-Nutzer.

Features

FeatureBeschreibung
Intro AnimationKurze Vorstellung der App
Feature HighlightsWas ist ohne Login mรถglich
Upgrade CTAProminenter โ€œAccount erstellenโ€ Button
Skip Optionโ€Als Gast fortfahrenโ€

Design

<!-- packages/shared-auth-ui/src/lib/components/GuestWelcomeModal.svelte -->
<Modal bind:open={showModal}>
	<h2>Willkommen bei {appName}!</h2>

	<p>Du kannst die App auch ohne Account nutzen.</p>

	<ul>
		<li>โœ… {guestFeature1}</li>
		<li>โœ… {guestFeature2}</li>
		<li>โŒ {authOnlyFeature}</li>
	</ul>

	<div class="actions">
		<Button variant="primary" on:click={register}>Account erstellen</Button>
		<Button variant="ghost" on:click={continueAsGuest}>Als Gast fortfahren</Button>
	</div>
</Modal>

Telegram Bot Improvements

Local STT Support und Prometheus Metriken.

Speech-to-Text

// Vorher: Nur Cloud STT
// Nachher: Lokale Whisper-Instanz
const sttService = new LocalSTTService({
	model: 'whisper-large-v3',
	device: 'cuda', // GPU-beschleunigt
});

Metriken

// Neue Prometheus Metriken
register.registerMetric(
	new Counter({
		name: 'telegram_messages_total',
		help: 'Total Telegram messages processed',
		labelNames: ['type'], // text, voice, image
	})
);

register.registerMetric(
	new Histogram({
		name: 'telegram_stt_duration_seconds',
		help: 'STT processing time',
	})
);

Cleanup: Mรคrchenzauber entfernt

Das Mรคrchenzauber-Projekt wurde aus der Codebase entfernt.

Entfernte Dateien

apps-archived/maerchenzauber/    # Komplett entfernt
- 11 Dateien
- 231 Zeilen

Begrรผndung

  • Projekt nicht mehr aktiv entwickelt
  • Ressourcen auf aktive Apps fokussieren
  • Archiv-Ordner wurde zu groรŸ

Developer Experience Verbesserungen

Lokale Entwicklung wurde verbessert.

Neue Scripts

{
	"dev:matrix": "docker-compose -f docker-compose.matrix.yml up -d",
	"dev:stats-bot": "pnpm --filter @matrix/stats-bot dev",
	"dev:doc-bot": "pnpm --filter @matrix/project-doc-bot dev"
}

Health Check Fixes

ServiceFix
presi-backendKorrekter /health Pfad

Zusammenfassung

BereichCommitsHighlights
Matrix Infra2Self-Hosted Synapse
Matrix Bots3Stats, Doc, Ollama
Chat1Model Comparison
Guest UX1Welcome Modal
Telegram1Local STT + Metrics
Cleanup1Mรคrchenzauber entfernt
Fixes2Health Checks

Nรคchste Schritte

  1. Element Web auf eigenem Server deployen
  2. E2EE fรผr Matrix-Rรคume aktivieren
  3. Voice Messages in Matrix Bots
  4. Bot-to-Bot Kommunikation fรผr komplexe Workflows

Tags

#matrix #synapse #gdpr #self-hosting #stats-bot #project-doc-bot #ollama-bot #chat #model-comparison #guest-mode #telegram-bot