Package: pantalaimon
pantalaimonPantalaimon is an end-to-end encryption aware Matrix reverse proxy daemon.
Pantalaimon acts as a good man in the middle that handles the encryption for you.Messages are transparently encrypted and decrypted for clients inside of
pantalaimon.InstallationTheOlmC library is required to
be installed before installing pantalaimon.If your distribution provides packages for libolm it is best to use those, note
that a recent version of libolm is required (3.1+). If your distribution doesn't
provide a package building from source is required. Please refer to the Olmreadmeto see how to build the C library from source.Installing pantalaimon works like usually with python packages:python setup.py installPantalaimon can also be found on pypi:pip install pantalaimonPantalaimon contains a dbus based UI that can be used to control the daemon.
The dbus based UI is completely optional and needs to be installed with the
daemon:pip install pantalaimon[ui]Do note that man pages can't be installed with pip.macOS installationFor instance, on macOS, this means:brewinstalldbus
perl-pi-e's#(<auth>EXTERNAL</auth>)#<!--$1-->#'$(brew--prefixdbus)/share/dbus-1/session.conf
brewservicesstartdbus# it may be necessary to restart now to get the whole OS to pick up the# existence of the dbus daemongitclonehttps://gitlab.matrix.org/matrix-org/olm(cdolm;make)gitclonehttps://github.com/matrix-org/pantalaimon(cdpantalaimon;CFLAGS=-I../olm/includeLDFLAGS=-L../olm/build/python3setup.pyinstall)exportDBUS_SESSION_BUS_ADDRESS=unix:path=$(launchctlgetenvDBUS_LAUNCHD_SESSION_BUS_SOCKET)cdpantalaimonDYLD_LIBRARY_PATH=../olm/build/pantalaimon-ccontrib/pantalaimon.conf# for notification center:gitclonehttps://github.com/fakechris/notification-daemon-mac-py# if you have django's `foundation` library installed and your filesystem# is case insensitive (the default) then you will need to `pip uninstall foundation`# or install PyObjC in a venv...pipinstallPyObjCdaemonglibdbus-pythoncdnotification-daemon-mac-py
./notify.pyDockerAn experimental Docker image can be built for Pantalaimon, primarily for use in bots.dockerbuild-tpantalaimon.# Create a pantalaimon.conf before running. The directory mentioned in the# volume below is for where Pantalaimon should dump some data.dockerrun-it--rm-v/path/to/pantalaimon/dir:/data-p8008:8008pantalaimonThe Docker image in the above example can alternatively be built straight from any branch or tag without the need to clone the repo, just by using this syntax:dockerbuild-tpantalaimongithub.com/matrix-org/pantalaimon#masterAn examplepantalaimon.conffor Docker is:[Default]
LogLevel = Debug
SSL = True

[local-matrix]
Homeserver = https://matrix.org
ListenAddress = 0.0.0.0
ListenPort = 8008
SSL = False
UseKeyring = False
IgnoreVerification = TrueUsageWhile pantalaimon is a daemon, it is meant to be run as the same user as the app it is proxying for. It won't
verify devices for you automatically, unless configured to do so, and requires
user interaction to verify, ignore or blacklist devices. A more complete
description of Pantalaimon can be found in theman page.Pantalaimon requires a configuration file to run. The configuration file
specifies one or more homeservers for pantalaimon to connect to.A minimal pantalaimon configuration looks like this:[local-matrix]Homeserver=https://localhost:8448ListenAddress=localhostListenPort=8009The configuration file should be placed in~/.config/pantalaimon/pantalaimon.conf.The full documentation for the pantalaimons configuration can be found in
theman pagepantalaimon(5).Now that pantalaimon is configured it can be run:pantalaimon --log-level debugAfter running the daemon, configure your client to connect to the daemon instead
of your homeserver. The daemon listens by default on localhost and port 8009.Note that logging in to the daemon is required to start a sync loop for a user.
After that clients can connect using any valid access token for the user that
logged in. Multiple users per homeserver are supported.For convenience a systemd service file is provided.To control the daemon an interactive utility is provided in the form ofpanctl.panctlcan be used to verify, blacklist or ignore devices, import or export
session keys, or to introspect devices of users that we share encrypted rooms
with.