pigeon is an instant messaging service built utilizing WebSockets and Tor hidden services as the transport mechanism. pigeon also works without issue on Tor's strictest settings. The frontend is built with Bulma and vanilla JavaScript. All JavaScript code is well-documented and can be found here.
You will need the the Go toolchain. Sadly, this will not
work with Windows or macOS. You can build from source with the Makefile
:
$ git clone https://github.com/ciehanski/pigeon .
$ cd pigeon && make build
Once you have the pigeon
binary simply make it executable and run it with the various flags
provided:
$ chmod +x pigeon
$ ./pigeon -port 8080 -debug
-port <int> : tell pigeon which port to make your onion service remotely
available on.
-torv3 <bool> : tell pigeon to run on torv3 or torv2.
-debug <bool> : tell pigeon to print debug logs or silence logs.
Contributions and PRs are welcome!
You can get started by either forking or cloning the repo. After, you can get started by running:
make run
This will go ahead and build everything necessary to interface with Tor. After compose
has completed building, you will have a new pigeon
container which will be your
dev environment.
Anytime a change to a .go or .mod file is detected the container will rerun with the changes you have made. You must save in your IDE or text editor for the changes to be picked up. It takes roughly ~30 seconds for pigeon to restart after you have made changes.
You can completely restart the build with:
make restart
Run tests:
make exec
make test
Get container logs:
make logs
Shell into docker container:
make exec
Lint the project:
make lint
- AGPLv3