#+TITLE:
#+AUTHOR: Bob Mottram
#+EMAIL: bob@freedombone.net
#+KEYWORDS: freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber
#+DESCRIPTION: Turn the Beaglebone Black into a personal communications server
#+OPTIONS: ^:nil toc:nil
#+HTML_HEAD:
#+BEGIN_CENTER
[[file:images/logo.png]]
#+END_CENTER
#+begin_export html
Home Server
#+end_export
The quickest way to get started is as follows. You will need to be running a Debian based system (version 8 or later), have an old but still working laptop or netbook which you can use as a server, and 8GB or larger USB thumb drive and an ethernet cable to connect the laptop to your internet router.
First you will need to create an image. On a debian based distro:
#+begin_src bash
sudo apt-get install git
git clone https://github.com/bashrc/freedombone
cd freedombone
git checkout stockholm
make install
freedombone-image --setup debian
freedombone-image -t i386 --onion yes
#+end_src
Or on Arch/Parabola:
#+begin_src bash
sudo pacman -S git
git clone https://github.com/bashrc/freedombone
cd freedombone
git checkout stockholm
make install
freedombone-image --setup parabola
freedombone-image -t i386 --onion yes
#+end_src
#+BEGIN_CENTER
[[file:images/tor_onion.jpg]]
#+END_CENTER
The version in which sites are available only via onion addresses is the easiest to get started with, since you can evaluate the system without committing to buying an ICANN domain name or needing to get involved with SSL/TLS certificates at all. However, if you do want your sites to be available typically as subdomains of a domain name which you own then remove the *--onion yes* option from the last command shown above.
If you want to create images for microSD cards used within various single board computers then replace the *i386* with *beaglebone* / *cubieboard2* / *cubietruck* / *a20-olinuxino-lime* / *a20-olinuxino-lime2* / *a20-olinuxino-micro* or *apu*.
#+BEGIN_CENTER
[[file:images/beaglebone_black9.jpg]]
#+END_CENTER
This takes a while. Maybe an hour or so, depending on the speed of your system and the internets. The good news though is that once created you can use the resulting image any number of times, and you don't need to trust some pre-built image.
List what drives are on your system with:
#+begin_src bash
ls /dev/sd*
#+end_src
Now plug in the USB thumb drive, and do the same again. Notice which drive letter gets added.
You can now copy the image to the USB thumb drive, replacing *sdX* with the identifier of the USB thumb drive. Don't include any numbers (so for example use *sdc* instead of *sdc1*).
#+begin_src bash
dd bs=1M if=myimagefile.img of=/dev/sdX conv=fdatasync
#+end_src
And wait. Again it will take a while to copy over. When that's done plug it into the laptop or netbook which you want to use as a server, power on and set the BIOS to boot from the USB stick.
As the system boots for the first time the login is:
#+begin_src bash
username: fbone
password: freedombone
#+end_src
If you're installing from a microSD card on a single board computer without a screen and keyboard attached then you can ssh into it with:
#+begin_src bash
freedombone-client
ssh fbone@freedombone.local -p 2222
#+end_src
Using the initial password "/freedombone/".
You will then be shown a new randomly generated password. It's *very important* that you write this down somewhere before going further, because you'll need this to log in later.
You'll be asked to set a username and a "real" name (or nickname), then the rest of the installation will be automatic. Again, it takes a while, so go and do something less boring instead.
When it's installed on your local system open a terminal and run:
#+begin_src bash
ssh myusername@freedombone.local -p 2222
#+end_src
Use the password you wrote down earlier to log in.
#+BEGIN_CENTER
[[file:images/controlpanel/control_panel.jpg]]
#+END_CENTER
Select the *administrator control panel* with up and down cursor keys, space bar and enter key. You might need to re-enter your password. Then select *About*. You'll see a list of sites and their onion addresses.
#+BEGIN_CENTER
[[file:images/controlpanel/control_panel_about.jpg]]
#+END_CENTER
On your local system open a *Tor compatible browser* and enter your blog's onion address. If it's all working then you should see your new blog.
*Congratulations! You have now become a citizen of the free internet.*
*Use your new powers wisely.*
Of course, this is just one way in which you can install the Freedombone system. If you have a single board computer (SBC) such as a BeagleBone Black or OLinuxino you can make disk images for those too. You can even create clearnet sites if you have your own domain name. ARM boards with closed proprietary boot blobs are not supported. For more details run:
#+begin_src bash
man freedombone-image
#+end_src
#+BEGIN_CENTER
This site can also be accessed via a Tor browser at http://2tp3f6vtvhkqpuc6.onion
#+END_CENTER