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
hard dependencies. 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.
gomuks web requires having ffmpeg
and ffprobe
in $PATH
to generate
metadata when sending video files.
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, windows/amd64
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.23 or higher.
- Compiling the frontend for gomuks web also requires the latest LTS of Node.js or higher (currently v20).
libolm-dev
must also be installed for end-to-end encryption.
- Clone the repo:
git clone https://github.com/tulir/gomuks.git && cd gomuks
- To get legacy gomuks terminal, run
git checkout master
after cd.
- To get legacy gomuks terminal, 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.