Draft of README
This commit is contained in:
parent
a94a7b7868
commit
a7937ade6c
1 changed files with 75 additions and 0 deletions
75
README.md
Normal file
75
README.md
Normal 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 |
|
||||||
|
| |
|
||||||
|
+----------------------+
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in a new issue