pigeon
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.
Build/Install
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
Usage
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.
Contributing:
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
License