Installation
Installing a package
The releases on GitHub contain binaries and debian packages: https://github.com/tulir/gomuks/releases
GitLab CI builds binaries for each commit: https://mau.dev/tulir/gomuks/-/pipelines (currently available for linux/amd64, linux/arm, linux/arm64, darwin/amd64, darwin/arm64).
The release and CI binaries for Linux are statically built and have no
dependencies at all. The binaries for macOS require installing libolm, either
with brew install libolm
or by placing libolm.3.dylib
from the CI in the
same directory as the gomuks
binary.
Direct links to latest CI binaries:
- gomuks legacy: linux/amd64, linux/arm64, linux/arm, macos/arm64
- gomuks web: linux/amd64, linux/arm64, linux/arm, macos/arm64
There are also community maintained packages for several distributions (gomuks legacy only). If you've made a new distro package, please add it to the list below.
- Arch Linux (AUR): gomuks, gomuks-bin, and gomuks-git
- NixOS: gomuks
- OpenSUSE (OBS): home:albino:matrix/gomuks
- Alpine Linux: gomuks
- Debian: gomuks
- macOS (Homebrew Tap): aaronraimist/tap/gomuks
- macOS (MacPorts): gomuks
Compiling from source
- Install Go 1.21 or higher.
- If you want end-to-end encryption, also install
libolm-dev
. - If you don't want encryption, disable CGO with
export CGO_ENABLED=0
. - gomuks web requires Go 1.23 or higher and does not support disabling encryption.
- Compiling the frontend for gomuks web also requires the latest LTS of Node.js or higher (currently v20).
- If you want end-to-end encryption, also install
- Clone the repo:
git clone https://github.com/tulir/gomuks.git && cd gomuks
- To get gomuks web, run
git checkout webmuks
after cd.
- To get gomuks web, run
- Build:
./build.sh
(build.sh will simply call go build with some additional flags).
Simply pull changes (git pull
) and run ./build.sh
again to update.
Common compilation issues
fatal error: olm/olm.h: No such file or directory
means you forgot to install libolm-dev, or that you installed it in a weird place which isn't in your default library lookup path.- In the latter case, set the
LIBRARY_PATH
andCPATH
environment variables, e.g.export LIBRARY_PATH=/usr/local/lib CPATH=/usr/local/include
.
- In the latter case, set the
fatal error: olm/pk.h: No such file or directory
means you installed libolm2 instead of libolm3.cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in $PATH
means you forgot to install C/C++ compilers.//go:build comment without // +build comment
means your Go version is slightly outdated.cannot load embed: malformed module path "embed"
orpackage embed is not in GOROOT
means your Go version is very outdated.cannot find package "maunium.net/go/gomuks/..." in any of:
usually means your Go version is extremely outdated.
Docker (gomuks web)
The backend for gomuks web can also run in Docker. Docker images are available
at dock.mau.dev/tulir/gomuks
.
Keep in mind that the backend has all your encryption keys, which means it must be ran in a secure location.