FreedomBox is an easy-to-use private server that allows even non-experts to install and configure server applications with just a few clicks. It runs on cheap hardware, and requires only a basic Internet connection and power.
FreedomBox is based on the motto, “Your digital life should not be in the hands of tech companies or governments.” It is a community project set up to develop, design and promote personal servers running free software for private and personal communications. FreedomBox is a networking appliance designed to allow interfacing with the rest of the Internet under conditions of protected privacy and data security. It hosts applications such as blogs, wikis, websites, social networks, email, Web proxies and a Tor relay, on a device that can replace your Wi-Fi router, so that your data stays with you. FreedomBox was launched in 2010. After years of development, it is now a fixture in universities, villages, and homes throughout the world.
FreedomBox has two components:
- A free software system
- Always-on, inexpensive and power-efficient hardware about the size of a pocket dictionary
Though the aim of this software is to be hardware-neutral, it specifically supports about ten hardware models. All the supported hardware models are single-board computers that provide the computing power of a smartphone. The software system is 100 per cent free, open source and hence is available for download at no cost. FreedomBox is preloaded with more than 20 apps and offers features that have been designed to protect your freedom, privacy and user rights.
About the FreedomBox Foundation
Founded in 2011 by Columbia Law School faculty member Professor Eben Moglen, the FreedomBox Foundation is a non-profit organisation with 501(c)(3) status based in New York City. It supports the development of FreedomBox and advocates it throughout the world. The goal is to make freedom on the Internet reproducible by anyone across the globe.
FreedomBox is a Debian Pure Blend. All applications on it are installed as Debian packages. The FreedomBox project itself distributes its software through Debian repositories.
FreedomBox comes with automatic software updates powered by Debian.
FreedomBox is designed to be hardware neutral. Its developers aim for it to be installable on almost any computer hardware. One of the benefits of a Debian Pure Blend is that FreedomBox inherits the diverse hardware compatibility of Debian.
As of April 2019, FreedomBox is packaged in custom operating system images for 11 single-board computers. The preferred open source hardware (OSHW) designs are Olimex A20, OLinuXino Lime or the BeagleBone Black. Closed source boards like the DreamPlug, Cubietruck and the Raspberry Pi are possible options, while more are on the way. There is also a VirtualBox image. FreedomBox can additionally be installed over a clean Debian installation. More about the supported hardware can be found at https://wiki.debian.org/FreedomBox/Hardware.
FreedomBox can be used as a private cloud as it can provide services to the computers and mobile devices in your home and to your friends. This includes secure instant messaging and low-bandwidth, high-quality voice conference calling, etc.
FreedomBox can even work as a smart on-premise router since it runs in a physical computer and can route your traffic. It can sit between various devices such as mobiles, laptops, TVs and the Internet, replacing a home wireless router. By routing traffic, FreedomBox can remove tracking advertisements and malicious Web bugs before they even reach your devices. It can cloak your location and protect your anonymity by ‘onion routing’ your traffic over Tor.
FreedomBox provides a VPN server that you can use while you are away from your organisation, to keep your traffic secret on untrusted public wireless networks and to securely access various devices at home. It can also be carried along with your laptop and used to connect to public networks at work or school to avail its services.
It could be used in a remote village to make available digital communications to all homes in the vicinity. In the future, FreedomBox intends to deliver support for alternative ways of connecting to the Internet such as mesh networking.
The primary design goal of FreedomBox is to be used as a personal server at home, by a single family and its friends. However, at its core, it is server software that can aid a non-technical user to set up services and maintain them with ease. Security is automatically managed and many of the technical sysadmin choices are taken care by the software, automatically, thereby reducing complexity for a non-technical user. This aspect of FreedomBox makes it well-suited for hosting services for small communities like villages or small firms.
Communities can host their own services using FreedomBox, with minimal effort. They can set up Wi-Fi networks that span the entire area of the community and draw Internet connections from long distances. Community members can enjoy previously unavailable Internet connectivity, ubiquitous Wi-Fi coverage, free VoIP services, offline education and entertainment content, etc. This can improve privacy for individuals in the community, reduce dependence on centralised services provided by large companies, and make the community immune to censorship.
From the apps menu, you can install applications to get the following services running from your FreedomBox.
- Access your FreedomBox from the public Internet (Pagekite, Tor or Dynamic DNS)
- Connect securely to your FreedomBox (OpenVPN)
- Chat with friends (Ejabberd, Quassel or Matrix)
- Host a conference call (Mumble)
- Publish a blog (Ikiwiki)
- Host a personal or community wiki (MediaWiki)
- Block ads while browsing the Web (Privoxy)
- Check your email (Roundcube)
- Transfer large files (Deluge, Transmission or I2P)
- Read news (Tiny Tiny RSS)
- Sync your calendar and contacts (Radicale)
- Stay connected to IRC chats (Quassel, I2P)
- Host a multi-player block sandbox (Minetest)
- Collaboratively edit a text document (infinoted)
- Keep your files synchronised to your FreedomBox (Syncthing)
- Circumvent censorship using a SOCKS5 proxy (Shadowsocks)
- Escape search engine filter bubbles using a metasearch engine (Searx)
- Privately share files (Coquelicot)
From the System menu you can easily configure FreedomBox with the following available options.
- Configure the system name and interface language (Configure)
- Obtain a certificate for your domain (Let’s Encrypt)
- Add users and set access privileges (Users and Groups)
- Use a single login for Plinth, XMPP, Ikiwiki and SSH
- Manage network connections over Ethernet, Wi-Fi or PPPoE (Networks)
- Upgrade software packages automatically (Software Upgrades)
- Run diagnostic tests (Diagnostics)
- View which services are allowed through the firewall (Firewall)
- Configure the time zone and network time service (Date and Time)
Installing FreedomBox on Debian laptops or PCs
You can install FreedomBox in a system with Debian 9 Stretch, Debian10 Buster or newer (the latest stable version is preferred).
You should have your /etc/hosts/ set up properly before installing FreedomBox since most services offered by it require this.
If your host name is debian-sonnet and the FQDN (fully qualified domain name) that you are going to set to your freedombox server is sonnet.freedombox.in, type:
sudo hostnamectl set-hostname sonnet.freedombox.in
…and configure your /etc/hosts properly for this, as follows:
127.0.0.1 localhost 127.0.1.1 sonnet.freedombox.in debian-sonnet [you ip address] sonnet.freedombox.in debian-sonnet
Now you can install FreedomBox in your Debian box with the following command:
sudo DEBIAN_FRONTEND=noninteractive apt-get install FreedomBox
Installing FreedomBox on Single Board Computers
To install FreedomBox, you need the following hardware:
- Any supported device (https://wiki.debian.org/FreedomBox/Hardware#Supported_Hardware) which can run Debian Buster or newer. We will be transforming this to a FreedomBox.
- A power cable for your device
- An Ethernet cable
- A microSD card or equivalent storage media for your device with the image downloaded from the official images page at:
- Plug one end of your Ethernet cord into FreedomBox’s Ethernet port, and plug the other end into your router.
- Power on FreedomBox.
- On first boot, FreedomBox will perform its initial setup.
- After the initial setup is done, you can access its Web interface (called Plinth) through your Web browser.
- If your computer is connected directly to FreedomBox through a second (LAN) Ethernet port, you can browse http://freedombox/ or http://freedombox.local/ (or http://the-hostname-you-entered-during-install.local/ ).
- If you know your way around the router’s Web interface, you can look up the IP address of FreedomBox there and browse that address.
Setting up FreedomBox
The first time you access the FreedomBox Web interface, you will see a ‘Welcome’ page. Click the ‘Start Setup’ button to continue. If you have installed FreedomBox using a Debian package, you will be asked for a secret key. This secret would have been provided during the installation of the Debian package. It can also be read from the file /var/lib/plinth/firstboot-wizard-secret.
Next, you will be asked to set up a user name and password. You can log in to see the front page (Figure 1).
You can also buy a preconfigured Pioneer FreedomBox from Olimex at https://freedomboxfoundation.org/buy/.