- Significantly reduce the time taken to perform the operations in the following cases: - Enable/disable an app - list services in firewall page - Load app page when interfaces belonging to internal zone need to shown - First run setup of FreedomBox - Install a polkit local authority configuration file to allow FreedomBox service to perform: information queries and configuration changes. - Drop unused actions. - Alter the template for showing firewall port information since port/protocol pairs are no longer pre-formatted. - Handle errors when trying to get ports details of an unknown service. Tests performed: - Enable/disable an app. Ensure with firewall-cmd that ports are added/removed properly. - Temporarily modify code to call add_service() and remove_service() twice in a row. Perform enable/disable operations and ensure that there are not error thrown to test that add/remove services operations are idempotent. - Visit the firewalld page and see the current state is reflected properly. - Visit an app that shows the list of interfaces in firewall zone. Internal interfaces should be listed properly. - Reset the installed version of firewall app and disable all firewall services. Start FreedomBox and ensure that when setup is re-run, default ports (http, https, dns and dhcp) are opened properly. Run again but with ports already enabled to check that the setup operation is idempotent. - Visit diagnostics of an app that uses firewall components and see that ports are listed properly in the port diagnostic test result. - Remove some needed services such as those in /etc/firewalld/services and try to visit the firewalld page. The page should show blank details against the affected services. Reviewed-by: Veiko Aasa <veiko17@disroot.org>
FreedomBox Service (Plinth)
The core functionality and web front-end of FreedomBox.
Description
FreedomBox is a community project to develop, design and promote personal servers running free software for private, personal communications. It 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 blog, wiki, website, social network, email, web proxy and a Tor relay, on a device that can replace your Wi-Fi router, so that your data stays with you.
This module, called FreedomBox Service and also know as Plinth, is the core functionality and web interface to the functions of the FreedomBox. It is extensible and provides various applications of FreedomBox as modules. Each module or application provides simplified user interface to control the underlying functionality. As FreedomBox can act as a wireless router, it is possible to configure networking. It also allows configuration of basic system parameters such as time zone, hostname and automatic upgrades.
You can find more information about FreedomBox Service (Plinth) on the Plinth Wiki page, the FreedomBox Wiki and the FreedomBox Manual.
Getting Started
To have a running FreedomBox, first install Debian (Buster or higher) on a clean machine. Then run:
$ sudo apt install freedombox
Full instructions are available on FreedomBox Manual's QuickStart page.
For instructions on running the service on a local machine from source code, see INSTALL.md. For instructions on setting up for development purposes, see HACKING.md.
Contributing
See the HACKING.md file for contributing to FreedomBox Service (Plinth).






