The Raspberry Pi supposed to be an inexpensive learning platform, so I encourage anyone that owns one to learn as much as they can about the things they do with it. I did this over the summer (of 2014) and have been meaning to document my work; for you as well as for me. To begin, I will just post an image of what I did and an explanation of how to use it. More detailed tutorials of how to do all of these things yourselves will (hopefully) be forthcoming.
The image in the Downloads section is a Raspbian image after adding:
samba shares – for easily setting the pi up as a network drive in windows. go to network places and you will see your pi show up with a shared folder. you can use this to easily transfer files from your windows machine to your pi. the same shared folder will show up from linux and macintosh computers, though these don’t need samba to work.
xrdp – a program that allows the pi to use the remote desktop protocol that windows uses. this lets you easily log into the pi and see a full desktop from a windows or linux/android device. with this installed, you don’t need to plug anything into the pi other than power and a wifi dongle. from windows, go to the remote desktop application and type in the ip address of your pi, the username (pi) and the password (vodka). from ubuntu, i use remmina, and from android, i use ardp. there are many other options that i’m sure work just fine.
avahi – lets you connect to the pi from windows without knowing the ip address (you can just type in ‘OnionPi.local’) as the server name on this image is OnionPi.
tor – to redirect any desired traffic through tor (the onion router). using the pi as a router adds one more thing that needs to be plugged into the pi; a network cable.
wap – a wireless access point so that you can easily connect to the internet through a new wifi network and filter everything on that connection through tor. i went through quite a bit of trouble to get a driver working for the Edimax EW-7811Un wifi dongle, so this part of the image probably won’t work with other wireless adapters. i used this adapter because it was the cheapest one i could find at the time (less than $4), but it has gotten more popular since then and now i don’t see it for less than ~$10 very often. the ssid is OnionPi and the password is onionvodka.
webiopi – a simple web interface to allow you to change the gpio pins from input to output (or output to input), toggle them on and off, and read their current state from anywhere on your network (you can open a port to the entire world as well if you so choose). this is useful to drive relays, mosfets, or other switches to turn real world devices (lights, coffee makers, door locks, microwaves, etc.) on and off from anywhere (you phone, for example). to access this, go to http://onionpi.local:8000 (or [your pi’s local ip address]:8000 — replacing “your pi’s local ip address” with the actual address, of course) in your web browser. the username is pi and the password is onionvodka. to make this feature accessible from the internet at large, forward port 8000 to the pi.
nginx – a lightweight replacement for apache to serve web traffic (host a webpage, etc.). that’s right, this pi is serving a website to your local network. to make it available to the internet, you need to forward port 80 from your router. ddns makes this really nice and behave like most of the websites you are familiar with. maybe one day i will write a tutorial about this.
php – a main standard in web development, used here for wordpress.
mysql – popular database standard only used here for wordpress.
wordpress – the most popular blogging software used here to host a webpage from the pi. finally, here is where you will write your webpage. go to http://onionpi.local (or your pi’s local ip address) from your web browser and set up your wordpress account as normal. please note that all of the work you put into this page will be stored on the sd card in the pi, which can fail without warning. it is highly recommended that you back up the image of the card anytime you make big changes to the wordpress site. as mentioned above, to make this site available to the internet at large, you will need to forward port 80 from your router as an http service. this is usually very easy on most new routers (usually a simple menu option in your router’s control panel), but as each router is a little different, you should search this one out on your own. using a ddns (dynamic domain name system) service makes this really nice and behave like most of the websites you are familiar with…this part is also not difficult once you know about it, but i think it is harder to find information on it. maybe one day i will write a get-your-pi-hosted-site-online tutorial.
Also, you generally should be skeptical of any images from small sites like this as they don’t get the same type of code review that more established sites do — I trust me, but I’ve known me my whole life.