Skip to main content

Broadcast bot for Signal

Project description

signalblast

Signalblast is a tool to send encrypted messages anonymously over Signal 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, 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
  • Create a new virtual environment, 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.
  • Download the docker-compose.yml file.
  • Create a data folder mkdir -p $HOME/.local/share/signalblast
  • Define the relevant environment variables
    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 section.
  • Clone the repo
  • Install uv
  • Install the repo and the dependencies in a new virtual environment with uv sync
  • Install the prek hook uv run prek 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

signalblast-0.11.0.tar.gz (150.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

signalblast-0.11.0-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file signalblast-0.11.0.tar.gz.

File metadata

  • Download URL: signalblast-0.11.0.tar.gz
  • Upload date:
  • Size: 150.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for signalblast-0.11.0.tar.gz
Algorithm Hash digest
SHA256 c08054ef3bcf59422900886da347d7f25260892a4bdc44e74d2a8148775fbb1b
MD5 8159d93c8a4a2e74fc7661e9a9cfa994
BLAKE2b-256 60836617e5c10733820fd458cdfeab4d9b7611bbb0f2ab3c1f2f7c7e791d5ab3

See more details on using hashes here.

Provenance

The following attestation bundles were made for signalblast-0.11.0.tar.gz:

Publisher: publish-pypi.yml on Era-Dorta/signalblast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file signalblast-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: signalblast-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for signalblast-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3ab4db661bc4e85aeb01b2379a370b1ce8493f6c31d54421e8f6095ed96c41e
MD5 ad0ef60f04aaa1ddbccd590c12327305
BLAKE2b-256 d22a305b13cd61f9673e35c97e7e22de869efbb809197d91155ebead88ddb1c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for signalblast-0.11.0-py3-none-any.whl:

Publisher: publish-pypi.yml on Era-Dorta/signalblast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page