https://github.com/thisisparker/tuttle
A basic Signal client with an Onion interface
https://github.com/thisisparker/tuttle
Last synced: 8 months ago
JSON representation
A basic Signal client with an Onion interface
- Host: GitHub
- URL: https://github.com/thisisparker/tuttle
- Owner: thisisparker
- Created: 2018-10-03T19:34:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-05-01T21:15:06.000Z (about 3 years ago)
- Last Synced: 2025-03-25T06:34:02.584Z (about 1 year ago)
- Language: Python
- Size: 31.3 KB
- Stars: 7
- Watchers: 4
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This project—codenamed `tuttle`—allows a server to receive Signal messages and provides an administrative interface over a Tor Onion Service for users to read and reply to those messages. It is currently in active development and should only be used with great care.
As currently envisioned, `tuttle` could be used as a "tipline" or "help desk," where one or more users can process and reply to secure messages and attachments sent to a public Signal number.
Authentication is not currently built in to `tuttle`, meaning access control is currently performed through `tor`. As of `tor 0.3.5.7`, new Onion services are created as `v3` by default, and client access is managed through that protocol's [Client Authorization](https://www.torproject.org/docs/tor-manual-dev.html.en#_client_authorization) scheme. Address and keypair management aren't currently built into `tuttle`.
### How it works
`tuttle` depends on `signal-cli` to send and receive Signal messages. Messages are logged to an internal database using `logincoming.py`, running as a background process. `app.py` is run with `flask` to serve on a localhost port the dynamic interface generated by `readlog.py`. Finally, an externally configured Onion service makes that interface available to users.