Bernhard B b3c29c1581 reworked entrypoint script
* made it easier for the Home Assistant addon
  to specify the signal-cli config location.
2021-02-27 18:41:59 +01:00
2021-02-21 21:01:28 +01:00
2021-02-19 14:27:38 -07:00
2020-07-03 17:32:52 +02:00
2021-02-19 22:25:00 +01:00
2021-02-27 18:41:59 +01:00
2021-02-27 18:41:59 +01:00
2020-07-03 19:49:34 +02:00
2020-03-08 21:57:57 +01:00
2021-01-29 17:26:18 +01:00
2021-02-23 20:54:55 +01:00

Dockerized Signal Messenger REST API

This project creates a small dockerized REST API around signal-cli.

At the moment, the following functionality is exposed via REST:

  • Register a number
  • Verify the number using the code received via SMS
  • Send message (+ attachments) to multiple recipients (or a group)
  • Receive messages
  • Link devices
  • Create/List/Remove groups
  • List/Serve/Delete attachments
  • Update profile

and many more

Examples

Sample docker-compose.ymlfile:

version: "3"
services:
  signal-cli-rest-api:
    image: bbernhard/signal-cli-rest-api:latest
	environment:
	  - USE_NATIVE=0
    ports:
      - "8080:8080" #map docker port 8080 to host port 8080.
    volumes:
      - "./signal-cli-config:/home/.local/share/signal-cli" #map "signal-cli-config" folder on host system into docker container. the folder contains the password and cryptographic keys when a new number is registered

Native Image (EXPERIMENTAL)

On Systems like the Raspberry Pi, some operations like sending messages can take quite a while. That's because signal-cli is a Java application and a significant amount of time is spent in the JVM (Java Virtual Machine) startup. signal-cli recently added the possibility to compile the Java application to a native binary (done via GraalVM).

By adding USE_NATIVE=1 as environmental variable to the docker-compose.yml file the native mode will be enabled. In case there's no native binary available (e.g on a 32 bit Raspian OS), it will fall back to the signal-cli Java application.

  • THIS ONLY WORKS ON A 64bit OS!*

API documentation

The Swagger API documentation can be found here. If you prefer a simple text file like API documentation have a look here

In case you need more functionality, please file a ticket or create a PR.

Description
No description provided
Readme MIT 285 MiB
Languages
Go 92.9%
Dockerfile 4.8%
Shell 1.4%
HTML 0.6%
Lua 0.3%