Tortise is a (very) simple, distributed, decentralized twitter which runs over tor. It is designed to be a good basis for learning more about how to build systems on top of privacy protecting technology like Tor.
-
Make sure you have the latest python installed, using a tool like brew
-
Clone this repository to your home directory
-
Install Tor Browser: https://www.torproject.org/
-
Add the following lines to your torrc file.
HiddenServiceDir /Users/<YOUR USERNAME>/tortise/priv HiddenServicePort 80 127.0.0.1:8083
Hints:
- You'll need to customize the directory paths to wherever you cloned this repo!
- The priv/ subfolder will automatically be created
- My torrc is located at: /Applications/TorBrowser.app/TorBrowser/Data/Tor/torrc
- Still Need help? https://www.torproject.org/docs/tor-hidden-service.html.en has more detailed instructions
Fun Fact: the -rc suffix doesn't really stand for anything useful, but you can think of it as resource configuration.
-
(Re)Start TorBrowser.
-
in src/, run
python run.py
, and leave it running. This is your server. You may need some dependencies:pip install PySocks
pip install tornado
-
check priv/hostname to see your onion address (keep key in priv private)
-
Paste the address into the Tor Browser to connect.
-
visit /peer on your website to put your friends domains (ie, http:/// in and send/recieve messages
-
CHALLENGE EXERCISES:
-
Make your peers persistent: that is, make it so that you don't need to reconnect every time
-
Allow People to post messages with a username... * Make that username a keypair!
-
Make a nicer user interface
-
Clear out old messages
-
Make it so that only you can post to your server