Standalone installation might be useful for environments where Docker is not suitable.
Either install signal-cli w/ DBus using packaging/signal-cli or from upstream signal-cli Releases.
See Documentation.
useradd -r -s /usr/sbin/nologin -m -d /var/lib/signal-cli signal-cli
sudo -u signal-cli -H signal-cli ...
)ExecStart
in signal-cli.service
looks like this:
ExecStart=%your-installation-dir%/bin/signal-cli -a %your_phonenumber% daemon --system
When signal-cli has been installed and setup properly to send messages via DBus, you can install the gateway:
apt-get install python3-virtualenv python3-pydbus python3-dbus python3-magic
Virtualenv needs access to system site-packages (DBus bindings).
sudo -u signal-cli -i bash -c 'python3 -m virtualenv -p /usr/bin/python3 "${HOME}"/venv --system-site-packages'
sudo -u signal-cli -i bash -c '"${HOME}"/venv/bin/pip install signal-cli-dbus-rest-api'
/etc/systemd/system/
curl -L "https://gitlab.com/morph027/signal-cli-dbus-rest-api/-/raw/main/contrib/systemd/signal-cli-dbus-rest-api@.service" > "/etc/systemd/system/signal-cli-dbus-rest-api@.service"
systemctl enable --now "signal-cli-dbus-rest-api@$(systemd-escape <your_phonenumber>).service"
/etc/systemd/system/
curl -L "https://gitlab.com/morph027/signal-cli-dbus-rest-api/-/raw/main/contrib/systemd/signal-cli-dbus-rest-api.service" > /etc/systemd/system/signal-cli-dbus-rest-api.service
systemctl enable --now signal-cli-dbus-rest-api.service
Configuration can be done in /etc/default/signal-cli-dbus-rest-api
. For possible values, see Configuration
It is advised to setup a reverse proxy in front of the gateway to add TLS, authentication and so on. As there are plenty of proxies or webservers: nginx, apache, caddy, traefik,…), just pick your favourite.