1 Title: Recipe to test the Freedombox project on amd64 or Raspberry Pi
2 Tags: english, debian, freedombox
5 <p>I was introduced to the
6 <a href="http://www.freedomboxfoundation.org/">Freedombox project</a>
7 in 2010, when Eben Moglen presented his vision about serving the need
8 of non-technical people to keep their personal information private and
9 within the legal protection of their own homes. The idea is to give
10 people back the power over their network and machines, and return
11 Internet back to its intended peer-to-peer architecture. Instead of
12 depending on a central service, the Freedombox will give everyone
13 control over their own basic infrastructure.</p>
15 <p>I've intended to join the effort since then, but other tasks have
16 taken priority. But this summers nasty news about the misuse of trust
17 and privilege exercised by the "western" intelligence gathering
18 communities increased my eagerness to contribute to a point where I
19 actually started working on the project a while back.</p>
21 <p>The <a href="https://alioth.debian.org/projects/freedombox/">initial
22 Debian initiative</a> based on the vision from Eben Moglen, is to
23 create a simple and cheap Debian based appliance that anyone can hook
24 up in their home and get access to secure and private services and
25 communication. The initial deployment platform have been the
26 <a href="http://www.globalscaletechnologies.com/t-dreamplugdetails.aspx">Dreamplug</a>,
27 which is a piece of hardware I do not own. So to be able to test what
28 the current Freedombox setup, I had to come up with a way to install
29 it on some hardware I do got access to. I have rewritten the
30 <a href="https://github.com/NickDaly/freedom-maker">freedom-maker</a>
31 image build framework to use .deb packages instead of only copying
32 setup into the boot images, and thanks to this rewrite I am able to
33 set up any machine supported by Debian Wheezy as a Freedombox, using
34 the previously mentioned deb (and a few support debs for packages
35 missing in Debian).</p>
37 <p>The current Freedombox setup consist of a set of bootstrapping
39 (<a href="https://github.com/petterreinholdtsen/freedombox-setup">freedombox-setup</a>),
40 and a administrative web interface
41 (<a href="https://github.com/NickDaly/Plinth">plinth</a> + exmachina +
42 withsqlite), as well as a privacy enhancing proxy based on
43 <a href="http://packages.qa.debian.org/privoxy">privoxy</a>
44 (freedombox-privoxy). There is also a web/javascript based XMPP
45 client (<a href="http://packages.qa.debian.org/jwchat">jwchat</a>)
46 trying (unsuccessfully so far) to talk to the XMPP server
47 (<a href="http://packages.qa.debian.org/ejabberd">ejabberd</a>). The
48 web interface is pluggable, and the goal is to use it to enable OpenID
49 services, mesh network connectivity, use of TOR, etc, etc. None of
50 this is really working yet, see
51 <a href="https://github.com/NickDaly/freedombox-todos/blob/master/TODO">the
52 project TODO</a> for links to GIT repositories. Most of the code is
53 on github at the moment.</p>
55 <p>Anyway, if you want to have a look the following recipes should
56 work to give you a test machine to poke at.</p>
58 <p><strong>Debian Wheezy amd64</strong></p>
62 <li>Fetch normal Debian Wheezy installation ISO.</li>
63 <li>Boot from it, either as CD or USB stick.</li>
64 <li><p>Press [tab] on the boot prompt and add this as a boot argument
65 to the Debian installer:<p>
66 <pre>url=http://www.reinholdtsen.name/freedombox/preseed-wheezy.dat</pre></li>
68 <li>Answer the few language/region/password questions and pick disk to
71 <li>When the installation is finished and the machine have rebooted a
72 few times, your Freedombox is ready for testing.</li>
76 <p><strong>Raspberry Pi Raspbian</strong></p>
80 <li>Fetch a Raspbian SD card image, create SD card.</li>
81 <li>Boot from SD card, extend file system to fill the card completely.</li>
82 <li><p>Log in and add this to /etc/sources.list:</p>
84 deb http://www.reinholdtsen.name/freedombox wheezy main
86 <li><p>Run this as root:</p>
88 wget -O - http://www.reinholdtsen.name/freedombox/BE1A583D.asc | \
91 apt-get install freedombox-setup
92 /usr/lib/freedombox/setup
94 <li>Reboot into your freshly created Freedombox.</li>
98 <p>You can test it on other architectures too, but because the
99 freedombox-privoxy package is binary, it will only work as intended on
100 the architectures where I have had time to build the binary and put it
101 in my APT repository. But do not let this stop you. It is only a
102 short "<tt>apt-get source -b freedombox-privoxy</tt>" away. :)</p>
104 <p>Note that by default Freedombox is a DHCP server on the
105 192.168.1.0/24 subnet, so if this is your subnet be careful and turn
106 off the DHCP server by running "<tt>update-rc.d isc-dhcp-server
107 disable</tt>" as root.</p>
109 <p>Please let me know if this work for you, or if you have any
110 problems. We gather on the IRC channel
111 <a href="irc://irc.debian.org:6667/%23freedombox">#freedombox</a> on
112 irc.debian.org and the
113 <a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/freedombox-discuss">project
114 mailing list</a>.</p>
116 <p>Once you get your freedombox operational, you can visit
117 <tt>http://your-host-name:8001/</tt> to see the state of the plint
118 welcome screen (dead end - do not be surprised if you are unable to
119 get past it), and next visit <tt>http://your-host-name:8001/help/</tt>
120 to look at the rest of plinth. The default user is 'admin' and the
121 default password is 'secret'.</p>