This is a dockerized bot for the Signal Messenger. It can be used to log in to Signal and send messages over the Internet.
WARNING: This is by no means production-ready software. Please note that using it carries the possibility of leaking your Signal keys. You should never publically expose this service.
- containerized
- written in Rust
- supports reproducible builds with Nix
Download the container from GitHub Container Registry:
docker pull ghcr.io/akiszka/signal-bot:latest
Then, start the container:
docker run --rm -it -p 52340:8000 -v ./some_directory:/data --tmpfs /tmp:exec ghcr.io/akiszka/signal-bot
If you want to build signal-bot for development, using cargo will suffice. For example, this will build the project from source and run it:
cargo run
NOTE: you will need to have signal-cli installed to run the project with cargo. However, building the container image with nix-build will install signal-cli for you.
If you want to build the container image yourself, you will need to have Nix installed. Then, running the following command will read the instructions at default.nix, download all the dependencies, build the container image and place it under ./result
.
nix-build
After that, you can load the image into Docker:
docker load -i result
- manage the Signal daemon from inside Rust
- add tests
- add access control (possibly with JWT)
- add webhook support for GitHub
- add docs