FreedomBox 2019-07-10 "Buster" FreedomBox is the most recent distribution to be added to the DistroWatch database. What is FreedomBox? According to the project's website: FreedomBox is designed to be your own inexpensive server at home. It runs free software and offers an increasing number of services ranging from a calendar or Jabber server to a wiki or VPN. Our web interface allows you to easily install and configure your apps. On the technical side, FreedomBox is based on Debian. The latest version is based on Debian 10 "Buster". Unlike some Debian projects, FreedomBox is a "pure blend" which means all the packages it uses, or develops, can be found in the Debian repositories. This keeps FreedomBox close to upstream and completely compatible with Debian.



FreedomBox can be purchased bundled with hardware running an ARM CPU or downloaded as a compressed disk image to be installed on existing hardware. The distribution has disk images that run on 32-bit (x86), 64-bit (x86_64) and several flavours of ARM-powered boards. These flavours are available in Stable, Testing and Daily branches, depending if we want a fixed or rolling release operating system. I decided to try the Stable version for 64-bit machines.



The 64-bit image file is a 386MB download which unpacks to 3.8GB when uncompressed. This image file can be written to an SD card or USB thumb drive. By default, FreedomBox runs from the thumb drive or SD card rather than having a typical install process where packages are written to a hard drive. People who wish to perform a customized hard drive install can install Debian first and then add the FreedomBox software on top with a few commands.



Getting started



FreedomBox boots to a text console with a login prompt. At first I tried a few common default passwords, then checked the documentation and discovered there are no default login credentials. Instead we should access FreedomBox through its web portal and we will be asked to create an account. The documentation goes on to explain we can usually access the new server by browsing to the URL http://freedombox.local/, assuming we are on the same LAN. Alternatively, we may need to use a tool like nmap or check our router's access log to find the new FreedomBox's IP address.





FreedomBox 2019-07-10 -- The welcome screen when we first connect to the web portal

(full image size: 335kB, resolution: 1237x1024 pixels)



Opening a web browser and connecting to the new FreedomBox server brings up a page which greets us. Then we are asked to make up a username and password. The account credentials we create will not only give us access to the web interface, they will also grant us remote login permission using tools like OpenSSH. The next screen of the web portal gives us the chance to change our network settings. Then we are presented with a list of web applications and services and asked which ones we want to install. Clicking an application's icon brings up a brief description of the software. We can then click an Install button to download the desired module.



When I first started using FreedomBox I tried to install two services, the Transmission bittorrent software and a simple RSS feed reader. Clicking either package's Install button brought up an error which read: " Error installing application: Error during installation E: Release file for http://deb.debian.org/debian/dists/stable-updates/InRelease is not valid yet (invalid for another 18min 43s). Updates for this repository will not be applied. "



I waited the specified 18 minutes, then tried again. That that time, both applications downloaded and installed successfully.



Exploring FreedomBox



The FreedomBox web interface is pleasantly streamlined and easy to navigate. Across the top of the screen there are four main buttons. Home, Apps, System, and a user button that allows us to sign out of our account or change our password. We can also reboot or shutdown the server through the user menu.



The Apps screen shows us a list of available applications modules we can install. There were 24 of these available at the time of writing. Applications are run in the web browser and cover a range of features. There are wiki, blogging and torrent client packages. There is a feed reader, a few proxy tools, such as Tor and a SOCKS proxy. There is a VPN client, and a handful of chat servers and clients. I was hoping to spot an e-mail server for home-based hosting, but did not find one.





FreedomBox 2019-07-10 -- Browsing available web applications

(full image size: 652kB, resolution: 1237x1024 pixels)



We can click on an application's icon to display a description of the software. We can then install the selected item with a single click. Again, the interface is pleasantly uncluttered and I found it easy to identify what each module did and the handful I tried all installed successfully.



The Home screen shows a list of applications we have installed. Clicking on an application opens it, taking over the browser's tab. For this reason I started right-clicking on applications and opening them in a new tab to make it easier to get back to the FreedomBox interface. The Home screen is basically just a full screen launcher for the programs we have installed.



The System page acts as a control panel, and lists modules we can use to trouble-shoot, examine, and configure our server. There is a system module for creating backups, a few modules for changing DNS settings and networking. There is a Diagnostics module that will list installed services and whether they are responding over their network ports. One module lets us enable automatic updates, or manually update the operating system. Another module enables Let's Encrypt certificates, if we have given our server a domain name.





FreedomBox 2019-07-10 -- Accessing configuration modules

(full image size: 560kB, resolution: 1237x1024 pixels)



Additional modules list available storage, and data usage. Another helps us create and manage filesystem snapshots. There is a tool for enabling and disabling the OpenSSH service. A Security module allows us to toggle the Fail2Ban service on/off to guard against brute force network attacks. It also allows us to restrict which users can sign in remotely to the OpenSSH console.





General observations



