114 lines
5.1 KiB
Org Mode
114 lines
5.1 KiB
Org Mode
#+TITLE:
|
|
#+AUTHOR: Bob Mottram
|
|
#+EMAIL: bob@robotics.uk.to
|
|
#+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
|
|
#+BEGIN_CENTER
|
|
[[./images/logo.png]]
|
|
#+END_CENTER
|
|
| [[file:index.html][Home]] | [[Download the code]] | [[On a Beaglebone Black]] | [[On other hardware]] | [[Internet Router]] |
|
|
|
|
* Download the code
|
|
Firstly you'll need to download the code as follows:
|
|
|
|
#+BEGIN_SRC bash
|
|
sudo apt-get install git
|
|
git clone https://github.com/bashrc/freedombone
|
|
cd freedombone
|
|
#+END_SRC
|
|
* On a Beaglebone Black
|
|
To get started you will need:
|
|
|
|
- A Beaglebone Black
|
|
- A MicroSD card
|
|
- Ethernet cable
|
|
- Optionally a 5V 2A power supply for the Beaglebone Black
|
|
- Access to the internet via a router with ethernet sockets
|
|
- USB thumb drive (for backups or storing media)
|
|
- One or more subdomains created on https://freedns.afraid.org
|
|
- A purchased domain name and SSL certificate (only needed for Red Matrix)
|
|
- A laptop or desktop machine with the ability to write to a microSD card (might need an adaptor)
|
|
|
|
You will also need to know, or find out, the IP address of your internet router and have a suitable static IP address for the Beaglebone on your local network. The router should allow you to forward ports to the Beaglebone (often this is under firewall or "advanced" settings).
|
|
|
|
Check that within *initial_setup.sh* the router IP address and static IP for the Beaglebone are set correctly.
|
|
|
|
Plug the microSD card into your laptop/desktop and then run the *initial_setup.sh* script. For example:
|
|
|
|
#+BEGIN_SRC bash
|
|
./initial_setup.sh /dev/sdX
|
|
#+END_SRC
|
|
|
|
where */dev/sdX* is the device name for the microSD card. Often it's */dev/sdb* or */dev/sdc*, depending upon how many drives there are on your system. The script will download the Debian installer and update the microSD card. It can take a while, so be patient.
|
|
|
|
When the initial setup is done follow the instructions on screen to run the main Freedombone script. You can either edit the variables within the *install-freedombone.sh* script directly, or create a separate configuration file called *freedombone.cfg* which contains those variables. Variables which you might want to put into a *freedombone.cfg* file are:
|
|
|
|
#+BEGIN_SRC bash
|
|
MY_EMAIL_ADDRESS=
|
|
MY_NAME=
|
|
MY_BLOG_TITLE=
|
|
MY_BLOG_SUBTITLE=
|
|
SSH_PORT=
|
|
FULLBLOG_DOMAIN_NAME=
|
|
FULLBLOG_FREEDNS_SUBDOMAIN_CODE=
|
|
MICROBLOG_DOMAIN_NAME=
|
|
MICROBLOG_FREEDNS_SUBDOMAIN_CODE=
|
|
REDMATRIX_DOMAIN_NAME=
|
|
OWNCLOUD_DOMAIN_NAME=
|
|
OWNCLOUD_FREEDNS_SUBDOMAIN_CODE=
|
|
WIKI_TITLE=
|
|
WIKI_DOMAIN_NAME=
|
|
WIKI_FREEDNS_SUBDOMAIN_CODE=
|
|
MY_GPG_PUBLIC_KEY=
|
|
MY_GPG_PRIVATE_KEY=
|
|
PUBLIC_MAILING_LIST=
|
|
ROUTE_THROUGH_TOR=no
|
|
LOCAL_NETWORK_STATIC_IP_ADDRESS=192.168.1.60
|
|
#+END_SRC
|
|
|
|
The GPG public/private key variables are for the filenames of exported GPG keys, and if a private key filename is given then it will be automatically shredded after import.
|
|
|
|
The FreeDNS subdomain codes can be found under "Dynamic DNS" and "quick cron example". On the last line it will be the string located between the '?' and the '==' characters.
|
|
|
|
The syntax of the *install-freedombone.sh* script is:
|
|
|
|
#+BEGIN_SRC bash
|
|
./install-freedombone.sh [domain name] [username] [FreeDNS subdomain code] [optional variant type]
|
|
#+END_SRC
|
|
|
|
If you don't specify a variant type with the final option then everything will be installed. If you have a *freedombone.cfg* file then it should be in the same directory as *install-freedombone.sh*.
|
|
|
|
Installation is not quick, and depends upon which variant you choose and your internet bandwidth. Allow about three hours for a full installation on the Beaglebone Black. On the Beaglebone installation is in two parts, since a reboot is needed to enable the hardware random number generator and zram.
|
|
|
|
When done you can ssh into the Freedombone with:
|
|
|
|
#+BEGIN_SRC bash
|
|
ssh username@domain -p 2222
|
|
#+END_SRC
|
|
|
|
Any manual post-installation setup instructions or passwords can be found in */home/username/README*. You should remove any passwords from that file and store them within a password manager such as KeepassX.
|
|
|
|
* On other hardware
|
|
It's also possible to install Freedombone onto other hardware, such as an old laptop or other type of single board computer. Any system with a fresh installation of Debian Jessie will do. Just make sure that you change the variable INSTALLING_ON_BBB to "no" within *freedombone.cfg* or the *install-freedombone.sh* script. Obviously, you don't need to run the *initial_setup.sh* script on non-Beaglebone systems.
|
|
* Internet Router
|
|
On your internet router, typically under firewall settings, open the following ports and forward them to the Freedombone.
|
|
|
|
| Service | Ports |
|
|
|---------+------------|
|
|
| HTTP | 80 |
|
|
| HTTPS | 443 |
|
|
| SSH | 2222 |
|
|
| DLNA | 1900 |
|
|
| DLNA | 8200 |
|
|
| XMPP | 5222..5223 |
|
|
| XMPP | 5269 |
|
|
| XMPP | 5280..5281 |
|
|
| IRC | 6697 |
|
|
| IRC | 9999 |
|
|
| Git | 9418 |
|
|
| Email | 25 |
|
|
| Email | 587 |
|
|
| Email | 465 |
|
|
| Email | 993 |
|