Add USBWiFi page
Add contributing section
|Deletions are marked like this.||Additions are marked like this.|
|Line 49:||Line 49:|
= Contributing =
<<Include(FreedomBox/Contribute, , from="BEGIN_INCLUDE", to="## END_INCLUDE")>>
- Quick Start
- Getting Help
- FreedomBox 21.0 (2021-01-11)
- FreedomBox 20.21 (2020-12-28)
- FreedomBox 20.20.1 (2020-12-19)
- FreedomBox 20.20 (2020-12-14)
- FreedomBox 20.19 (2020-11-30)
- FreedomBox 20.18.1 (2020-11-23)
- FreedomBox 20.18 (2020-11-16)
- FreedomBox 20.17.1 (2020-11-07)
- FreedomBox 20.17 (2020-11-02)
- FreedomBox 20.16 (2020-10-19)
- FreedomBox 20.15 (2020-10-05)
- FreedomBox 20.14.1 (2020-09-23)
- FreedomBox 20.14 (2020-09-15)
- FreedomBox 20.13 (2020-07-18)
- FreedomBox 20.12.1 (2020-07-05)
- FreedomBox 20.12 (2020-06-29)
- FreedomBox 20.11 (2020-06-15)
- FreedomBox 20.10 (2020-06-01)
- FreedomBox 20.9 (2020-05-18)
- FreedomBox 20.8 (2020-05-04)
- FreedomBox 20.7 (2020-04-20)
- FreedomBox 20.6.1 (2020-04-11)
- FreedomBox 20.6 (2020-04-06)
- FreedomBox 20.5.1 (2020-03-26)
- FreedomBox 20.5 (2020-03-23)
- FreedomBox 20.4 (2020-03-09)
- FreedomBox 20.3 (2020-02-24)
- FreedomBox 20.2 (2020-02-10)
- FreedomBox 20.1 (2020-01-27)
- FreedomBox 20.0 (2020-01-13)
- FreedomBox 19.24 (2019-12-30)
- FreedomBox 19.23 (2019-12-16)
- FreedomBox 19.22 (2019-12-02)
- FreedomBox 19.21 (2019-11-18)
- FreedomBox 19.20 (2019-11-04)
- FreedomBox 19.19 (2019-10-21)
- FreedomBox 19.18 (2019-10-07)
- FreedomBox 19.17 (2019-09-23)
- FreedomBox 19.16 (2019-09-09)
- FreedomBox 19.15 (2019-08-26)
- FreedomBox 19.14 (2019-08-12)
- FreedomBox 19.13 (2019-07-29)
- FreedomBox 19.12 (2019-07-22)
- FreedomBox 19.2.2 (2019-07-17)
- FreedomBox 19.2.1 (2019-07-09)
- FreedomBox 19.11 (2019-07-08)
- FreedomBox 19.10 (2019-06-24)
- FreedomBox 19.9 (2019-06-10)
- FreedomBox 19.8 (2019-05-27)
- FreedomBox 19.7 (2019-05-13)
- FreedomBox 19.6 (2019-04-29)
- FreedomBox 19.5 (2019-04-15)
- FreedomBox 19.4 (2019-04-01)
- FreedomBox 19.3 (2019-03-18)
- FreedomBox 19.2 (2019-03-02)
- FreedomBox 19.1 (2019-02-14)
- FreedomBox 19.0 (2019-02-09)
- Version 0.49.1 (2019-02-07)
- Version 0.49.0 (2019-02-05)
- Version 0.48.0 (2019-01-28)
- Version 0.47.0 (2019-01-14)
- Version 0.46.0 (2018-12-31)
- Version 0.45.0 (2018-12-17)
- Version 0.44.0 (2018-12-03)
- Version 0.43.0 (2018-11-19)
- Version 0.42.0 (2018-11-05)
- Version 0.41.0 (2018-10-22)
- Version 0.40.0 (2018-10-08)
- Version 0.39.0 (2018-09-24)
- Version 0.38.0 (2018-09-10)
- Version 0.37.0 (2018-08-27)
- Version 0.36.0 (2018-08-13)
- Version 0.35.0 (2018-07-30)
- Version 0.34.0 (2018-07-16)
- Version 0.33.1 (2018-07-04)
- Version 0.33.0 (2018-07-02)
- Version 0.32.0 (2018-06-18)
- Version 0.31.0 (2018-06-04)
- Version 0.30.0 (2018-05-21)
- Version 0.29.1 (2018-05-08)
- Version 0.29.0 (2018-05-07)
- Version 0.28.0 (2018-04-23)
- Version 0.27.0 (2018-04-09)
- Version 0.26.0 (2018-03-26)
- Version 0.25.0 (2018-03-12)
- Plinth v0.24.0 (2018-02-26)
- Plinth v0.23.0 (2018-02-12)
- Plinth v0.22.0 (2018-01-30)
- Plinth v0.21.0 (2018-01-15)
- Plinth v0.20.0 (2018-01-01)
- Plinth v0.19.0 (2017-12-18)
- Plinth v0.18.0 (2017-12-04)
- Plinth v0.17.0 (2017-11-20)
- Plinth v0.16.0 (2017-11-06)
- Plinth v0.15.3 (2017-10-20)
- Plinth v0.15.2 (2017-09-24)
- Plinth v0.15.0 (2017-07-01)
- Plinth v0.14.0 (2017-04)
- Plinth v0.13.1 (2017-01-22)
- Plinth v0.12.0 (2016-12-08)
- Plinth v0.11.0 (2016-09-29)
- Plinth v0.10.0 (2016-08-21)
- Version 0.9.4 (2016-06-24)
- Version 0.9 (2016-04-24)
- Version 0.8 (2016-02-20)
- Version 0.7 (2015-12-13)
- Version 0.6 (2015-10-31)
- Version 0.5 (2015-08-07)
- Version 0.3 (2015-01-20)
- Version 0.2 (2014-03-16)
- Version 0.1 (2013-02-26)
- Tor (Anonymity Network)
- Deluge (Distributed File Sharing via BitTorrent)
- Transmission (Distributed File Sharing via BitTorrent)
- Bookmarks (Shaarli)
- Dynamic DNS Client
- Roundcube (Email Client)
- PageKite (Public Visibility)
- Mumble (Voice Chat) Server
- Privoxy (Web Proxy)
- Ikiwiki (Wiki and Blog)
- Users and Groups
- Software Updates
- Date & Time
- Recommended Hardware
- Supported Hardware
- Additional Hardware
- Common Hardware Information
- Building Your Own Images
- Beagle Bone Black
- Raspberry Pi 2 Model B
- USB Wi-Fi
- Get Involved
1. What you need to get started
The easy way is to buy a FreedomBox kit.
Alternatively you may choose to build it yourself, by gathering all the components:
A supported device (including any device that can run Debian). We will call that the FreedomBox in the rest of this manual.
- A power cable for your device.
- An ethernet cable.
A microSD card (or equivalent storage media for your device), prepared according to the instructions on the Download page.
2. How to get started
Plug one end of your ethernet cord into your FreedomBox's ethernet port, and plug the other end into your router.
Power on the FreedomBox.
Note: On most single board computers, don't expect any output on a monitor connected via HDMI as the support may not exist in the kernel. See below to access and control your FreedomBox via network.
On first boot, FreedomBox will perform its initial setup (older versions of FreedomBox reboot after this step). This process may take several minutes on some machines. After giving it about 10 minutes, proceed to the next step.
Note: Currently, due a known bug, you need to restart your FreedomBox after 10m and then proceed to the next step.
After the FreedomBox has finished its initial setup, you can access its web interface through your web browser.
If your computer supports mDNS (GNU/Linux, Mac OSX or Windows with mDNS software installed), you can browse to: 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 the FreedomBox there, and browse to that address.
If none of these methods are available, then you will need to figure out the IP address of your FreedomBox. You can use the "nmap" program from your computer to find its IP address:
nmap -p 80 --open -sV 192.168.0.0/24 (replace the ip/netmask with the one the router uses)In most cases you can look at your current IP address, and change the last digits with zero to find your home network, like so: XXX.XXX.XXX.0/24
Your FreedomBox will show up as an IP address with an open tcp port 80 using Apache httpd service on Debian, such as the example below which would make it accessible at http://192.168.0.165:
Nmap scan report for 192.168.0.165 Host is up (0.00088s latency). PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.17 ((Debian))If nmap does not find anything with the above command, you can try replacing 192.168.0.0/24 with 10.42.0.255/24.
nmap -n -sP 10.42.0.255/24The scan report will show something similar to the following:
Nmap scan report for 10.42.0.1 Host is up (0.00027s latency). Nmap scan report for 10.42.0.50 Host is up (0.00044s latency).
In this example, the FreedomBox is accessible at http://10.42.0.50. (10.42.0.1 is my laptop.)
On accessing FreedomBox's web interface your browser will warn you that it communicates securely but that it regards the security certificate for doing so as invalid. This is a fact you need to accept because the certificate is auto generated on the box and therefore "self-signed" (the browser might also use words such as "untrusted", "not private", "privacy error" or "unknown issuer/authority"). Telling your browser that you are aware of this might involve pressing buttons such as "I understand the Risks", "proceed to ... (unsafe)" or "Add exception". After installation this certificate can be changed to a normal one using the Let's Encrypt option.
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 was generated during the installation of the Debian package. It can be read from the file /var/lib/plinth/firstboot-wizard-secret.
- The next page asks you to provide a user name and password. Fill in the form, and then click "Create Account."
Note: The user that you create here has Admin privileges and can also log in using ssh. For additional security, you may want to use a separate account for administrative tasks and for your normal, daily use. You can add more users later.
After completing the form, you will be logged in to FreedomBox's web interface and able to access apps and configuration through the interface.
Now you can try any of the Apps that are available on FreedomBox.
3. Finding your way around
3.1. Front page
The front page is the page that you will see when accessing the web root of your FreedomBox. You can also access it by clicking the FreedomBox logo in the top-left corner of the FreedomBox's web interface.
The front page includes shortcuts to apps that have been installed and are enabled. For web apps, clicking the shortcut will take you directly to the app's web page. For other services, clicking the shortcut will show more information about the service.
3.2. Apps menu
The Apps menu can be accessed by clicking the grid icon, next to the FreedomBox logo. This page lists all of the apps that are available for installing on FreedomBox. Click the name of an app to visit its page, where you can install and configure it.
3.3. Help menu
The Help menu can be accessed by clicking the question mark icon in the top-right corner. It includes helpful links and the FreedomBox manual.
3.4. System menu
The System menu can be accessed by clicking the gear icon in the top-left corner. It includes a number of pages related to system configuration.
3.5. User menu
In the top-right corner, the name of the currently logged-in user is shown. A drop-down menu includes options for editing the current user or logging out of the user interface.
3.6. Burger menu
FreedomBox's web interface is responsive. When the display or browser window is very narrow, menu options may be hidden.
That is because the top menu options are collapsed into the burger icon shown at the top right corner of the window. Click on it to display a drop-down menu.
The FreedomBox community provides live help via forum, chat and email. Feel free to join and ask anything you like. If you receive help, please consider to report your solution to the Questions and Answers page, so others can benefit in the future.
1. Discussion Forum
The easiest way to get support is by using the discussion forum. You can browse solutions to known problems or request help from community contributors by asking a question. This is also the best way to provide community contributors with feedback about your FreedomBox experience.
To post new content, you will need to register for an account with name and email address (but you can provide pseudonym and non-primary email address). By watching topics and categories or by enabling 'mailing list mode' in your account preferences, you can interact with the forum by just sending and receiving emails similar to a mailing list.
2. IRC #freedombox
Providing you are familiar with Internet Relay Chat (IRC) and IRC client, you can get an instant online help from the community on irc.debian.org, channel #freedombox. Potentially it takes some time before some member is answering you, be patient, a reaction will come later.
You can join our Matrix room #freedombox:matrix.org. The room is federated with the IRC channel and remembers the chat history. If you do not yet have a client installed, you can use your web browser to join. For more options, see this matrix client overview page.
FreedomBox users and contributors can be reached by email via a discussion list. In order to ask a question and get an answer from the community, please register from the mailing list page providing your email adress and creating a password. You can also read discussions archives. This list gathers about 700 readers.
5. Help Back
Once you've got your solution, don't forget to add it to the Questions and Answers page and tell which features do you use from the box on Use Cases page. It could help others to use FreedomBox in a way they would have not imagined.
The following are the release notes for each FreedomBox version.
1. FreedomBox 21.0 (2021-01-11)
- apache2: Allow downloads in openvpn and backups with latest browsers
1.2. Other Changes
- locale: Update translations for Dutch, French, German, Hungarian, Polish, Spanish, Swedish, Turkish
- app: Add locked flag
- app: component: Add app_id and app properties
- app: info: Move client validation to info component
- backups: Add new component for backup and restore
- backups: Don't open a new window for downloading backups
- dev-container: 'up' command: Show banner also when container is already running
- dev-container: Add command to print container IP address
- dev-container: Add subcommand to run tests
- doc: dev: Update the tutorial to reflect latest API/code
- ejabberd: functional tests: Wait until the jsxc buddy list is loaded
- functional tests: Make tests compatible with pytest-bdd v4.0
- functional-tests: Fix installation errors in install.sh script
- gitweb: Add functional tests for git-access group
- gitweb: tests: functional: Fix test failures in localized environment
- mumble: Updated mumla and removed plumble from clients list
- openvpn: Don't show running status on download profile button
- plinth: Fix daemon is enabled check when service alias is provided
- radicale: Fix backup and restore of configuration
- tests: functional: Improve creating users in tests
- transmission: Show port forwarding information
- transmission: Update description
- upgrades: Add service for dist upgrade
- upgrades: Ensure freedombox package is upgraded during dist upgrade
- upgrades: Hold tt-rss during dist upgrade, if available
- upgrades: Install python3-systemd for unattended-upgrades
upgrades: Restart FreedomBox service at end of dist-upgrade
- upgrades: Use full path to searx action script
- users: Skip action script tests if LDAP is not set up
2. FreedomBox 20.21 (2020-12-28)
- apache: Create snake oil certificate if not exists
Fixes an issue when installing FreedomBox on Hetzner Cloud's Debian image
- calibre: Fix link to manual page
2.2. Other Changes
- deluge: Require user to be in bit-torrent group to access
- locale: Update translations for German, Hungarian, Polish, Russian, Spanish, Swedish
- security: Fix access denied for user daemon from cron
- upgrades: Allow grub-pc upgrade without reinstalling grub
- upgrades: Update searx search engines during dist upgrade
- users: Remove timeout when creating Samba user
3. FreedomBox 20.20.1 (2020-12-19)
- config: Skip homepage test on buildd
- ui: Migrate from bootstrap 3 to bootstrap 4
3.2. Other Changes
- apache: Disallow all inline styling in sandbox settings
- gitweb: Make functional tests compatible with pytest-bdd v4.0
- locale: Update translations for Dutch, German, Turkish
- ui: Adopt a consistent and new table style
4. FreedomBox 20.20 (2020-12-14)
- config: Add user websites as choices for homepage config
- templates: Make toggle button responsive
4.2. Other Changes
- apache: Add app name for diagnostics
- diagnostics: Improve exception handling in app diagnostics
- diagnostics: Show app name and fallback to app id if not exist
- locale: Update translations for Dutch, French, German, Portuguese, Spanish, Swedish, Turkish
- mumble: Implement force upgrade for 1.3.*
- snapshot: Check that / is a btrfs subvolume before setup
- upgrades: Hold mumble-server during dist upgrade
5. FreedomBox 20.19 (2020-11-30)
- openvpn: Create user group "vpn"
- upgrades: Add first boot step to run initial update
5.2. Other Changes
- bepasty: Apply translation to autogenerated comments
- locale: Update translations for Bengali, Dutch, German, Spanish
- networks: Apply translation to a tooltip
- samba: Show toggle buttons and share names
- snapshots: Translate snapshot types (field description)
- upgrades: Fix sources list for dist upgrade from buster
- upgrades: Hold freedombox package during dist upgrade
6. FreedomBox 20.18.1 (2020-11-23)
- locale: Update translations for Dutch, French, German, Italian, Norwegian Bokmål, Spanish, Swedish, Turkish
- sso: Fix regression in auth-pubtkt configuration
7. FreedomBox 20.18 (2020-11-16)
- openvpn: Support Elliptic Curve Cryptography (ECC)
If you are already using OpenVPN, you can migrate to ECC to improve speed and security. Visit the OpenVPN page in the FreedomBox interface to perform the one-time migration, and to re-download the client profiles.
7.2. Other Changes
- dynamicdns: Handle IPv6
- locale: Update translations for Dutch, French, German, Italian, Spanish
- openvpn: Cleanup easyrsa 2 to 3 upgrade code
- openvpn: Remove explicit setup step
8. FreedomBox 20.17.1 (2020-11-07)
- ci: Fix flake8 errors
- debian: Rename source package to freedombox
- locale: Update translations for German, Italian, Turkish
- pubtkt: Fix Python format language errors
9. FreedomBox 20.17 (2020-11-02)
- locale: Add Chinese (Traditional) translation
- mediawiki: Add action to set domain name
- upgrades: Add a setting to enable dist upgrade
9.2. Other Changes
- apache: setup uwsgi by default
- backups: i18n: Mark form success messages for translation
- locale: Update translations for Danish, French, German, Italian, Norwegian Bokmål, Polish, Russian, Spanish, Swedish, Telugu, Turkish
- mediawiki: Ensure password file is not empty
- networks: css: Make button wider in network list
- networks: i18n: Mark string for translation on delete page
- networks: i18n: Mark various strings for translation
- notifications: i18n: Mark app names and extra data for translation
- package: i18n: Mark progress status strings for translation
- upgrades: Disable the option when not able to dist upgrade
10. FreedomBox 20.16 (2020-10-19)
- app: Add donation buttons on app pages
- updates: Eliminate delay and better status for manual upgrade
10.2. Other Changes
- calibre: Update group description to reflect 'using' app
- diagnostics: Lazy format all diagnostic test strings properly
- diagnostics: Show low system memory notifications
- help: Link to updates page when new version is available
- locale: Update translations for Chinese (Simplified), French, Greek, Norwegian Bokmål, Russian, Slovenian, Spanish, Swedish, Turkish
- notifications: Show severity level on every notification
- upgrades: Add status section showing version and upgrade status
11. FreedomBox 20.15 (2020-10-05)
- calibre: Add new e-book library app
- mumble: configure letsencrypt component
- upgrades: Detect and upgrade to next stable release
11.2. Other Changes
- bepasty: Change default permissions to 'read'
- container: Assign virtual network interface to trusted firewall zone
- container: Handle edge cases with container update
- coturn: Don't handle certificates if not installed
- debian/control: Add sshpass as build dependency
- doc: Before fetching, drop all old to cleanup deleted pages/images
- doc: dev: Link to list of potential apps from tutorial
- dynamicdns: Drop unnecessary code to set app as enabled
- locale: Update translations for French, Norwegian Bokmål, Portuguese, Spanish, Swedish, Turkish
- module_loader, web_framework: Update console log messages
- mumble: Store and use a single domain for TLS certificate setup
- pagekite: Don't announce unconfigured kite as a valid domain
- pagekite: Don't update names module if not installed
- quassel: Don't handle certificates if not installed
- ssh: action script: Require user credentials when editing ssh keys
- tests: functional: Simplify calling the login helper
- tor: Don't check if enabled when not installed
- upgrades: Check free space before dist-upgrade
- upgrades: Extend function to check for normal dist availability
- upgrades: Set a flag so interrupted dist-upgrade can be continued
- users: Deal with admin user already existing during first boot
- users: Require admin credentials when creating or editing a user
12. FreedomBox 20.14.1 (2020-09-23)
- cockpit: Don't show home page icon to non-admin users
- locale: Update translations for French, German, Norwegian Bokmål, Russian, Turkish
minidlna: Fix typo DNLA -> DLNA
- module_loader: Load/process all essential modules before others
13. FreedomBox 20.14 (2020-09-15)
- apache: Disable mod_status (CVE-2020-25073)
- bepasty: New app for file upload and sharing
- matrixsynapse: Allow upgrade to version 1.19
13.2. Other Changes
- apps: Remove Coquelicot
- backups: Make app available by default
- debian: Add newline to end of /var/lib/plinth/firstboot-wizard-secret
- debian: Don't show first wizard secret on command line
- debian: Temporarily revert source package rename
- diagnostics: Prevent showing running status on diagnostics menu item
- doc: Add moinmoin wiki parser
- doc: Fix wiki links in manual
- ejabberd, mumble, wireguard: Update Apple app links
- ejabberd: Use new ruamel.yaml API and allow duplicate keys
- firewall: Show port forwarding info contextually
- firewall: Show port forwarding info in tabular format
- gitweb: Add ability to change default branch
- gitweb: Fix enable auth webserver component on app init
- help, networks: Clarify i18n different contexts for "Manual"
- i18n: Mark strings missed for translation
- ikiwiki: Validate a path when deleting wiki or blog
- js: Don't show running status on buttons pulled to right
- jsxc, sharing, wireguard: Add 'Learn more...' link for help pages
- locale: Update translations for Danish, Dutch, Galician, German, Hungarian, Italian, Spanish, Swedish, Russian, Turkish
- matrixsynapse: Perform a one time conversion to new config format
- matrixsynapse: Rename Riot to Element
- matrixsynapse: Use conf.d snippets
- radicale: Remove code to handle 1.x
- radicale: Stop service during backup and restore
- samba: Hide common system partitions
- snapshots: Clarify description for disabling yearly snapshots
- ssh: Disallow managing keys for the root user
- storage: Fix expanding partitions on GPT partition tables
- upgrades, security: Update the messages describing backports
- upgrades: Add first boot step to configure backports
- upgrades: Change backports activation message wording
- upgrades: Display correct backports info for unstable
- upgrades: security: Don't use technical term 'backports' in UI
- wireguard: Remove hardcoded Windows client version
14. FreedomBox 20.13 (2020-07-18)
- upgrades: Update apt cache before manual update
- minidlna: Do not expose statistics over public web
14.2. Other Changes
- backups: Allow remote repository usernames to start with numbers
- locale: Update translations for Chinese (Simplified), Hungarian, Kannada, Norwegian Bokmål, Spanish, Swedish
- security: Move backports notice to security page
- upgrades: Add button to activate backports if needed for current release
- debian: Rename source package from plinth to freedombox
15. FreedomBox 20.12.1 (2020-07-05)
- cfg, frontpage: Ignore errors while reading config and shortcuts
- locale: Update translations for French, German, and Norwegian Bokmål
16. FreedomBox 20.12 (2020-06-29)
- apt: Recover from errors before installing apps or updating system
- apache: Add strict content security policy, sandbox and other security headers
- storage: Allow ejecting SATA disks
- configuration: Allow changes using .d drop-in files
16.2. Other Changes
- configuration: Move default configuration into source code
- configuration: Read from multiple locations in /etc/ and /usr/share/
- debian: Add ssl-cert and nscd as proper dependencies
- frontpage: Allow adding shotcuts using .d drop-in files
- frontpage: Read shortcuts from multiple locations in /etc/, /usr/share and /var/lib
- locale: Update translations for Czech, Danish, French, German, Russian, Spanish, Swedish, Telugu, Turkish
- storage: Automount system disks without partition table but ignore all loopback devices
- storage: Allow ejecting SATA disks
- storage: Show only physical disks and not all mount points
- upgrades: Skip enabling backports on testing and unstable
- upgrades: Show more logs
- ui: Show a spinner and disable button on form submit
17. FreedomBox 20.11 (2020-06-15)
17.1. Top Highlight
- locale: Add new translation for Arabic (Saudi Arabia)
17.2. Other Changes
- locale: Update translations for French, Norwegian Bokmål, German, Swedish, Polish, and Spanish
- matrixsynapse: Handle upgrade to versions 1.15.x
- upgrades: Avoid manual update interruption when upgrading freedombox package
- upgrades: Don't enable backports on Debian derivatives
18. FreedomBox 20.10 (2020-06-01)
18.1. Top Highlights
- pagekite: Fix expired certificates causing connection failures
- tor: Fix problems with running a relay
18.2. Other Changes
- backups: Add optional field - Name
- cockpit: Promote for advanced storage/firewalld/networking ops
- firewall: Don't show tun interface in internal zone warning
- firewall: Mention that internal services are available over VPN
- ikiwiki: Enable 'attachment' plugin by default
- locale: Update translations for Spanish, French, Russian, Norwegian Bokmål, Czech, Hungarian, and Greek
- minidlna: Add link to manual page
- minidlna: Fix internationalization for name of the app
- mldonkey: Add app to freedombox-share group
- openvpn: Use app toggle button and common app view
- radicale: Fix link in description to clients
- samba: Add clients information
- templates: Fix setup state check
- users: Avoid error when user's groups cannot be parsed
19. FreedomBox 20.9 (2020-05-18)
19.1. Top Highlights
- performance: Add app for system monitoring
- upgrades: Restart services and system when needed after upgrades
- System restart will happen at 02:00 local time
19.2. Other Changes
bind: Add service alias for bind9 -> named
- firewall: Reload firewalld so it works with newly installed services
- first_setup: Fix regression with logo not showing
- locale: Update translations for Norwegian Bokmål, German, Swedish, Spanish, and Russian
- mediawiki: Stop jobrunner during backup/restore
- minidlna: Stop service during backup/restore
- mumble: Stop service during backup/restore
- package: Fix error log when checking if package manager is busy
- performance: Launch the Cockpit graphs directly if possible
- quassel: Fix stopping service during backup/restore
- quassel: Use systemd sandboxing features
- samba: Change description to Network File Storage
- snapshot: Fix issues with restore and delete
- snapshot: Set as essential module
- storage: Auto-mount disks, notify of failing disks
- tor: Fix stopping service during backup/restore
20. FreedomBox 20.8 (2020-05-04)
- syncthing: Add service to freedombox-share group
- users: When adding service to sharing group, only restart if already running
- datetime: Ignore time synchronization service in containers and virtual machines
- minidlna: Make app installable inside unprivileged container
- web_server: Suppress warnings that static directories don't exist
- debian: Remove unused timer
- static: Use SVG logo during first wizard welcome step
- static: Reduce the size of the background noise image
- setup.py: Don't install/ship .po files
- static: Don't ship visual design file and unused images
- all: Update links to repository and project page
- coturn: Add app to manage Coturn TURN/STUN server
- mediawiki: Partial fix for installing on testing
- datetime: Disable diagnostics when no tests are available
- data: Print hostname and IP addresses before console login
- snapshot: Fix message when not available
- snapshot: Fix title
- mumble: Add Mumla to the list of clients
- locale: Update translations for Spanish, Telugu, Russian, German, French, and Swedish
21. FreedomBox 20.7 (2020-04-20)
- matrixsynapse: Fix initial installation and upgrade from backports
- gitweb: Improve error handling when creating repository
- locale: Update translations for French, Serbian, and Telugu
22. FreedomBox 20.6.1 (2020-04-11)
- users: Restore line of help text that was accidentally dropped
- debian: Add firmware-ath9k-htc to Recommends
- gitweb: Use proper ellipsis char when showing clone progress
- locale: Update translations for Norwegian Bokmål, German, French, Portuguese, Italian, Russian, and Serbian
23. FreedomBox 20.6 (2020-04-06)
- app: Ensure toggle buttons work independently of configuration form
- networks, monkeysphere: Make styling more specific to avoid interference
- syncthing: Update description to mention 'syncthing' group
- radicale: Support upgrade up to any 2.x version
- packages: Hold freedombox package during package installs
- users: Add component for managing users and groups
- app: Fix grammar in developer documentation string
- ikiwiki: Disable public edits of blog pages
- ikiwiki: Add moderation of blog comments
- firewalld: Support upgrade up to any 0.8.x version
- infinoted: Fix permissions of sync directory
- locale: Added Serbian translation
- locale: Update translations for Russian, French, German, Czech, Italian, Hindi, Telugu, and Spanish
24. FreedomBox 20.5.1 (2020-03-26)
- networks: Update label wording in topology form
- jsxc: Fix issue with serving static files
- debian: Separate binary packages for each language manual
- locale: Update translations for Norwegian Bokmål and German
25. FreedomBox 20.5 (2020-03-23)
- app: Fix description block in app header
- pagekite: Don't signal new domain on init if app is disabled
- pagekite: Don't attempt to notify about domain if app is disabled
- pagekite: Remove app enabled checking from getting configuration
- pagekite: On enable/disable, add/remove domain from names module
- pagekite: Fix an error message in custom services form
- matrixsynapse: Handle release of matrix-synapse 1.11
- setup: Fix regression to force-upgrade caused by Info changes
- pagekite: Don't allow non-unique custom services
- index: Reintroduce clients button in front page
- upgrades: Don't ship apt backport preferences file
- upgrades: Use internal scheduler instead of systemd timer
- shadowsocks: Change default configuration
- shadowsocks: Fix incorrect setting of state directory
- shadowsocks: When editing configuration, don't re-enable
- mediawiki: Don't allow anonymous edits
- names: Fix Local Network Domain is not shown
- shadowshocks: Fix setting configuration on Buster
- locale: Update translations for Swedish, Spanish, and French
26. FreedomBox 20.4 (2020-03-09)
- apache: Handle transition to php 7.4
- app: Fix showing app name in port forwarding information
- apps: Do not show status block if service is running
- i2p: New style app page layout
- locale: Update translations for French, Telugu, Spanish, and Swedish
- networks: Add first boot step for network topology wizard
- networks: Add form for network topology
- networks: Don't show router wizard if not behind a router
- networks, firewall: Support newer version of policykit
- networks: Fixes for networks wizards access and user experience
- networks: If topology wizard is skipped, skip router wizard too
- networks: Show router wizard before Internet connection type wizard
- plinth: Increase sqlite busy timeout from default 5s to 30s
- quassel: Fix unable to disable application without choosing a domain name
- shadowsocks: Move user settings to state directory
- storage: Directory selection form improvements
- transmission: Allow to submit download directory if it is creatable
- upgrades: Clean apt cache every week
- views: Improve template security
27. FreedomBox 20.3 (2020-02-24)
- apps: Update style for toggle button
- apps: Drop border shadow for app icon in mobile view
- apps: Show short description as secondary title
- apps: Remove css filters and glow from app icons
- cards: Remove the transition delay on hover effect
- system: Implement new style for cards
- framework: Generate secret key (existing sessions will get logged out)
- framework: Cleanup expired sessions every week
- networks: Add setting for internet connection type
- networks: Ask about internet connection type during setup
- shadowsocks: Fix shadowsocks not able to start
- jsxc: Bypass issue with stronghold to get the app working again
- monkeysphere: Fix regression with reading Apache configuration
- help: Fix attribute on download manual button
- firewall: Improve speed of some operations using DBus API
- css: Add missing license identifier on some CSS files
- deluge: Use safer method for editing configuration
- deluge: More reliable initial configuration setup
- samba: Add link to manual page
- searx: Update search engines for 0.16.0
- openvpn: Fix spelling for Tunnelblick
- bind: Show served domains
- Update translations for German, Swedish, Italian, Spanish, Norwegian Bokmål, Hungarian, Polish, and French
28. FreedomBox 20.2 (2020-02-10)
- networks: Support virtual Ethernet (veth) devices
- diagnostics: Show firewall service status
storage: Show disks if FreedomBox is running in an unprivileged container
- service: Stop service not before but after disabling it
- users: Use more precise username validation
- sso, users: Turn off autocapitalization on the username field
- help: Fix anchor hidden under navbar
- searx: Fix installation issue for 0.16.0
- firewall: Show Run Diagnostics button in app
- glib: Introduce method to schedule an operation at regular intervals
- notification: Show a drop down from main navbar for notifications
- storage: Show low disk space warning using notifications API
upgrades: Show notification when FreedomBox is updated
- security: Add Sandbox Coverage to report page
- matrixsynapse: Enable systemd sandboxing
- locale: Update translations for Telugu, French, Norwegian Bokmål, German, Spanish, and Swedish
29. FreedomBox 20.1 (2020-01-27)
- deluge: Allow to set a download directory
- deluge: Fix installation failure on slow machine
- storage: Make external disk mounts accessible to other users
- gitweb: Add link to the manual page
- style: Fix incorrect margins for containers in mobile view
- style: Fix responsiveness for app header
- network: Fix activating connections that don't have real devices
wireguard: Add WireGuard VPN app
- networks: Add router configuration page
- networks: Add first boot step for router config helper
- bind: Enable sandboxing for bind service
- locale: Updated translations for Dutch, Norwegian Bokmål, German, Spanish, Swedish, French, and Greek
30. FreedomBox 20.0 (2020-01-13)
- samba: Improve speed of actions
- deluge: Manage deluged service and connect automatically from web interface
- openvpn: Enable support for communication among all clients
- storage: Ignore errors resizing partition during initial setup
- storage: Make partition resizing work with parted 3.3
- debian: Add powermgmt-base as recommended package
- openvpn: Enable IPv6 for server and client outside the tunnel
- networks: Fix crashing when accessing network manager D-Bus API
- mediawiki: Use a mobile-friendly skin by default
- mediawiki: Allow admin to set default skin
- matrixsynapse: Allow upgrade to 1.8.*
- security: Add explanation of sandboxing
- Update translations for Greek, German, Swedish, Hungarian, Norwegian Bokmål, and French
31. FreedomBox 19.24 (2019-12-30)
- samba: Add private shares
- firewall: Support upgrading firewalld to 0.8
- deluge: Add systemd sandboxing features
- infinoted: Add systemd sandboxing features
- storage: Add systemd sandboxing features to udiskie service
- upgrades: Add systemd sandboxing features to repository setup service
- security: List whether each app is sandboxed
- mediawiki: Avoid delay in update script
- diagnostics: Use new component based API for all diagnostic tests
- minidlna: Fix showing clients information
- mediawiki: Fix problem with session cache failing logins
- locale: Update translations for French, German, Swedish, Greek, Hungarian, Norwegian Bokmål, and Dutch
32. FreedomBox 19.23 (2019-12-16)
- minidlna: New app for MiniDLNA (Simple Media Server)
- apps: Show app icons in app pages
- apps: Implement responsive layout for app pages
- samba: Recursively set open share directory permissions
- transmission: Add directory selection form
mumble: Add option to set SuperUser password
- cockpit: Extend apps description with access info
- cockpit: Add list of valid urls to access the app
- Update translations for French, German, Spanish, Portuguese, and Swedish
33. FreedomBox 19.22 (2019-12-02)
- samba: Add new app for Samba file sharing
- pagekite: Remove tabs in the configuration page
- openvpn: Fix text with manual link
- pagekite: Show existing services only if there are any
- pagekite: Move Custom Services under Configuration
- pagekite: Use the new app toggle button
- openvpn: Add client apps
- backups: Fix title not appearing
- diagnostics: Don't run on disabled modules
- apps: Remove link to webapps in app descriptions
- interface: Fix error with app toggle input
- templates: Add toolbar for apps
- toolbar: Move diagnostics button into dropdown menu
- ssh: Fix Avahi SFTP service file
- diagnostics: Fix IPv6 failures
- matrix-synapse: Fix installation of 1.5 from buster-backports
- ikiwiki: Move the create button to manage section
- gitweb: Move create button into manage section
- networks: Move actions button into connection section
- users: Move create button into users section
- locale: Update translations for French, German, and Swedish
34. FreedomBox 19.21 (2019-11-18)
- gitweb: Allow to import from a remote repository
- interface: Disable turbolinks on links that don't point to /plinth/...
- backups: Show proper error when SSH server is not reachable
- tor: Rename "Hidden Service" to "Onion Service"
- ejabberd: Handle case where domain name is not set
- tahoe: Mark Tahoe-LAFS as an advanced app
- searx: Set safe_search to Moderate by default
- backups: Make verify ssh host page string translatable
- backups: Simplify SSH fingerprint verification command
- doc: Fix unavailability of manual images
- tor: Fix port diagnostics by correcting port data type
- tor: Expect obfs service to be also available on IPv6
tor: Listen on IPv6 for OrPort
- clients: implement launch button feature
- apps: Implement toggle button in apps pages
- Update translations for German, Hungarian, Swedish, Norwegian Bokmål, French, Polish
35. FreedomBox 19.20 (2019-11-04)
- doc: Add Spanish manual
- ssh: Add option to disable password authentication
- sharing: Fix wrong links on Apache2 directory index page
- gitweb: Set correct access rights after enabling application
- gitweb: Fix links leading to blank page
- gitweb: Set proper access after restoration of a backup
- snapshot: Sort snapshot list from newest to oldest
- infinoted: Add missing manual page link
- backups: Fix typo
- Update translations for German, Spanish, Swedish, Czech, French, Norwegian Bokmål, Hungarian
36. FreedomBox 19.19 (2019-10-21)
- gitweb: New app for simple git hosting
- ikiwiki: Allow full Unicode text in wiki/blog title names
- users: reload Apache2 to flush LDAP cache after user operations
- ssh: Show server fingerprints in SSH page
- frontpage: Show public shortcuts to all users regardless of group
- ikiwiki: Remove extra create button when no wiki/blog is present
- quassel: Add Let's Encrypt component for certificates
- Update translations for Czech, French, Bulgarian, Dutch, German, and Norwegian Bokmål
37. FreedomBox 19.18 (2019-10-07)
- diagnostics: Ensure that exceptions are reported as failures
- users: Rearrange UI to match with other apps
- upgrades, ikiwiki, networks, backups: Replace page tabs with buttons
- dynamicdns, i2p, pagekite, snapshot: Cleanup page templates
- deluge: Support deluge 2 by starting it properly
- minetest: Remove mod-torches no longer available in testing/unstable
- security: Add past vulnerabilities count, move report to new page
- Update translations for Spanish, Norwegian Bokmål, German
38. FreedomBox 19.17 (2019-09-23)
- firstboot: Add new help menu to firstboot navbar
- firstboot: Hide left menu during first boot as intended
- Update translations for Chinese (Simplified) and Czech
- Fix tests for letsencrypt and tor
39. FreedomBox 19.16 (2019-09-09)
- backups: Allow adding backup repositories on multiple disks
- help: Add buttons for contribute, support, and feedback
- action_utils: Workaround problem with setting debconf answers
- views: Fix failure in redirecting from language selection page
- manual: Move PDF download link to HTML manual page
- help: Convert help icon in the navbar to dropdown
- ejabberd: Fix listen port configuration for ejabberd 19.x
- cockpit, ejabberd: Prevent restart on freedombox startup
- ejabberd: Perform host/domain name operations only when installed
- logging: Improve formatting and reduce noise
- translations: Update Hungarian, German, Italian, French, and Norwegian Bokmål
40. FreedomBox 19.15 (2019-08-26)
- security: Hide vulnerability table by default
- names: Perform better layout of domain names table on small screens
- cockpit: Apply domain name changes immediately
- ejabberd: Prevent processing empty domain name
- config: Send hostname change signal only after fully processing it
- letsencrypt: Don't try to obtain certificates for .local domains
- avahi: Expose .local domain as a proper domain
- cockpit: Make essential and install by default
- tt-rss: Force upgrade to 18.12-1.1 and beyond
- updates: Allow matrix-synapse 1.3 to be installed for buster users
- storage: Fix regression with restoring backups with storage
- matrix-synapse: Use recommended reverse proxy configuration
- Update translations for German, Hungarian, and Norwegian Bokmål
41. FreedomBox 19.14 (2019-08-12)
- storage: Handle all device paths during eject
- storage: Fix incorrect internationalization when throwing an error
- upgrades: Use collapsible-button style for logs
- firewall: Allow automatic upgrade to 0.7.x
- upgrades: Handle release info change
- frontpage: Fix regression with loading custom shortcuts
- names: Add dynamic domain name
- names: Add button to configure each type of name
- names: Update page layout for clearer presentation
- names: Introduce new API for domain name handling
- api: Fix regression with listing only enabled apps in mobile app
- Update translations for Czech, Hungarian, French, Chinese (Simplified), Turkish, Polish, and Norwegian Bokmål
42. FreedomBox 19.13 (2019-07-29)
- backups: Make UI more consistent with other apps
- backups: Make backup location tables collapsible
- Updated translations for Chinese (Simplified), German, and Norwegian Bokmål
- help: Show security notice when backports are in use
- security: Show vulnerability counts
43. FreedomBox 19.12 (2019-07-22)
- sharing: Allow directories to be publicly shared
- backups: Add option to select/deselect all apps for backup or restore
dbus: Allow plinth user to own FreedomBox DBus service
- letsencrypt: Simplify renewal hooks implementation
- cockpit: Don't handle domains if app is not installed
- dynamicdns: Send domain added signal properly during init
- ejabberd: Backup and restore TLS certificates
- Started new Galician translation on Weblate
- Updated translations for Czech, Norwegian Bokmål, Hungarian, Spanish, Telugu, Chinese (Simplified), German, Turkish, and Russian
44. FreedomBox 19.2.2 (2019-07-17)
This release does not contain any functional changes, but fixes test failures when building the package.
45. FreedomBox 19.2.1 (2019-07-09)
This is a bugfix release for 19.2.
dbus: Allow plinth user to own FreedomBox DBus service
46. FreedomBox 19.11 (2019-07-08)
- backups: Fixes to issues while adding SSH remotes:
- Improve UX of adding ssh remote
- Avoid creating duplicate SSH remotes
- Fix issue with repository not being initialized
- Verify SSH hostkey before mounting
- Allow SSH directory paths with : in them
- Require passphrase for encryption in add repository form
- Don't send passphrase on the command line
- Un-mount SSH repositories before deleting them
- matrixsynapse: Fix missing translation mark
- Started new Greek translation on Weblate
- Updated translations for Chinese (Simplified), Hungarian, Spanish, and Russian
47. FreedomBox 19.10 (2019-06-24)
- syncthing: Open firewall ports for listening and discovery
- radicale: Workaround issue with creating log directory
- Update translations for Turkish, German, Czech, Norwegian Bokmål, and Portuguese
- Introduce components for firewall, webserver, uwsgi, and daemons
48. FreedomBox 19.9 (2019-06-10)
- config: Add option to show advanced apps, which are hidden by default
- monkeysphere: Hide by default
- searx: Add option to allow public access to the application
- Introduce component architecture for apps, with components for menus and shortcuts
- Start new translation for Bulgarian
- Update translations for Turkish and Norwegian Bokmål
49. FreedomBox 19.8 (2019-05-27)
- Switch to using SVG icons for all apps.
- Updated translations for Czech, Norwegian Bokmål, Hungarian, German, Turkish, and Spanish.
50. FreedomBox 19.7 (2019-05-13)
- i2p: Include default favorites.
- Separate enabled and disabled apps.
- Display port forwarding info for apps.
- Added Slovenian translation.
- Updated translations for Dutch, German, Hungarian, Norwegian Bokmål, Polish, Portuguese, Telugu.
51. FreedomBox 19.6 (2019-04-29)
- i2p: Enable new application for I2P Anonymity Network.
- Updated translations for Czech, German, Norwegian Bokmål, and Turkish.
- letsencrypt: Provide link to configure domain if not configured.
- firewall: Show port numbers and types.
52. FreedomBox 19.5 (2019-04-15)
- storage: Use more reliable method to list disks and disk space usage.
- Updated translations for Russian and German.
53. FreedomBox 19.4 (2019-04-01)
- clients: Open web app in a new browser tab
- matrix-synapse: Change client diagnostics url
- minetest: Fix duplicate domain names being displayed in UI
- storage: Do not show an eject button on /boot partitions
- letsencrypt: Call letsencrypt manage_hooks with correct arguments
- dynamicdns: Install module by default
- storage: Don't check type of the disk for / and /boot
- storage: Don't log error when checking if partition is expandable
- Updated translations for Norwegian Bokmål, Czech, German, Hungarian, Spanish, German, and Russian.
54. FreedomBox 19.3 (2019-03-18)
- UI: Move tabs below descriptions.
- firewall: Style heading
- names: Add description
- pagekite: Change heading text
- ikiwiki: Consistent styling for delete warning page
- main: Show service version in logs
- setup: Organize data files into various apps
- Updated translations for Czech, Hungarian, Norwegian Bokmål, Spanish, German, French, Italian, and Turkish.
55. FreedomBox 19.2 (2019-03-02)
- config: Fix Ikiwiki entries not showing up as default apps
- config: Migrate default app configuration to new conf file
- config: Rename Default App to Webserver Home Page
- config: Add option to use Apache's default home page as home page
- config: Fix error when setting JSXC as the home page
- Disable Coquelicot for Buster release
- matrix-synapse: Fix LDAP login issue
- config: Revert changes in freedombox.conf to avoid conffile prompt
- openvpn: Migration from easy-rsa 2 to 3 for existing installations
- tor: Use fixed 9001 port for relaying
- package: Implement identifying packages that need conffile prompts
- setup: Trigger force upgrade for app that implement it
- bind: Handle conffile prompt during upgrade
- apache: Pre-enable necessary apache modules
- apache: Use cgid module instead of cgi
- openvpn: Make frontpage shortcut appear after an upgrade
- openvpn: Work around firewalld bug 919517
- firewalld: Implement upgrading from 0.4.x to 0.6.x
- ttrss: Implement upgrade from 17.4 to 18.12
- radicale: Add description of web interface
- ttrss: Add backup support
- security: Migrate access config to new file
- Updated translations for Czech, Hungarian, Norwegian Bokmål, Spanish, German, Telugu.
56. FreedomBox 19.1 (2019-02-14)
- radicale: Increment module version to trigger upgrade handling
- radicale: Remove obsolete diagnostics
- radicale: Fix server URLs in client info
- Updated translations for Czech, Norwegian Bokmål, and Spanish.
- setup: Add option to handle configuration prompts during install
- radicale: Simplify upgrading to newer packages
- matrixsynapse: Use Let's Encrypt certificates
57. FreedomBox 19.0 (2019-02-09)
- mldonkey: Add some more clients to the module page
- mldonkey: Add to the description the three available front-ends
- monkeysphere: Fix handling of multiple domains and keys
- monkeysphere: Fix regression with reading new apache domain config
- apache: Switch to mod_ssl from mod_gnutls
- mldonkey: Enable app
- upgrades: Fix priority for buster-backports version
- upgrades: Fix premature adding of buster-backports sources
- Updated translations for Czech, German, and Spanish
- Switched to a new version number scheme: YY.N
- YY is the year of release.
- N is the release number within that year.
58. Version 0.49.1 (2019-02-07)
- ui: Fix regression with configure button in home page.
- backups: Rename 'Abort' buttons to 'Cancel'.
- backups: Use icon for add repository button.
- backups: Move subsubmenu below description.
- backups: Add title and description to other pages.
- backups: Add link to manual page.
- backups: Fix styling for upload size warning.
- backups: Increase timeout for SSH operations to 30 seconds.
- letsencrypt: UI: Fix checkbox disabling.
- datetime: Switch from chrony to systemd-timesyncd.
- Updated translations for Czech, Norwegian Bokmål, and Spanish.
59. Version 0.49.0 (2019-02-05)
- help: Use correct package to determine available version.
- repro: Disable app due to issues with Debian package.
- ui: Fix regression with card icon style in front page.
- js: Support full librejs compatibility.
- backups: Remove incorrectly set buffer size during download.
- backups: Fix incomplete download archives.
- backups: Improve performance of backup download.
- radicale: Handle migration from 1.x to 2.x.
- datetime: Switch from ntp to chrony.
- backports: Add buster-backports to apt sources list.
- Updated translations for Czech, Norwegian Bokmål, and Hungarian.
60. Version 0.48.0 (2019-01-28)
- Updated translations for Czech, Hungarian, German, and Norwegian Bokmål.
- UI improvements:
- Fix top margin for content containers.
- Fix setting width of card-list at various page sizes.
- Show help nav item text when navbar is collapsed.
- Hide restart/shutdown items when navbar is collapsed.
- Compact pages on extra small screen sizes.
- Backups improvements:
- Add backup/restore support for syncthing and openvpn.
- Upgrade apps before restoring them
- Fix showing not-installed apps in create backup page
- Automatically install required apps before restore.
- Add a loader to the restore button to indicate progress.
- Serve default favicon for apps that don't provide one.
- radicale: Fix issue with configuration changes not applying.
- storage: Fix false error message in log when visiting home page.
- infinoted: Handle timeout issue when stopping daemon during setup.
- matrix-synapse: Fix startup error caused by bind_address setting.
- radicale: Avoid changes to conffile for radicale 2.x.
- help: Fix showing status logs when an error occurs.
- fail2ban: Enable bans for apache auth failures.
- mldonkey: Initial work on new module for the eDonkey network.
- Not available yet, due to bug in package.
61. Version 0.47.0 (2019-01-14)
- Show Gujarati in the list of languages.
- Replace glyphicons with forkawesome icons.
- Change configuration to avoid filling up disk.
- Handle "Config in use" error.
- Update descriptions and configuration options.
- Firewall: Fix issue with transition from iptables.
- Security: Switch to Argon2 password hash.
- Cockpit: Add link to manual page and update description.
- Radicale: Add initial support for radicale 2.x.
- Handle showing setup page after app completes installation.
- Optimize installation in-progress checks and refresh time.
62. Version 0.46.0 (2018-12-31)
- Updated translations for Czech, German, Spanish, Ukrainian, and Norwegian Bokmål.
- Use systemd journal for logging.
- Rename plinth binary package to "freedombox", and merge freedombox-setup package into it.
63. Version 0.45.0 (2018-12-17)
- Storage: Merge list of removable media into existing table.
- Backups: Allow remote backups to SSH servers using sshfs.
- Backups: Removed asking for backup archive name.
- Automatically handle future versions of PHP.
- Updated translations for Hungarian, Czech, Spanish, Chinese (Simplified), Italian, Norwegian Bokmål, French, and German.
64. Version 0.44.0 (2018-12-03)
- UI: Add card style and gray noise background to apps pages.
- UI: Fix distortion of the client apps buttons.
- ejabberd: Handle BOSH port change from TCP 5280 to 5443.
- Minetest: Update mods list to available Debian packages.
- Firewall: Use nftables instead of iptables.
- Snapshots: Fix default snapshot listing.
- Snapshots: Show description above either tab.
- Snapshots: Allow snapshots to be selected for deletion.
- Translations: Updated Czech, Norwegian Bokmål, Spanish, German, and Portuguese.
65. Version 0.43.0 (2018-11-19)
- Backups improvements:
- Allow backups to be downloaded directly, without export step.
- Restore directly from uploaded backup.
- Avoid error for apps with no data to backup.
- Show free disk space on upload and restore page.
- Do not limit maximum upload size.
- openvpn: Migrate to easy-rsa 3 and fix setup issues.
- Make single sign-on tickets valid for 12 hours.
- Use consistent terminology for updates.
- Updated translations for Czech and Portuguese.
66. Version 0.42.0 (2018-11-05)
- Fix wrong color in mobile menu
- snapshot: Fix broken snapshot management after snapper update
- Enable backup/restore for tor, upgrades, monkeysphere, letsencrypt, tahoe
- monkeysphere: Handle importing new OpenSSH format keys
- udiskie: unmount drive as superuser
- Updated translations for Telugu, Indonesian, and Italian
67. Version 0.41.0 (2018-10-22)
- Enable backup/restore for datetime, deluge, avahi, backups, bind, security, snapshot, ssh, firewall, diagnostics, names, power, and storage.
- snapshot: Fix issue with setting configuration.
- backups: Fix backup archives ownership issue.
- backups: Fix issue with showing exports from disks without labels.
- backups: Don't rely on disk labels during export/restore.
- backups: Fix downloading extracted archive files.
- Updated translations for Norwegian Bokmål, French, Russian, and Spanish.
68. Version 0.40.0 (2018-10-08)
- Enable backup/restore for mumble, privoxy, roundcube, searx, jsxc, coquelicot, transmission, quassel, shadowsocks, sharing, pagekite, and cockpit.
- Allow backup archives to be downloaded/uploaded through browser.
- mediawiki: Backup/restore settings as well as data.
- User Interface
- Change card text style and position.
- Change maximum cards per row.
- Add tint effect on card icons under "Apps".
- mediawiki: Run update script for 1.31 upgrade.
- customization: Show custom shortcuts on frontpage.
- Updated translations for Norwegian Bokmål, Portuguese, Spanish, Czech, German, French, and Italian.
69. Version 0.39.0 (2018-09-24)
- Updated translations for Hungarian and Norwegian Bokmål.
- Merge Removable Media (udiskie) into Storage module.
- Add Backups module for backing up apps data.
70. Version 0.38.0 (2018-09-10)
mediawiki: Enable SVG support for MediaWiki
- upgrades: Clean up old kernel packages during automatic upgrades
- Make the progress bar at the top of the page more visible.
- Updated translations for Norwegian Bokmål, Czech, Russian, German, Hungarian, and Spanish.
71. Version 0.37.0 (2018-08-27)
- Updated translations for Czech, Norwegian Bokmål, Russian, Spanish, Hungarian, and Dutch.
- install: Use Post/Response/Get pattern for reloads.
72. Version 0.36.0 (2018-08-13)
- Updated translations for Hindi, Spanish, Russian, Telugu, German, Hungarian, Czech, and French
- ejabberd: Remove deprecated settings from already existing config files
- mediawiki: Fix issue with re-installation
- mediawiki: Enable Instant Commons
- mediawiki: Fix images throwing 403s
- Add Lato woff2 fonts
- Disable launch button for web client when not installed
73. Version 0.35.0 (2018-07-30)
configuration: Add an option to set a default app for FreedomBox. The root URL path (https://domainname/) will redirect to the selected app.
ejabberd: Remove deprecated iqdisc setting. To apply this fix, disable and then re-enable the Message Archive Management setting.
- ejabberd: Replace logo with original version.
mediawiki: Enable short URLs, which look like https://domainname/mediawiki/ArticleName.
- radicale: Clarify description for shared calendar/addressbook.
- storage: Handle mount points with spaces.
- udiskie: Add button to eject drives.
- udiskie: Also show read-only filesystems.
- udiskie: Remove internal networks warning.
- udiskie: Show special message when no storage device available.
- Add turbolinks library for smoother navigation.
- Removed extra text from icons for mediawiki, radicale, and tahoe-lafs.
- Updated translations for Russian, Spanish, Dutch, Hungarian, Hindi, Italian, Telugu, German, and Norwegian Bokmål.
74. Version 0.34.0 (2018-07-16)
- Prompt for secret during firstboot welcome
(Does not apply to downloadable FreedomBox images, but only when installed using freedombox-setup package.)
- Updated translations for Italian, Dutch, Hindi, Hungarian
75. Version 0.33.1 (2018-07-04)
- Fix issue where editing a user would remove them from admin group
- Updated translations for Hungarian, Czech, Spanish, Russian, Hindi
76. Version 0.33.0 (2018-07-02)
- Updated translations for Hungarian, Norwegian Bokmål, Spanish, Russian, Czech, Hindi, Dutch, Italian
- firewall: Display information that a service is internal only
- users: Don't show Create User link to non-admin users
- users: Redirect to users list on successful user creation
- packages: Show button to refresh package lists when a package is not available for install
- Only show front page shortcuts that a user is allowed to access
- Restrict removal of last admin user
- Use logos instead of icons in the apps page
- udiskie: New module for automatic mounting of removable media
77. Version 0.32.0 (2018-06-18)
- Apply new card based design
- Fix client info table size and flickering
- first-setup: Automatically expand root partition
- mediawiki: Enable image uploads
- mediawiki: Make private mode and public registrations mutually exclusive
- mediawiki: Hide frontpage shortcut when private mode is enabled
- Updated translations for Norwegian Bokmål, Czech, Spanish, Russian, Hindi, Telugu, Italian, Dutch, German, and Hungarian
78. Version 0.31.0 (2018-06-04)
- Updated translations for Czech, Spanish, Russian, German, Italian, Hindi, Telugu, and Norwegian Bokmål
- mediawiki: Added private mode option
- users: Fix user permissions not being saved
- users: internationalize a string
- mediawiki: Run update script for 1.30 upgrade
- shortcuts: Fix urls for ikiwiki shortcuts
79. Version 0.30.0 (2018-05-21)
- Updated translations for Russian, Italian, Norwegian Bokmål, Hungarian, and Hindi
- setup: Remove unavailable as a state in setup_helper
80. Version 0.29.1 (2018-05-08)
- security: Fix issue with Plinth locked out from sudo
- Updated translations for Czech and Spanish
81. Version 0.29.0 (2018-05-07)
- security: Allow console login access to user plinth
- Add an option to enable/disable public registrations in mediawiki
- tt-rss: Skip the check for SELF_URL_PATH
- searx: Fix issue with uwsgi crashing
- Updated translations for Czech, Spanish, German, Norwegian Bokmål, and Italian
82. Version 0.28.0 (2018-04-23)
- setup: disable install button for currently unavailable apps
- Add locale for Lithuanian (lt)
- Translation updates for Italian, Czech, Russian, Spanish, German, Norwegian Bokmål, Telugu, and Dutch
83. Version 0.27.0 (2018-04-09)
- middleware: Skip 'installed' message for essential apps
- users: Fix admin group appearing twice in permissions
- apps: Fix app names and short descriptions not being translated
- snapshots: Move manual page link to the index page
- UI: Fix progress bar not appearing
- snapshots: Fix for permissions issue when updating configuration
- snapshots: Add option to enable/disable software installation snapshots
- Translation updates for Italian, Czech, Russian, Spanish, Dutch, German, Norwegian Bokmål, and Ukrainian
84. Version 0.26.0 (2018-03-26)
- snapshots: Update description
- searx: Rewrite url from /searx to /searx/
- manual: Link to manual from each service
- Workaround security issues in django-axes
- apache: Only regenerate snake oil cert when needed
- apache: Explicitly enable the latest version of PHP module
- apache: Increase module version number to fix php7.2
- Update translations for Chinese (Simplified), Russian, Czech, German, Norwegian Bokmål, Hungarian, Spanish, and Italian
85. Version 0.25.0 (2018-03-12)
- sharing: Add app for sharing disk folders.
- ttrss: Update list of client apps.
- infinoted: Allow setup to recover after timeout issue.
- snapshots: Add configuration tab with settings for time-based snapshots.
86. Plinth v0.24.0 (2018-02-26)
- Add file-sharing application Coquelicot.
- Add metasearch engine application Searx.
- Add locale for Hungarian (hu).
- mediawiki: Allow shortcut to be publicly visible on front page.
- clients: Add and correct Client Apps.
- locale: Preferred language can be set in each user's profile.
- locale: Anonymous users can select preferred language.
- config: Remove language selection from config page.
- matrixsynapse: Fix mail attribute for ldap login.
87. Plinth v0.23.0 (2018-02-12)
- snapshots: Modify configurations to reduce disk usage.
- snapshots: Skip currently active snapshot when deleting all snapshots.
- jsxc: Use consistent url format.
- sso: Increase timeout to 60 minutes.
- theme: Change font from Helvetica to Lato.
- Translation updates for Czech, German, Gujarati, and Telugu.
88. Plinth v0.22.0 (2018-01-30)
- matrix-synapse: Make sure configuration file does not get corrupted.
- tor: Show enabled status properly.
- first_setup: Fix not showing admin user creation step.
Migrate from GitHub to Salsa
Migrate from CirceCI to GitLab CI on Salsa.
- Translation updates for Czech, Dutch, Gujarati, Hindi, Russian and Telugu.
- Started new translation for Ukrainian.
89. Plinth v0.21.0 (2018-01-15)
- navigation bar: Change label from 'Configuration' to 'System'.
- storage: Removed beta warning for expanding partition.
- groups: Consistently show available user groups, even before applications are installed.
- syncthing: Restrict administration to users in "syncthing" group.
- help: Show menu on smaller screens also.
- diagnostics: Enable the "Run Diagnostics" button when applications are enabled but not running.
90. Plinth v0.20.0 (2018-01-01)
- bind: Don't use forwarders by default
- ejabberd: Remove redundant button Client Apps
- mediawiki: Add wiki application
- users: Make sure first run actually works
- bind: Add information about current utility
91. Plinth v0.19.0 (2017-12-18)
- ejabberd: Use dynamic reload instead of restart when changing configuration.
- manual: Make manual available as a PDF download.
- minetest: Show domain information for users to connect to minetest.
- snapshots: Add button to delete all snapshots.
- snapshots: Add option to enable/disable automatic timeline snapshots.
- users: Add groups for bit-torrent and feed-reader, available when these applications are installed.
92. Plinth v0.18.0 (2017-12-04)
- Add Shadowsocks client with socks5 proxy.
- Fix SSO regressions and conflict with captcha.
- transmission: Fix sso not being enabled on upgrade.
avahi: Add service for FreedomBox discovery.
- Add client information for modules.
93. Plinth v0.17.0 (2017-11-20)
- transmission: Enable Single Sign On.
- cockpit: Add short description to frontpage shortcut.
- fail2ban: Fix spelling and sentence structure.
94. Plinth v0.16.0 (2017-11-06)
- Add mobile, web and desktop client info for modules.
Enable django SecurityMiddleware to improve security ratings.
- cockpit: New module for server administration and web terminal.
- letsencrypt: Fix internal server error when obtaining a certificate.
- ejabberd: Fix LDAP server entry in config file during setup.
- jsxc: Fix outdated URLs for connecting to local ejabberd server.
95. Plinth v0.15.3 (2017-10-20)
- Rename Disks to Storage.
- Rename Snapshot to Storage Snapshots.
- tt-rss: Enable API access by default.
- Allow access to Plinth from outside the LAN.
- matrix-synapse: Disable public registration by default.
- power: Merge actions into the user dropdown.
- Add locales for Kannada (kn) and for Bengali (bn).
- ejabberd: Use Let's Encrypt certificate, also across renewals.
- matrix-synapse: Add enable/disable public registrations.
- Add captcha validation on 3 failed attempts.
- matrix-synapse: Enable LDAP integration.
- letsencrypt: Automatically obtain and revoke SSL certificates.
- Fix front page label names.
- Fix vertical alignment of shortcut icons.
- storage: Fix issue with locales that use other decimal separators.
- Make tt-rss api accessible using Apache basic auth.
- letsencrypt: Handle case where current domain is empty.
- Handle both admin and non-admin user names in update user template.
96. Plinth v0.15.2 (2017-09-24)
- letsencrypt: Show more info on cert validity status.
- letsencrypt: Add option to delete certificates.
- letsencrypt: Add option to let Plinth manage certbot's renewal hooks.
- power: Warn if a package manager is running before shutdown/restart.
- security: Install and manage fail2ban.
- names: Include domain and services from dynamicdns.
- disks: Add low disk space warning to system and disks page.
- ssh: New application to manage SSH server.
- Add api module to get enabled services and access info.
- Add Django password validators.
- ejabberd, ikiwiki, ttrss: Add user login descriptions.
- diaspora: Disable for this release due to issues affecting package.
- Remove help from navbar before firstboot complete.
- i18n: Don't use backslash-newline for wrapping long lines.
- radicale: Update link to documentation.
- sso: Upgrade crypto to 4096-bit RSA and SHA-512.
- Users: Allow non-admin users to log out.
- letsencrypt: Make Let's Encrypt an essential module.
- UI: Make apps and configure pages responsive on small screens.
- Make help accessible for logged-in non-admin users.
97. Plinth v0.15.0 (2017-07-01)
- Added Tahoe-LAFS module for distributed file storage.
- Added Diaspora* module for federated social networking.
- Currently only available in "contrib" repository.
- New Locales for Czech (cs) and Tamil (ta).
- Added SSO using auth_pubtkt for Syncthing, TT-RSS, and the Repro admin panel.
- If you are logged in to Plinth, you will be automatically logged in to these web apps.
- ejabberd: Added option to enable/disable Message Archive Management.
- help: Added Debian release name to about page.
- firstboot: De-bloat first welcome screen.
- Pinned footer to the bottom of the viewport.
- disks: Restrict precision of reported available space on root partition.
- diagnostics: Disable button if app/service is not running.
- help: Only show help pages if user is logged in.
- navbar: Moved logout to user drop-down and added a new power drop-down.
- disks: Show disabled partition resize option if no space is available.
- Added line break to titles to fix frontpage layout.
- syncthing: Fixed typos and clarity in description.
- firewall: Fix 500 error when firewalld is not running.
- setup: Disable install/upgrade when dpkg/apt is running.
- disks: Use information from lsblk for more accuracy.
- datetime: Show timezone properly when it not in expected list.
98. Plinth v0.14.0 (2017-04)
- tor: Added option to use upstream bridges.
- openvpn: Added shortcut to front page, shown only when logged-in.
- openvpn: Non-admin users can download their own profiles.
- Added new locales for Hindi (hi) and Gujarati (gu).
- Added Syncthing module for file synchronization.
- Added Matrix Synapse as chat server with groups, audio and video.
- Require admin access for all system configuration pages.
- Changed appearance of topbar and footer.
- openvpn: Regenerate user key or certificate if empty.
- disks: Workaround issue in parted during resize.
99. Plinth v0.13.1 (2017-01-22)
- Two new apps were added:
- Gobby Server (infinoted) for collaborative editing of text documents
- Domain Name Server (BIND), in system menu
- Added basic configuration form for Minetest server.
Added indicator to Help->About page if new Plinth version is available.
- Show app logos on front page instead of generic icons.
- Prevent anonymous users from accessing setup pages.
- Split Chat Server (XMPP) app into Chat Server (ejabberd) and Chat Client (jsxc).
100. Plinth v0.12.0 (2016-12-08)
- Open up RTP ports in the firewall for repro (SIP server).
- Front page shortcuts for services show a Configure button in the details box for logged-in users.
- Add mods packages to be installed with Minetest server.
- Fix issue with reading Dynamic DNS status as non-root user.
- After the hostname is changed, ensure the domain name is still set correctly.
- Allow the domain name to be cleared, and properly set the configuration in this case.
- On the Certificates (Let's Encrypt) page, show a more informative message when no domains are configured.
- On the Chat Server (XMPP) page, show more clearly if domain is not set.
- Apps that require login will not be shown on the front page, unless the user is logged in.
- Show status block for News Feed Reader (Tiny Tiny RSS).
- Change appearance of front page with larger icons and repositioned text.
- Firewall page only lists services that have been setup. The port lists are collapsible under each service.
- Support configuring IPv6 networks.
- Make it less likely to accidentally delete the only Plinth user.
- Updated to work with JSXC 3.0.0 (XMPP web client).
101. Plinth v0.11.0 (2016-09-29)
- Added loading icon for additional busy operations.
- Added basic front page with shortcuts to web apps, and information about enabled services.
- networks: Add batctl as dependency, required for batman-adv mesh networking.
- Fixed checking restricted usernames.
- Display error message if unable to set SSH keys.
- Flush nscd cache after user operations to avoid some types of errors.
- Adopted to using SHA256 fingerprints.
- Sort items for consistent display.
- Handle new uid format of gpg2.
- Fixed handling of unavailable imported domains.
- minetest: Fixed showing status block and diagnostics.
- Fixed stretched favicon.
- Switched base template from container-fluid to container. This will narrow the content area for larger displays.
- Plinth is now able to run as "plinth" user instead of root user.
- xmpp: Replaced jwchat with jsxc.
- ikiwiki: Allow only alphanumerics in wiki/blog name to avoid invalid paths.
102. Plinth v0.10.0 (2016-08-21)
- Updated Plinth to support Django 1.10.
- Added a page to display recent status log from Plinth. It is accessible from the 500 error page.
- Tor: Added options to toggle relay and bridge relay modes.
- Radicale: Added access rights control.
- Ikiwiki: Updated suggested packages.
- Users and Groups: Fixed editing users without SSH keys.
- Networks: Added basic support for configuring batman-adv mesh networking.
- Networks: Fixed incorrect access for retrieving DNS entries.
- New languages:
- Persian (50% translated)
- Indonesian (not started, contributions needed)
- New modules added to Plinth:
- Disks: Shows free space of mounted partitions, and allows expanding the root partition.
- Security: Controls login restrictions.
- Snapshots: Manages Btrfs snapshots.
103. Version 0.9.4 (2016-06-24)
- Added Polish translation.
- Fixed issue preventing access to Plinth on a non-standard port.
- Dealt with ownCloud removal from Debian. The ownCloud page in Plinth will be hidden if it has not been setup. Otherwise, a warning is shown.
- Fixed issue in Privoxy configuration. Two overlapping listen-addresses were configured, which prevented privoxy service from starting.
- Fixed issue that could allow someone to start a module setup process without being logged in to Plinth.
- Fixed issues with some diagnostic tests that would show false positive results.
- Added check to Diagnostics to skip tests for modules that have not been setup.
- Fixed some username checks that could cause errors when editing the user.
- Added sorting of menu items per locale.
- Moved Dynamic DNS and Pagekite from Applications to System Configuration.
- Allowed setting IP for shared network connections.
- Switched Dreamplug image from "non-free" to "free". This means that we no longer include the non-free firmware for the built-in wifi on Dreamplug.
- Added the "userdir" module for the Apache web server. This allows users in the "admin" group to create a folder called "public_html" under their home folder, and to publicly share files placed in this folder.
New wiki and manual content licence: Creative Commons Attribution-ShareAlike 4.0 International (from June 13rd 2016).
- Switched to using apt-get for module setup in Plinth. This fixes several issues that were seen during package installs.
104. Version 0.9 (2016-04-24)
- Fixed Wi-Fi AP setup.
- Prevent lockout of users in 'sudo' group after setup is complete.
Improved setup mechanism for Plinth modules. Allows users to see what a module is useful for, before doing the setup and package install. Also allows essential modules to be setup by default during FreedomBox install.
- Added HTTPS certificates to Monkeysphere page. Reorganized so that multiple domains can be added to a key.
- Added Radicale, a CalDAV and CardDAV server.
- Added Minetest Server, a multiplayer infinite-world block sandbox.
- Added Tiny Tiny RSS, a news feed reader.
105. Version 0.8 (2016-02-20)
- Added Quassel, an IRC client that stays connected to IRC networks and can synchronize multiple frontends.
- Improved first boot user interface.
- Fixed Transmission RPC whitelist issue.
- Added translations for Turkish, Chinese, and Russian. Fixed and updated translations in other languages.
- Added Monkeysphere, which uses PGP web of trust for SSH host key verification.
- Added Let's Encrypt, to obtain certificates for domains, so that browser certificate warnings can be avoided.
- Added repro, a SIP server for audio and video calls.
- Allow users to set their SSH public keys, so they can login over SSH without a password.
106. Version 0.7 (2015-12-13)
- Translations! Full translations of the interface in Danish, Dutch, French, German and Norwegian Bokmål, and partial Telugu.
- Support for OLinuXino A20 MICRO and LIME2
- New Plinth applications: OpenVPN, reStore
- Improved first-boot experience
- Many bugfixes and cleanups
107. Version 0.6 (2015-10-31)
- New supported hardware target: Raspberry Pi 2
- New modules in Plinth:
- Shaarli: Web application to manage and share bookmarks
Date & Time: Configure time zone and NTP service
- Service Discovery: Configure Avahi service
- Documentation revamp including new user manual and developer guide
- Improved diagnostic tests, available in Plinth
- Avoid unnecessary changes when installing on existing Debian system
- Network configuration supports PPPoE connections
- Debian packages can be download over Tor
108. Version 0.5 (2015-08-07)
New targets: CubieTruck, i386, amd64
- New apps in Plinth: Transmission, Dynamic DNS, Mumble, ikiwiki, Deluge, Roundcube, Privoxy
NetworkManager handles network configuration and can be manipulated through Plinth.
- Software Upgrades (unattended-upgrades) module can upgrade the system, and enable automatic upgrades.
- Plinth is now capable of installing ejabberd, jwchat, and privoxy, so they are not included in image but can be installed when needed.
- User authentication through LDAP for SSH, XMPP (ejabberd), and ikiwiki.
- Unit test suite is automatically run on Plinth upstream. This helps us catch at least some code errors before they are discovered by users!
- New, simpler look for Plinth.
- Performance improvements for Plinth.
109. Version 0.3 (2015-01-20)
- Tor Bridges: All boxes now act as non-exit Tor bridges, routing traffic for the Tor network.
Firewall: firewall is on by default and is automatically managed.
Add BeagleBone support. We now have images for BeagleBone, RaspberryPi, VirtualBox i386/amd64, and DreamPlug.
- Ability to enable and use Tor Hidden Services. Works with Ejabberd/JWChat and ownCloud services.
- Enable Tor obfsproxy with scramblesuit.
- Drop well-known root password (an account with sudo capabilities still exists for now but will be removed soon).
- Switch to unstable as suite of choice for easier development.
- Newer images are built with systemd by default (due to Debian change).
- Install and operate firewall automatically (uses firewalld).
- Major restructuring of Plinth UI using Python3, Django web development framework and Bootstrap3. Code quality is much better and UI is more polished.
- Introduced packaging framework in Plinth UI for on-demand application installation.
110. Version 0.2 (2014-03-16)
Support for Raspberry Pi and VirtualBox (x86) in addition to the DreamPlug.
- New Services:
- Configuration Management UI.
- Instant Messaging.
- Low-Level Configuration Management.
- Service Announcement.
- LDAP Server.
- LXC Support.
- Source Packages.
- The privoxy setup is now the default from Debian.
111. Version 0.1 (2013-02-26)
First FreedomBox software release (0.1 image, developer release).
- Full hardware support in Debian
Support for DreamPlug.
- Basic software tools selected as common working environment:
- User interface system "plinth"
- Cryptography tools: gpg or "monkeysphere"
Box-to-box communication design: Freedom-buddy (uses TOR network)
- Web cleaning: "privoxy-freedombox".
1. Tor (Anonymity Network)
Available since: version 0.3
1.1. What is Tor?
Tor is a network of servers operated by volunteers. It allows users of these servers to improve their privacy and security while surfing on the Internet. You and your friends are able to access to your FreedomBox via Tor network without revealing its IP address. Activating Tor application on your FreedomBox, you will be able to offer remote services (chat, wiki, file sharing, etc...) without showing your location. This application will give you a better protection than a public web server because you will be less exposed to intrusive people on the web.
1.2. Using Tor to browse anonymously
Tor Browser is the recommended way to browse the web using Tor. You can download the Tor Browser from https://www.torproject.org/projects/torbrowser.html and follow the instructions on that site to install and run it.
1.3. Using Tor Onion Service to access your FreedomBox
Tor Onion Service provides a way to access your FreedomBox, even if it's behind a router, firewall, or carrier-grade NAT (i.e., your Internet Service Provider does not provide a public IPv4 address for your router).
To enable Tor Onion Service, first navigate to the Anonymity Network (Tor) page. (If you don't see it, click on the FreedomBox logo at the top-left of the page, to go to the main Apps page.) On the Anonymity Network (Tor) page, under Configuration, check "Enable Tor Onion Service", then press the Update setup button. Tor will be reconfigured and restarted.
After a while, the page will refresh and under Status, you will see a table listing the Onion Service .onion address. Copy the entire address (ending in .onion) and paste it into the Tor Browser's address field, and you should be able to access your FreedomBox. (You may see a certificate warning because FreedomBox has a self-signed certificate.)
Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Onion Service configured on the FreedomBox.
1.4. Apps accessible via Tor
The following apps can be accessed over Tor. Note that this list is not exhaustive.
Calendar and Addressbook (Radicale)
File Synchronization (Syncthing)
Feed reader (TinyTinyRSS)
Web Search (Searx)
Wiki and Blog (Ikiwiki)
1.5. Running a Tor relay
When Tor is installed, it is configured by default to run as a bridge relay. The relay or bridge option can be disabled through the Tor configuration page in FreedomBox.
At the bottom of the Tor page in FreedomBox, there is a list of ports used by the Tor relay. If your FreedomBox is behind a router, you will need to configure port forwarding on your router so that these ports can be reached from the public Internet.
The requirements to run a relay are listed in the Tor Relay Guide. In short, it is
- recommended that a relay has at least 16 Mbit/s (Mbps) upload and download bandwidth available for Tor. More is better.
- required that a Tor relay be allowed to use a minimum of 100 GByte of outbound and of incoming traffic per month.
recommended that a <40 Mbit/s non-exit relay should have at least 512 MB of RAM available; A relay faster than 40 Mbit/s should have at least 1 GB of RAM.
1.6. (Advanced) Usage as a SOCKS proxy
FreedomBox provides a Tor SOCKS port that other applications can connect to, in order to route their traffic over the Tor network. This port is accessible on any interfaces configured in the internal firewall zone. To configure the application, set SOCKS Host to the internal network connection's IP address, and set the SOCKS Port to 9050.
1.6.1. Example with Firefox
Your web browser can be configured to use the Tor network for all of your browsing activity. This allows for censorship circumvention and also hides your IP address from websites during regular browsing. For anonymity, using tor browser is recommended.
Configure your local FreedomBox IP address and port 9050 as a SOCKS v5 proxy in Firefox. There are extensions to allow for easily turning the proxy on and off.
With the SOCKS proxy configured, you can now access any onion URL directly from Firefox. FreedomBox itself has an onion v3 address that you can connect to over the Tor network (bookmark this for use in emergency situations).
1.7. Circumventing Tor censorship
If your ISP is trying to block Tor traffic, you can use tor bridge relays to connect to the tor network.
1. Get the bridge configuration from the Tor BridgeDB
2. Add the lines to your FreedomBox Tor configuration as show below.
1.8. External links
User documentation: https://2019.www.torproject.org/docs/documentation.html.en
2. Deluge (Distributed File Sharing via BitTorrent)
Available since: version 0.5
2.1. What is Deluge?
Deluge is a BitTorrent node (both, client and server at the same time).
BitTorrent is a communications protocol for peer-to-peer (P2P) file sharing.
It is not anonymous; you should assume that others can see what files you are sharing.
- This technology works best for big, popular files.
There are two BitTorrent web nodes available in FreedomBox: Transmission and Deluge. They have similar features, but you may prefer one over the other.
Deluge is a lightweight BitTorrent client that is highly configurable. Additional functionality can be added by installing plugins.
2.3. Initial Setup
After installing Deluge, it can be accessed by pointing your browser to https://<your freedombox>/deluge. You will need to enter a password to login:
The initial password is "deluge". The first time that you login, Deluge will ask if you wish to change the password. You should change it to something that is harder to guess.
Next you will be shown the connection manager. Click on the first entry (Offline - 127.0.0.1:58846). Then click "Start Daemon" to start the Deluge service that will run in the background.
Now it should say "Online". Click "Connect" to complete the setup.
At this point, you are ready to begin using Deluge. You can make further changes in the Preferences, or add a torrent file or URL.
2.4. External links
3. Transmission (Distributed File Sharing via BitTorrent)
Available since: version 0.5
3.1. What is Transmission ?
Transmission is a BitTorrent node (both, client and server at the same time).
BitTorrent is a communications protocol for peer-to-peer (P2P) file sharing.
It is not anonymous; you should assume that others can see what files you are sharing.
- This technology works best for big, popular files.
There are two BitTorrent web nodes available in FreedomBox: Transmission and Deluge. They have similar features, but you may prefer one over the other.
Transmission is a lightweight BitTorrent client that is well known for its simplicity and a default configuration that "Just Works".
3.3. Using Transmission
After installing Transmission, it can be accessed at https://<your freedombox>/transmission. Transmission uses single sign-on from FreedomBox, which means that if you are logged in on your FreedomBox, you can directly access Transmission without having to enter the credentials again. Otherwise, you will be prompted to login first and then redirected to the Transmission app.
3.4.1. Transferring Downloads from the FreedomBox
Transmission's downloads directory can be added as a shared folder in the Sharing app. You can then access your downloads from this shared folder using a web browser.
(Advanced) If you have the ssh access to your FreedomBox, you can use sftp or scp to browse the downloads directory using a suitable file manager or web browser:
3.5. Port Forwarding
If your FreedomBox is behind a router you optionally might want to set up port forwarding on your router in order to improve communication with other peers. You should forward the following ports for Transmission:
TCP 51413 (or your configured peer listening port)
3.6. External Links
4. Bookmarks (Shaarli)
Currently not functional
Shaarli is currently not available in Debian testing and the version in sid is said to be not functional. We are expecting this will soon be resolved and Shaarli will be again available in the FreedomBox.
4.1. What is Shaarli?
Shaarli is personal (single-user) bookmarking application to install on your FreedomBox. It can also be used for micro-blogging, pastebin, online notepad and snippet archive. Shaarli is designed as a no-database delicious clone. As such, it provides very fast services, easy backup and import/export links as desktop or mobile browser bookmarks. Links stored can be public or private. Shaarli delivers ATOM and RSS feeds from its minimalist interface.
5. Dynamic DNS Client
5.1. What is Dynamic DNS?
In order to reach a server on the Internet, the server needs to have permanent address also known as the static IP address. Many Internet service providers don't provide home users with a static IP address or they charge more providing a static IP address. Instead they provide the home user with an IP address that changes every time the user connects to the Internet. Clients wishing to contact the server will have difficulty reaching the server.
Dynamic DNS service providers assist in working around a problem. First they provide you with a domain name, such as 'myhost.example.org'. Then they associate your IP address, whenever it changes, with this domain name. Then anyone intending to reach the server will be to contact the server using the domain name 'myhost.example.org' which always points to the latest IP address of the server.
For this to work, every time you connect to the Internet, you will have to tell your Dynamic DNS provider what your current IP address is. Hence you need special software on your server to perform this operation. The Dynamic DNS function in FreedomBox will allow users without a static public IP address to push the current public IP address to a Dynamic DNS Server. This allows you to expose services on FreedomBox, such as ownCloud, to the Internet.
5.2. GnuDIP vs. Update URL
There are two main mechanism to notify the Dynamic DNS server of your new IP address; using the GnuDIP protocol and using the Update URL mechanism.
If a service provided using update URL is not properly secured using HTTPS, your credentials may be visible to an adversary. Once an adversary gains your credentials, they will be able to replay your request your server and hijack your domain.
On the other hand, the GnuDIP protocol will only transport a salted MD5 value of your password, in a way that is secure against replay attacks.
5.3. Using the GnuDIP protocol
Register an account with any Dynamic DNS service provider. A free service provided by the FreedomBox community is available at https://gnudip.datasystems24.net .
In FreedomBox UI, enable the Dynamic DNS Service.
Select GnuDIP as Service type, enter your Dynamic DNS service provider address (for example, gnudip.datasystems24.net) into GnuDIP Server Address field.
Fill Domain Name, Username, Password information given by your provider into the corresponding fields.
5.4. Using an Update URL
This feature is implemented because the most popular Dynamic DNS providers are using Update URLs mechanism.
- Register an account with a Dynamic DNS service provider providing their service using Update URL mechanism. Some example providers are listed in the configuration page itself.
In FreedomBox UI, enable the Dynamic DNS service.
Select other Update URL as Service type, enter the update URL given by your provider into Update URL field.
If you browse the update URL with your Internet browser and a warning message about untrusted certificate appears, then enable accept all SSL certificates. WARNING: your credentials may be readable here because man-in-the-middle attacks are possible! Consider choosing a better service provider instead.
If you browse the update URL with your Internet browser and the username/password box appears, enable use HTTP basic authentication checkbox and provide the Username and Password.
If the update URL contains your current IP address, replace the IP address with the string <Ip>.
5.5. Checking If It Works
- Make sure that external services you have enabled such as /jwchat, /roundcube and /ikiwiki are available on your domain address.
Go to the Status page, make sure that the NAT type is detected correctly. If your FreedomBox is behind a NAT device, this should be detected over there (Text: Behind NAT). If your FreedomBox has a public IP address assigned, the text should be "Direct connection to the Internet".
Check that the last update status is not failed.
5.6. Recap: How to create a DNS name with GnuDIP
Access to GnuIP login page (answer Yes to all pop ups)
- Click on "Self Register"
- Fill the registration form (Username and domain will form the public IP address [username.domain])
Take note of the username/hostname and password that will be used on the FreedomBox app.
- Save and return to the GnuDIP login page to verify your username, domain and password (enter the datas, click login).
- Login output should display your new domain name along with your current public IP address (this is a unique address provided by your router for all your local devices).
Leave the GnuDIP interface and open the Dynamic DNS Client app page in your FreedomBox.
- Click on "Set Up" in the top menu.
- Activate Dynamic DNS
- Choose GnuDIP service.
- Add server address (gnudip.datasystems24.net)
- Add your fresh domain name (username.domain, ie [username].freedombox.rocks)
- Add your fresh username (the one used in your new IP address) and password
- Add your GnuDIP password
Fill the option with http://myip.datasystems24.de (try this url in your browser, you will figure out immediately)
6. Roundcube (Email Client)
Available since: version 0.5
6.1. What is Roundcube?
Roundcube is a browser-based multilingual email client with an application-like user interface. Roundcube is using the Internet Message Access Protocol (IMAP) to access e-mail on a remote mail server. It supports MIME to send files, and provides particularly address book, folder management, message searching and spell checking.
6.2. Using Roundcube
After Roundcube is installed, it can be accessed at https://<your freedombox>/roundcube. Enter your username and password. The username for many mail services will be the full email address such as firstname.lastname@example.org and not just the username like exampleuser. Enter the address of your email service's IMAP server address in the Server field. You can try providing your domain name here such as example.org for email address email@example.com and if this does not work, consult your email provider's documentation for the address of the IMAP server. Using encrypted connection to your IMAP server is strongly recommended. To do this, prepend 'imaps://' at the beginning of your IMAP server address. For example, imaps://imap.example.org.
6.3. Using Gmail with Roundcube
If you wish to use Roundcube with your Gmail account, you need to first enable support for password based login in your Google account preferences. This is because Gmail won't allow applications to login with a password by default. To do this, visit Google Account preferences and enable Less Secure Apps. After this, login to Roundcube by providing your Gmail address as Username, your password and in the server field use imaps://imap.gmail.com.
6.4. External links
ownCloud was removed from Debian
ownCloud was removed from Debian, so it is not available in the FreedomBox any more. Existing installations however are still working for time being. We are working on finding an adequate alternative.
Migrate to the official owncloud repository can be done in following this post
7.1. What is ownCloud?
ownCloud is a self-hosted file sync and share server. It provides access to your data through a platform to view, sync and share across devices. Calendars and Contacts feature will help you keeping google at a nice distance. ownCloud's functionalities are native or available via plugins (Collaborative Editing, Play Music, Watch Movies, Store Passwords, Dashboard, Mozilla Sync...) via https://apps.owncloud.com/
Clicking on the ownCloud application in Plinth will show an installation prompt. Proceed to install. After the installation, visit the /owncloud link provided in the ownCloud page. First time installation wizard will show up asking for administrator username and password to setup (no additional details such as database configuration are requested). After providing the details, you will be logged. You will be able to start using the ownCloud and create more users.
7.2.1. External Storage
ownCloud's external storage plugin allows you to expose the contents of a hard drive or those of an online storage account as a folder. Following are the steps required to setup such storage.
- Mount your hard drive or external storage to any fixed directory on the system.
- Install two packages needed via the 'apt-get' on the SSH command line shell (this step will not be needed in future):
$ sudo apt-get install php-google-api-php-client php-dropbox
- Goto ownCloud Apps section and enable 'External Storage Support' plugin.
- Goto 'Admin' section and add your hard drive mount path in the external storage section. This folder will now show up in your folders list to access and sync across devices.
8. PageKite (Public Visibility)
8.1. What is PageKite?
PageKite makes local websites and services publicly accessible immediately without creating yourself a public IP address. It does this by tunneling protocols such as HTTPS or SSH through firewalls and NAT. Using PageKite requires an account on a PageKite relay service. One such service is https://pagekite.net.
A PageKite relay service will allow you to create kites. Kites are similar to domain names, but with different advantages and drawbacks. A kite can have a number of configured services. PageKite is known to work with HTTP, HTTPS, and SSH, and may work with some other services, but not all.
8.2. Using PageKite
Create an account on a PageKite relay service.
- Add a kite to your account. Note your kite name and kite secret.
In FreedomBox, go to the "Configure PageKite" tab on the Public Visibility (PageKite) page.
Check the "Enable PageKite" box, then enter your kite name and kite secret. Click "Save settings".
- On the "Standard Services" tab, you can enable HTTP and HTTPS (recommended) and SSH (optional).
- HTTP is needed to obtain the Let's Encrypt certificate. You can disable it later.
On the Certificates (Let's Encrypt) page, you can obtain a Let's Encrypt certificate for your kite name.
9. Mumble (Voice Chat) Server
Available since: version 0.5
9.1. What is Mumble?
Mumble is a voice chat software. Primarily intended for use while gaming, it is suitable for simple talking with high audio quality, noise suppression, encrypted communication, public/private-key authentication by default, and "wizards" to configure your microphone for instance. A user can be marked as a "priority speaker" within a channel.
9.2. Using Mumble
FreedomBox includes the Mumble server. Clients are available for desktop and mobile platforms. Users can download one of these clients and connect to the server.
9.3. Port Forwarding
If your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Mumble:
- TCP 64738
- UDP 64738
9.4. Managing Permissions
A super user in Mumble has the ability to create administrator accounts who can in turn manage groups and channel permissions. This can be done after logging in with the username "SuperUser" using the super user password. See Mumble Guide for information on how to do this.. FreedomBox currently does not offer a UI to get or set the super user password for Mumble. A super user password is automatically generated during Mumble setup. To get the password, login to the terminal as admin user using Cockpit , Secure Shell or the console. Then, to read the super user password that was automatically generated during Mumble installation run the following command:
sudo grep SuperUser /var/log/mumble-server/mumble-server.log
You should see output such as:
<W>2019-11-06 02:47:41.313 1 => Password for 'SuperUser' set to 'noo8Dahwiesh'
Alternatively, you can set a new password as follows:
sudo su - echo "newpassword" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini --readsupw"
9.5. External links
10. Privoxy (Web Proxy)
Available since: version 0.1
A web proxy acts as a filter for incoming and outgoing web traffic. Thus, you can instruct any computer in your network to pass internet traffic through the proxy to remove unwanted ads and tracking mechanisms.
Privoxy is a software for security, privacy, and accurate control over the web. It provides a much more powerful web proxy (and anonymity on the web) than what your browser can offer. Privoxy "is a proxy that is primarily focused on privacy enhancement, ad and junk elimination and freeing the user from restrictions placed on his activities" (source: Privoxy FAQ).
Watch the screencast on how to setup and use Privoxy in FreedomBox.
10.2. Setting up
In FreedomBox, install Web Proxy (Privoxy)
Adapt your browser proxy settings to your FreedomBox hostname (or IP address) with port 8118. Please note that Privoxy can only proxy HTTP and HTTPS traffic. It will not work with FTP or other protocols.
If you are using a laptop that occasionally has to connect through other routers than yours with the FreedomBox and Privoxy, you may want to install a proxy switch add-on that allows you to easily turn the proxy on or off.
10.3. Advanced Users
- The default installation should provide a reasonable starting point for most. There will undoubtedly be occasions where you will want to adjust the configuration, that can be dealt with as the need arises.
To enable changing these configurations, you first have to change the value of enable-edit-actions in /etc/privoxy/config to 1. Before doing so, read carefully the manual, especially:
Access to the editor can not be controlled separately by "ACLs" or HTTP authentication, so that everybody who can access Privoxy can modify its configuration for all users. This option is not recommended for environments with untrusted users. Note that malicious client side code (e.g Java) is also capable of using the actions editor and you shouldn't enable this options unless you understand the consequences and are sure your browser is configured correctly.
Now you find an EDIT button on the configuration screen in http://config.privoxy.org/.
The Quickstart is a good starting point to read on how to define own blocking and filtering rules.
10.4. External links
11. Ikiwiki (Wiki and Blog)
Avaiable since: version 0.5
11.1. What is Ikiwiki?
Ikiwiki converts wiki pages into HTML pages suitable for publishing on a website. It provides particularly blogging, podcasting, calendars and a large selection of plugins.
11.2. Quick Start
After the app installation on your box administration interface:
- Go to "Create" section and create a wiki or a blog
- Go back to "Configure" section and click on /ikiwiki link
- Click on your new wiki or blog name under "Parent directory"
- Enjoy your new publication page.
11.3. Creating a wiki or blog
You can create a wiki or blog to be hosted on your FreedomBox through the Wiki & Blog (Ikiwiki) page in FreedomBox. The first time you visit this page, it will ask to install packages required by Ikiwiki.
After the package install has completed, select the Create tab. You can select the type to be Wiki or Blog. Also type in a name for the wiki or blog, and the username and password for the wiki's/blog's admin account. Then click Update setup and you will see the wiki/blog added to your list. Note that each wiki/blog has its own admin account.
11.4. Accessing your wiki or blog
From the Wiki & Blog (Ikiwiki) page, select the Manage tab and you will see a list of your wikis and blogs. Click a name to navigate to that wiki or blog.
From here, if you click Edit or Preferences, you will be taken to a login page. To log in with the admin account that you created before, select the Other tab, enter the username and password, and click Login.
11.5. User login through SSO
Besides the wiki/blog admin, other FreedomBox users can be given access to login and edit wikis and blogs. However, they will not have all the same permissions as the wiki admin. They can add or edit pages, but cannot change the wiki's configuration.
To add a wiki user, go to the Users and Groups page in FreedomBox (under System configuration, the gear icon at the top right corner of the page). Create or modify a user, and add them to the wiki group. (Users in the admin group will also have wiki access.)
To login as a FreedomBox user, go to the wiki/blog's login page and select the Other tab. Then click the "Login with HTTP auth" button. The browser will show a popup dialog where you can enter the username and password of the FreedomBox user.
11.6. Adding FreedomBox users as wiki admins
- Login to the wiki, using the admin account that was specified when the wiki was created.
- Click "Preferences", then "Setup".
Under "main", in the "users who are wiki admins", add the name of a user on the FreedomBox.
- (Optional) Under "auth plugin: passwordauth", uncheck the "enable passwordauth?" option. (Note: This will disable the old admin account login. Only SSO login using HTTP auth will be possible.)
- Click "Save Setup".
- Click "Preferences", then "Logout".
- Login as the new admin user using "Login with HTTP auth".
11.7. External links
Configure has some general configuration options:
Hostname is the local name by which other devices on the local network can reach your FreedomBox. The default hostname is freedombox.
1.2. Domain Name
Domain name is the global name by which other devices on the Internet can reach your FreedomBox. The value set here is used by the Chat Server (XMPP), Matrix Synapse, Certificates (Let's Encrypt), and Monkeysphere.
1.3. Webserver Home Page
This is an advanced option that allows you to set something other than FreedomBox Service as the home page to be served on the domain name of the FreedomBox. For example, if your FreedomBox's domain name is https://myfreedombox.rocks and you set MediaWiki as the home page, visiting https://myfreedombox.rocks will take you to https://myfreedombox.rocks/mediawiki/ instead of the usual https://myfreedombox.rocks/plinth/.
Once some other app is set as the home page, you can only navigate to the FreedomBox Service by typing https://myfreedombox.rocks/plinth/ into the browser.
/freedombox can also be used as an alias to /plinth
You can set any web application, Ikiwiki wikis and blogs or Apache's default index.html page as the web server home page. Since release 20.20 you can also select a user's website among those users who have created their public_html directory.
Tip: Bookmark the URL of FreedomBox Service before setting the home page to some other app.
2. Users and Groups
You can grant access to your FreedomBox for other users. Provide the Username with a password and assign a group to it. Currently the groups
The user will be able to log in to services that support single sign-on through LDAP, if they are in the appropriate group.
Users in the admin group will be able to log in to all services. They can also log in to the system through SSH and have administrative privileges (sudo).
A user's groups can also be changed later.
It is also possible to set an SSH public key which will allow this user to securely log in to the system without using a password. You may enter multiple keys, one on each line. Blank lines and lines starting with # will be ignored.
The interface language can be set for each user individually. By default, the language preference set in the web browser will be used.
A user's account can be deactivated, which will temporarily disable the account.
- Default setup
- Internet Connection Sharing
- Advanced Network Operations
- Manual Network Operation
This section describes how networking is setup by default in FreedomBox and how you can customize it. See also the Firewall section for more information on how firewall works.
3.1. Default setup
In a fresh image of FreedomBox, network is not configured at all. When the image is written to an SD card and the device boots, configuration is done. During first boot, FreedomBox setup package detects the networks interfaces and tries to automatically configure them so that FreedomBox is available for further configuration via the web interface from another machine without the need to connect a monitor. Automatic configuration also tries to make FreedomBox useful, out of the box, for the most important scenarios FreedomBox is used for.
There are two scenarios it handles: when is a single ethernet interface and when there are multiple ethernet interfaces.
3.1.1. Single ethernet interface
When there is only single ethernet interface available on the hardware device, there is not much scope for it to play the role of a router. In this case, the device is assumed to be just another machine in the network. Accordingly, the only available interface is configured to be an internal interface in automatic configuration mode. This means that it connects to the Internet using the configuration provided by a router in the network and also makes all (internal and external) of its services available to all the clients on this network.
3.1.2. Multiple ethernet interface
When there are multiple ethernet interfaces available on the hardware device, the device can act as a router. The interfaces are then configured to perform this function.
The first network interface is configured to be an WAN or external interface in automatic configuration mode. This means that it connects to the Internet using network configuration provided by the Internet Service Provider (ISP). Only services that are meant to be provided across the entire Internet (external services) will be exposed on this interface. You must plug your Internet connection into the port of this ethernet interface. If you wish to continue to have your existing router manage the Internet connection for you, then plug a connection from your router to the port on this interface.
The remaining network interfaces are configured for the clients of a router. They are configured as LAN or internal interfaces in shared configuration mode. This means that all the services (both external and internal) services are provided to who ever connects on this interface. Further, the shared mode means that clients will be able to receive details of automatic network connection on this interface. Specifically, DHCP configuration and DNS servers are provided on this interface. The Internet connection available to the device using the first network interface will be shared with clients using this interface. This all means that you can connect your computers to this network interface and they will get automatically configured and will be able to access the Internet via the FreedomBox.
Currently, it is not very clear which interface will be come the WAN interface (and the remaining being LAN interfaces) although the assignment process is deterministic. So, it take a bit of trail and error to figure out which one is which. In future, for each device, this will be well documented.
3.1.3. Wi-Fi configuration
All Wi-Fi interfaces are configured to be LAN or internal interfaces in shared configuration mode. They are also configured to become Wi-Fi access points with following details.
Name of the access point will be FreedomBox plus the name of the interface (to handle the case where there are multiple of them).
Password for connecting to the interface will be freedombox123.
3.2. Internet Connection Sharing
Although the primary duty of FreedomBox is to provide decentralized services, it can also act like a home router. Hence, in most cases, FreedomBox connects to the Internet and provides other machines in the network the ability to use that Internet connection. FreedomBox can do this in two ways: using a shared mode connection or using an internal connection.
When an interface is set in shared mode, you may connect your machine directly to it. This is either by plugging in an ethernet cable from this interface to your machine or by connecting to a Wi-Fi access point. This case is the simplest to use, as FreedomBox automatically provides your machine with the necessary network configuration. Your machine will automatically connect to FreedomBox provided network and will be able to connect to the Internet given that FreedomBox can itself connect to the Internet.
Sometimes the above setup may not be possible because the hardware device may have only one network interface or for other reasons. Even in this case, your machine can still connect to the Internet via FreedomBox. For this to work, make sure that the network interface that your machine is connecting to is in internal mode. Then, connect your machine to network in which FreedomBox is present. After this, in your machine's network configuration, set FreedomBox's IP address as the gateway. FreedomBox will then accept your network traffic from your machine and send it over to the Internet. This works because network interfaces in internal mode are configured to masquerade packets from local machines to the Internet and receive packets from Internet and forward them back to local machines.
The above default configuration may not be fit for your setup. You can customize the configuration to suit your needs from the Networks area in the 'setup' section of the FreedomBox web interface.
3.3.1. PPPoE connections
If your ISP does not provide automatic network configuration via DHCP and requires you to connection via PPPoE. To configure PPPoE, remove any network connection existing on an interface and add a PPPoE connection. Here, optionally, provide the account username and password given by your ISP and activate the connection.
3.3.2. Connect to Internet via Wi-Fi
By default Wi-Fi devices attached during first boot will be configured as access points. They can be configured as regular Wi-Fi devices instead to connection to a local network or an existing Wi-Fi router. To do this, click on the Wi-Fi connection to edit it. Change the mode to Infrastructure instead of Access Point mode and IPv4 Addressing Method to Automatic (DHCP) instead of Shared mode. Then the SSID provided will mean the Wi-Fi network name you wish to connect to and passphrase will be the used to while making the connection.
18.104.22.168. Problems with Privacy Feature
NetworkManager used by FreedomBox to connect to the Wi-Fi networks has a privacy feature that uses a different identity when scanning for networks and when actually connecting to the Wi-Fi access point. Unfortunately, this causes problems with some routers that reject connections from such devices. Your connection won't successfully activate and disconnect after trying to activate. If you have control over the router's behaviour, you could also turn off the feature causing problem. Otherwise, the solution is to connect with a remote shell using SSH or Cockpit, editing a file /etc/NetworkManager/NetworkManager.conf and adding the line wifi.scan-rand-mac-address=no in the [device] section. This turns off the privacy feature.
Edit a file:
$ sudo nano /etc/NetworkManager/NetworkManager.conf
Add the following:
Then reboot the machine.
3.3.3. Adding a new network device
When a new network device is added, network manager will automatically configure it. In most cases this will not work to your liking. Delete the automatic configuration created on the interface and create a new network connection. Select your newly added network interface in the add connection page.
Then set firewall zone to internal and external appropriately.
- You can configure the interface to connect to a network or provide network configuration to whatever machine connects to it.
- Similarly, if it is a Wi-Fi interface, you can configure it to become a Wi-FI access point or to connect to an existing access points in the network.
3.3.4. Configuring a mesh network
FreedomBox has rudimentary support for participating in BATMAN-Adv based mesh networks. It is possible to either join an existing network in your area or create a new mesh network and share your Internet connection with the rest of the nodes that join the network. Currently, two connections have to be created and activated manually to join or create a mesh network.
22.214.171.124. Joining a mesh network
To join an existing mesh network in your area, first consult the organizers and get information about the mesh network.
Create a new connection, then select the connection type as Wi-Fi. In the following dialog, provide the following values:Save the connection. Join the mesh network by activating this newly created connection.
Mesh Join - BATMAN
The name must end with 'BATMAN' (uppercase)
The Wi-Fi device you wish to use for joining the mesh network
Since you don't wish that participants in mesh network to use internal services of FreedomBox
As provided to you by the operators of the mesh network. You should see this as a network in Nearby Wi-Fi Networks
Because this is a peer-to-peer network
As provided to you by the operators of the mesh network
As provided to you by the operators of the mesh network
As provided to you by the operators of the mesh network
Leave this as open, unless you know your mesh network needs it be otherwise
Leave empty unless you know your mesh network requires one
IPv4 Addressing Method
We don't want to request IP configuration information yet
Create a second new connection, then select the connection type as Generic. In the following dialog, provide this following values:
Any name to identify this connection
This interface will only show up after you successfully activate the connection in first step
Since you don't wish that participants in mesh network to use internal services of FreedomBox
IPv4 Addressing Method
Mesh networks usually have a DHCP server somewhere that provide your machine with IP configuration. If not, consult the operator and configure IP address setting accordingly with Manual method
Save the connection. Configure your machine for participation in the network by activating this connection. Currently, this connection has to be manually activated every time you need to join the network. In future, FreedomBox will do this automatically. You will now be able reach other nodes in the network. You will also be able to connect to the Internet via the mesh network if there is an Internet connection point somewhere in mesh as setup by the operators.
126.96.36.199. Creating a mesh network
To create your own mesh network and share your Internet connection with the rest of the nodes in the network:
Follow the instructions as provided above in step 1 of Joining a mesh network but choose and fix upon your own valid values for SSID (a name for you mesh network), Frequency Band (usually 2.4Ghz), Channel (1 to 11 in 2.4Ghz band) and BSSID (a hex value like 12:CA:DE:AD:BE:EF). Create this connection and activate it.
Follow the instructions as provided above in step 2 of Joining a mesh network but select IPv4 Addressing Method as Shared. This will provide automatic IP configuration to other nodes in the network as well as share the Internet connection on your machine (achieved using a second Wi-Fi interface, using Ethernet, etc.) with other nodes in the mesh network.
Spread the word about your mesh network to your neighbors and let them know the parameters you have provided when creating the network. When other nodes connect to this mesh network, they have to follow steps in Joining a mesh network but use the values for SSID, Frequency Band and Channel that you have chosen when you created the mesh network.
3.4. Advanced Network Operations
Cockpit provides many advanced networking features over those offered by FreedomBox. Both FreedomBox and Cockpit operate over Network Manager and are hence compatible with each other. Some of the functions provided by Cockpit include:
- Set the maximum transmission unit (MTU) for a network connection
- Change the hardware address (MAC address) of a network interface
- Add more DNS servers and configure routing of a network connection
- Creating bonded devices for highly available network interfaces
- Creating bridge devices to join network interfaces for aggregating separate networks
- Manage VLAN for creating virtual partitions in the physical network
3.5. Manual Network Operation
FreedomBox automatically configures networks by default and provides a simplified interface to customize the configuration to specific needs. In most cases, manual operation is not necessary. The following steps describe how to manually operate network configuration in the event that a user finds FreedomBox interface to insufficient for task at hand or to diagnose a problem that FreedomBox does not identify.
On the command line interface:
For text based user interface for configuring network connections:
To see the list of available network devices:
To see the list of configured connections:
To see the current status of a connection:
nmcli connection show '<connection_name>'
To see the current firewall zone assigned to a network interface:
nmcli connection show '<connection_name>' | grep zone
firewall-cmd --zone=internal --list-all firewall-cmd --zone=external --list-all
To create a new network connection:
nmcli con add con-name "<connection_name>" ifname "<interface>" type ethernet nmcli con modify "<connection_name>" connection.autoconnect TRUE nmcli con modify "<connection_name>" connection.zone internal
To change the firewall zone for a connection:
nmcli con modify "<connection_name>" connection.zone "<internal|external>"
For more information on how to use nmcli command, see its man page. Also for a full list of configuration settings and type of connections accepted by Network Manager see:
To see the current status of the firewall and manually operate it, see the Firewall section.
4. Software Updates
FreedomBox can automatically install security updates. On the Update page of the System section in FreedomBox web interface you can turn on automatic updates. This feature is enabled by default and there is no manual action necessary. It is strongly recommended that you have this option enabled to keep your FreedomBox secure.
Updates are performed every day at night. If you wish to shutdown FreedomBox every day after use, keep it running at night once a week or so to let the automatic updates happen. Alternatively, you can perform manual updates as described below.
Note that once the updates start, it may take a long time to complete. During automatic update process that runs every night or during manual update process, you will not be able to install apps from FreedomBox web interface.
4.1. When Will I Get the Latest Features?
Although updates are done every day for security reasons, latest features of FreedomBox will not propagate to all the users. The following information should help you understand how new features become available to users.
Stable Users: This category of users include users who bought the FreedomBox Pioneer Edition, installed FreedomBox on a Debian stable distribution or users who downloaded the stable images from freedombox.org. As a general rule, only security updates to various packages are provided to these users. One exception to this rule is where FreedomBox service itself is updated when a release gains high confidence from developers. This means that latest FreedomBox features may become available to these users although not as quickly or frequently as testing users. If an app is available only in testing distribution but not in stable distribution, then that app will show up in the web interface but will not be installable by stable users. Some apps are also provided an exception to the rule of "security updates only" when the app is severely broken otherwise. Every two years, a major release of Debian stable happens with the latest versions of all the software packages and FreedomBox developers will attempt to upgrade these users to the new release without requiring manual intervention.
Testing Users: This category of users include users who installed FreedomBox on a Debian testing distribution or users who downloaded the testing images from freedombox.org. Users who use Debian testing are likely to face occasional disruption in the services and may even need manual intervention to fix the issue. As a general rule, these users receive all the latest features and security updates to all the installed packages. Every two weeks, a new version of FreedomBox is released with all the latest features and fixes. These releases will reach testing users approximately 2-3 days after the release.
Unstable Users: This category of users include users who installed FreedomBox on a Debian unstable distribution or users who downloaded the unstable images from freedombox.org. Users who use Debian unstable are likely to face occasional disruption in the services and may even need manual intervention to fix the issue. As a general rule, these users receive all the latest features to all the installed packages. Every two weeks, a new version of FreedomBox is released with all the latest features and fixes. Theses releases will reach unstable users on the day of the release. Only developers, testers and other contributors to the FreedomBox project should use the unstable distribution and end users and advised against using it.
4.2. Manual Updates from Web Interface
To get updates immediately and not wait until the end of the day, you may want to trigger updates manually. You can do this by pressing the Update now button in Manual update tab for Update page in System section. Note that this step is not necessary if you have enabled Auto-updates as every night this operation is performed automatically.
When installing apps you may receive an error message such as
Error installing packages: E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem
This is typically caused by shutting down FreedomBox while it is installing apps, while performing daily updates or during some other operations. This situation can be rectified immediately by running manual update.
4.3. Manual Updates from Terminal
Some software packages may require manual interaction for updating due to questions related to configuration. In such cases, FreedomBox updates itself and brings in new knowledge necessary to update the package by answering configuration questions. After updating itself, FreedomBox acts on behalf of the user and updates the packages by answering the questions. Until FreedomBox has a chance to update the package, such packages should not be be updated manually. The manual update triggered from the web interface is already mindful of such packages and does not update them.
In some rare situations, FreedomBox itself might fail to update or the update mechanism might fall into a situation that might need manual intervention from a terminal. To perform manual upgrades on the terminal, login into FreedomBox on a terminal (if you have monitor and keyboard connected), via a web terminal (using FreedomBox/Manual/Cockpit) or using a remote secure shell (see Secure Shell section). Then run the following commands:
$ sudo su - Password: <enter user password here> # dpkg --configure -a # apt update # apt -f install # unattended-upgrade --debug # apt install freedombox # apt update
If apt-get update asks for a confirmation to change Codename or other release information, confirm yes. If during update of freedombox package, if a question about overwriting configuration files is asked, answer to install new configuration files from the latest version of the package. This process will upgrade only packages that don't require configuration file questions (except for freedombox package). After this, let FreedomBox handle the upgrade of remaining packages. Be patient while new releases of FreedomBox are made to handle packages that require manual intervention.
If you want to go beyond the recommendation to upgrade all the packages on your FreedomBox and if you are really sure about handling the configuration changes for packages yourself, run the following command:
$ apt dist-upgrade
The system diagnostic test will run a number of checks on your system to confirm that applications and services are working as expected.
Just click Run Diagnostics. This may take some minutes.
Firewall is a network security system that controls the incoming and outgoing network traffic. Keeping a firewall enabled and properly configured reduces risk of security threat from the Internet.
The operation of the firewall in FreedomBox web interface is automatic. When you enable a service it is automatically permitted in the firewall and when you disable a service it is automatically disabled in the firewall. For services which are enabled by default on FreedomBox, firewall ports are also enabled by default during the first run process.
Firewall management in FreedomBox is done using FirewallD.
Each interface is needs to be assigned to one (and only one) zone. If an interface is not assigned any zone, it is automatically assigned external zone. Whatever rules are in effect for a zone, those rules start to apply for that interface. For example, if HTTP traffic is allowed in a particular zone, then web requests will be accepted on all the addresses configured for all the interfaces assigned to that zone.
There are primarily two firewall zones used. The internal zone is meant for services that are provided to all machines on the local network. This may include services such as streaming media and simple file sharing. The external zone is meant for services that are provided publicly on the Internet. This may include services such as blog, website, email web client etc.
For details on how network interfaces are configured by default, see the Networks section.
6.2. Opening Custom Ports
Cockpit app provides advanced management of firewall. Both FreedomBox and Cockpit operate over firewalld and are hence compatible with each other. In particular, Cockpit can be used to open custom services or ports on FreedomBox. This is useful if you are manually running your own services in addition to the services provided by FreedomBox on the same machine.
6.3. FreedomBox Ports/Services
The following table attempts to document the ports, services and their default statuses in FreedomBox. If you find this page outdated, see the Firewall status page in FreedomBox interface.
Enabled by default
Status shown in FreedomBox
Managed by FreedomBox
FreedomBox Web Interface (Plinth)
6.4. Manual operation
See FirewallD documentation for more information on the basic concepts and comprehensive documentation.
6.4.1. Enable/disable firewall
To disable firewall
service firewalld stop
or with systemd
systemctl stop firewalld
To re-enable firewall
service firewalld start
or with systemd
systemctl start firewalld
6.4.2. Modifying services/ports
You can manually add or remove a service from a zone.
To see list of services enabled:
firewall-cmd --zone=<zone> --list-services
firewall-cmd --zone=internal --list-services
To see list of ports enabled:
firewall-cmd --zone=<zone> --list-ports
firewall-cmd --zone=internal --list-ports
To remove a service from a zone:
firewall-cmd --zone=<zone> --remove-service=<service> firewall-cmd --permanent --zone=<zone> --remove-service=<interface>
firewall-cmd --zone=internal --remove-service=xmpp-bosh firewall-cmd --permanent --zone=internal --remove-service=xmpp-bosh
To remove a port from a zone:
firewall-cmd --zone=internal --remove-port=<port>/<protocol> firewall-cmd --permanent --zone=internal --remove-port=<port>/<protocol>
firewall-cmd --zone=internal --remove-port=5353/udp firewall-cmd --permanent --zone=internal --remove-port=5353/udp
To add a service to a zone:
firewall-cmd --zone=<zone> --add-service=<service> firewall-cmd --permanent --zone=<zone> --add-service=<interface>
firewall-cmd --zone=internal --add-service=xmpp-bosh firewall-cmd --permanent --zone=internal --add-service=xmpp-bosh
To add a port to a zone:
firewall-cmd --zone=internal --add-port=<port>/<protocol> firewall-cmd --permanent --zone=internal --add-port=<port>/<protocol>
firewall-cmd --zone=internal --add-port=5353/udp firewall-cmd --permanent --zone=internal --add-port=5353/udp
6.4.3. Modifying the zone of interfaces
You can manually change the assignment of zones of each interfaces after they have been autuomatically assigned by the first boot process.
To see current assignment of interfaces to zones:
To remove an interface from a zone:
firewall-cmd --zone=<zone> --remove-interface=<interface> firewall-cmd --permanent --zone=<zone> --remove-interface=<interface>
firewall-cmd --zone=external --remove-interface=eth0 firewall-cmd --permanent --zone=external --remove-interface=eth0
To add an interface to a zone:
firewall-cmd --zone=<zone> --add-interface=<interface> firewall-cmd --permanent --zone=<zone> --add-interface=<interface>
firewall-cmd --zone=internal --add-interface=eth0 firewall-cmd --permanent --zone=internal --add-interface=eth0
7. Date & Time
This network time server is a program that maintains the system time in synchronization with servers on the Internet.
You can select your time zone by picking a big city nearby (they are sorted by Continent/City) or select directly the zone with respect to GMT (Greenwich Mean Time).
FreedomBox is designed to be the software for a consumer electronics device that is easy to setup, maintain and use. The project does not aim to create a custom hardware device ourselves, but instead we intend to partner with hardware vendors to build FreedomBox devices and also support existing hardware. Typically, it is run on single board computers because of their small form factor, low power consumption and favourable price. Some users also run it on old/refurbished desktop or laptop computers or even on virtual machines running on their primary computers.
In addition to supporting various single board computers and other devices, any Debian machine can be turned into a FreedomBox by installing the freedombox package. Debian, the universal operating system, supports a much wider range on hardware. After installing Debian, see the manual page for installing FreedomBox on Debian.
1. Recommended Hardware
On April 22nd, 2019, the FreedomBox Foundation announced the sales of the Pioneer Edition FreedomBox Home Server Kits. This is the recommended pre-installed hardware for all users who don't wish to build their own FreedomBox by choosing the right components, downloading the image and preparing an SD card with FreedomBox.
The kit includes all the hardware needed for launching a FreedomBox home server on an Olimex A20-OLinuXino-LIME2 board. This product provides the perfect combination of open source hardware and free and open source software. By purchasing this product, you also support the FreedomBox Foundation's efforts to create and promote its free and open source server software.
2. Supported Hardware
Use these hardware if you are able to download FreedomBox images and prepare an SD card by following the manual. If you wish for simper setup process, please buy the FreedomBox kits from recommended hardware instead. Look at the list of known issues with a hardware before buying it.
2.1. Hardware Comparison
BeagleBone Black C
OLinuXino A20 LIME
OLinuXino A20 LIME2
OLinuXino A20 MICRO
Orange Pi Zero
3. Additional Hardware
3.1. Also Working Hardware
This hardware works but is not recommended because the hardware can't run entirely on free software:
3.2. Hardware Supported with Generic Images
If you already have hardware that you wish turn into a FreedomBox, don't let the limited list of supported hardware discourage you. If you are using AMD or Intel architecture machines, you can download the generic images of that specific architecture that image will work on any machine of that architecture. For ARM 32-bit or ARM 64-bit architectures, we have a similar solution.
Starting with August 2020, we started building generic images that would work for all single board computers based on a solution involving UEFI standards and u-boot firmware. In this approach, a small board specific firmware resides on an SPI flash or an SD card. It is responsible for loading a generic FreedomBox image that is placed in an SD card, a USB drive, a SATA drive or an NVMe drive. So, for your hardware, find and get a u-boot based firmware from your board manufacturer and place it on an SPI flash or an SD card. Next, ensure that that kernel in FreedomBox has support for your board and place it on any of the other storage disks. This approach should work well for a lot of boards that are not listed as specifically supported. See firmware section for more details.
We continue to build images specific to some hardware as we used to earlier. These images have the slight advantage that they are easier to setup because of less step involved. We intend, however, to phase out these images because they can't be booted from all the storage devices and involve development overhead limiting the number of boards we support.
3.3. Adding Hardware Support
If your hardware is not listed above but you were able to get it working using the above described method of using a generic image, drop us a line and we will list it as supported. Further, take a look at the list of targeted hardware for boards to support.
3.4. Deprecated Hardware
This hardware was supported earlier but is no longer supported. If you downloaded an earlier image and are running FreedomBox on one of these hardware, you will keep getting software updates. However, no new images will be provided for these hardware. It is recommended that you migrate to newer, supported hardware using backup and restore.
- Raspberry Pi
Note: Supported Hardware means that FreedomBox images are built for said hardware and at least one developer has reported the basic functions to be working.
4. Common Hardware Information
The following sections document common advice related to hardware and peripherals when using them with FreedomBox.
FreedomBox can use Wi-Fi hardware for two separate purposes. It can be used to provide internet connectivity or it can be used to share internet connectivity already available to FreedomBox (via Ethernet, 3G/4G or another Wi-Fi interface) with devices on the network. See the Networks manual page for instructions on how to configure FreedomBox for these two cases.
Unfortunately, most built-in Wi-Fi adapters and add-on Wi-Fi adapters require firmware that is not free software. So, FreedomBox recommends attaching a USB Wi-Fi device that does not require non-free firmware. Supported devices automatically show up in the network interface list when configuring networks.
If you have a Wi-Fi device, either built-in or as an add-on, that requires non-free firmware and you are willing to install non-free firmware to get it working, see the Debian wiki page. Once the firmware is installed and the device shows up, it can be configured and used by FreedomBox.
4.2. Power Supply
On single board computers, one can easily encounter situations where the board and its peripherals are not provided sufficient power and malfunction in unpredictable ways. To avoid this, use a power adapter that can supply the minimum current recommended by the hardware manufacturer. When additional peripherals such as USB drives, Wi-Fi devices, SATA drives or NVMe drives are attached, the power requirements increase. A power supply that can provide higher current than needed is preferable but voltage should match the manufacturer recommendation exactly. Keep in mind that some cheap power supplies don't supply the current they promise to.
Desktops, laptops and virtual machines have software that runs during machine start-up called UEFI/BIOS. This software, sometimes called firmware, can load and hand over control to the operating system (in our case FreedomBox), when it is present on any of the storage devices. This is not the case with most single board computers.
Single board computers ship with very small amount of software that is typically limited to booting OS from SD cards or eMMCs. They usually can't boot from USB disks, SATA disks or NVMe disks. To remedy this situation, hardware manufacturers started adding a special storage device called SPI flash which is only a few MiB in size. A special software, which we call firmware here, typically based on free and open source boot loader called u-boot is placed in this SPI flash. When the computer starts up, it starts the boot-loader from SPI flash which will in turn load the operating system. Since the firmware is much more powerful, it has the ability to load the OS from any of the storage media. Examples of single board computers with SPI flash include A20-OLinuXino-Lime2 and RockPro64.
This firmware approach can be used even when SPI flash is not available. Say, one wants to boot from a USB drive and the board does not support booting from it. Firmware can be installed on an SD card (a very tiny one is sufficient) and inserted into the board. Then USB disk will contain FreedomBox as we wish it. When the board starts, it boots the firmware from SD card which in turn boots the operating system from USB drive or any other storage.
This firmware approach also allows us to use generic download images that work for a large number of hardware boards. While increasing the effort for the user a bit more, it has the advantage of allowing us to support a lot more hardware and allow the OS to be present on any storage media.
When special firmware is needed for a single board computer, FreedomBox manual for the board discusses how to to obtain and install the firmware before proceeding with installation of FreedomBox.
FreedomBox can run from various storage media supported by your computer. Choosing the storage is about balancing reliability, capacity and speed against cost. A minimum storage capacity of 8GB is recommended for running FreedomBox.
4.4.1. Secure Digital (SD) Card
SD cards are common on single board computers. Most single board computers can boot directly from an SD card without any additional tweaks.
SD cards are typically slowest among the available storage media. Expect your FreedomBox to perform certain operations slower on these disks. Not all SD cards perform similarly and some perform much better than others. When buying an SD card, pick a card with a speed class of at least 10 (written on the card as a circle around the number 10) or UHS speed class 1 (written on the card as a number 1 inside a bucket). UHS speed class 3 (written on the card as number 3 inside a bucket) or application speed class 1 or above (written as A1 and A2) will perform much better. Finally, users of FreedomBox have reported cases where SD cards have failed. So, other storage media should be preferred for higher reliability.
4.4.2. Embedded MultiMediaCard (eMMC)
Many recently released single board computers support eMMC cards. Most single board computers can boot directly from an eMMC without any additional tweaks.
eMMC is sometimes soldered onto the board and you will need to choose the size of eMMC when buying the board. An example of this is the Olimex's A20-OLinuXino-Lime2 board. Other times, a manufacturer will provide eMMC as pluggable peripheral. With this approach, you can add eMMC after you buy the board or upgrade existing one with higher capacity. Do not detach and reattach such pluggable eMMCs too often. They have a very limited number of wear cycles (< 100).
eMMC are much faster than SD cards and spinning disk HDDs but are significantly slower than SSDs. They have much better random write speeds which are needed for many FreedomBox operations. In general, they should be preferred over SD cards.
FreedomBox image can be setup on an eMMC in two ways. For a detachable eMMC, there are eMMC to USB converters available. Detach the eMMC from the board, attach it to the USB converter and plug it into your machine and proceed with writing FreedomBox on it as one would for an SD card. In case the eMMC is not detachable, boot the computer with a media other than the eMMC such as an SD card or USB disk. It could be any operating system. After booting, the eMMC will show up as an additional disk. Download and write FreedomBox image onto it as one would for an SD card.
4.4.3. USB Disk Drive
Most computers and single board computers have USB ports. These ports accept storage media such as USB flash drives, SSDs or HDDs.
A USB flash drive can also serve as a storage medium for running FreedomBox. USB 2.0 flash drives are much slower and comparable to SD cards in their performance. USB 3.0 flash drives yield much better performance. Both USB flash drives and SD cards use similar technology so the read/write cycles and hence the reliability as similarly limited.
Apart from USB flash drives, solid state drives (SSDs) and hard disk drives (HDDs) can be inserted into USB ports. This is possible either by buying drives with USB interface or by using convertors such as USB to SATA or USB to M.2 interface. Both SSDs and HDDs have much higher reliability compared to SD cards, eMMC or USB flash drives. These should be preferred whenever possible. In addition, SSDs provide excellent performance when connected via USB 3.0 interface.
When connecting SSDs and HDDs to USB ports on single board computers, care should be taken about the power supply to the drive. If the drive has an extra power supply there is nothing to worry about. Otherwise, ensure that the single board computer is able to power the drive by checking the power requirements of the drive and what the board supports. For the board, always use a power adapter that can supply the minimum current recommended by the hardware manufacturer. Power supply that can provide higher current than needed is preferable but the voltage supplied should match the manufacturer recommendation exactly. Keep in mind that some cheap power supplies don't supply the current they promise to.
Setting up a FreedomBox image on a USB (flash, SSD or HDD) drive can be straight forward as most computers have USB ports. Plug-in the USB drive to your computer, download and write the FreedomBox image to the USB drive. While laptops, desktops and virtual machines can boot from a USB drive without intervention, many single board computers can't boot from USB drives. To address this, a separate firmware is needed. See firmware section for setting this up.
4.4.4. SATA disk drive
Some desktops, laptops and single board computers support a SATA interface to connect a solid state drive (SSD) or a hard disk drive (HDD). An example of a single board computer supporting SATA interface is the Olimex's A20-OLinuXino-Lime2. SATA protocol is also used for mSATA ports or M.2 slots (with a B-Key or an M-key). Both SSDs and HDDs have much higher reliability compared to SD cards, eMMC or USB flash drives. SATA interface provides very good data transfer rates (but not as good as NVMe drives based on PCIe). These should be preferred over SD cards, eMMCs or USB flash drives whenever possible.
When connecting SSDs and HDDs to SATA ports on single board computers, care should be taken about the power supply to the drive. If the drive has an extra power supply there is nothing to worry about. Otherwise, ensure that the single board computer is able to power the drive by checking the power requirements of the drive and what the board supports. Always use a power adapter that can supply the minimum current recommended by the hardware manufacturer. Power supply that can provide higher current than needed is preferable but voltage should match the recommendation exactly. Keep in mind that some cheap power supplies don't supply the current they promise to.
To setup FreedomBox image on a SATA disk drive, boot the computer with a media other than the SATA disk such as an SD card. It could be any operating system. After booting, the SATA disk will show up as an additional disk. Download and write FreedomBox image onto it as one would for an SD card. While laptops, desktops and virtual machines can boot from a SATA drives without additional intervention, many single board computers can't boot from SATA drives. To address this, a separate firmware disk is needed. See firmware section for setting this up.
4.4.5. NVMe disk drive
Most desktops, laptops and some single board computers support an NVMe interface to connect a solid state drive (SSD). This support is provided either with an M.2 slot (with a B-key or an M-key) or by providing a PCIe expansion slot. If a PCIe expansion slot is provided, a PCIe to M.2 convertor can be used to accommodate an NVMe drive. An example of a single board computer supporting an M.2 slot is the Radxa's Rock Pi 4 board. An example of single board computer providing PCIe slot is the Pine64's RockPro64 board. NVMe based SSD have much higher reliability compared to SD cards, eMMC or USB flash drives. NVMe drives provide the fastest data transfer rates. These should be preferred over all other types of drives whenever possible.
When connecting NVMe drives to single board computers, care should be taken about the power supply to the drive. Ensure that the single board computer is able to power the drive by checking the power requirements of the drive and what the board supports. Always use a power adapter that can supply the minimum current recommended by the hardware manufacturer. Power supply that can provide higher current than needed is preferable but voltage should match the manufacturer recommendation exactly. Keep in mind that some cheap power supplies don't supply the current they promise to.
To setup FreedomBox image on an NVMe disk drive, boot the computer with a media other than the NVMe disk such as an SD card. It could be any operating system. After booting NVMe disk will show up as an additional disk. Download and write FreedomBox image onto it as one would for an SD card. While laptops, desktops and virtual machines can boot from NVMe drives without intervention, many single board computers can't boot from NVMe drives. To address this a separate firmware disk is needed. See firmware section for setting this up.
5. Building Your Own Images
All FreedomBox disk images for different hardware is built by the project using a tool known as Freedom Maker. If for some reason, you wish to build your own images instead of downloading the provided images, use this tool. The README file in the project provides information about the list of hardware build targets available and how to build images.
5.1. Status of Software Used
All the software present in FreedomBox images is from Debian repositories. There are some minor tweaks done by the Freedom Maker script.
- All software present in the images is DFSG compliant free software except in case of Raspberry Pi images where the firmware package is non-free software.
- All images use the Linux kernel from Debian which is in turn based on the mainline Linux kernel.
6.1. FreedomBox Danube Edition
FreedomBox Danube Edition is a custom casing around Cubietruck and an SSD-hard drive.
6.2. Cubietruck / Cubieboard3
Cubietruck (Cubieboard3) is a single board computer with very good performance compared to many other boards. FreedomBox images are built for this device.
Important: Read general advice about hardware before building a FreedomBox with this single board computer.
FreedomBox SD card images are provided for this hardware. These SD card images are meant for use with the on-board SD card slot and do not work when used with a separate SD card reader connected via USB.
Cubietruck / Cubieboard3
- Price: 89 USD
- Open Hardware: No
- CPU: Allwinner A20, ARM Cortex-A7 @ 1GHz dual-core
- RAM: 2 GiB DDR3 @ 480 MHz
- Storage: 8 GB NAND flash built-in, 1x microSD slot
- Architecture: armhf
- Ethernet: 10/100/1000, RJ45
WiFi: Broadcom BCM4329/BCM40181 (no free WiFi drivers + firmware available)
- SATA: 1x 2.0 port
6.6. Non-Free Status
- Non-free blobs required: ?
WiFi: no free WiFi drivers + firmware available
6.7. Known Issues
The on-board WiFi does not work with free software. A separate USB WiFi device is recommended.
7. Beagle Bone Black
Beagle Bone Black (Revision C.1) is an Open Source Hardware (OSHW) single board computer. This means that the designer is actively helping people using the platform for their own designs, and supports them in adding hardware functionality and production advice. This is a part of freedom that is often overlooked, but very much aligned with the FreedomBox goals. FreedomBox images are built and tested for this device.
Important: Read general advice about hardware before building a FreedomBox with this single board computer.
Note: This image is for BeagleBone Black (Revision C.1) only. It will not work on the BeagleBone Green, and also not on the Revisions A&B. If you have such a device and would like to help getting FreedomBox to run on it, contact us!
Open Source Hardware (OSHW): Yes
- RAM: 512MB DDR3L 800 Mhz
- Storage: Onboard 4GB, 8bit Embedded MMC and microSD
- Architecture: armhf
- Ethernet: 10/100, RJ45
WiFi: None, use a USB WiFi device
- SATA: None
7.4. Non-Free Status
- Non-free blobs required: No
WiFi: Not available
This page will help you get started with using FreedomBox on a virtual machine using VirtualBox. While VirtualBox images are primarily used for testing and development, they can also be used for regular use if you have spare resources on one of your machines. This setup is useful if:
You don't own one of the supported hardware devices.
- You don't use Debian GNU/Linux as your operating system.
You don't want to disturb your Debian installation to try out FreedomBox.
Prebuilt FreedomBox images for VirtualBox are routinely made available in VirtualBox's own VDI image file format. They contain a Debian GNU/Linux operating system and an installation of FreedomBox with all dependencies ready to run on any OS supported by VirtualBox (Windows, Linux, Macintosh, and Solaris).
VirtualBox itself is available from https://www.virtualbox.org/ (or your distribution's package manager).
8.2. Creating a Virtual Machine
Create a new VM in the VirtualBox UI with OS type Linux and Version Debian (32/64-bit according to the downloaded image).
In the Hard disk dialog choose Use an existing virtual hard disk file and select the .vdi file you extracted in step 1.
When created, go to the virtual machine's Settings -> [Network] -> [Adapter 1]->[Attached to:] and choose the network type your want the machine to use according to the explanation in Network Configuration below. The recommended type is the Bridged adapter option, but be aware that this exposes the FreedomBox's services to your entire local network.
Note: It is important to make sure that you have provided the correct network interface in the above step. For example, if the virtual machine is running on a laptop connected to a Wi-Fi network, then the wireless interface (starts with wlp) must be chosen as shown in the screenshot.
8.3. First Boot
When satisfied with the VM settings click the start button in the VirtualBox UI and your new FreedomBox will boot.
The console of the VM will show the textual screen below when finished booting, from here most interaction with FreedomBox will be through the web interface in a browser.
If everything went well so far, you should be able to access the web interface of FreedomBox by pointing a browser on the host machine to https://freedombox.local.
In case freedombox.local cannot be resolved, you need to find out your FreedomBox's IP address as described in Finding out the IP address of the virtual machine. Then access this IP from a web browser which is on the same network as the VM (for example, the host). If all is well, you are now presented with a welcome message and invited to complete the first boot process.
This mainly consist of creating an administrative user for the system.
See the FreedomBox usage page for more details.
You can log in to the Debian GNU/Linux system as the user created during FreedomBox first boot on the VirtualBox console or remotely via ssh.
After logging in, you can become root with the command sudo su.
8.5. Build Image
If you wish to build your own images instead of downloading available images, it can be done using Freedom Maker.
8.6. Tips & Troubleshooting
8.6.1. Network Configuration
VirtualBox provides many types of networking options. Each has its advantages and disadvantages. For more information about how various networking types work in VirtualBox, see VirtualBox's networking documentation. https://www.virtualbox.org/manual/ch06.html
For a simple setup, it is recommended that you use a single network interface in your guest machine. This will make the first boot script automatically configure that interface as an internal network with automatic network configuration. Inside the guest machine, the networking is configured automatically and all the services are made available on this network interface. For more information on how networks are configured by default in FreedomBox, see Networks section.
What remains is to make those services available to the host machine or to other machines in the network. You must then choose one of the following types of networking for the network interface on your guest machine. To set a particular type of network for the guest's network adapter, go to the guest VM's settings then the network options and then select the adapter you wish to configure. There, set the network type from the available list of networks.
First and the recommended option is to use the Bridged type of network. This option exposes the guest machine to the same network that host network is connected to. The guest obtains network configuration information from a router or DHCP server on the network. The guest will appear as just another machine in the network. A major advantage of this of setup is that the host and all other machines in the network will be able to access the services provided by guest without requiring any further setup. The only drawback of this approach is that if the host is not connected to any network, the guest's network will remain unconfigured making it inaccessible even from the host.
Second method is Host only type of networking. With a guest's network interface configured in this manner, it will only be accessible from the host machine. The guest will not able access any other machine but the host, so you do not have internet access on the guest. All services on the guest are available to the host machine without any configuration such as port forwarding.
The third option is to use the NAT type of network. This the networking type that VirtualBox assigns to a freshly created virtual machine. This option works even when host is not connected to any network. The guest is automatically configured and is able to access the internet and local networks that host is able to connect to. However, the services provided by the guest require port forwarding configuration setup to be available outside.
To configure this go to VM settings -> [Network] -> [Adapter] -> [Port Forwarding]. Map a port such as 2222 from host to guest port 22 and you will be able to ssh into FreedomBox from host machine as follows:
ssh -p 2222 fbx@localhost
Map 4443 on host to 443 on the guest. This make FreedomBox HTTPS service available on host using the URL https://localhost:4443/ You will need to add a mapping for each such services from host to guest.
The final option is to create two network interfaces, one host only and one NAT type. This way you can access the guest without any additional configuration, and you have internet access on the guest. The guest will be invisible to any other machines on the network.
Summary of various network types:
Guest accessible from other machines
Guest accessible from host
Works without port forwarding
Works without host connected to network
Guest has internet access
NAT and Host
8.6.2. Finding out the IP address of the virtual machine
This depends on the network configuration you chose. With a bridged adapter, your virtual machine gets its IP address from the DHCP server of your network, most likely of your Router. You can try the first couple of IP addresses or check your router web interface for a list of connected devices.
If you chose host-only adapter, the IP address is assigned by the DHCP server of your VirtualBox network. In the VirtualBox Manager, go to File -> Preferences -> Network -> Host-only Networks. You can see and edit the DHCP address range there, typically you get assigned addresses close to the Lower Address Bound.
Another possibility of finding the IP address is to login via the VirtualBox Manager (or similar software). The FreedomBox images do not have any default user accounts, so you need to set an initial user and password using the passwd-in-image script.
See also QuickStart for instructions on how to scan your network to discover the IP of the VM.
8.6.3. Networking Problems with macchanger
The package macchanger can cause network problems with VirtualBox. If you have a valid IP address on your guest's host network adapter (like 192.168.56.101) but are not able to ping or access the host (like 192.168.56.1), try uninstalling macchanger:
$ dpkg --ignore-depends=freedombox-setup --remove macchanger
You might have to manually remove the script /etc/network/if-prep-up/macchanger. If Debian complains about unmet dependencies when you use a package manager (apt-get, aptitude, dpkg), try to remove 'macchanger' from the dependencies of 'freedombox-setup' in the file /var/lib/dpkg/status.
8.6.4. Mounting Images Locally
If you want to mount images locally, use the following to copy built images off the VirtualBox:
$ mkdir /tmp/vbox-img1 /tmp/vbox-root1 $ vdfuse -f freedombox-unstable_2013.0519_virtualbox-i386-hdd.vdi /tmp/vbox-img1/ $ sudo mount -o loop /tmp/vbox-img1/Partition1 /tmp/vbox-root1 $ cp /tmp/vbox-root1/home/fbx/freedom-maker/build/freedom*vdi ~/ $ sudo umount /tmp/vbox-root1 # $ sudo umount /tmp/vbox-img1 # corruption here.
8.6.5. Fixing the time after suspend and resume
The virtual machine loses the correct time/date after suspending and resuming. One way to fix this is to create a cron-job that restarts the time service ntp. You can add a crontab entry as root to restart ntp every 15 minutes by typing 'crontab -e' and adding this line:
*/15 * * * * /etc/init.d/ntp restart
Do not restart this service too often as this increases the load of publicly and freely available NTP servers.
8.6.6. UUID collision in VB
Whenever this happens VirtualBox shows following error message: Cannot register the hard disk A with UUID ... because a hard disk B with UUID ... already exists in the media registry
Creating several VMs from the same image causes collisions due to ID's (hostname, IP, UUID, etc) that are expected to be universally unique. Most can be handeled operating the running VM. But VirtualBox complains before that (at the very creation of the VM) about the hard disk's UUID. This is usual stuff when you develop/test e.g. FreedomBox.
You can change a clone's UUID in the terminal as follows:
$ VBoxManage internalcommands sethduuid path/to/the/hd/vdi/file
FreedomBox is a pure blend of Debian. This means that all the work on FreedomBox is available in Debian as packages. It also means that any machine running Debian can be turned into a FreedomBox.
This page describes the process of installing FreedomBox on a Debian system. Currently, FreedomBox works in Debian Stable (Buster), Testing (Bullseye), and Unstable (Sid).
Important: Read general advice about hardware before building a FreedomBox with this approach.
Use a fresh Debian installation
Installing FreedomBox changes your Debian system in many important ways. This includes installing a firewall and regenerating server certificates. It is hence recommended that you install FreedomBox on a fresh Debian installation instead of an existing setup.
Console/GUI logins for non-admin users will be disabled
After FreedomBox is fully setup, your system will no longer allow users not belonging to the admin group to log in to the system via console, secure shell (SSH) or graphical login. This behaviour can be disabled from the Security page. Use the administrator account created during FreedomBox first boot for console logins and add further user accounts to admin group, if necessary.
9.1. Installing on Debian 10.0 (Buster) or newer
Check the Troubleshooting section below, for any tips or workarounds that might help during the install.
Install Debian 10.0 (Buster), or Unstable (Sid) on your hardware.
- Update your package list.
$ sudo apt-get update
Install freedombox package.
$ sudo DEBIAN_FRONTEND=noninteractive apt-get install freedombox
- The "DEBIAN_FRONTEND=noninteractive" will avoid several configuration prompts that would otherwise appear during the install.
During the installation, you will be provided a secret key that needs to be entered during the initial configuration process. Note this down. The secret can also be read at a later time from the file /var/lib/plinth/firstboot-wizard-secret.
You can start using FreedomBox. During initial wizard, you will need to enter the secret noted above.
9.2. Tips and Troubleshooting
FreedomBox uses NetworkManager to manage network configuration. If you have configured your network interfaces using Debian installer or by editing /etc/network/interfaces, FreedomBox will not manage those interfaces. (See bug #797614.) To let FreedomBox/NetworkManager manage your network interfaces, edit the /etc/network/interfaces manually and ensure that it contains only the following:
auto lo iface lo inet loopback
If you have already completed the setup process without doing this step, you will need to clear out the /etc/network/interfaces file keeping only the above lines. Then perform a reboot. On Debian 9 (Stretch), after this network connections configured by the setup step above will configure your network. Network interfaces will then be in the internal or external firewall zone. This is essential for the FreedomBox's web interface to be reachable from other machines in the network. You can tweak network manager connections with the nmtui command if you wish.
FreedomBox will use an automatically configured IP address by default. You can assign a static IP address if necessary. Network configuration changes can be done using FreedomBox web interface or by using the nmtui or nmcli commands. nmcli can be used as follows:
nmcli con mod "Ethernet connection 1" \ ipv4.addresses A.A.A.A/X \ ipv4.gateway G.G.G.G \ ipv4.dns N.N.N.N \ ipv4.dns-search somedomain.com \ ipv4.method "manual" \ ipv4.ignore-auto-dns yes \ ipv6.method ignore
- ..with the block capitals and somedomain.com replaced with your actual address, mask description, gateway and dns server details.
10. Raspberry Pi 2 Model B
Raspberry Pi 2 (Model B ) is a popular single board computer developed with the intention of promoting teaching of basic computer science in schools. It is a successor to Raspberry Pi Model B+ with much faster processor and more RAM. FreedomBox images are built and tested for it.
Please do not expect any output on a monitor connected via HDMI to this device as it does not display anything beyond the message 'Starting kernel...'. See the Quick Start page to access and control your FreedomBox from network.
Important: Read general advice about hardware before building a FreedomBox with this single board computer.
- Price: 35 USD
- Open Hardware: No
- CPU: 900 MHz quad-core ARM Cortex-A7
- RAM: 1 GB
- Storage: MicroSD card slot
- Architecture: armhf
- Ethernet: 10/100, RJ45
WiFi: None, use a USB WiFi device
- SATA: None
10.4. Non-Free Status
- Non-free blobs required: boot firmware
WiFi: Not available
11. USB Wi-Fi
FreedomBox works on many single board computers. However, many of these boards do not have built-in Wi-Fi capabilities. Even when Wi-Fi capability is available, non-free proprietary firmware is required to make them work.
A solution to the problem is to plug-in a USB Wi-Fi device into one of the available USB ports. There are many such devices available which do not require non-free firmware to work. The following is a list of such devices that work with FreedomBox devices. Some devices based on these chips have tested to work well with FreedomBox including functions such as access point mode.
11.1. Firmware Installation
The free firmware for these devices is not packaged in Debian yet. You can manually download and install the firmware as follows:
sudo su [enter password] cd /lib/firmware wget https://www.thinkpenguin.com/files/ath9k-htc/version-1.4-beta/htc_9271.fw wget https://www.thinkpenguin.com/files/ath9k_firmware_free-version/htc_7010.fw
The FreedomBox Developer Manual provides a step by step tutorial for writing apps for FreedomBox and an API reference. It is available from docs.freedombox.org.
From code, design and translation to spreading the word and donation, here are a number of ways to contribute to FreedomBox.
1. Quick Links
2. Welcome to newcomers
As a new contributor, you are more than welcome to introduce yourself to others on the FreedomBox discussion forum, mailing list or on the #freedombox IRC channel. In addition to make useful contacts, you can start reporting bugs and translate (see below) the wiki website and the FreedomBox web interface.
3. Development priorities
4. Contributions needed
4.1. Add an Application
If you are a developer and wish to see an application available in FreedomBox, you can contribute by adding the application to FreedomBox. See the FreedomBox Developer Manual. Many applications that can be added to FreedomBox have been identified on the leaving the cloud page.
List of bugs, feature requests and improvements are tracked on the FreedomBox issue tracker. In addition to that, see list of bugs to help out the Debian package we depend on. Also see the FreedomBox packaging team's dashboard for status of various packages that we use.
If you are a developer, you can contribute code to one of the sub-projects of FreedomBox. Step-by-step process of contributing code to FreedomBox is available.
FreedomBox Service: a web interface to administer the functions of FreedomBox.
Freedom Maker: a script to build FreedomBox disk images for use on various hardware devices or virtual machines.
You can pickup a task from one of the TODO lists. The individual page project pages contain information availabily of the code, how to build and TODO lists.
4.4.1. User Experience Design
If you are a user experience designer, you can help FreedomBox with the following items:
UI experience for the FreedomBox Service web interface
Logo and branding (we currently have an identity manual and logos)
Possible designs for custom FreedomBox cases on single board computers
4.4.2. Technical Design
FreedomBox needs your technical expertise to devise implementation plans for upcoming features. You can contribute to the discussion on various technical design and implementation aspects of FreedomBox. See FreedomBox discussion forum's development category.
The FreedomBox Foundation is a 501(c)(3) federal nonprofit corporation with recognition from the IRS. FreedomBox project is run by volunteers. You can help the project financially by donating via PayPal, Bitcoin or by mailing a check. Please see the donation page for details on how to donate.
4.6. Document: User Manual, Website and Wiki
FreedomBox needs better documentation for users and contributors. FreedomBox manual is prepared by aggregating various pages on the wiki and exporting to various formats. The manual is then used in FreedomBox Service and elsewhere.
If you wish to contribute to the FreedomBox wiki (and consequently the FreedomBox manual), you can create a wiki account and start editing.
For contributing to the website please start a discussion on the FreedomBox discussion forum's development category.
4.7. Quality Assurance
FreedomBox already runs on many platforms and it is not possible for developers to test all possible platforms. If you have one of the supported hardware you can help with testing FreedomBox on the platform.
When an application is made available on FreedomBox, not all of its functionality is tested in the real world by developer doing the work. Deploying the application and testing it will help ensure high quality applications in FreedomBox.
See the quality assurance page for a basic list of test cases to check for and information on reporting bugs.
All text visible to users of FreedomBox needs to be localized to various languages. This translation work includes:
Web Interface for FreedomBox
Django web framework that FreedomBox uses.
Individual applications that FreedomBox exposes to users.
If you wish to see FreedomBox available for one of your languages, please start a discussion on the FreedomBox discussion forum's development category to work with others translating for that language.
For more information, please visit the FreedomBox translators page.
4.9. Spread the Word
Speak to your family, friends, local community or at global conferences about the importance of FreedomBox. To be a successful project we need many more participants, be it users or contributors. Write about your efforts at the talks page and on the wiki.