FreedomBox runs the OpenSSH service by default, giving us a second method (along with the web portal) to access and manage the system. By default, only users in the Admin group can use OpenSSH to remotely sign in. The first user we create has Admin rights and, optionally, we can add other users to the Admin group later. In the Security module we can allow all users to sign in via OpenSSH should we wish to make the server more accessible without granting people Admin rights.



FreedomBox is one of the few Linux distributions I have used which sets up Btrfs as the default filesystem. This is useful for two reasons. The first is we can create additional filesystems and add new physical storage devices to the filesystems as we need more space. Btrfs can be grown dynamically without taking the operating system off-line which is a nice feature to have. There is no method for adding new storage devices through the web interface, but it takes just one command using the btrfs utility on the console interface.





FreedomBox 2019-07-10 -- Using the RSS feed reader application

(full image size: 271kB, resolution: 1237x1024 pixels)



The second perk to running Btrfs by default is we can revert changes to the system's packages and configuration with a few mouse clicks. There is a settings module in the web portal for creating and rolling back filesystem snapshots. This means if we make a configuration mistake or if an update breaks the system, we can roll back to the previous snapshot and everything goes back to its earlier, working condition. I tested this feature and it worked perfectly.



It is pleasantly easy to set up sharing files over HTTP. One of FreedomBox's modules lets us share a directory over a URL we make up. For instance, I can create a folder in my user's home directory called Public and set it to be accessible to anyone who visits http://freedombox.local/share/Public on my LAN. (Or I can set up port forwarding on my router to my server and give people the IP address.) People can then easily download files from my system just by clicking the link I send them. When combined with other modules, like the Transmission bittorrent client, it means we can download files and share them with other computers on the home network with very little effort.



The distribution does not require many resources. A fresh install used less than 4GB of space on the SD card. Even with half a dozen modules installed and the web interface running, FreedomBox only used about 260MB of RAM. The distribution is designed to run in minimal environments, like Raspberry Pi single board computers, and it can do this with room to spare.





FreedomBox 2019-07-10 -- Managing a user account's permissions

(full image size: 378kB, resolution: 1237x1024 pixels)

Problems



For the most part, FreedomBox and its web applications worked really well for me. There were just a few exceptions with modules that caused me problems. The first was that Transmission crashed once after trying to download a file. This on its own was not a big deal, but I struggled to come up with a user-friendly way to restart the service. An administrator can login through secure shell and restart the transmission-daemon service, but I could not find a way to force Transmission to restart through the web interface. At least not using any of the friendly, point-n-click tools. The Diagnostics module would show Transmission was not responding, but it does not offer any solutions.



My next thought was to install the Cockpit application module as Cockpit is a powerful web-based tool for managing servers. The Cockpit module installed, and when I launched the application I was taken to Cockpit's login screen. After entering my username and password, I was shown a blank page. I think Cockpit was the only application which did not work properly during my trial. I tried using Cockpit in a few different browsers and each produced the same blank page after I had successfully signed into the module.



Conclusions



I feel that I don't get to say this about many projects: FreedomBox impressed me. I was not sure what to expect when my trial started. I was not sure if I was getting Debian with some extra convenience packages pre-installed, or something like Debian running Cockpit, or an appliance distribution like TurnKey Linux. What I got was a distribution that did not need to be installed, I could just unpack the download to a thumb drive and start using it. FreedomBox requires virtually no configuration, the web apps are all point-n-click add-ons, and most of them are quite easy to use.



The control panel especially was nice to use. Often times when distributions add a web-based control panel it either just duplicates tasks a user might perform on the console (with similar readouts and controls) or the interface is complex and crowded with too many options. FreedomBox manages to be sleek and minimal while making the administrator's life noticeably easier. This is one of the few times when I've found myself preferring to use the web interface over the command line when working on a server, and I'm pretty sure I could hand this system to less technical users and they would be able to explore and use the web interface.



There were a few minor problems which stood out. It would have been nice to have a system module for restarting services, or an option to automatically restart crashed services. My only other wish-list item would be to make it easier to add disks to a storage pool. The FreedomBox storage module lets users see existing storage pools and which devices are in them, but I cannot take an unformatted device and add it to a Btrfs pool without using the command line. Otherwise, FreedomBox was polished, easy to use, and it manages to provide useful features I feel most people will want without overloading the interface with features most people don't need.



In short: the distribution provides a surprisingly polished experience with almost no work required to set it up and start using a home server. I'm hoping the next version manages to fix the Cockpit module and maybe adds an e-mail service, but the project needs very little else. In fact, I think it benefits from maintaining a narrow focus and doing just a few things well without getting bogged down with extra services, monitoring functions, and add-on containers. This is an excellent way to get up and running with a home server where people want to plug it in and just start sharing files, chatting or blogging. * * * * * Visitor supplied rating



FreedomBox has a visitor supplied average rating of: 9/10 from 4 review(s).

Have you used FreedomBox? You can leave your own review of the project on our ratings page.



