- 01-turn-server-setup.md: TURN Server architecture, deployment, verification - 02-authentik-identity-provider.md: Two-stage OIDC integration (Stage 1 & Stage 2) - 03-monitoring-integration.md: Alloy, Prometheus, Loki integration with Selendis - 04-element-customization.md: Custom themes (7), desktop setup scripts, admin panel - 05-room-policies.md: Message retention, room publication, auto-join policies All guides include troubleshooting, configuration examples, and best practices. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
83 lines
1.9 KiB
Markdown
83 lines
1.9 KiB
Markdown
# Room Policies: Retention, Publication, Auto-Join
|
|
|
|
**Status**: ✅ Vollständig deployed
|
|
**Konfiguration**: `apps/production/custom-configs/synapse-values.yaml`
|
|
|
|
## 1. Message Retention
|
|
|
|
Alte Nachrichten automatisch löschen (Speicher sparen, DSGVO).
|
|
|
|
```yaml
|
|
retention:
|
|
enabled: true
|
|
default_policy:
|
|
min_lifetime: 1d # Messages bleiben ≥1d
|
|
max_lifetime: 1y # Messages gelöscht nach 1 Jahr
|
|
|
|
media_retention:
|
|
local_media_lifetime: 365d # 1 Jahr
|
|
remote_media_lifetime: 90d # 90 Tage
|
|
|
|
redaction_retention_period: 7d # Gelöschte Messages noch 7d sichtbar
|
|
```
|
|
|
|
## 2. Room Publication Rules
|
|
|
|
Kontrollieren welche Rooms im öffentlichen Directory sichtbar sind.
|
|
|
|
```yaml
|
|
room_list_publication_rules:
|
|
- user_id: "*" # Alle User
|
|
action: allow # dürfen ihre Rooms publishen
|
|
```
|
|
|
|
**Alternativ (restrictiv)**: Nur Admins publishen
|
|
```yaml
|
|
room_list_publication_rules:
|
|
- user_id: "@admin:axion1337.chat"
|
|
action: allow
|
|
- user_id: "*"
|
|
action: deny
|
|
```
|
|
|
|
## 3. Auto-Join Rooms
|
|
|
|
Neue User automatisch in bestimmte Rooms hinzufügen (Onboarding).
|
|
|
|
```yaml
|
|
auto_join_rooms:
|
|
- "!announcements:axion1337.chat"
|
|
- "!rules:axion1337.chat"
|
|
auto_join_rooms_for_guests: false # Nur registered users
|
|
```
|
|
|
|
**Room ID finden**: Element Settings → Advanced → Room ID
|
|
|
|
## Deployment
|
|
|
|
```bash
|
|
# Edit ConfigMap
|
|
kubectl apply -f apps/production/custom-configs/synapse-values.yaml
|
|
|
|
# Synapse neustarten
|
|
kubectl rollout restart deployment -n matrix matrix-stack-synapse
|
|
|
|
# Verify
|
|
kubectl logs -n matrix -l app.kubernetes.io/name=synapse | grep -i "retention\|publication"
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
**Privater Server**:
|
|
- max_lifetime: 1y (großzügig)
|
|
- action: allow (alle publishen)
|
|
- auto_join_rooms: announcements + rules
|
|
|
|
**Öffentlicher Server (DSGWR)**:
|
|
- max_lifetime: 90d (kurz)
|
|
- action: deny (nur Admins)
|
|
- auto_join_rooms: [] (keine Zwangs-Rooms)
|
|
|
|
---
|
|
**Weitere Details**: Siehe Kapitel 5.
|