Self-host gomuks
v0.2610.0Matrix client with backend/frontend architecture in Go
- Stars
- 1 728
- Port
- 29325 (web interface)
- Requires
- Ffmpeg, Ffprobe
dock.mau.dev/gomuks/gomuksWhat is gomuks?
A Go-based Matrix client that separates the protocol backend from multiple frontends. The backend can run embedded in the client or as a standalone server similar to an IRC bouncer. Frontends include a production-ready web interface, an experimental terminal UI, an Electron desktop wrapper, a GeckoView Android app, and a Flutter-based Nexus client. Users can install via prebuilt binaries, Docker, or compile from source. The web UI defaults to port 29325 and uses basic auth for access. Video sending requires ffmpeg/ffprobe; end-to-end encryption uses libolm (or the pure-Go goolm alternative). Data lives in OS-standard directories or a custom GOMUKS_ROOT. Licensed under AGPL-3.0 with monthly releases.
Should you self-host gomuks?
gomuks scores 59/100 on selfhost.directory (how scoring works) and ranks #22 of 110 in Chat. It has 1 728 GitHub stars.
It shipped 10 stable releases in the past year. The latest, v0.2610.0, came out on 16 October 2026. New versions land roughly every 4 weeks.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in Go.
Its closest alternative on selfhost.directory is Zulip (82/100, 26 125 stars). It scores higher overall, so compare the two before you pick. See gomuks vs Zulip side by side.
Features
- Basic AuthenticationCredentials created on first run
- Custom user styles
- End-to-end encryptionRequires libolm-dev on Linux, libolm on macOS
- Matrix Protocol Support
- Multiple account support via multiple instancesElectron wrapper has built-in backend manager for switching
- Remote backend mode
- Reverse Proxy Support
- Terminal frontendExperimental, lacks many features and Matrix login
- WASM web versionPerformance significantly worse than native backend
- Web frontend
gomuks README
FAQ
Where does gomuks store data?
By default in OS-specific config/cache/data directories. Use GOMUKS_ROOT to set a custom root, or GOMUKS_THING_HOME for individual directories.
Can I use gomuks with multiple accounts?
Only one account per instance, but you can run multiple instances with different data directories. The Electron wrapper includes a backend manager for switching between accounts.
Can I run the backend behind a reverse proxy?
Yes, configure origin_patterns to match the client URL and adjust listen_address if the proxy cannot connect via localhost.
Can I connect to a remote gomuks backend?
Yes, run the backend behind a reverse proxy with TLS. Direct connections without TLS require setting insecure_cookies and adjusting listen_address and origin_patterns.
More in Communication
gramsrvgramsrv is a self-hosted, open-source MTProto server in Go for running a Telegram-compatible backend with real clients. Supports monolith and microservice architectures.
Gray Duck MailGray Duck Mail is a self-hosted, open-source email discussion list manager in Docker that connects to external mail servers via POP3/SMTP for small to medium groups.
GreenlightGreenlight is a self-hosted, open-source web frontend for BigBlueButton video conferencing with local auth, OpenID Connect, and admin panel.
hydrogen-webA self-hosted Matrix messaging client emphasizing speed, offline access, and wide browser support. Runs as static files or in Docker.
HyphanetFred, the open-source Hyphanet/Freenet reference node, is a self-hosted encrypted P2P network for anonymous freesites, forums, microblogging and file sharing.
InspIRCdOpen-source, self-hosted IRC server with full ratified IRCv3 support that runs on Linux, BSD, macOS and Windows, where every extra feature is a loadable module.
JamiJami is a free/libre, end-to-end encrypted, and private communication software that supports instant messaging, audio/video calls, and video conferencing.
JanusJanus WebRTC Server
Jitsi MeetSelf-hosted, open-source WebRTC video conferencing with HD audio, screen sharing, chat, polls, recording and mobile apps, deployed via Docker or Debian packages.
Jitsi Meet on DockerJitsi Meet on Docker is a self-hosted, open-source video conferencing solution deployed via Docker Compose, offering encrypted meetings with no account required.
Kiwi IRCKiwi IRC is a self-hosted, open-source web IRC client with multiple themes, plugin support, and responsive design for desktop and mobile browsers.
lastsignalSelf-hosted dead man's switch that sends encrypted messages to recipients when you stop checking in via email. Zero-knowledge architecture with client-side encryption.

0 comments