Scrublord MacBad aee9a34369 Add 5 detailed deployment guides to docs/deployment-guides/
- 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>
2026-05-14 22:47:38 +02:00

1.9 KiB

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).

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.

room_list_publication_rules:
  - user_id: "*"           # Alle User
    action: allow          # dürfen ihre Rooms publishen

Alternativ (restrictiv): Nur Admins publishen

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).

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

# 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.