Draft of README

This commit is contained in:
Matěj Divecký 2020-09-27 20:21:33 +02:00
parent a94a7b7868
commit a7937ade6c

75
README.md Normal file
View file

@ -0,0 +1,75 @@
# signal-mass-dockerized
Set of docker containers for asynchronous Signal message processing (sending & receiving).
It can be used as a gateway for automated notifications, bot with automatic replies or Signal equivalent of Telegram public groups where individuals can't see other users in group.
## Signal-cli-rest-api
Slightly edited version of https://github.com/bbernhard/signal-cli-rest-api
Manages installation and running of signal-cli, registrations of new Signal accounts sending and receiving of Signal messages over REST API.
In future, it will probably be remade in Python to allow for receiving and sending attachments.
In future, it should use DBus for messages, because it is a LOT faster than calling signal-cli all the time.
## registrations.json
Simple json file that receiver and sender scripts use as source of registered Signal accounts. At this time registrations need to be added manually to this file.
It's also possible to run signal-cli-rest-api on different server, or in multiple instances by using the "url" field-
## Receiver
Periodicaly asks signal-cli-rest-api for new messages on Signal servers for each registered number. If there is new message, it writes it to RabbitMQ (queue signal-receive) for processing.
## Sender
Listens for new messages in RabbitMQ (queue signal-send) and sends them to signal-cli-rest-api server accroding to registrations.json
## RabbitMQ
Stores received messages and messages that are supposed to be sent out.
Reason for using it is to accomodate communication between scripts and to be able to receive, send and process messages asynchronously.
## Worker
Processes recieved messages in RabbitMQ and sends new messages into it.
Doesn't care about the state of sending or receiving (for now).
More workers could be added for different tasks if needed.
Right now, worker just takes received message and sends it back to the sender.
In future, there should be API for receiving messages from other apps and respond to automatic messages.
```
+-------------------------+
| |
+--------------+ signal-cli-rest-api <------------------+
| | | |
| +-------------------------+ |
| |
| |
| |
| |
+------------v---------+ +---------------------+ +----------------------+
| | | | | |
| Receiver +-------> registrations.json <-------+ Sender |
| | | | | |
+----------------------+ +---------------------+ +-----------^----------+
| |
| |
| |
| |
| |
| +----------------------+ |
| | | |
+-----------------> RabbitMQ +------------------+
| |
+-----------^----------+
|
|
|
|
+-----------v----------+
| |
| Worker |
| |
+----------------------+
```