SynapseAdmin.NET
A modern .NET 10 Blazor Server web application for administering Synapse Matrix homeservers.
A modern .NET 10 Blazor Server web application for administering Synapse (Matrix homeservers).
Features
- Dashboard: At-a-glance overview of your server’s status and metrics.
- User Management: Search, view, deactivate, and manage properties of server users.
- Room Management: Search and inspect server rooms and their details.
- Event Reports: Review and manage reported events/messages from users.
- Registration Tokens: Generate and manage tokens to restrict server registration.
- Federation Destinations: Check federation status and manage destination queues.
- Server Notices: Broadcast important notices directly to users from the server.
- Multi-Language Support: Fully localized interface with support for English, German, and French.
Security
SynapseAdmin.NET implements AES-256-GCM encryption for session tokens stored on disk. This ensures that even if someone has access to your server’s storage, they cannot read your Matrix access tokens without the passphrase.
Always set a secure, unique
DP_PASSPHRASEenvironment variable in production. If this value is changed, all existing sessions will be invalidated, but your data will remain secure.
Technologies
- Architecture: N-Tier Service Pattern (Separation of UI and Logic)
- Framework: .NET 10 Blazor Server (Interactive Server Mode)
- UI Component Library: MudBlazor
- Logging: Serilog (File & Console)
- Matrix SDK: LibMatrix (Git Submodule)
- Deployment: Docker & Docker Compose
Quick Start
Docker Compose (Recommended)
docker compose up -d
This will:
- Pull the latest image from GHCR
- Map port
8080for the web interface - Persist logs to
./logsand encryption keys to./keys - Encrypt persisted keys using
DP_PASSPHRASE
Docker CLI
docker run -d \
-p 8080:8080 \
-e DP_PASSPHRASE="your-secure-passphrase-here" \
-v ./logs:/app/logs \
-v ./keys:/app/keys \
--name synapseadmin \
ghcr.io/benjamin-aicheler/synapseadmin.net:latest
Local Development
git clone --recursive https://github.com/benjamin-aicheler/SynapseAdmin.NET.git
cd SynapseAdmin.NET
dotnet run --project src/SynapseAdmin/SynapseAdmin.csproj
Reverse Proxy
The app respects X-Forwarded-For and X-Forwarded-Proto headers. Configure your reverse proxy (Nginx, Traefik, Cloudflare) to pass these headers for proper SSL termination support.