We are thrilled to announce Ketesa v1.0.0 — a landmark release that marks a new chapter for what was once known as Synapse Admin.
Ketesa is a fully-featured, mobile-friendly admin interface for Matrix homeservers powered by Synapse. It is a direct drop-in replacement for Synapse Admin: no configuration changes required — just swap the image or URL and you're running Ketesa.
A new name
The project has a new identity: Ketesa. The repository, Docker images, and configuration keys have all been updated. The legacy cc.etke.synapse-admin config key in /.well-known/matrix/client continues to work alongside the new cc.etke.ketesa key, so existing deployments keep working without changes.
- Hosted: https://admin.etke.cc
- Docker:
ghcr.io/etkecc/ketesa:latest - Static release:
ketesa.tar.gz(root) /ketesa-subpath-admin.tar.gz(/adminsubpath)
What's new
Full redesign
The entire interface has been redesigned from the ground up: a cleaner layout, a recolored dark theme, and a more consistent visual identity across all pages. The user page, reports section, and room management views have all received focused styling passes.
Mobile-first UI
Ketesa is now fully responsive. The mobile layout has been comprehensively optimized: better footer positioning, a full-screen entrypoint loader on narrow viewports, corrected font asset handling, and consistent use of responsive grid breakpoints throughout.
Matrix Authentication Service (MAS) — full integration
Ketesa now has deep, first-class support for homeservers running MAS:
- Manage all session types: personal access tokens, browser sessions, OAuth2 sessions, compatibility sessions
- View and manage linked email addresses
- View upstream OAuth provider links
- Manage MAS policy data (consent records)
- Create new users through MAS
- Registration tokens now expose
created_at,last_used_at,revoked_atand support one-click revoke/unrevoke - Synapse and MAS versions are shown in the user menu
- Federated users are handled correctly — no unnecessary data is sent to MAS
User management
- Shadow banning — silence a user without alerting them
- Login as user — impersonate any local user (Synapse-only)
- Reset password — one-click password reset from the user view
- Find User — locate a user account quickly
- Device management — create new devices, rename existing ones, bulk-remove selected devices; configurable table columns including user agent and dehydrated device flags
- Allow cross-signing reset — unblock a user's cross-signing key reset
- Renew account validity — extend an account's validity period
- Control Matrix Client-Server API admin flags — promote or demote users via the C-S API
- System-managed users filter — hide or show bridge bots and appservice-managed accounts
- User list migrated to v3 API
- User redaction with live status — see deletion progress in real time
- Cumulative stats — total joined rooms and sent invites shown on the user page
- Improved filters — all boolean user filters now use nullable tri-state inputs
Room management
- Block/Unblock room — prevent or restore access to a room
- Purge History — delete room history up to a point in time
- Room Messages tab — browse messages with filters and jump-to-date navigation
- Room Hierarchy tab — visible only on Spaces; browse and navigate the space tree
- Join user to a room — add any local user to a room directly
- Room delete with live status — watch deletion progress as it happens
- Database room stats — per-room database size and event counts
- Scheduled tasks list — view pending Synapse background tasks
Media management
- Quarantine All buttons on both the user media list and the room media list
- Purge media notifications now include the count of actually removed items
Performance & internationalization
- Translations are now lazy-loaded with per-locale code splitting — only the active language is downloaded
<html lang>anddirattributes are set dynamically, enabling correct RTL rendering- Outdated upstream language packages replaced with local
base.tsfiles for better maintainability - Japanese translation corrected and improved
Authentication & login
- The
/auth-callbackOIDC redirect handler is now a separate build entrypoint (faster load, smaller bundle) - A dedicated subpath-admin entrypoint is published for
/admin-path deployments - The login form now supports
.well-knowndelegation for the homeserver URL - Entering a homeserver URL without a scheme automatically prepends
https:// - A descriptive text block has been added to the login form
Infrastructure & deployment
- IPv6 homeserver support — admin API URLs with IPv6 addresses are handled correctly
- Separate Dockerfile for subpath-admin deployments
- Docker labels added to all published images
- REUSE compliance — GitHub Action added to enforce license metadata on every PR
Documentation
- New
docs/apis.md— comprehensive tracking of all implemented Synapse and MAS Admin API endpoints - Full reverse proxy documentation, including Nginx configuration snippets for Docker deployments at both root path and
/adminsubpath - Expanded documentation portal covering all major features
Community contributors
A big thank you to @cy1der for two contributions that made it into this release: the initial implementation of MAS registration token management (#1067) and the Nginx configuration snippets for Docker deployments (#1083).
Upgrading
Ketesa is a zero-configuration drop-in replacement for Synapse Admin.
Docker:
ghcr.io/etkecc/ketesa:latest
or on Docker Hub: etkecc/ketesa:latest
CDN / hosted: https://admin.etke.cc
Static files: download ketesa.tar.gz from the release assets and replace your existing dist/ directory.
Packages: matrix-docker-ansible-deploy, Nix / NixOS, Arch Linux AUR, IPFS, and other packages updates will be reflected in the README.md later
What's Changed
- Bump docker/build-push-action from 6.19.2 to 7.0.0 by @dependabot[bot] in #1073
- Bump docker/metadata-action from 5.10.0 to 6.0.0 by @dependabot[bot] in #1072
- Bump docker/setup-buildx-action from 3.12.0 to 4.0.0 by @dependabot[bot] in #1071
- Bump docker/login-action from 3.7.0 to 4.0.0 by @dependabot[bot] in #1070
- Refactor dataprovider and fix TS errors by @beastafk in #1069
- Add support for shadow banning by @aine-etke in #1081
- Add Nginx configuration snippets for Docker usage for root path and admin subpath by @cy1der in #1083
- Bump softprops/action-gh-release from 2.5.0 to 2.6.1 by @dependabot[bot] in #1085
- Fix Japanese translation by @luixxiul in #1098
- Optimize UI for mobile by @aine-etke in #1104
- Database Room Stats by @aine-etke in #1082
- Full MAS integration by @aine-etke in #1103
- i18n: replace outdated language packages with local base.ts files by @beastafk in #1109
New Contributors
Full Changelog: v0.11.4-etke54...v1.0.0