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?
| Aspekt | Matrix.org | Self-Hosted |
|---|---|---|
| Datenhoheit | โ US-Server | โ Mac Mini DE |
| GDPR | โ ๏ธ Fragwรผrdig | โ Voll konform |
| Latenz | ~100ms | ~10ms |
| Kosten | Kostenlos | Server-Kosten |
| Kontrolle | Keine | Volle |
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
| Feature | Beschreibung |
|---|---|
| Intro Animation | Kurze Vorstellung der App |
| Feature Highlights | Was ist ohne Login mรถglich |
| Upgrade CTA | Prominenter โ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
| Service | Fix |
|---|---|
| presi-backend | Korrekter /health Pfad |
Zusammenfassung
| Bereich | Commits | Highlights |
|---|---|---|
| Matrix Infra | 2 | Self-Hosted Synapse |
| Matrix Bots | 3 | Stats, Doc, Ollama |
| Chat | 1 | Model Comparison |
| Guest UX | 1 | Welcome Modal |
| Telegram | 1 | Local STT + Metrics |
| Cleanup | 1 | Mรคrchenzauber entfernt |
| Fixes | 2 | Health Checks |
Nรคchste Schritte
- Element Web auf eigenem Server deployen
- E2EE fรผr Matrix-Rรคume aktivieren
- Voice Messages in Matrix Bots
- Bot-to-Bot Kommunikation fรผr komplexe Workflows