Name | signalblast JSON |
Version |
0.9.0
JSON |
| download |
home_page | None |
Summary | Broadcast bot for Signal |
upload_time | 2025-08-21 20:46:23 |
maintainer | None |
docs_url | None |
author | Era Dorta |
requires_python | >=3.10 |
license | None |
keywords |
bot
broadcast
signal
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# signalblast
Signalblast is a tool to send encrypted messages anonymously over [Signal](https://www.signal.org/) to a subscriber list. The sender does not know who the subscribers in the list are, nor the subscribers know who the sender is.
A server is required to host the bot, find instructions on how the set it up below.
The idea for this bot came from [Signalboost](https://web.archive.org/web/https://signalboost.info/), which unfortunately is no longer alive.
## Usage
Once the bot is up and running, several commands are available:
* `!subscribe` send this to sign up to the list
* `!broadcast` after subscribing any message preceded by this will be broadcasted to every subscriber
* `!unsubscribe` to stop receiving messages
* `!help` to be reminded of which commands are available
* `!admin` send a message only to the list admin, useful for getting technical support
## Installation
### Option 1: local python environment
* Set up signalbot as specified [here](https://github.com/filipre/signalbot)
* Create a new virtual environment, [uv](https://docs.astral.sh/uv/) is recommended
* Install with `pip install signalblast`
* Run via `python -m signalblast.main`
### Option 2: docker compose
This will pull the project docker images from https://hub.docker.com/r/eradorta/signalblast
* Install [docker](https://www.docker.com/).
* Download the [docker-compose.yml](https://github.com/Era-Dorta/signalblast/blob/main/docker-compose.yaml) file.
* Create a folder called `signalblast_data`
* Define the relevant environment variables
```bash
export DOCKER_TAG="The version of signalblast to run, can be latest"
export SIGNALBLAST_PHONE_NUMBER="The phone number of the bot"
export SIGNALBLAST_PASSWORD="The password for the admin"
export SIGNALBLAST_HEALTHCHECK_RECEIVER="The contact or group to send health check messages"
```
* Run via docker compose: `docker compose up`
## Development
* Set up docker and signalbot as specified in the [installation](#installation) section.
* Clone the repo
* Install [uv](https://docs.astral.sh/uv/)
* Install the repo and the dependencies in a new virtual environment with `uv sync`
* Install the pre-commit hook `uv run pre-commit install`
* Run
* Directly via `uv run python -m signalblast.main`
* Via systemd with `systemd/signalblast.service`
* Run once with the password in the env file.
* From there one, the password is stored encrypted and it can be removed from the env file
* Optional: install signalbot as an editable dependency `uv add --editable ../signalbot/`
### Docker compose
The `docker/compose_build.sh` and `docker/compose_up.sh` are provide for easier development.
## Roadmap
* Make instructions clearer and add pictures to the readme
* Add unit testing
Raw data
{
"_id": null,
"home_page": null,
"name": "signalblast",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "Bot, Broadcast, Signal",
"author": "Era Dorta",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ff/b5/093d09594241d2215ea9f7a229dd82a2087499ccef3e863b0c838ed1e6c5/signalblast-0.9.0.tar.gz",
"platform": null,
"description": "# signalblast\n\nSignalblast is a tool to send encrypted messages anonymously over [Signal](https://www.signal.org/) to a subscriber list. The sender does not know who the subscribers in the list are, nor the subscribers know who the sender is.\n\nA server is required to host the bot, find instructions on how the set it up below.\n\nThe idea for this bot came from [Signalboost](https://web.archive.org/web/https://signalboost.info/), which unfortunately is no longer alive.\n\n## Usage\n\nOnce the bot is up and running, several commands are available:\n* `!subscribe` send this to sign up to the list\n* `!broadcast` after subscribing any message preceded by this will be broadcasted to every subscriber\n* `!unsubscribe` to stop receiving messages\n* `!help` to be reminded of which commands are available\n* `!admin` send a message only to the list admin, useful for getting technical support\n\n## Installation\n\n### Option 1: local python environment\n* Set up signalbot as specified [here](https://github.com/filipre/signalbot)\n* Create a new virtual environment, [uv](https://docs.astral.sh/uv/) is recommended\n* Install with `pip install signalblast`\n* Run via `python -m signalblast.main`\n\n### Option 2: docker compose\nThis will pull the project docker images from https://hub.docker.com/r/eradorta/signalblast\n\n* Install [docker](https://www.docker.com/).\n* Download the [docker-compose.yml](https://github.com/Era-Dorta/signalblast/blob/main/docker-compose.yaml) file.\n* Create a folder called `signalblast_data`\n* Define the relevant environment variables\n ```bash\n export DOCKER_TAG=\"The version of signalblast to run, can be latest\"\n export SIGNALBLAST_PHONE_NUMBER=\"The phone number of the bot\"\n export SIGNALBLAST_PASSWORD=\"The password for the admin\"\n export SIGNALBLAST_HEALTHCHECK_RECEIVER=\"The contact or group to send health check messages\"\n ```\n* Run via docker compose: `docker compose up`\n\n## Development\n\n* Set up docker and signalbot as specified in the [installation](#installation) section.\n* Clone the repo\n* Install [uv](https://docs.astral.sh/uv/)\n* Install the repo and the dependencies in a new virtual environment with `uv sync`\n* Install the pre-commit hook `uv run pre-commit install`\n* Run\n * Directly via `uv run python -m signalblast.main`\n * Via systemd with `systemd/signalblast.service`\n * Run once with the password in the env file.\n * From there one, the password is stored encrypted and it can be removed from the env file\n* Optional: install signalbot as an editable dependency `uv add --editable ../signalbot/`\n\n### Docker compose\n\nThe `docker/compose_build.sh` and `docker/compose_up.sh` are provide for easier development.\n\n## Roadmap\n\n* Make instructions clearer and add pictures to the readme\n* Add unit testing\n",
"bugtrack_url": null,
"license": null,
"summary": "Broadcast bot for Signal",
"version": "0.9.0",
"project_urls": null,
"split_keywords": [
"bot",
" broadcast",
" signal"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "379b69bf26d3818370363f5361d7e22024c0806a98a8e13db1658b6850039cbd",
"md5": "0c952aeab5fc5ebcbfc26879bf4ee191",
"sha256": "dcc4da59a58f274ed3a0cd7ca3196abf652d5910b197d403f746bbdf2e193247"
},
"downloads": -1,
"filename": "signalblast-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0c952aeab5fc5ebcbfc26879bf4ee191",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 35242,
"upload_time": "2025-08-21T20:46:22",
"upload_time_iso_8601": "2025-08-21T20:46:22.177059Z",
"url": "https://files.pythonhosted.org/packages/37/9b/69bf26d3818370363f5361d7e22024c0806a98a8e13db1658b6850039cbd/signalblast-0.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ffb5093d09594241d2215ea9f7a229dd82a2087499ccef3e863b0c838ed1e6c5",
"md5": "e4bd88ba3d4ff5dd1ef518bdb6260f40",
"sha256": "bf200a0fd5923296946965929163bee5acea93b8d3311daba20367655322bc9e"
},
"downloads": -1,
"filename": "signalblast-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "e4bd88ba3d4ff5dd1ef518bdb6260f40",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 115271,
"upload_time": "2025-08-21T20:46:23",
"upload_time_iso_8601": "2025-08-21T20:46:23.224797Z",
"url": "https://files.pythonhosted.org/packages/ff/b5/093d09594241d2215ea9f7a229dd82a2087499ccef3e863b0c838ed1e6c5/signalblast-0.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-21 20:46:23",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "signalblast"
}