From a7b3e685e132f2e3d2a7c818fac969176fa9e669 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 29 Apr 2019 19:17:46 -0400 Subject: [PATCH] doc: Fetch latest manual Signed-off-by: James Valleroy --- doc/Apache_userdir.raw.xml | 2 +- doc/Backups.raw.xml | 2 +- doc/Cockpit.raw.xml | 2 +- doc/Configure.raw.xml | 2 +- doc/Coquelicot.raw.xml | 2 +- doc/DateTime.raw.xml | 2 +- doc/Deluge.raw.xml | 2 +- doc/Diagnostics.raw.xml | 2 +- doc/DynamicDNS.raw.xml | 2 +- doc/Firewall.raw.xml | 2 +- doc/Ikiwiki.raw.xml | 2 +- doc/Infinoted.raw.xml | 2 +- doc/LetsEncrypt.raw.xml | 2 +- doc/MLDonkey.raw.xml | 2 +- doc/MatrixSynapse.raw.xml | 2 +- doc/MediaWiki.raw.xml | 2 +- doc/Minetest.raw.xml | 2 +- doc/Monkeysphere.raw.xml | 2 +- doc/Mumble.raw.xml | 2 +- doc/NameServices.raw.xml | 2 +- doc/Networks.raw.xml | 2 +- doc/OpenVPN.raw.xml | 2 +- doc/PageKite.raw.xml | 2 +- doc/Power.raw.xml | 2 +- doc/Privoxy.raw.xml | 2 +- doc/Quassel.raw.xml | 2 +- doc/Radicale.raw.xml | 2 +- doc/Repro.raw.xml | 2 +- doc/Roundcube.raw.xml | 2 +- doc/Searx.raw.xml | 2 +- doc/SecureShell.raw.xml | 2 +- doc/Security.raw.xml | 2 +- doc/ServiceDiscovery.raw.xml | 2 +- doc/Shadowsocks.raw.xml | 2 +- doc/Snapshots.raw.xml | 2 +- doc/Storage.raw.xml | 2 +- doc/Syncthing.raw.xml | 2 +- doc/TinyTinyRSS.raw.xml | 2 +- doc/Tor.raw.xml | 2 +- doc/Transmission.raw.xml | 2 +- doc/Upgrades.raw.xml | 2 +- doc/Users.raw.xml | 2 +- doc/ejabberd.raw.xml | 2 +- doc/freedombox-manual.raw.xml | 2055 +++++++++++++++----------- doc/images/banana-pro_thumb.jpg | Bin 0 -> 205481 bytes doc/images/pine64-plus.jpg | Bin 0 -> 32885 bytes doc/images/pine64-plus_thumb.jpg | Bin 0 -> 11308 bytes doc/images/pioneer-edition.jpg | Bin 0 -> 52740 bytes doc/images/pioneer-edition_thumb.jpg | Bin 0 -> 23691 bytes 49 files changed, 1258 insertions(+), 883 deletions(-) create mode 100644 doc/images/banana-pro_thumb.jpg create mode 100644 doc/images/pine64-plus.jpg create mode 100644 doc/images/pine64-plus_thumb.jpg create mode 100644 doc/images/pioneer-edition.jpg create mode 100644 doc/images/pioneer-edition_thumb.jpg diff --git a/doc/Apache_userdir.raw.xml b/doc/Apache_userdir.raw.xml index 399c32e1f..c4e559f1a 100644 --- a/doc/Apache_userdir.raw.xml +++ b/doc/Apache_userdir.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Apache_userdir32019-02-27 00:08:57JamesValleroyremove wiki links22019-02-17 21:44:22MikkelKirkgaardNielsenrefer to ourselves as User websites, add basics table from new template12019-02-13 23:15:52MikkelKirkgaardNielsenadd draft page
User websites (userdir)
What is User websites?User websites is a module of the Apache webserver enabled to allow users defined in the FreedomBox system to expose a set of static files on the FreedomBox filesystem as a website to the local network and/or the internet according to the network and firewall setup. Application basicsCategory File sharing Available since version 0.9.4Upstream project website Upstream end user documentation
ScreenshotAdd when/if an interface is made for Plinth
Using User websitesThe module is always enabled and offers no configuration from the Plinth web interface. Currently its existence is not even visible in the Plinth web interface. Using the modules capability to serve documents requires just to place the documents in the designated directory in a Plinth user's home directory in the filesystem. This directory is: public_html Thus the absolute path for the directory of a user named fbx with home directory in /home/fbx will be /home/fbx/public_html. User websites will serve documents placed in this directory when requests for documents with the URI path "~fbx" are received. For the the example.org domain thus a request for the document example.org/~fbx/index.html will transfer the file in /home/fbx/public_html/index.html.
Using SFTP to create public_html and upload documentsTo be written Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Apache_userdir32019-02-27 00:08:57JamesValleroyremove wiki links22019-02-17 21:44:22MikkelKirkgaardNielsenrefer to ourselves as User websites, add basics table from new template12019-02-13 23:15:52MikkelKirkgaardNielsenadd draft page
User websites (userdir)
What is User websites?User websites is a module of the Apache webserver enabled to allow users defined in the FreedomBox system to expose a set of static files on the FreedomBox filesystem as a website to the local network and/or the internet according to the network and firewall setup. Application basicsCategory File sharing Available since version 0.9.4Upstream project website Upstream end user documentation
ScreenshotAdd when/if an interface is made for Plinth
Using User websitesThe module is always enabled and offers no configuration from the Plinth web interface. Currently its existence is not even visible in the Plinth web interface. Using the modules capability to serve documents requires just to place the documents in the designated directory in a Plinth user's home directory in the filesystem. This directory is: public_html Thus the absolute path for the directory of a user named fbx with home directory in /home/fbx will be /home/fbx/public_html. User websites will serve documents placed in this directory when requests for documents with the URI path "~fbx" are received. For the the example.org domain thus a request for the document example.org/~fbx/index.html will transfer the file in /home/fbx/public_html/index.html.
Using SFTP to create public_html and upload documentsTo be written Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Backups.raw.xml b/doc/Backups.raw.xml index 2bd289c2e..74d823baa 100644 --- a/doc/Backups.raw.xml +++ b/doc/Backups.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Backups302019-02-26 23:33:42SunilMohanAdapaUpdate information about tt-rss292019-02-23 00:11:05JamesValleroyadd mldonkey282019-02-04 01:16:41SunilMohanAdapaAdd FreedomBox footer272019-01-31 01:30:48SunilMohanAdapaMinor formatting262019-01-31 01:29:18SunilMohanAdapaMake manual friendly, consolidate feature data, update description252019-01-30 17:45:57SunilMohanAdapaMinor release update242019-01-23 00:43:21SunilMohanAdapaUpdate information about syncthing232019-01-18 22:26:06SunilMohanAdapaUpdate OpenVPN information222018-10-30 05:04:32SunilMohanAdapaUpdate information about Tahoe-LAFS212018-10-29 23:50:51SunilMohanAdapaUpdate information about users and letsencrypt202018-10-26 05:36:32SunilMohanAdapaUpdate information about Monkeysphere192018-10-23 23:30:58SunilMohanAdapaUpdate information about upgrades182018-10-23 22:21:23SunilMohanAdapaAdd information about Tor172018-10-22 17:17:31SunilMohanAdapaUpdate information about newly merged changes162018-10-19 17:12:53SunilMohanAdapaAdd information about SSH152018-10-19 15:38:54SunilMohanAdapaUpdate information on recent progress142018-10-15 23:09:09SunilMohanAdapaUpdate status of datetime and deluge132018-10-09 03:22:17SunilMohanAdapaUpdate information about release of version 0.40122018-10-04 11:34:24JamesValleroyremove links to "FreedomBox" page112018-10-04 04:47:13SunilMohanAdapaMinor formatting102018-10-04 04:46:50SunilMohanAdapaUpdate list of supported applications92018-10-02 15:43:29DannyHaidar82018-10-02 15:41:49DannyHaidar72018-10-02 15:38:00DannyHaidar62018-10-01 17:38:55DannyHaidar52018-10-01 16:50:33DannyHaidar42018-10-01 16:49:00DannyHaidar32018-10-01 16:39:47DannyHaidar22018-10-01 16:37:48DannyHaidar12018-10-01 16:36:42DannyHaidar
BackupsFreedomBox includes the ability to backup and restore data, preferences, configuration and secrets from most of the applications. The Backups feature is built using Borg backup software. Borg is a deduplicating and compressing backup program. It is designed for efficient and secure backups. This backups feature can be used to selectively backup and restore data on an app-by-app basis. Backed up data can be stored on the FreedomBox machine itself or on a remote server. Any remote server providing SSH access can be used as a backup storage repository for FreedomBox backups. Data stored remotely may be encrypted and in such cases remote server cannot access your decrypted data.
Status of Backups Feature App/Feature Support in Version Notes Avahi - no backup needed Backups - no backup needed Bind 0.41 Cockpit - no backup needed Coquelicot 0.40 includes uploaded files Datetime 0.41 Deluge 0.41 does not include downloaded/seeding files Diagnostics - no backup needed Dynamic DNS 0.39 ejabberd 0.39 includes all data and configuration Firewall - no backup needed ikiwiki 0.39 includes all wikis/blogs and their content infinoted 0.39 includes all data and keys JSXC - no backup needed Let's Encrypt 0.42 Matrix Synapse 0.39 includes media and uploads MediaWiki 0.39 includes wiki pages and uploaded files Minetest 0.39 MLDonkey 19.0 Monkeysphere 0.42 Mumble 0.40 Names - no backup needed Networks No No plans currently to implement backup OpenVPN 0.48 includes all user and server keys Pagekite 0.40 Power - no backup needed Privoxy - no backup needed Quassel 0.40 includes users and logs Radicale 0.39 includes calendar and cards data for all users repro 0.39 includes all users, data and keys Roundcube - no backup needed SearX - no backup needed Secure Shell (SSH) Server 0.41 includes host keys Security 0.41 Shadowsocks 0.40 only secrets Sharing 0.40 does not include the data in the shared folders Snapshot 0.41 only configuration, does not include snapshot data Storage - no backup needed Syncthing 0.48 does not include data in the shared folders Tahoe-LAFS 0.42 includes all data and configuration Tiny Tiny RSS 19.2 includes database containing feeds, stories, etc. Tor 0.42 includes configuration and secrets such as hidden service keys Transmission 0.40 does not include downloaded/seeding files Upgrades 0.42 Users No No plans currently to implement backup
How to install and use BackupsStep 1 Backups: Step 1 Step 2 Backups: Step 2 Step 3 Backups: Step 3 Step 4 Backups: Step 4 Step 5 Backups: Step 5 Step 6 Backups: Step 6 Step 7 Backups: Step 7 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Backups302019-02-26 23:33:42SunilMohanAdapaUpdate information about tt-rss292019-02-23 00:11:05JamesValleroyadd mldonkey282019-02-04 01:16:41SunilMohanAdapaAdd FreedomBox footer272019-01-31 01:30:48SunilMohanAdapaMinor formatting262019-01-31 01:29:18SunilMohanAdapaMake manual friendly, consolidate feature data, update description252019-01-30 17:45:57SunilMohanAdapaMinor release update242019-01-23 00:43:21SunilMohanAdapaUpdate information about syncthing232019-01-18 22:26:06SunilMohanAdapaUpdate OpenVPN information222018-10-30 05:04:32SunilMohanAdapaUpdate information about Tahoe-LAFS212018-10-29 23:50:51SunilMohanAdapaUpdate information about users and letsencrypt202018-10-26 05:36:32SunilMohanAdapaUpdate information about Monkeysphere192018-10-23 23:30:58SunilMohanAdapaUpdate information about upgrades182018-10-23 22:21:23SunilMohanAdapaAdd information about Tor172018-10-22 17:17:31SunilMohanAdapaUpdate information about newly merged changes162018-10-19 17:12:53SunilMohanAdapaAdd information about SSH152018-10-19 15:38:54SunilMohanAdapaUpdate information on recent progress142018-10-15 23:09:09SunilMohanAdapaUpdate status of datetime and deluge132018-10-09 03:22:17SunilMohanAdapaUpdate information about release of version 0.40122018-10-04 11:34:24JamesValleroyremove links to "FreedomBox" page112018-10-04 04:47:13SunilMohanAdapaMinor formatting102018-10-04 04:46:50SunilMohanAdapaUpdate list of supported applications92018-10-02 15:43:29DannyHaidar82018-10-02 15:41:49DannyHaidar72018-10-02 15:38:00DannyHaidar62018-10-01 17:38:55DannyHaidar52018-10-01 16:50:33DannyHaidar42018-10-01 16:49:00DannyHaidar32018-10-01 16:39:47DannyHaidar22018-10-01 16:37:48DannyHaidar12018-10-01 16:36:42DannyHaidar
BackupsFreedomBox includes the ability to backup and restore data, preferences, configuration and secrets from most of the applications. The Backups feature is built using Borg backup software. Borg is a deduplicating and compressing backup program. It is designed for efficient and secure backups. This backups feature can be used to selectively backup and restore data on an app-by-app basis. Backed up data can be stored on the FreedomBox machine itself or on a remote server. Any remote server providing SSH access can be used as a backup storage repository for FreedomBox backups. Data stored remotely may be encrypted and in such cases remote server cannot access your decrypted data.
Status of Backups Feature App/Feature Support in Version Notes Avahi - no backup needed Backups - no backup needed Bind 0.41 Cockpit - no backup needed Coquelicot 0.40 includes uploaded files Datetime 0.41 Deluge 0.41 does not include downloaded/seeding files Diagnostics - no backup needed Dynamic DNS 0.39 ejabberd 0.39 includes all data and configuration Firewall - no backup needed ikiwiki 0.39 includes all wikis/blogs and their content infinoted 0.39 includes all data and keys JSXC - no backup needed Let's Encrypt 0.42 Matrix Synapse 0.39 includes media and uploads MediaWiki 0.39 includes wiki pages and uploaded files Minetest 0.39 MLDonkey 19.0 Monkeysphere 0.42 Mumble 0.40 Names - no backup needed Networks No No plans currently to implement backup OpenVPN 0.48 includes all user and server keys Pagekite 0.40 Power - no backup needed Privoxy - no backup needed Quassel 0.40 includes users and logs Radicale 0.39 includes calendar and cards data for all users repro 0.39 includes all users, data and keys Roundcube - no backup needed SearX - no backup needed Secure Shell (SSH) Server 0.41 includes host keys Security 0.41 Shadowsocks 0.40 only secrets Sharing 0.40 does not include the data in the shared folders Snapshot 0.41 only configuration, does not include snapshot data Storage - no backup needed Syncthing 0.48 does not include data in the shared folders Tahoe-LAFS 0.42 includes all data and configuration Tiny Tiny RSS 19.2 includes database containing feeds, stories, etc. Tor 0.42 includes configuration and secrets such as hidden service keys Transmission 0.40 does not include downloaded/seeding files Upgrades 0.42 Users No No plans currently to implement backup
How to install and use BackupsStep 1 Backups: Step 1 Step 2 Backups: Step 2 Step 3 Backups: Step 3 Step 4 Backups: Step 4 Step 5 Backups: Step 5 Step 6 Backups: Step 6 Step 7 Backups: Step 7 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Cockpit.raw.xml b/doc/Cockpit.raw.xml index fd7bca9bf..c55f9fa5d 100644 --- a/doc/Cockpit.raw.xml +++ b/doc/Cockpit.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Cockpit22019-01-10 21:41:56SunilMohanAdapaWrite manual page for Cockpit12018-03-02 12:57:48JosephNuthalapatiCreate stub for Cockpit
Cockpit (Server Administration)Cockpit is a server manager that makes it easy to administer GNU/Linux servers via a web browser. On a FreedomBox, controls are available for many advanced functions that are not usually required. A web based terminal for console operations is also available. It can be accessed by any user on your FreedomBox belonging to the admin group. Use cockpit only if you are an administrator of GNU/Linux systems with advanced skills. FreedomBox tries to coexist with changes to system by system administrators and system administration tools like Cockpit. However, improper changes to the system might causes failures in FreedomBox functions.
Using CockpitInstall Cockpit like any other application on FreedomBox. Make sure that Cockpit is enabled after that. cockpit-enable.png Ensure that the user account on FreedomBox that will used for Cockpit is part of the administrators group. cockpit-admin-user.png Launch the Cockpit web interface. Login using the configured user account. cockpit-login.png Start using cockpit. cockpit-system.png Cockpit is usable on mobile interfaces too. cockpit-mobile.png
FeaturesThe following features of Cockpit may be useful for advanced FreedomBox users.
System DashboardCockpit has a system dashboard that Shows detailed hardware information Shows basic performance metrics of a system Allows changing system time and timezone Allows changing hostname. Please use FreedomBox UI to do this Shows SSH server fingerprints cockpit-system.png
Viewing System LogsCockpit allows querying system logs and examining them in full detail. cockpit-logs.png
Managing StorageCockpit allows following advanced storage functions: View full disk information Editing disk partitions RAID management cockpit-storage1.png cockpit-storage2.png
NetworkingCockpit and FreedomBox both rely on NetworkManager to configure the network. However, Cockpit offers some advanced configuration not available on FreedomBox: Route configuration Configure Bonds, Bridges, VLANs cockpit-network1.png cockpit-network2.png cockpit-network3.png
ServicesCockpit allows management of services and periodic jobs (similar to cron). cockpit-services1.png cockpit-services2.png
Web TerminalCockpit offers a web based terminal that can be used perform manual system administration tasks. cockpit-terminal.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Cockpit22019-01-10 21:41:56SunilMohanAdapaWrite manual page for Cockpit12018-03-02 12:57:48JosephNuthalapatiCreate stub for Cockpit
Cockpit (Server Administration)Cockpit is a server manager that makes it easy to administer GNU/Linux servers via a web browser. On a FreedomBox, controls are available for many advanced functions that are not usually required. A web based terminal for console operations is also available. It can be accessed by any user on your FreedomBox belonging to the admin group. Use cockpit only if you are an administrator of GNU/Linux systems with advanced skills. FreedomBox tries to coexist with changes to system by system administrators and system administration tools like Cockpit. However, improper changes to the system might causes failures in FreedomBox functions.
Using CockpitInstall Cockpit like any other application on FreedomBox. Make sure that Cockpit is enabled after that. cockpit-enable.png Ensure that the user account on FreedomBox that will used for Cockpit is part of the administrators group. cockpit-admin-user.png Launch the Cockpit web interface. Login using the configured user account. cockpit-login.png Start using cockpit. cockpit-system.png Cockpit is usable on mobile interfaces too. cockpit-mobile.png
FeaturesThe following features of Cockpit may be useful for advanced FreedomBox users.
System DashboardCockpit has a system dashboard that Shows detailed hardware information Shows basic performance metrics of a system Allows changing system time and timezone Allows changing hostname. Please use FreedomBox UI to do this Shows SSH server fingerprints cockpit-system.png
Viewing System LogsCockpit allows querying system logs and examining them in full detail. cockpit-logs.png
Managing StorageCockpit allows following advanced storage functions: View full disk information Editing disk partitions RAID management cockpit-storage1.png cockpit-storage2.png
NetworkingCockpit and FreedomBox both rely on NetworkManager to configure the network. However, Cockpit offers some advanced configuration not available on FreedomBox: Route configuration Configure Bonds, Bridges, VLANs cockpit-network1.png cockpit-network2.png cockpit-network3.png
ServicesCockpit allows management of services and periodic jobs (similar to cron). cockpit-services1.png cockpit-services2.png
Web TerminalCockpit offers a web based terminal that can be used perform manual system administration tasks. cockpit-terminal.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Configure.raw.xml b/doc/Configure.raw.xml index 6968d9bbe..6d2743a1a 100644 --- a/doc/Configure.raw.xml +++ b/doc/Configure.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Configure92019-02-28 10:25:01JosephNuthalapatiRename default app to webserver home page82018-10-09 09:54:01JosephNuthalapatiImprove formatting72018-07-25 08:38:53JosephNuthalapatiRemove /home as an alias to /freedombox62018-07-24 17:51:28SunilMohanAdapaRename FreedomBox Plinth to FreedomBox Service (Plinth)52018-07-24 16:12:49JosephNuthalapatiAdd tip about bookmarking FreedomBox Plinth42018-07-24 13:52:47JosephNuthalapatiAdd wiki entry about Default App32016-12-31 04:11:43JamesValleroymention how domain name is used22016-12-31 04:07:26JamesValleroyfix outline12016-08-21 16:35:55DrahtseilCreated Configure
ConfigureConfigure has some general configuration options:
HostnameHostname is the local name by which other devices on the local network can reach your FreedomBox. The default hostname is freedombox.
Domain NameDomain 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.
Webserver Home PageThis is an advanced option that allows you to set something other than FreedomBox Service (Plinth) as the home page to be served on the domain name of the FreedomBox. For example, if your FreedomBox's domain name is and you set MediaWiki as the home page, visiting will take you to instead of the usual . You can set any web application, Ikiwiki wikis and blogs or Apache's default index.html page as the web server home page. Once some other app is set as the home page, you can only navigate to the FreedomBox Service (Plinth) by typing into the browser. /freedombox can also be used as an alias to /plinth Tip: Bookmark the URL of FreedomBox Service (Plinth) before setting the home page to some other app. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Configure92019-02-28 10:25:01JosephNuthalapatiRename default app to webserver home page82018-10-09 09:54:01JosephNuthalapatiImprove formatting72018-07-25 08:38:53JosephNuthalapatiRemove /home as an alias to /freedombox62018-07-24 17:51:28SunilMohanAdapaRename FreedomBox Plinth to FreedomBox Service (Plinth)52018-07-24 16:12:49JosephNuthalapatiAdd tip about bookmarking FreedomBox Plinth42018-07-24 13:52:47JosephNuthalapatiAdd wiki entry about Default App32016-12-31 04:11:43JamesValleroymention how domain name is used22016-12-31 04:07:26JamesValleroyfix outline12016-08-21 16:35:55DrahtseilCreated Configure
ConfigureConfigure has some general configuration options:
HostnameHostname is the local name by which other devices on the local network can reach your FreedomBox. The default hostname is freedombox.
Domain NameDomain 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.
Webserver Home PageThis is an advanced option that allows you to set something other than FreedomBox Service (Plinth) as the home page to be served on the domain name of the FreedomBox. For example, if your FreedomBox's domain name is and you set MediaWiki as the home page, visiting will take you to instead of the usual . You can set any web application, Ikiwiki wikis and blogs or Apache's default index.html page as the web server home page. Once some other app is set as the home page, you can only navigate to the FreedomBox Service (Plinth) by typing into the browser. /freedombox can also be used as an alias to /plinth Tip: Bookmark the URL of FreedomBox Service (Plinth) before setting the home page to some other app. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Coquelicot.raw.xml b/doc/Coquelicot.raw.xml index 36dc557bb..ed865298b 100644 --- a/doc/Coquelicot.raw.xml +++ b/doc/Coquelicot.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Coquelicot62018-12-30 19:59:56DrahtseilBasic priniciple52018-03-05 09:15:01JosephNuthalapaticoquelicot: Fix broken links42018-02-26 17:14:51JamesValleroyincluded in 0.2432018-02-12 23:48:10JamesValleroybump version22018-02-12 23:47:14JamesValleroyreplace fancy quote characters with plain quote characters12018-02-10 03:14:55JosephNuthalapatiCreate new page for Coquelicot
File Sharing (Coquelicot)
About CoquelicotCoquelicot is a "one-click" file sharing web application with a focus on protecting users' privacy. The basic principle is simple: users can upload a file to the server, in return they get a unique URL which can be shared with others in order to download the file. A download password can be defined. After the upload you get a unique link that can be shared to your partners in order to Read more about Coquelicot at the Coquelicot README Available since: version 0.24.0
When to use CoquelicotCoquelicot is best used to quickly share a single file. If you want to share a folder, for a single use, compress the folder and share it over Coquelicot which must be kept synchronized between computers, use Syncthing instead Coquelicot can only provide a reasonable degree of privacy. If anonymity is required, you should consider using the desktop application Onionshare instead. Since Coquelicot fully uploads the file to the server, your FreedomBox will incur both upload and download bandwidth costs. For very large files, consider sharing them using BitTorrent by creating a private torrent file. If anonymity is required, use Onionshare. It is P2P and doesn't require a server.
Coquelicot on FreedomBoxWith Coquelicot installed, you can upload files to your FreedomBox server and privately share them. Post installation, the Coquelicot page offers two settings. Upload Password: Coquelicot on FreedomBox is currently configured to use simple password authentication for ease of use. Remember that it's one global password for this Coquelicot instance and not your user password for FreedomBox. You need not remember this password. You can set a new one from the Plinth interface anytime. Maximum File Size: You can alter the maximum size of the file that can be transferred through Coquelicot using this setting. The size is in Mebibytes. The maximum file size is only limited by the disk size of your FreedomBox.
PrivacySomeone monitoring your network traffic might find out that some file is being transferred through your FreedomBox and also possibly its size, but will not know the file name. Coquelicot encrypts files on the server and also fills the file contents with 0s when deleting them. This eliminates the risk of file contents being revealed in the event of your FreedomBox being confiscated or stolen. The real risk to mitigate here is a third-party also downloading your file along with the intended recipient.
Sharing over instant messengersSome instant messengers which have previews for websites might download your file in order to show a preview in the conversation. If you set the option of one-time download on a file, you might notice that the one download will be used up by the instant messenger. If sharing over such messengers, please use a download password in combination with a one-time download option.
Sharing download links privatelyIt is recommended to share your file download links and download passwords over encrypted channels. You can simply avoid all the above problems with instant messenger previews by using instant messengers that support encrypted conversations like Riot with Matrix Synapse or XMPP (ejabberd server on FreedomBox) with clients that support end-to-end encryption. Send the download link and the download password in two separate messages (helps if your messenger supports perfect forward secrecy like XMPP with OTR). You can also share your links over PGP-encrypted email using Thunderbird. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Coquelicot62018-12-30 19:59:56DrahtseilBasic priniciple52018-03-05 09:15:01JosephNuthalapaticoquelicot: Fix broken links42018-02-26 17:14:51JamesValleroyincluded in 0.2432018-02-12 23:48:10JamesValleroybump version22018-02-12 23:47:14JamesValleroyreplace fancy quote characters with plain quote characters12018-02-10 03:14:55JosephNuthalapatiCreate new page for Coquelicot
File Sharing (Coquelicot)
About CoquelicotCoquelicot is a "one-click" file sharing web application with a focus on protecting users' privacy. The basic principle is simple: users can upload a file to the server, in return they get a unique URL which can be shared with others in order to download the file. A download password can be defined. After the upload you get a unique link that can be shared to your partners in order to Read more about Coquelicot at the Coquelicot README Available since: version 0.24.0
When to use CoquelicotCoquelicot is best used to quickly share a single file. If you want to share a folder, for a single use, compress the folder and share it over Coquelicot which must be kept synchronized between computers, use Syncthing instead Coquelicot can only provide a reasonable degree of privacy. If anonymity is required, you should consider using the desktop application Onionshare instead. Since Coquelicot fully uploads the file to the server, your FreedomBox will incur both upload and download bandwidth costs. For very large files, consider sharing them using BitTorrent by creating a private torrent file. If anonymity is required, use Onionshare. It is P2P and doesn't require a server.
Coquelicot on FreedomBoxWith Coquelicot installed, you can upload files to your FreedomBox server and privately share them. Post installation, the Coquelicot page offers two settings. Upload Password: Coquelicot on FreedomBox is currently configured to use simple password authentication for ease of use. Remember that it's one global password for this Coquelicot instance and not your user password for FreedomBox. You need not remember this password. You can set a new one from the Plinth interface anytime. Maximum File Size: You can alter the maximum size of the file that can be transferred through Coquelicot using this setting. The size is in Mebibytes. The maximum file size is only limited by the disk size of your FreedomBox.
PrivacySomeone monitoring your network traffic might find out that some file is being transferred through your FreedomBox and also possibly its size, but will not know the file name. Coquelicot encrypts files on the server and also fills the file contents with 0s when deleting them. This eliminates the risk of file contents being revealed in the event of your FreedomBox being confiscated or stolen. The real risk to mitigate here is a third-party also downloading your file along with the intended recipient.
Sharing over instant messengersSome instant messengers which have previews for websites might download your file in order to show a preview in the conversation. If you set the option of one-time download on a file, you might notice that the one download will be used up by the instant messenger. If sharing over such messengers, please use a download password in combination with a one-time download option.
Sharing download links privatelyIt is recommended to share your file download links and download passwords over encrypted channels. You can simply avoid all the above problems with instant messenger previews by using instant messengers that support encrypted conversations like Riot with Matrix Synapse or XMPP (ejabberd server on FreedomBox) with clients that support end-to-end encryption. Send the download link and the download password in two separate messages (helps if your messenger supports perfect forward secrecy like XMPP with OTR). You can also share your links over PGP-encrypted email using Thunderbird. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox CategoryFreedomBox
\ No newline at end of file diff --git a/doc/DateTime.raw.xml b/doc/DateTime.raw.xml index 5971897b1..dd2999e5a 100644 --- a/doc/DateTime.raw.xml +++ b/doc/DateTime.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/DateTime22017-03-31 20:20:57DrahtseilScreenshot DateTime12016-08-21 09:26:45DrahtseilCreated Date & Time
Date & TimeThis 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). DateTime.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/DateTime22017-03-31 20:20:57DrahtseilScreenshot DateTime12016-08-21 09:26:45DrahtseilCreated Date & Time
Date & TimeThis 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). DateTime.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Deluge.raw.xml b/doc/Deluge.raw.xml index 56f3051e6..4e0714158 100644 --- a/doc/Deluge.raw.xml +++ b/doc/Deluge.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Deluge112016-12-31 01:32:15JamesValleroyadd initial setup directions102016-12-30 19:20:00JamesValleroyreword92016-12-30 19:14:16JamesValleroyadd intro paragraph82016-12-30 19:00:50JamesValleroyno space in "BitTorrent"72016-12-26 18:07:46JamesValleroyadd screenshot62016-09-01 19:05:24Drahtseiladapted title to Plinth wording52016-04-10 07:26:48PhilippeBaretAdded bottom navigation link42015-12-15 20:41:02PhilippeBaretCorrection32015-12-15 20:40:16PhilippeBaretCorrection22015-12-15 18:16:28PhilippeBaretAdded Deluge definition12015-12-15 16:59:01PhilippeBaretCreated new Deluge page for manual
BitTorrent (Deluge)
What is Deluge?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients 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.
ScreenshotDeluge Web UI
Initial SetupAfter installing Deluge, it can be accessed by pointing your browser to https://<your freedombox>/deluge. You will need to enter a password to login: Deluge 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. Deluge Connection Manager (Offline) Now it should say "Online". Click "Connect" to complete the setup. Deluge Connection Manager (Online) 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Deluge112016-12-31 01:32:15JamesValleroyadd initial setup directions102016-12-30 19:20:00JamesValleroyreword92016-12-30 19:14:16JamesValleroyadd intro paragraph82016-12-30 19:00:50JamesValleroyno space in "BitTorrent"72016-12-26 18:07:46JamesValleroyadd screenshot62016-09-01 19:05:24Drahtseiladapted title to Plinth wording52016-04-10 07:26:48PhilippeBaretAdded bottom navigation link42015-12-15 20:41:02PhilippeBaretCorrection32015-12-15 20:40:16PhilippeBaretCorrection22015-12-15 18:16:28PhilippeBaretAdded Deluge definition12015-12-15 16:59:01PhilippeBaretCreated new Deluge page for manual
BitTorrent (Deluge)
What is Deluge?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients 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.
ScreenshotDeluge Web UI
Initial SetupAfter installing Deluge, it can be accessed by pointing your browser to https://<your freedombox>/deluge. You will need to enter a password to login: Deluge 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. Deluge Connection Manager (Offline) Now it should say "Online". Click "Connect" to complete the setup. Deluge Connection Manager (Online) 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Diagnostics.raw.xml b/doc/Diagnostics.raw.xml index fad974d1c..c02acc043 100644 --- a/doc/Diagnostics.raw.xml +++ b/doc/Diagnostics.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Diagnostics12016-08-21 09:43:52DrahtseilCreated Diagnostics
DiagnosticsThe 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Diagnostics12016-08-21 09:43:52DrahtseilCreated Diagnostics
DiagnosticsThe 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/DynamicDNS.raw.xml b/doc/DynamicDNS.raw.xml index 0d742af33..9af09de5d 100644 --- a/doc/DynamicDNS.raw.xml +++ b/doc/DynamicDNS.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/DynamicDNS152019-02-26 03:20:16JamesValleroyspelling142018-03-11 03:11:04JosephNuthalapatiFix oversized image132017-03-31 20:35:42Drahtseilupdated screenshot122016-09-09 15:40:08SunilMohanAdapaMinor indentation fix with screenshot112016-09-01 19:18:48Drahtseiladapted title to Plinth wording102016-08-15 18:46:51DrahtseilScreenshot GNU-DIP92016-04-14 14:22:41PhilippeBaretAdded accurate How to create a DNS name with GnuDIP82016-04-10 07:15:47PhilippeBaretAdded bottom navigation link72016-01-11 06:28:36PhilippeBaretCorrection62015-12-15 18:48:25PhilippeBaretAdded definition title to Dynamic DNS page52015-09-13 15:02:37SunilMohanAdapaDemote headings one level for inclusion into manual42015-09-13 13:14:41SunilMohanAdapaMove DynamicDNS page to manual32015-08-13 13:03:13SunilMohanAdapaAdd more introduction and re-organize.22015-08-09 21:38:52DanielSteglich12015-08-09 21:23:48DanielSteglich
Dynamic DNS Client
What is Dynamic DNS?In order to reach a server on the Internet, the server needs to have permanent address also know 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.
GnuDIP vs. Update URLThere 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.
Using the GnuDIP protocolRegister an account with any Dynamic DNS service provider. A free service provided by the FreedomBox community is available at . 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. Dynamic DNS Settings Fill Domain Name, Username, Password information given by your provider into the corresponding fields.
Using an Update URLThis 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>.
Checking If It WorksMake 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.
Recap: How to create a DNS name with GnuDIPto delete or to replace the old text 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 (try this url in your browser, you will figure out immediately) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/DynamicDNS152019-02-26 03:20:16JamesValleroyspelling142018-03-11 03:11:04JosephNuthalapatiFix oversized image132017-03-31 20:35:42Drahtseilupdated screenshot122016-09-09 15:40:08SunilMohanAdapaMinor indentation fix with screenshot112016-09-01 19:18:48Drahtseiladapted title to Plinth wording102016-08-15 18:46:51DrahtseilScreenshot GNU-DIP92016-04-14 14:22:41PhilippeBaretAdded accurate How to create a DNS name with GnuDIP82016-04-10 07:15:47PhilippeBaretAdded bottom navigation link72016-01-11 06:28:36PhilippeBaretCorrection62015-12-15 18:48:25PhilippeBaretAdded definition title to Dynamic DNS page52015-09-13 15:02:37SunilMohanAdapaDemote headings one level for inclusion into manual42015-09-13 13:14:41SunilMohanAdapaMove DynamicDNS page to manual32015-08-13 13:03:13SunilMohanAdapaAdd more introduction and re-organize.22015-08-09 21:38:52DanielSteglich12015-08-09 21:23:48DanielSteglich
Dynamic DNS Client
What is Dynamic DNS?In order to reach a server on the Internet, the server needs to have permanent address also know 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.
GnuDIP vs. Update URLThere 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.
Using the GnuDIP protocolRegister an account with any Dynamic DNS service provider. A free service provided by the FreedomBox community is available at . 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. Dynamic DNS Settings Fill Domain Name, Username, Password information given by your provider into the corresponding fields.
Using an Update URLThis 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>.
Checking If It WorksMake 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.
Recap: How to create a DNS name with GnuDIPto delete or to replace the old text 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 (try this url in your browser, you will figure out immediately) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Firewall.raw.xml b/doc/Firewall.raw.xml index 2bc43df0e..86e661896 100644 --- a/doc/Firewall.raw.xml +++ b/doc/Firewall.raw.xml @@ -14,4 +14,4 @@ firewall-cmd --permanent --zone=internal --add-port=5353/udp]]> --remove-interface=]]>Example: To add an interface to a zone: --add-interface= firewall-cmd --permanent --zone= --add-interface=]]>Example: InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file +firewall-cmd --permanent --zone=internal --add-interface=eth0]]>InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/Ikiwiki.raw.xml b/doc/Ikiwiki.raw.xml index e7ec2e5bd..51d96b4df 100644 --- a/doc/Ikiwiki.raw.xml +++ b/doc/Ikiwiki.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Ikiwiki92016-12-26 19:18:01JamesValleroyadd screenshots82016-09-01 19:15:54Drahtseiladapted title to Plinth wording72016-05-26 17:19:45JamesValleroynew section on adding users as wiki admins62016-04-13 01:10:28PhilippeBaretAdded blog to quick start entry in Ikiwiki Manual52016-04-13 01:00:22PhilippeBaretAdded a "Quick Start" entry in Ikiwiki manual42016-04-10 07:21:53PhilippeBaretAdded bottom navigation link32015-12-15 19:54:35PhilippeBaretAdded Ikiwiki definition22015-11-29 19:13:55PhilippeBaretadded ## BEGIN_INCLUDE12015-09-13 17:06:14JamesValleroyadd ikiwiki page for manual
Wiki and Blog (Ikiwiki)
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.
Quick StartAfter 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.
Creating a wiki or blogYou can create a wiki or blog to be hosted on your FreedomBox through the Wiki & Blog (Ikiwiki) page in Plinth. 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. ikiwiki: Create
Accessing your wiki or blogFrom 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. ikiwiki: Manage 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.
User login through SSOBesides 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 Plinth (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.
Adding FreedomBox users as wiki adminsLogin 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". Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Ikiwiki92016-12-26 19:18:01JamesValleroyadd screenshots82016-09-01 19:15:54Drahtseiladapted title to Plinth wording72016-05-26 17:19:45JamesValleroynew section on adding users as wiki admins62016-04-13 01:10:28PhilippeBaretAdded blog to quick start entry in Ikiwiki Manual52016-04-13 01:00:22PhilippeBaretAdded a "Quick Start" entry in Ikiwiki manual42016-04-10 07:21:53PhilippeBaretAdded bottom navigation link32015-12-15 19:54:35PhilippeBaretAdded Ikiwiki definition22015-11-29 19:13:55PhilippeBaretadded ## BEGIN_INCLUDE12015-09-13 17:06:14JamesValleroyadd ikiwiki page for manual
Wiki and Blog (Ikiwiki)
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.
Quick StartAfter 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.
Creating a wiki or blogYou can create a wiki or blog to be hosted on your FreedomBox through the Wiki & Blog (Ikiwiki) page in Plinth. 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. ikiwiki: Create
Accessing your wiki or blogFrom 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. ikiwiki: Manage 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.
User login through SSOBesides 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 Plinth (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.
Adding FreedomBox users as wiki adminsLogin 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". Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Infinoted.raw.xml b/doc/Infinoted.raw.xml index 6ed2d874d..ed3460a0e 100644 --- a/doc/Infinoted.raw.xml +++ b/doc/Infinoted.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Infinoted12017-01-21 17:23:17JamesValleroycreate page for infinoted
Gobby Server (infinoted)infinoted is a server for Gobby, a collaborative text editor. To use it, download Gobby, desktop client and install it. Then start Gobby and select "Connect to Server" and enter your FreedomBox's domain name.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for infinoted: TCP 6523 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Infinoted12017-01-21 17:23:17JamesValleroycreate page for infinoted
Gobby Server (infinoted)infinoted is a server for Gobby, a collaborative text editor. To use it, download Gobby, desktop client and install it. Then start Gobby and select "Connect to Server" and enter your FreedomBox's domain name.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for infinoted: TCP 6523 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/LetsEncrypt.raw.xml b/doc/LetsEncrypt.raw.xml index 229f53d53..0cff5e396 100644 --- a/doc/LetsEncrypt.raw.xml +++ b/doc/LetsEncrypt.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/LetsEncrypt92019-02-26 03:21:08JamesValleroyspelling82018-03-11 03:16:47JosephNuthalapati72017-01-19 00:18:41JamesValleroyreplace quote character62017-01-07 19:48:45JamesValleroyadd port forwarding info52017-01-07 18:21:14JamesValleroyclarify step42016-08-21 19:00:07Drahtseil32016-08-21 18:59:20DrahtseilScreencast of the setting up22016-08-21 17:57:07Drahtseilscreenshots12016-08-21 17:43:20DrahtseilCreated Let's Encypt
Certificates (Let's Encrypt)A digital certificate allows users of a web service to verify the identity of the service and to securely communicate with it. FreedomBox can automatically obtain and setup digital certificates for each available domain. It does so by proving itself to be the owner of a domain to Let's Encrypt, a certificate authority (CA). Let's Encrypt is a free, automated, and open certificate authority, run for the public's benefit by the Internet Security Research Group (ISRG). Please read and agree with the Let's Encrypt Subscriber Agreement before using this service.
Why using CertificatesThe communication with your FreedomBox can be secured so that it is not possible to intercept the content of the web pages viewed and about the content exchanged.
How to setupIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports: TCP 80 (http) TCP 443 (https) Make the domain name known: In Configure insert your domain name, e.g. MyWebName.com Let's Encrypt Verify the domain name was accepted Check that it is enabled in Name Services Let's Encrypt Name Services Go to the Certificates (Let's Encrypt) page, and complete the module install if needed. Then click the "Obtain" button for your domain name. After some minutes a valid certificate is available Let's Encrypt Verify in your browser by checking https://MyWebName.com Let's Encrypt Certificate Screencast: Let's Encrypt
UsingThe certificate is valid for 3 months. It is renewed automatically and can also be re-obtained or revoked manually. With running diagnostics the certificate can also be verified. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/LetsEncrypt92019-02-26 03:21:08JamesValleroyspelling82018-03-11 03:16:47JosephNuthalapati72017-01-19 00:18:41JamesValleroyreplace quote character62017-01-07 19:48:45JamesValleroyadd port forwarding info52017-01-07 18:21:14JamesValleroyclarify step42016-08-21 19:00:07Drahtseil32016-08-21 18:59:20DrahtseilScreencast of the setting up22016-08-21 17:57:07Drahtseilscreenshots12016-08-21 17:43:20DrahtseilCreated Let's Encypt
Certificates (Let's Encrypt)A digital certificate allows users of a web service to verify the identity of the service and to securely communicate with it. FreedomBox can automatically obtain and setup digital certificates for each available domain. It does so by proving itself to be the owner of a domain to Let's Encrypt, a certificate authority (CA). Let's Encrypt is a free, automated, and open certificate authority, run for the public's benefit by the Internet Security Research Group (ISRG). Please read and agree with the Let's Encrypt Subscriber Agreement before using this service.
Why using CertificatesThe communication with your FreedomBox can be secured so that it is not possible to intercept the content of the web pages viewed and about the content exchanged.
How to setupIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports: TCP 80 (http) TCP 443 (https) Make the domain name known: In Configure insert your domain name, e.g. MyWebName.com Let's Encrypt Verify the domain name was accepted Check that it is enabled in Name Services Let's Encrypt Name Services Go to the Certificates (Let's Encrypt) page, and complete the module install if needed. Then click the "Obtain" button for your domain name. After some minutes a valid certificate is available Let's Encrypt Verify in your browser by checking https://MyWebName.com Let's Encrypt Certificate Screencast: Let's Encrypt
UsingThe certificate is valid for 3 months. It is renewed automatically and can also be re-obtained or revoked manually. With running diagnostics the certificate can also be verified. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/MLDonkey.raw.xml b/doc/MLDonkey.raw.xml index f144e0d30..6b5877a18 100644 --- a/doc/MLDonkey.raw.xml +++ b/doc/MLDonkey.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/MLDonkey122019-02-08 06:29:35SunilMohanAdapaUpdate more information about clients112019-02-06 13:52:06jcromero102019-02-02 21:16:52jcromero92019-01-23 21:18:05jcromero82019-01-23 18:34:25jcromero72019-01-23 18:30:54jcromero62019-01-23 18:19:19SunilMohanAdapaEscape from linking52019-01-23 18:18:47SunilMohanAdapaWrite MLdonkey as MLDonkey42019-01-23 18:17:54SunilMohanAdapaWrite MLdonkey as MLDonkey and other minor fixes32019-01-23 17:37:32jcromero22019-01-23 13:37:48jcromero12019-01-23 13:31:23jcromero
File Sharing (MLDonkey)
What is MLDonkey?MLDonkey is an open-source, multi-protocol, peer-to-peer file sharing application that runs as a back-end server application on many platforms. It can be controlled through a user interface provided by one of many separate front-ends, including a Web interface, telnet interface and over a dozen native client programs. Originally a Linux client for the eDonkey protocol, it now runs on many flavors of Unix-like, OS X, Microsoft Windows and MorphOS and supports numerous peer-to-peer protocols including ED2K (and Kademlia and Overnet), BitTorrent, DC++ and more. Read more about MLDonkey at the MLDonkey Project Wiki Available since: version 0.48.0
ScreenshotMLDonkey Web Interface
Using MLDonkey Web InterfaceAfter installing MLDonkey, its web interface can be accessed from FreedomBox at https://<your freedombox>/mldonkey. Users belonging to the ed2k and admin groups can access this web interface.
Using Desktop/Mobile InterfaceMany desktop and mobile applications can be used to control MLDonkey. MLDonkey server will always be running on FreedomBox. It will download files (or upload them) and store them on FreedomBox even when your local machine is not running or connected to MLDonkey on FreedomBox. Only users of admin group can access MLDonkey on FreedomBox using desktop or mobile clients. This is due to restrictions on which group of users have SSH access into FreedomBox. Create an admin user or use an existing admin user. On your desktop machine, open a terminal and run the following command. It is recommended that you configure and use SSH keys instead of passwords for the this step. Start the GUI application and then connect it to MLDonkey as if MLDonkey is running on the local desktop machine. After you are done, terminate the SSH command by pressing Control-C. See MLDonkey documentation for SSH Tunnel for more information. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/MLDonkey122019-02-08 06:29:35SunilMohanAdapaUpdate more information about clients112019-02-06 13:52:06jcromero102019-02-02 21:16:52jcromero92019-01-23 21:18:05jcromero82019-01-23 18:34:25jcromero72019-01-23 18:30:54jcromero62019-01-23 18:19:19SunilMohanAdapaEscape from linking52019-01-23 18:18:47SunilMohanAdapaWrite MLdonkey as MLDonkey42019-01-23 18:17:54SunilMohanAdapaWrite MLdonkey as MLDonkey and other minor fixes32019-01-23 17:37:32jcromero22019-01-23 13:37:48jcromero12019-01-23 13:31:23jcromero
File Sharing (MLDonkey)
What is MLDonkey?MLDonkey is an open-source, multi-protocol, peer-to-peer file sharing application that runs as a back-end server application on many platforms. It can be controlled through a user interface provided by one of many separate front-ends, including a Web interface, telnet interface and over a dozen native client programs. Originally a Linux client for the eDonkey protocol, it now runs on many flavors of Unix-like, OS X, Microsoft Windows and MorphOS and supports numerous peer-to-peer protocols including ED2K (and Kademlia and Overnet), BitTorrent, DC++ and more. Read more about MLDonkey at the MLDonkey Project Wiki Available since: version 0.48.0
ScreenshotMLDonkey Web Interface
Using MLDonkey Web InterfaceAfter installing MLDonkey, its web interface can be accessed from FreedomBox at https://<your freedombox>/mldonkey. Users belonging to the ed2k and admin groups can access this web interface.
Using Desktop/Mobile InterfaceMany desktop and mobile applications can be used to control MLDonkey. MLDonkey server will always be running on FreedomBox. It will download files (or upload them) and store them on FreedomBox even when your local machine is not running or connected to MLDonkey on FreedomBox. Only users of admin group can access MLDonkey on FreedomBox using desktop or mobile clients. This is due to restrictions on which group of users have SSH access into FreedomBox. Create an admin user or use an existing admin user. On your desktop machine, open a terminal and run the following command. It is recommended that you configure and use SSH keys instead of passwords for the this step. Start the GUI application and then connect it to MLDonkey as if MLDonkey is running on the local desktop machine. After you are done, terminate the SSH command by pressing Control-C. See MLDonkey documentation for SSH Tunnel for more information. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/MatrixSynapse.raw.xml b/doc/MatrixSynapse.raw.xml index 995622fc2..e1ef205d0 100644 --- a/doc/MatrixSynapse.raw.xml +++ b/doc/MatrixSynapse.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/MatrixSynapse102019-03-01 17:53:22JosephNuthalapatiEscape FreedomBox hyperlinks92019-02-27 21:16:58JosephNuthalapatiMention IRC as an alternative for large Matrix rooms82019-02-13 09:09:45JosephNuthalapatiRemove pop-culture references. Add notes about large rooms and memory usage.72019-01-14 20:16:04DrahtseilSystem requirements62018-03-02 12:06:08JosephNuthalapati52018-03-02 10:44:12JosephNuthalapatiNaming was inconsistent42017-06-27 05:13:41JosephNuthalapati32017-03-24 06:42:49SunilMohanAdapaUpdate for explaining more features etc.22017-03-23 06:36:05rahulde12017-03-23 06:33:43rahulde
Chat Server (Matrix Synapse)
What is Matrix?Matrix is an open standard for interoperable, decentralized, real-time communication over IP. Synapse is the reference implementation of a Matrix server. It can be used to setup instant messaging on FreedomBox to host large chat rooms, end-to-end encrypted communication and audio/video calls. Matrix Synapse is a federated application where chat rooms can exist on any server and users from any server in the federated network can join them. Learn more about Matrix. Available since: version 0.14.0
How to access your Matrix Synapse server?We recommend the Riot client to access the Matrix Synapse server. You can download Riot for desktops. Mobile applications for Android and iOS are available from their respective app stores.
Setting up Matrix Synapse on your FreedomBoxTo enable Matrix, first navigate to the Chat Server (Matrix Synapse) page and install it. Matrix needs a valid domain name to be configured. After installation, you will be asked to configure it. You will be able to select a domain from a drop down menu of available domains. Domains are configured using System -> Configure page. After configuring a domain, you will see that the service is running. The service will be accessible on the configured FreedomBox domain. All the registered users will have their Matrix IDs as @username:domain. Currently, you will not be able to change the domain once is it configured.
Federating with other Matrix instancesYou will be able to interact with any other person running another Matrix instance. This is done by simply starting a conversation with them using their matrix ID which is of the format @their-username:their-domain. You can also join rooms which are in another server and have audio/video calls with contacts on other server.
Memory usageThe Synapse reference server implemented in Python is known to be quite RAM hungry, especially when loading large rooms with thousands of members like #matrix:matrix.org. It is recommended to avoid joining such rooms if your FreedomBox device only has 1 GiB RAM or less. Rooms with up to a hundred members should be safe to join. The Matrix team is working on a new implementation of the Matrix server written in Go called Dendrite which might perform better in low-memory environments. Some large public rooms in the Matrix network are also available as IRC channels (e.g. #freedombox:matrix.org is also available as #freedombox on irc.debian.org). It is better to use IRC instead of Matrix for such large rooms. You can join the IRC channels using Quassel. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/MatrixSynapse102019-03-01 17:53:22JosephNuthalapatiEscape FreedomBox hyperlinks92019-02-27 21:16:58JosephNuthalapatiMention IRC as an alternative for large Matrix rooms82019-02-13 09:09:45JosephNuthalapatiRemove pop-culture references. Add notes about large rooms and memory usage.72019-01-14 20:16:04DrahtseilSystem requirements62018-03-02 12:06:08JosephNuthalapati52018-03-02 10:44:12JosephNuthalapatiNaming was inconsistent42017-06-27 05:13:41JosephNuthalapati32017-03-24 06:42:49SunilMohanAdapaUpdate for explaining more features etc.22017-03-23 06:36:05rahulde12017-03-23 06:33:43rahulde
Chat Server (Matrix Synapse)
What is Matrix?Matrix is an open standard for interoperable, decentralized, real-time communication over IP. Synapse is the reference implementation of a Matrix server. It can be used to setup instant messaging on FreedomBox to host large chat rooms, end-to-end encrypted communication and audio/video calls. Matrix Synapse is a federated application where chat rooms can exist on any server and users from any server in the federated network can join them. Learn more about Matrix. Available since: version 0.14.0
How to access your Matrix Synapse server?We recommend the Riot client to access the Matrix Synapse server. You can download Riot for desktops. Mobile applications for Android and iOS are available from their respective app stores.
Setting up Matrix Synapse on your FreedomBoxTo enable Matrix, first navigate to the Chat Server (Matrix Synapse) page and install it. Matrix needs a valid domain name to be configured. After installation, you will be asked to configure it. You will be able to select a domain from a drop down menu of available domains. Domains are configured using System -> Configure page. After configuring a domain, you will see that the service is running. The service will be accessible on the configured FreedomBox domain. All the registered users will have their Matrix IDs as @username:domain. Currently, you will not be able to change the domain once is it configured.
Federating with other Matrix instancesYou will be able to interact with any other person running another Matrix instance. This is done by simply starting a conversation with them using their matrix ID which is of the format @their-username:their-domain. You can also join rooms which are in another server and have audio/video calls with contacts on other server.
Memory usageThe Synapse reference server implemented in Python is known to be quite RAM hungry, especially when loading large rooms with thousands of members like #matrix:matrix.org. It is recommended to avoid joining such rooms if your FreedomBox device only has 1 GiB RAM or less. Rooms with up to a hundred members should be safe to join. The Matrix team is working on a new implementation of the Matrix server written in Go called Dendrite which might perform better in low-memory environments. Some large public rooms in the Matrix network are also available as IRC channels (e.g. #freedombox:matrix.org is also available as #freedombox on irc.debian.org). It is better to use IRC instead of Matrix for such large rooms. You can join the IRC channels using Quassel. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/MediaWiki.raw.xml b/doc/MediaWiki.raw.xml index 65719caaa..f0480e422 100644 --- a/doc/MediaWiki.raw.xml +++ b/doc/MediaWiki.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/MediaWiki92018-08-28 09:42:01JosephNuthalapatiRemove internal links to MediaWiki82018-08-27 23:58:16JamesValleroytry to close last section72018-08-27 23:43:48JamesValleroyadd consistent newlines after headings62018-08-27 23:41:37JamesValleroyspelling52018-08-21 07:33:32JosephNuthalapati42018-08-21 07:32:43JosephNuthalapatiUpdate wiki to include new features32018-01-31 06:02:30SunilMohanAdapaAdd footer and category22018-01-17 10:26:45JosephNuthalapatiFix headings12018-01-13 04:01:22JosephNuthalapatiNew wiki entry for MediaWiki on FreedomBox
Wiki (MediaWiki)
About MediaWikiMediaWiki is the software that powers the Wikimedia suite of wikis. Read more about MediaWiki on Wikipedia Available since: version 0.20.0
MediaWiki on FreedomBoxMediaWiki on FreedomBox is configured to be publicly readable and privately editable. Only logged in users can make edits to the wiki. This configuration prevents spam and vandalism on the wiki.
User managementUsers can be created by the MediaWiki administrator (user "admin") only. The "admin" user can also be used to reset passwords of MediaWiki users. The administrator password, if forgotten can be reset anytime from the MediaWiki page in the Plinth UI.
Use casesMediaWiki is quite versatile and can be put to many creative uses. It also comes with a lot of plugins and themes and is highly customizable.
Personal Knowledge RepositoryMediaWiki on FreedomBox can be your own personal knowledge repository. Since MediaWiki has good multimedia support, you can write notes, store images, create checklists, store references and bookmarks etc. in an organized manner. You can store the knowledge of a lifetime in your MediaWiki instance.
Community WikiA community of users can use MediaWiki as their common repository of knowledge and reference material. It can used as a college notice board, documentation server for a small company, common notebook for study groups or as a fan wiki like wikia.
Personal Wiki-based WebsiteSeveral websites on the internet are simply MediaWiki instances. MediaWiki on FreedomBox is read-only to visitors. Hence, it can be adapted to serve as your personal website and/or blog. MediaWiki content is easy to export and can be later moved to use another blog engine.
Editing Wiki Content
Visual EditorMediaWiki's new Visual Editor gives a WYSIWYG user interface to creating wiki pages. Unfortunately, it is not yet available in the current version of MediaWiki on Debian. A workaround is to use write your content using the Visual Editor in Wikipedia's Sandbox, switching to source editing mode and copying the content into your wiki.
Other FormatsYou don't have to necessarily learn the MediaWiki formatting language. You can write in your favorite format (Markdown, Org-mode, LaTeX etc.) and convert it to the MediaWiki format using Pandoc.
Image UploadsImage uploads have been enabled since FreedomBox version 0.36.0. You can also directly use images from Wikimedia Commons using a feature called Instant Commons. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/MediaWiki92018-08-28 09:42:01JosephNuthalapatiRemove internal links to MediaWiki82018-08-27 23:58:16JamesValleroytry to close last section72018-08-27 23:43:48JamesValleroyadd consistent newlines after headings62018-08-27 23:41:37JamesValleroyspelling52018-08-21 07:33:32JosephNuthalapati42018-08-21 07:32:43JosephNuthalapatiUpdate wiki to include new features32018-01-31 06:02:30SunilMohanAdapaAdd footer and category22018-01-17 10:26:45JosephNuthalapatiFix headings12018-01-13 04:01:22JosephNuthalapatiNew wiki entry for MediaWiki on FreedomBox
Wiki (MediaWiki)
About MediaWikiMediaWiki is the software that powers the Wikimedia suite of wikis. Read more about MediaWiki on Wikipedia Available since: version 0.20.0
MediaWiki on FreedomBoxMediaWiki on FreedomBox is configured to be publicly readable and privately editable. Only logged in users can make edits to the wiki. This configuration prevents spam and vandalism on the wiki.
User managementUsers can be created by the MediaWiki administrator (user "admin") only. The "admin" user can also be used to reset passwords of MediaWiki users. The administrator password, if forgotten can be reset anytime from the MediaWiki page in the Plinth UI.
Use casesMediaWiki is quite versatile and can be put to many creative uses. It also comes with a lot of plugins and themes and is highly customizable.
Personal Knowledge RepositoryMediaWiki on FreedomBox can be your own personal knowledge repository. Since MediaWiki has good multimedia support, you can write notes, store images, create checklists, store references and bookmarks etc. in an organized manner. You can store the knowledge of a lifetime in your MediaWiki instance.
Community WikiA community of users can use MediaWiki as their common repository of knowledge and reference material. It can used as a college notice board, documentation server for a small company, common notebook for study groups or as a fan wiki like wikia.
Personal Wiki-based WebsiteSeveral websites on the internet are simply MediaWiki instances. MediaWiki on FreedomBox is read-only to visitors. Hence, it can be adapted to serve as your personal website and/or blog. MediaWiki content is easy to export and can be later moved to use another blog engine.
Editing Wiki Content
Visual EditorMediaWiki's new Visual Editor gives a WYSIWYG user interface to creating wiki pages. Unfortunately, it is not yet available in the current version of MediaWiki on Debian. A workaround is to use write your content using the Visual Editor in Wikipedia's Sandbox, switching to source editing mode and copying the content into your wiki.
Other FormatsYou don't have to necessarily learn the MediaWiki formatting language. You can write in your favorite format (Markdown, Org-mode, LaTeX etc.) and convert it to the MediaWiki format using Pandoc.
Image UploadsImage uploads have been enabled since FreedomBox version 0.36.0. You can also directly use images from Wikimedia Commons using a feature called Instant Commons. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Minetest.raw.xml b/doc/Minetest.raw.xml index 48fde537d..b82cbbe60 100644 --- a/doc/Minetest.raw.xml +++ b/doc/Minetest.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Minetest32017-01-02 13:29:19JamesValleroyfix list22017-01-02 13:26:03JamesValleroyadd port forwarding info12016-09-04 10:20:44Drahtseilstub created
Block Sandbox (Minetest)Minetest is a multiplayer infinite-world block sandbox. This module enables the Minetest server to be run on this FreedomBox, on the default port (30000). To connect to the server, a Minetest client is needed.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Minetest: UDP 30000 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Minetest32017-01-02 13:29:19JamesValleroyfix list22017-01-02 13:26:03JamesValleroyadd port forwarding info12016-09-04 10:20:44Drahtseilstub created
Block Sandbox (Minetest)Minetest is a multiplayer infinite-world block sandbox. This module enables the Minetest server to be run on this FreedomBox, on the default port (30000). To connect to the server, a Minetest client is needed.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Minetest: UDP 30000 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Monkeysphere.raw.xml b/doc/Monkeysphere.raw.xml index 715ec0f23..4c5f52b86 100644 --- a/doc/Monkeysphere.raw.xml +++ b/doc/Monkeysphere.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Monkeysphere12016-09-04 10:12:10Drahtseilstub created
MonkeysphereWith Monkeysphere, an OpenPGP key can be generated for each configured domain serving SSH. The OpenPGP public key can then be uploaded to the OpenPGP keyservers. Users connecting to this machine through SSH can verify that they are connecting to the correct host. For users to trust the key, at least one person (usually the machine owner) must sign the key using the regular OpenPGP key signing process. See the Monkeysphere SSH documentation for more details. Monkeysphere can also generate an OpenPGP key for each Secure Web Server (HTTPS) certificate installed on this machine. The OpenPGP public key can then be uploaded to the OpenPGP keyservers. Users accessing the web server through HTTPS can verify that they are connecting to the correct host. To validate the certificate, the user will need to install some software that is available on the Monkeysphere website. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Monkeysphere12016-09-04 10:12:10Drahtseilstub created
MonkeysphereWith Monkeysphere, an OpenPGP key can be generated for each configured domain serving SSH. The OpenPGP public key can then be uploaded to the OpenPGP keyservers. Users connecting to this machine through SSH can verify that they are connecting to the correct host. For users to trust the key, at least one person (usually the machine owner) must sign the key using the regular OpenPGP key signing process. See the Monkeysphere SSH documentation for more details. Monkeysphere can also generate an OpenPGP key for each Secure Web Server (HTTPS) certificate installed on this machine. The OpenPGP public key can then be uploaded to the OpenPGP keyservers. Users accessing the web server through HTTPS can verify that they are connecting to the correct host. To validate the certificate, the user will need to install some software that is available on the Monkeysphere website. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Mumble.raw.xml b/doc/Mumble.raw.xml index ebd73badc..dadf43e48 100644 --- a/doc/Mumble.raw.xml +++ b/doc/Mumble.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Mumble62017-01-02 13:28:53JamesValleroyadd port forwarding info52016-12-31 04:04:56JamesValleroyadd basic usage info42016-09-01 19:14:55Drahtseiladapted title to Plinth wording32016-04-10 07:20:42PhilippeBaretAdded bottom navigation link22015-12-15 20:51:58PhilippeBaret12015-12-15 20:06:18PhilippeBaretAdded Mumble page and definition.
Voice Chat (Mumble)
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.
Using MumbleFreedomBox includes the Mumble server. Clients are available for desktop and mobile platforms. Users can download one of these clients and connect to the server.
Port ForwardingIf 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 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Mumble62017-01-02 13:28:53JamesValleroyadd port forwarding info52016-12-31 04:04:56JamesValleroyadd basic usage info42016-09-01 19:14:55Drahtseiladapted title to Plinth wording32016-04-10 07:20:42PhilippeBaretAdded bottom navigation link22015-12-15 20:51:58PhilippeBaret12015-12-15 20:06:18PhilippeBaretAdded Mumble page and definition.
Voice Chat (Mumble)
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.
Using MumbleFreedomBox includes the Mumble server. Clients are available for desktop and mobile platforms. Users can download one of these clients and connect to the server.
Port ForwardingIf 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 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/NameServices.raw.xml b/doc/NameServices.raw.xml index 32804af7c..169eefd8b 100644 --- a/doc/NameServices.raw.xml +++ b/doc/NameServices.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/NameServices32016-12-31 04:18:51JamesValleroyreword22016-08-21 17:16:56Drahtseil12016-08-21 17:16:41DrahtseilCreated NameServices
Name ServicesName Services provides an overview of ways the box can be reached from the public Internet: domain name, Tor hidden service, and Pagekite. For each type of name, it is shown whether the HTTP, HTTPS, and SSH services are enabled or disabled for incoming connections through the given name. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/NameServices32016-12-31 04:18:51JamesValleroyreword22016-08-21 17:16:56Drahtseil12016-08-21 17:16:41DrahtseilCreated NameServices
Name ServicesName Services provides an overview of ways the box can be reached from the public Internet: domain name, Tor hidden service, and Pagekite. For each type of name, it is shown whether the HTTP, HTTPS, and SSH services are enabled or disabled for incoming connections through the given name. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Networks.raw.xml b/doc/Networks.raw.xml index bf3bf5a59..68ee99b11 100644 --- a/doc/Networks.raw.xml +++ b/doc/Networks.raw.xml @@ -5,4 +5,4 @@
FreedomBox/Manual/Networks82017-03-31 20:04:48DrahtseilScreenshot Network Single72017-03-02 16:26:27AaronFerrucciCorrected a few typos62016-09-02 05:31:28SunilMohanAdapaAdd information about configuring BATMAN-Adv Mesh network52016-03-06 20:43:34PhilippeBaretText correction42015-09-13 15:04:43SunilMohanAdapaDemote headings one level for inclusion into manual32015-09-12 11:23:58SunilMohanAdapaUpdate link to renamed Firewall page22015-09-12 10:04:19SunilMohanAdapaAdd information about Internet connection sharing12015-09-12 09:24:59SunilMohanAdapaNew page for FreedomBox manual on networking
NetworksThis 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.
Default setupIn 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.
Single ethernet interfaceWhen 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. network_single.png
Multiple ethernet interfaceWhen 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.
Wi-Fi configurationAll 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.
Internet Connection SharingAlthough 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.
CustomizationThe 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.
PPPoE connectionsIf 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.
Connect to Internet via Wi-FiBy 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.
Adding a new network deviceWhen 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.
Configuring a mesh networkFreedomBox 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.
Joining a mesh networkTo 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: Field NameExample ValueExplanation Connection Name Mesh Join - BATMAN The name must end with 'BATMAN' (uppercase) Physical Interface wlan0 The Wi-Fi device you wish to use for joining the mesh network Firewall Zone External Since you don't wish that participants in mesh network to use internal services of FreedomBox SSID ch1.freifunk.net As provided to you by the operators of the mesh network. You should see this as a network in Nearby Wi-Fi Networks Mode Ad-hoc Because this is a peer-to-peer network Frequency Band 2.4Ghz As provided to you by the operators of the mesh network Channel 1 As provided to you by the operators of the mesh network BSSID 12:CA:FF:EE:BA:BE As provided to you by the operators of the mesh network Authentication Open Leave this as open, unless you know your mesh network needs it be otherwise Passphrase Leave empty unless you know your mesh network requires one IPv4 Addressing Method Disabled We don't want to request IP configuration information yet Save the connection. Join the mesh network by activating this newly created connection. Create a second new connection, then select the connection type as Generic. In the following dialog, provide this following values: Field NameExample ValueExplanation Connection Name Mesh Connect Any name to identify this connection Physical Interface bat0 This interface will only show up after you successfully activate the connection in first step Firewall Zone External Since you don't wish that participants in mesh network to use internal services of FreedomBox IPv4 Addressing Method Auto 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.
Creating a mesh networkTo 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.
Manual Network OperationFreedomBox 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: ']]>To see the current firewall zone assigned to a network interface: ' | grep zone]]>or To create a new network connection: " ifname "" type ethernet nmcli con modify "" connection.autoconnect TRUE -nmcli con modify "" connection.zone internal]]>To change the firewall zone for a connection: " connection.zone ""]]>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. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +nmcli con modify "" connection.zone internal]]>To change the firewall zone for a connection: " connection.zone ""]]>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. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/OpenVPN.raw.xml b/doc/OpenVPN.raw.xml index a5a81b2fb..56f3b3c9d 100644 --- a/doc/OpenVPN.raw.xml +++ b/doc/OpenVPN.raw.xml @@ -4,4 +4,4 @@ 'http://www.docbook.org/xml/4.4/docbookx.dtd'>
FreedomBox/Manual/OpenVPN132019-03-01 01:28:15SunilMohanAdapaAdd instructions for connecting using mobile client122019-03-01 00:48:12SunilMohanAdapaAdd information about browsing Internet112019-03-01 00:37:30SunilMohanAdapaUpdate information about dealing with profile files102019-02-28 09:38:45JosephNuthalapatiUpdate image and set width92018-11-15 11:47:34JosephNuthalapatiAdd documentation on how to connect to VPN from Debian and check the connection. Update external link82016-12-31 04:01:13JamesValleroyclarify install vs setup72016-09-09 15:37:55SunilMohanAdapaMinor indentation fix with screenshot62016-09-01 19:14:03Drahtseiladapted title to Plinth wording52016-08-14 19:39:09JanCostermansadded screenshot and setting up sections42016-04-10 07:16:50PhilippeBaretAdded bottom navigation link32015-12-16 00:32:58PhilippeBaretText finishing22015-12-16 00:28:34PhilippeBaretAdded definition for OpenVPN12015-12-15 23:58:42PhilippeBaretAdded first content [OpenVPN page to Apps manual]
Virtual Private Network (OpenVPN)
What is OpenVPN?OpenVPN provides to your FreedomBox a virtual private network service. You can use this software for remote access, site-to-site VPNs and Wi-Fi security. OpenVPN includes support for dynamic IP addresses and NAT.
Setting upIn Plinth apps menu, select Virtual Private Network (OpenVPN) and click Install. After the module is installed, there is an additional setup step that may take a long time to complete. Click "Start setup" to begin. OpenVPN service page Wait for the setup to finish. This could take a while. Once the setup of the OpenVPN server is complete, you can download your profile. This will download a file called <USER>.ovpn, where <USER> is the name of a FreedomBox user. Each FreedomBox user will be able to download a different profile. Users who are not administrators can download the profile from home page after login. The ovpn file contains all the information a vpn client needs to connect to the server. If your FreedomBox is setup behind a home router, then you need to change the router configuration such that incoming traffic on port 1194 is forwarded to FreedomBox's port 1194. The downloaded profile contains the domain name of the FreedomBox that the client should connect to. This is picked up from the domain configured in 'Config' section of 'System' page. In case your domain is not configured properly, you may need to change this value after downloading the profile. If your OpenVPN client allows it, you can do this after importing the OpenVPN profile. Otherwise, you can edit the .ovpn profile file in a text editor and change the 'remote' line to contain the WAN IP address or hostname of your FreedomBox as follows.
Browsing Internet after connecting to VPNAfter connecting to the VPN, the client device will be able to browse the Internet without any further configuration. However, a pre-condition for this to work is that you need to have at least one Internet connected network interface which is part of the 'External' firewall zone. Use the networks configuration page to edit the firewall zone for the device's network interfaces.
Usage
On Android/LineageOSVisit FreedomBox home page. Login with your user account. From home page, download the OpenVPN profile. The file will be named username.ovpn. OpenVPN Download Profile Download an OpenVPN client such as OpenVPN for Android. F-Droid repository is recommended. In the app, select import profile. OpenVPN App In the select profile dialog, choose the username.opvn file you have just downloaded. Provide a name for the connection and save the profile. OpenVPN import profile Newly created profile will show up. If necessary, edit the profile and set the domain name of your FreedomBox as the server address. OpenVPN profile created OpenVPN edit domain name Connect by tapping on the profile. OpenVPN connect OpenVPN connected When done, disconnect by tapping on the profile. OpenVPN disconnect
On DebianInstall an OpenVPN client for your system Open the ovpn file with the OpenVPN client. .ovpn]]>
Checking if you are connected
On DebianTry to ping the FreedomBox or other devices on the local network. Running the command ip addr should show a tun0 connection. The command traceroute freedombox.org should show you the ip address of the VPN server as the first hop.
External Links Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +proto udp]]>
Browsing Internet after connecting to VPNAfter connecting to the VPN, the client device will be able to browse the Internet without any further configuration. However, a pre-condition for this to work is that you need to have at least one Internet connected network interface which is part of the 'External' firewall zone. Use the networks configuration page to edit the firewall zone for the device's network interfaces.
Usage
On Android/LineageOSVisit FreedomBox home page. Login with your user account. From home page, download the OpenVPN profile. The file will be named username.ovpn. OpenVPN Download Profile Download an OpenVPN client such as OpenVPN for Android. F-Droid repository is recommended. In the app, select import profile. OpenVPN App In the select profile dialog, choose the username.opvn file you have just downloaded. Provide a name for the connection and save the profile. OpenVPN import profile Newly created profile will show up. If necessary, edit the profile and set the domain name of your FreedomBox as the server address. OpenVPN profile created OpenVPN edit domain name Connect by tapping on the profile. OpenVPN connect OpenVPN connected When done, disconnect by tapping on the profile. OpenVPN disconnect
On DebianInstall an OpenVPN client for your system Open the ovpn file with the OpenVPN client. .ovpn]]>
Checking if you are connected
On DebianTry to ping the FreedomBox or other devices on the local network. Running the command ip addr should show a tun0 connection. The command traceroute freedombox.org should show you the ip address of the VPN server as the first hop.
External Links Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/PageKite.raw.xml b/doc/PageKite.raw.xml index 0964e8070..6175ce133 100644 --- a/doc/PageKite.raw.xml +++ b/doc/PageKite.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/PageKite122017-01-07 20:37:22JamesValleroyadd info on getting certificate112017-01-07 20:21:47JamesValleroyadd instructions102017-01-07 20:14:44JamesValleroyclarify how pagekite works92016-09-01 19:19:45Drahtseiladapted title to Plinth wording82016-04-10 07:13:20PhilippeBaretAdded navigation link72015-12-15 20:50:09PhilippeBaretCorrection62015-12-15 19:28:57PhilippeBaretAdded more definition52015-12-15 19:19:27PhilippeBaretAdded pagekite extended definition42015-09-13 14:58:24SunilMohanAdapaAdd headings for inclusion into manual32015-09-13 13:18:15SunilMohanAdapaMove PageKite page to manual22015-02-13 05:01:10SunilMohanAdapaInclude FreedomBox portal in footer12012-09-14 07:37:02planetlarg
Public Visibility (PageKite)
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 . 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.
Using PageKiteCreate an account on a PageKite relay service. Add a kite to your account. Note your kite name and kite secret. In Plinth, 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/PageKite122017-01-07 20:37:22JamesValleroyadd info on getting certificate112017-01-07 20:21:47JamesValleroyadd instructions102017-01-07 20:14:44JamesValleroyclarify how pagekite works92016-09-01 19:19:45Drahtseiladapted title to Plinth wording82016-04-10 07:13:20PhilippeBaretAdded navigation link72015-12-15 20:50:09PhilippeBaretCorrection62015-12-15 19:28:57PhilippeBaretAdded more definition52015-12-15 19:19:27PhilippeBaretAdded pagekite extended definition42015-09-13 14:58:24SunilMohanAdapaAdd headings for inclusion into manual32015-09-13 13:18:15SunilMohanAdapaMove PageKite page to manual22015-02-13 05:01:10SunilMohanAdapaInclude FreedomBox portal in footer12012-09-14 07:37:02planetlarg
Public Visibility (PageKite)
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 . 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.
Using PageKiteCreate an account on a PageKite relay service. Add a kite to your account. Note your kite name and kite secret. In Plinth, 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Power.raw.xml b/doc/Power.raw.xml index 25cb9c52e..358c7edeb 100644 --- a/doc/Power.raw.xml +++ b/doc/Power.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Power32019-02-28 16:33:32JosephNuthalapatiRestart and shut down options in user menu22017-01-07 20:38:36JamesValleroynote confirmation12016-08-21 09:29:59DrahtseilCreated Power
PowerPower provides an easy way to restart or shut down FreedomBox. After you select "Restart" or "Shut Down", you will be asked to confirm. "Restart" and "Shut Down" options can also be reached from the user dropdown menu on the top right. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Power32019-02-28 16:33:32JosephNuthalapatiRestart and shut down options in user menu22017-01-07 20:38:36JamesValleroynote confirmation12016-08-21 09:29:59DrahtseilCreated Power
PowerPower provides an easy way to restart or shut down FreedomBox. After you select "Restart" or "Shut Down", you will be asked to confirm. "Restart" and "Shut Down" options can also be reached from the user dropdown menu on the top right. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Privoxy.raw.xml b/doc/Privoxy.raw.xml index 337af0cfd..329020832 100644 --- a/doc/Privoxy.raw.xml +++ b/doc/Privoxy.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Privoxy102018-03-11 03:09:16JosephNuthalapatiFix oversized images92016-09-09 15:39:20SunilMohanAdapaMinor indentation fix with screenshots82016-09-09 15:31:16SunilMohanAdapaPromote the visibility of the screencast72016-08-09 19:09:55Drahtseilconfiguration for advanced users62016-08-06 20:02:42DrahtseilScreencast of the setting up52016-08-06 17:57:33Drahtseilscreenshots42016-08-01 19:38:35DrahtseilVery basic restructuring as preparation for more work to be done.32016-04-10 07:24:20PhilippeBaretAdded bottom navigation link22015-12-15 20:54:14PhilippeBaretAdded link to Privoxy FAQ12015-12-15 20:22:00PhilippeBaretAdded Privoxy page and definition
Web Proxy (Privoxy)A web proxy acts as a filter for incoming and outgoing internet 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).
ScreencastWatch the screencast on how to setup and use Privoxy in FreedomBox.
Setting upIn Plinth install Web Proxy (Privoxy) Privoxy Installation 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. Privoxy Browser Settings Go to page or . If Privoxy is installed properly, you will be able to configure it in detail; if not you will see an error message. 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.
Advanced UsersThe 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. While using Privoxy, you can see its configuration details and documentation at or . 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Privoxy102018-03-11 03:09:16JosephNuthalapatiFix oversized images92016-09-09 15:39:20SunilMohanAdapaMinor indentation fix with screenshots82016-09-09 15:31:16SunilMohanAdapaPromote the visibility of the screencast72016-08-09 19:09:55Drahtseilconfiguration for advanced users62016-08-06 20:02:42DrahtseilScreencast of the setting up52016-08-06 17:57:33Drahtseilscreenshots42016-08-01 19:38:35DrahtseilVery basic restructuring as preparation for more work to be done.32016-04-10 07:24:20PhilippeBaretAdded bottom navigation link22015-12-15 20:54:14PhilippeBaretAdded link to Privoxy FAQ12015-12-15 20:22:00PhilippeBaretAdded Privoxy page and definition
Web Proxy (Privoxy)A web proxy acts as a filter for incoming and outgoing internet 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).
ScreencastWatch the screencast on how to setup and use Privoxy in FreedomBox.
Setting upIn Plinth install Web Proxy (Privoxy) Privoxy Installation 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. Privoxy Browser Settings Go to page or . If Privoxy is installed properly, you will be able to configure it in detail; if not you will see an error message. 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.
Advanced UsersThe 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. While using Privoxy, you can see its configuration details and documentation at or . 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. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Quassel.raw.xml b/doc/Quassel.raw.xml index 64ed7983e..027d49684 100644 --- a/doc/Quassel.raw.xml +++ b/doc/Quassel.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Quassel62019-02-27 21:34:38JosephNuthalapatiGrammar corrections and clarification about port forwarding52018-10-04 02:01:15SunilMohanAdapaAdd screenshots to the Quassel Client section42018-10-04 01:26:35SunilMohanAdapaRefactor information on how to connect to core using desktop client32018-03-11 03:00:04JosephNuthalapatiFix oversized image22016-08-18 17:30:28Drahtseilwording, screen-shots12016-08-17 20:09:38Drahtseilpage creation; not sure about the configuration of quassel-client (too long ago); screenshots to follow
IRC Client (Quassel)Quassel is an IRC application that is split into two parts, a "core" and a "client". This allows the core to remain connected to IRC servers, and to continue receiving messages, even when the client is disconnected. FreedomBox can run the Quassel core service keeping you always online and one or more Quassel clients from a desktop or a mobile device can be used to connect and disconnect from it.
Why run Quassel?Many discussions about FreedomBox are being done on the IRC-Channel irc://irc.debian.org/freedombox. If your FreedomBox is running Quassel, it will collect all discussions while you are away, such as responses to your questions. Remember, the FreedomBox project is a worldwide project with people from nearly every time zone. You use your client to connect to the Quassel core to read and respond whenever you have time and are available.
How to setup Quassel?Within Plinth select Applications go to IRC Client (Quassel) and install the application and make sure it is enabled Quassel Installation now your Quassel core is running
Port forwardingIf you want to access your Quassel server over the internet, port forwarding on your router might be required (skip this if you already configured your FreedomBox to be in a DMZ). Configure port forwarding for port 4242 in your router On my device, this setting can be found in the section Network > NAT & Port rules > Port Forwarding Quassel_PortForwarding.png
ClientsClients to connect to Quassel from your desktop and mobile devices are available.
DesktopIn a Debian system, you can e.g. use quassel-client. The following steps describe how to connect Quassel Client with Quassel Core running on a FreedomBox. The first time you do this connection, Quassel Core will be initialized too. Launch Quassel Client. You will be greeted with a wizard to Connect to Core. Connect to Core Click the Add button to launch Add Core Account dialog. Add Core Account Fill any value in the Account Name field. Fill proper DNS hostname of your FreedomBox in Hostname filed. Port field must have the value 4242. Provide the username and password of the account you wish to create to connect to the Quassel Core in the User and Password fields. Choose Remember if don't wish to be prompted for a password every time you launch Quassel client. After pressing OK in the Add Core Account dialog, you should see the core account in the Connect to Core dialog. Connect to Core Select the newly created core account and select OK to connect to it. If this is the first time you are connecting to this core. You will see an Untrusted Security Certificate warning and need to accept the server certificate. Untrusted Security Certificate Select Continue. Then you will be asked if you wish to accept the certificate permanently. Select Forever. Untrusted Security Certificate If this Quassel Core has not been connected to before, you will then see a Core Configuration Wizard. Select Next. Core Configuration Wizard In the Create Admin User page, enter the username and password you have used earlier to create the core connection. Select Remember password to remember this password for future sessions. Click Next. Create Admin User Page In the Select Storage Backend page, select SQLite and click Commit. Select Storage Backend The core configuration is then complete and you will see a Quassel IRC wizard to configure your IRC connections. Click Next. Welcome Wizard In Setup Identity page next, provide a name and multiple nicknames. This is how you present yourself to other users on IRC. It is not necessary to give your real world name. Multiple nicknames are useful as fallback nicknames when the first nickname can't be used for some reason. After providing the information click Next. Setup Identity In Setup Network Connection page next, provide a network name of your choice. Next provide a list of servers to which Quassel Core should connect to in order to join this IRC network (such as irc.debian.org:6667). Setup Network Connection Select the server in the servers list and click Edit. In the Server Info dialog, set the port 6697 (consult your network's documentation for actual list of servers and their secure ports) and click Use SSL. Click OK. This is to ensure that communication between your FreedomBox and the IRC network server is encrypted. Server Info Server Info SSL Back in the Setup Network Connection dialog, provide a list of IRC channels (such as #freedombox) to join upon connecting to the network. Click Save & Connect. Setup Network Connection You should connect to the network and see the list of channels you have joined on the All Chats pane on the left of the Quassel Client main window. Quassel Main Window Select a channel and start seeing messages from others in the channel and send your own messages.
AndroidFor Android devices you may use e.g. Quasseldroid from F-Droid enter core, username etc. as above Quasseldroid.png By the way, the German verb quasseln means talking a lot, to jabber. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Quassel62019-02-27 21:34:38JosephNuthalapatiGrammar corrections and clarification about port forwarding52018-10-04 02:01:15SunilMohanAdapaAdd screenshots to the Quassel Client section42018-10-04 01:26:35SunilMohanAdapaRefactor information on how to connect to core using desktop client32018-03-11 03:00:04JosephNuthalapatiFix oversized image22016-08-18 17:30:28Drahtseilwording, screen-shots12016-08-17 20:09:38Drahtseilpage creation; not sure about the configuration of quassel-client (too long ago); screenshots to follow
IRC Client (Quassel)Quassel is an IRC application that is split into two parts, a "core" and a "client". This allows the core to remain connected to IRC servers, and to continue receiving messages, even when the client is disconnected. FreedomBox can run the Quassel core service keeping you always online and one or more Quassel clients from a desktop or a mobile device can be used to connect and disconnect from it.
Why run Quassel?Many discussions about FreedomBox are being done on the IRC-Channel irc://irc.debian.org/freedombox. If your FreedomBox is running Quassel, it will collect all discussions while you are away, such as responses to your questions. Remember, the FreedomBox project is a worldwide project with people from nearly every time zone. You use your client to connect to the Quassel core to read and respond whenever you have time and are available.
How to setup Quassel?Within Plinth select Applications go to IRC Client (Quassel) and install the application and make sure it is enabled Quassel Installation now your Quassel core is running
Port forwardingIf you want to access your Quassel server over the internet, port forwarding on your router might be required (skip this if you already configured your FreedomBox to be in a DMZ). Configure port forwarding for port 4242 in your router On my device, this setting can be found in the section Network > NAT & Port rules > Port Forwarding Quassel_PortForwarding.png
ClientsClients to connect to Quassel from your desktop and mobile devices are available.
DesktopIn a Debian system, you can e.g. use quassel-client. The following steps describe how to connect Quassel Client with Quassel Core running on a FreedomBox. The first time you do this connection, Quassel Core will be initialized too. Launch Quassel Client. You will be greeted with a wizard to Connect to Core. Connect to Core Click the Add button to launch Add Core Account dialog. Add Core Account Fill any value in the Account Name field. Fill proper DNS hostname of your FreedomBox in Hostname filed. Port field must have the value 4242. Provide the username and password of the account you wish to create to connect to the Quassel Core in the User and Password fields. Choose Remember if don't wish to be prompted for a password every time you launch Quassel client. After pressing OK in the Add Core Account dialog, you should see the core account in the Connect to Core dialog. Connect to Core Select the newly created core account and select OK to connect to it. If this is the first time you are connecting to this core. You will see an Untrusted Security Certificate warning and need to accept the server certificate. Untrusted Security Certificate Select Continue. Then you will be asked if you wish to accept the certificate permanently. Select Forever. Untrusted Security Certificate If this Quassel Core has not been connected to before, you will then see a Core Configuration Wizard. Select Next. Core Configuration Wizard In the Create Admin User page, enter the username and password you have used earlier to create the core connection. Select Remember password to remember this password for future sessions. Click Next. Create Admin User Page In the Select Storage Backend page, select SQLite and click Commit. Select Storage Backend The core configuration is then complete and you will see a Quassel IRC wizard to configure your IRC connections. Click Next. Welcome Wizard In Setup Identity page next, provide a name and multiple nicknames. This is how you present yourself to other users on IRC. It is not necessary to give your real world name. Multiple nicknames are useful as fallback nicknames when the first nickname can't be used for some reason. After providing the information click Next. Setup Identity In Setup Network Connection page next, provide a network name of your choice. Next provide a list of servers to which Quassel Core should connect to in order to join this IRC network (such as irc.debian.org:6667). Setup Network Connection Select the server in the servers list and click Edit. In the Server Info dialog, set the port 6697 (consult your network's documentation for actual list of servers and their secure ports) and click Use SSL. Click OK. This is to ensure that communication between your FreedomBox and the IRC network server is encrypted. Server Info Server Info SSL Back in the Setup Network Connection dialog, provide a list of IRC channels (such as #freedombox) to join upon connecting to the network. Click Save & Connect. Setup Network Connection You should connect to the network and see the list of channels you have joined on the All Chats pane on the left of the Quassel Client main window. Quassel Main Window Select a channel and start seeing messages from others in the channel and send your own messages.
AndroidFor Android devices you may use e.g. Quasseldroid from F-Droid enter core, username etc. as above Quasseldroid.png By the way, the German verb quasseln means talking a lot, to jabber. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Radicale.raw.xml b/doc/Radicale.raw.xml index ce628b125..ecdd31499 100644 --- a/doc/Radicale.raw.xml +++ b/doc/Radicale.raw.xml @@ -26,4 +26,4 @@ chown -R radicale:radicale /var/lib/radicale/collections/collection-root/ apt remove -y python-radicale if [ -f /etc/radicale/config.dpkg-dist ] ; then cp /etc/radicale/config.dpkg-dist /etc/radicale/config ; fi if [ -f /etc/default/radicale.dpkg-dist ] ; then cp /etc/default/radicale.dpkg-dist /etc/default/radicale ; fi -(After FreedomBox 19.1 is available, goto FreedomBox web interface and set your preference for calendar sharing again, if it is not the default option, as it will have been lost.)]]>Notes: python-radicale is an old package from radicale 1.x version that is still available in testing. This is a hack to use the --export-storage feature that is responsible for data migration. This feature is not available in radicale 2.x unfortunately. Files ending with .dpkg-dist will exist only if you have chosen 'Keep your currently-installed version' when prompted for configuration file override during radicale 2.x upgrade. The above process will overwrite the old configuration with new fresh configuration. No changes are necessary to the two configuration files unless you have changed the setting for sharing calendars. Note that during the migration, your data is safe in /var/lib/radicale/collections directory. New data will be created and used in /var/lib/radicale/collections/collections-root/ directory. The tar command takes a backup your configuration and data in /root/radicale_backup.tgz in case you do something goes wrong and you want to undo the changes. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file +(After FreedomBox 19.1 is available, goto FreedomBox web interface and set your preference for calendar sharing again, if it is not the default option, as it will have been lost.)]]>Notes: python-radicale is an old package from radicale 1.x version that is still available in testing. This is a hack to use the --export-storage feature that is responsible for data migration. This feature is not available in radicale 2.x unfortunately. Files ending with .dpkg-dist will exist only if you have chosen 'Keep your currently-installed version' when prompted for configuration file override during radicale 2.x upgrade. The above process will overwrite the old configuration with new fresh configuration. No changes are necessary to the two configuration files unless you have changed the setting for sharing calendars. Note that during the migration, your data is safe in /var/lib/radicale/collections directory. New data will be created and used in /var/lib/radicale/collections/collections-root/ directory. The tar command takes a backup your configuration and data in /root/radicale_backup.tgz in case you do something goes wrong and you want to undo the changes. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/Repro.raw.xml b/doc/Repro.raw.xml index 8005f4b85..65a84aeb8 100644 --- a/doc/Repro.raw.xml +++ b/doc/Repro.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Repro82019-02-26 23:26:49JamesValleroyremove content from manual72019-02-26 23:25:03JamesValleroyadd note about removal62017-01-02 13:43:51JamesValleroyadd port forwarding info52016-12-31 03:57:09JamesValleroyadd basic info42016-12-26 18:56:31JamesValleroyadd screenshots32016-05-27 17:24:23JamesValleroyadd footer22016-05-27 17:21:48JamesValleroyRenamed from 'FreedomBox/Manual/repro'.12016-05-15 19:03:02JamesValleroystart page
SIP Server (repro)App removed repro has been removed from Debian 10 (Buster), and therefore is no longer available in FreedomBox. repro is a server for SIP, a standard that enables Voice-over-IP calls. A desktop or mobile SIP client is required to use repro.
How to set up the SIP serverConfigure the domain at /repro/domains.html on the FreedomBox. Repro Domains Add users at /repro/addUser.html. Repro Users Disable and re-enable the repro application in Plinth.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for repro: TCP 5060 TCP 5061 UDP 5060 UDP 5061 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Repro82019-02-26 23:26:49JamesValleroyremove content from manual72019-02-26 23:25:03JamesValleroyadd note about removal62017-01-02 13:43:51JamesValleroyadd port forwarding info52016-12-31 03:57:09JamesValleroyadd basic info42016-12-26 18:56:31JamesValleroyadd screenshots32016-05-27 17:24:23JamesValleroyadd footer22016-05-27 17:21:48JamesValleroyRenamed from 'FreedomBox/Manual/repro'.12016-05-15 19:03:02JamesValleroystart page
SIP Server (repro)App removed repro has been removed from Debian 10 (Buster), and therefore is no longer available in FreedomBox. repro is a server for SIP, a standard that enables Voice-over-IP calls. A desktop or mobile SIP client is required to use repro.
How to set up the SIP serverConfigure the domain at /repro/domains.html on the FreedomBox. Repro Domains Add users at /repro/addUser.html. Repro Users Disable and re-enable the repro application in Plinth.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for repro: TCP 5060 TCP 5061 UDP 5060 UDP 5061 Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Roundcube.raw.xml b/doc/Roundcube.raw.xml index 0a20b8f63..a5392da23 100644 --- a/doc/Roundcube.raw.xml +++ b/doc/Roundcube.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Roundcube82019-03-13 21:13:00SunilMohanAdapaMinor formatting.72019-03-13 21:11:10SunilMohanAdapaAdd information about how to login to Roundcube62016-12-31 03:41:20JamesValleroyadd link52016-09-01 19:12:35Drahtseiladapted title to Plinth wording42016-04-10 07:25:23PhilippeBaretAdded bottom navigation link32015-12-15 19:04:22PhilippeBaretText finishing22015-12-15 19:03:29PhilippeBaretAdded ## END_INCLUDE12015-12-15 19:02:17PhilippeBaretAdded Rouncube page with definition
Email Client (Roundcube)
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.
Using RoundcubeAfter 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 exampleuser@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 exampleuser@example.org 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. Logging into your IMAP server
Using Gmail with RoundcubeIf 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. Logging into Gmail Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Roundcube82019-03-13 21:13:00SunilMohanAdapaMinor formatting.72019-03-13 21:11:10SunilMohanAdapaAdd information about how to login to Roundcube62016-12-31 03:41:20JamesValleroyadd link52016-09-01 19:12:35Drahtseiladapted title to Plinth wording42016-04-10 07:25:23PhilippeBaretAdded bottom navigation link32015-12-15 19:04:22PhilippeBaretText finishing22015-12-15 19:03:29PhilippeBaretAdded ## END_INCLUDE12015-12-15 19:02:17PhilippeBaretAdded Rouncube page with definition
Email Client (Roundcube)
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.
Using RoundcubeAfter 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 exampleuser@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 exampleuser@example.org 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. Logging into your IMAP server
Using Gmail with RoundcubeIf 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. Logging into Gmail Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Searx.raw.xml b/doc/Searx.raw.xml index 5dd9845ae..8a4d3aa1c 100644 --- a/doc/Searx.raw.xml +++ b/doc/Searx.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Searx72018-11-01 09:17:25JosephNuthalapatiAdd ToC62018-03-08 15:08:44JosephNuthalapatiAdd screenshot. Remove last 20 seconds from screencast to reduce size.52018-03-08 14:23:24JosephNuthalapatiAdd query param to make the video play within the browser42018-03-07 20:43:27Drahtseil32018-03-07 20:37:05DrahtseilScreencast of the installation and first steps22018-02-26 17:15:26JamesValleroyincluded in 0.2412018-02-22 12:12:50JosephNuthalapatisearx: Initial draft
Web Search (Searx)
About SearxSearx is a metasearch engine. A metasearch engine aggregates the results from various search engines and presents them in a unified interface. Read more about Searx on their official website. Available since: version 0.24.0
ScreenshotSearx Screenshot
ScreencastSearx installation and first steps (14 MB)
Why use Searx?
Personalization and Filter BubblesSearch engines have the ability to profile users and serve results most relevant to them, putting people into filter bubbles, thus distorting people's view of the world. Search engines have a financial incentive to serve interesting advertisements to their users, increasing their chances of clicking on the advertisements. A metasearch engine is a possible solution to this problem, as it aggregates results from multiple search engines thus bypassing personalization attempts by search engines. Searx avoids storing cookies from search engines as a means of preventing tracking and profiling by search engines.
Advertisement filteringSearx filters out advertisements from the search results before serving the results, thus increasing relevance the of your search results and saving you from distractions.
PrivacySearx uses HTTP POST instead of GET by default to send your search queries to the search engines, so that anyone snooping your traffic wouldn't be able to read your queries. The search queries wouldn't stored in browser history either. Note: Searx used from Chrome browser's omnibar would make GET requests instead of POST.
Searx on FreedomBoxSearx on FreedomBox uses Single Sign On. This means that you should be logged in into your FreedomBox in the browser that you're using Searx. Searx can be added as a search engine to the Firefox browser's search bar. See Firefox Help on this topic. Once Searx is added, you can also set it as your default search engine. Searx also offers search results in csv, json and rss formats, which can be used with scripts to automate some tasks. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Searx72018-11-01 09:17:25JosephNuthalapatiAdd ToC62018-03-08 15:08:44JosephNuthalapatiAdd screenshot. Remove last 20 seconds from screencast to reduce size.52018-03-08 14:23:24JosephNuthalapatiAdd query param to make the video play within the browser42018-03-07 20:43:27Drahtseil32018-03-07 20:37:05DrahtseilScreencast of the installation and first steps22018-02-26 17:15:26JamesValleroyincluded in 0.2412018-02-22 12:12:50JosephNuthalapatisearx: Initial draft
Web Search (Searx)
About SearxSearx is a metasearch engine. A metasearch engine aggregates the results from various search engines and presents them in a unified interface. Read more about Searx on their official website. Available since: version 0.24.0
ScreenshotSearx Screenshot
ScreencastSearx installation and first steps (14 MB)
Why use Searx?
Personalization and Filter BubblesSearch engines have the ability to profile users and serve results most relevant to them, putting people into filter bubbles, thus distorting people's view of the world. Search engines have a financial incentive to serve interesting advertisements to their users, increasing their chances of clicking on the advertisements. A metasearch engine is a possible solution to this problem, as it aggregates results from multiple search engines thus bypassing personalization attempts by search engines. Searx avoids storing cookies from search engines as a means of preventing tracking and profiling by search engines.
Advertisement filteringSearx filters out advertisements from the search results before serving the results, thus increasing relevance the of your search results and saving you from distractions.
PrivacySearx uses HTTP POST instead of GET by default to send your search queries to the search engines, so that anyone snooping your traffic wouldn't be able to read your queries. The search queries wouldn't stored in browser history either. Note: Searx used from Chrome browser's omnibar would make GET requests instead of POST.
Searx on FreedomBoxSearx on FreedomBox uses Single Sign On. This means that you should be logged in into your FreedomBox in the browser that you're using Searx. Searx can be added as a search engine to the Firefox browser's search bar. See Firefox Help on this topic. Once Searx is added, you can also set it as your default search engine. Searx also offers search results in csv, json and rss formats, which can be used with scripts to automate some tasks. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/SecureShell.raw.xml b/doc/SecureShell.raw.xml index 499f66c07..d12455d2d 100644 --- a/doc/SecureShell.raw.xml +++ b/doc/SecureShell.raw.xml @@ -5,4 +5,4 @@
FreedomBox/Manual/SecureShell122019-02-26 03:46:55JamesValleroyremove wiki links112018-01-30 07:55:33SunilMohanAdapaUpdate GitHub links with Salsa102017-03-06 23:17:08JamesValleroyadd note92016-10-13 21:49:06David JonesAdded infromation about connecting to the FBX using ssh over Tor82016-10-13 21:09:31David JonesAdded information about admin account for first log in to Plinth72016-09-05 09:42:36ElViroloRemoving my previous contribution, as info already present in original version.62016-09-05 09:39:05ElVirolo52016-09-05 09:26:15ElViroloAdded "Users created via Plinth" paragraph42015-12-21 19:42:10JamesValleroyupdate default account32015-12-21 19:33:56JamesValleroyfix outline level22015-12-15 19:31:18PhilippeBaretAdded definition title12015-09-16 16:22:37SunilMohanAdapaNew manual page for secure shell access
Secure Shell
What is Secure Shell?FreedomBox runs openssh-server server by default allowing remote logins from all interfaces. If your hardware device is connected to a monitor and a keyboard, you may login directly as well. Regular operation of FreedomBox does not require you to use the shell. However, some tasks or identifying a problem may require you to login to a shell.
Setting Up A User Account
Plinth First Log In: Admin AccountWhen creating an account in Plinth for the first time, this user will automatically have administrator capabilities. Admin users are able to log in using ssh (see Logging In below) and have superuser privileges via sudo.
Default User AccountNote: If you can access Plinth, then you don't need to do this. You can use the user account created in Plinth to connect to SSH. The pre-built FreedomBox images have a default user account called "fbx". However the password is not set for this account, so it will not be possible to log in with this account by default. There is a script included in the freedom-maker program, that will allow you to set the password for this account, if it is needed. To set a password for the "fbx" user: 1. Decompress the image file. 2. Get a copy of freedom-maker from . 3. Run sudo ./bin/passwd-in-image <image-file> fbx. 4. Copy the image file to SD card and boot device as normal. The "fbx" user also has superuser privileges via sudo.
Logging In
LocalTo login via SSH, to your FreedomBox: Replace fbx with the name of the user you wish to login as. freedombox should be replaced with the hostname or IP address of you FreedomBox device as found in the Quick Start process. fbx is the default user present on FreedomBox with superuser privileges. Any other user created using Plinth and belonging to the group admin will be able to login. The root account has no password set and will not be able to login. Access will be denied to all other users. fbx and users in admin group will also be able to login on the terminal directly. Other users will be denied access. If you repeatedly try to login as a user and fail, you will be blocked from logging in for some time. This is due to libpam-abl package that FreedomBox installs by default. To control this behavior consult libpam-abl documentation.
SSH over TorIf in Plinth you have enabled hidden services via Tor, you can access your FreedomBox using ssh over Tor. On a GNU/Linux computer, install netcat-openbsd. Edit ~/.ssh/config to enable connections over Tor. Add the following: Replace USERNAME with, e.g., an admin username (see above). Note that in some cases you may need to replace 9050 with 9150. Now to connect to the FreedomBox, open a terminal and type: Replace USERNAME with, e.g., an admin username, and ADDRESS with the hidden service address for your FreedomBox.
Becoming SuperuserAfter logging in, if you want to become the superuser for performing administrative activities: Make a habit of logging in as root only when you need to. If you aren't logged in as root, you can't accidentally break everything.
Changing PasswordTo change the password of a user managed by Plinth, use the change password page. However, the fbx default user is not managed by Plinth and its password cannot be changed in the web interface. To change password on the terminal, log in to your FreedomBox as the user whose password you want to change. Then, run the following command: This will ask you for your current password before giving you the opportunity to set a new one. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file + ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p]]>Replace USERNAME with, e.g., an admin username (see above). Note that in some cases you may need to replace 9050 with 9150. Now to connect to the FreedomBox, open a terminal and type: Replace USERNAME with, e.g., an admin username, and ADDRESS with the hidden service address for your FreedomBox.
Becoming SuperuserAfter logging in, if you want to become the superuser for performing administrative activities: Make a habit of logging in as root only when you need to. If you aren't logged in as root, you can't accidentally break everything.
Changing PasswordTo change the password of a user managed by Plinth, use the change password page. However, the fbx default user is not managed by Plinth and its password cannot be changed in the web interface. To change password on the terminal, log in to your FreedomBox as the user whose password you want to change. Then, run the following command: This will ask you for your current password before giving you the opportunity to set a new one. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Security.raw.xml b/doc/Security.raw.xml index 825e570c5..dd27869df 100644 --- a/doc/Security.raw.xml +++ b/doc/Security.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Security22016-08-31 17:40:56DrahtseilScreenshot12016-08-31 17:37:33Drahtseilcreation
SecurityWhen this option is enabled, only users in the "admin" group will be able to log in to console or via SSH. Console users may be able to access some services without further authorization. You can define the group of the users in the Users section. Security.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Security22016-08-31 17:40:56DrahtseilScreenshot12016-08-31 17:37:33Drahtseilcreation
SecurityWhen this option is enabled, only users in the "admin" group will be able to log in to console or via SSH. Console users may be able to access some services without further authorization. You can define the group of the users in the Users section. Security.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/ServiceDiscovery.raw.xml b/doc/ServiceDiscovery.raw.xml index 8f62b39cd..c83460355 100644 --- a/doc/ServiceDiscovery.raw.xml +++ b/doc/ServiceDiscovery.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/ServiceDiscovery22017-01-02 13:17:40JamesValleroymention .local address12016-08-21 09:48:13DrahtseilCreated Service Discovery
Service DiscoveryService discovery allows other devices on the network to discover your FreedomBox and services running on it. If a client on the local network supports mDNS, it can find your FreedomBox at <hostname>.local (for example: freedombox.local). It also allows FreedomBox to discover other devices and services running on your local network. Service discovery is not essential and works only on internal networks. It may be disabled to improve security especially when connecting to a hostile local network. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/ServiceDiscovery22017-01-02 13:17:40JamesValleroymention .local address12016-08-21 09:48:13DrahtseilCreated Service Discovery
Service DiscoveryService discovery allows other devices on the network to discover your FreedomBox and services running on it. If a client on the local network supports mDNS, it can find your FreedomBox at <hostname>.local (for example: freedombox.local). It also allows FreedomBox to discover other devices and services running on your local network. Service discovery is not essential and works only on internal networks. It may be disabled to improve security especially when connecting to a hostile local network. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Shadowsocks.raw.xml b/doc/Shadowsocks.raw.xml index d3db33a1b..13b8f2d86 100644 --- a/doc/Shadowsocks.raw.xml +++ b/doc/Shadowsocks.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Shadowsocks12018-01-04 19:59:57David Jones
SOCKS5 proxy (Shadowsocks)
What is Shadowsocks?Shadowsocks is a lightweight and secure SOCKS5 proxy, designed to protect your Internet traffic. It can be used to bypass Internet filtering and censorship. Your FreedomBox can run a Shadowsocks client which can connect to a Shadowsocks server. It will also run a SOCKS5 proxy. Local devices can connect to this proxy, and their data will be encrypted and proxied through the Shadowsocks server. Note: Shadowsocks is available in FreedomBox starting with Plinth version 0.18.
Using the Shadowsocks client?The current implementation of Shadowsocks in FreedomBox only supports configuring FreedomBox as a Shadowsocks client. The current use case for Shadowsocks is as follows: Shadowsocks client (FreedomBox) is in a region where some parts of the Internet are blocked or censored. Shadowsocks server is in a different region, which doesn't have these blocks. The FreedomBox provides SOCKS proxy service on the local network for other devices to make use of its Shadowsocks connection. At a future date it will be possible to configure FreedomBox as Shadowsocks server.
Configuring your FreedomBox for the Shadowsocks clientTo enable Shadowsocks, first navigate to the Socks5 Proxy (Shadowsocks) page and install it. Server: the Shadowsocks server is not the FreedomBox IP or URL; rather, it will be another server or VPS that has been configured as a Shadowsocks server. There are also some public Shadowsocks servers listed on the web, but be aware that whoever operates the server can see where requests are going, and any non-encrypted data will be visible to them. To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, browser or application to Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Shadowsocks12018-01-04 19:59:57David Jones
SOCKS5 proxy (Shadowsocks)
What is Shadowsocks?Shadowsocks is a lightweight and secure SOCKS5 proxy, designed to protect your Internet traffic. It can be used to bypass Internet filtering and censorship. Your FreedomBox can run a Shadowsocks client which can connect to a Shadowsocks server. It will also run a SOCKS5 proxy. Local devices can connect to this proxy, and their data will be encrypted and proxied through the Shadowsocks server. Note: Shadowsocks is available in FreedomBox starting with Plinth version 0.18.
Using the Shadowsocks client?The current implementation of Shadowsocks in FreedomBox only supports configuring FreedomBox as a Shadowsocks client. The current use case for Shadowsocks is as follows: Shadowsocks client (FreedomBox) is in a region where some parts of the Internet are blocked or censored. Shadowsocks server is in a different region, which doesn't have these blocks. The FreedomBox provides SOCKS proxy service on the local network for other devices to make use of its Shadowsocks connection. At a future date it will be possible to configure FreedomBox as Shadowsocks server.
Configuring your FreedomBox for the Shadowsocks clientTo enable Shadowsocks, first navigate to the Socks5 Proxy (Shadowsocks) page and install it. Server: the Shadowsocks server is not the FreedomBox IP or URL; rather, it will be another server or VPS that has been configured as a Shadowsocks server. There are also some public Shadowsocks servers listed on the web, but be aware that whoever operates the server can see where requests are going, and any non-encrypted data will be visible to them. To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, browser or application to Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Snapshots.raw.xml b/doc/Snapshots.raw.xml index 2cb147a22..e7cc20143 100644 --- a/doc/Snapshots.raw.xml +++ b/doc/Snapshots.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Snapshots22018-03-10 15:11:41JosephNuthalapatiFix oversized image12017-11-14 02:24:01JamesValleroynew page for snapshots module
SnapshotsSnapshots allows you to create filesystem snapshots, and rollback the system to a previous snapshot. Note: This feature requires a Btrfs filesystem. All of the FreedomBox stable disk images use Btrfs. Snapshots Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Snapshots22018-03-10 15:11:41JosephNuthalapatiFix oversized image12017-11-14 02:24:01JamesValleroynew page for snapshots module
SnapshotsSnapshots allows you to create filesystem snapshots, and rollback the system to a previous snapshot. Note: This feature requires a Btrfs filesystem. All of the FreedomBox stable disk images use Btrfs. Snapshots Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Storage.raw.xml b/doc/Storage.raw.xml index 4edd0c984..3d1bb4275 100644 --- a/doc/Storage.raw.xml +++ b/doc/Storage.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Storage112018-12-18 00:01:12JamesValleroyfix screenshot parameter102018-12-04 06:20:20JosephNuthalapatiRestrict screenshot width to 800px92018-09-25 06:01:56JosephNuthalapatiUpdate description to match current functionality82018-09-25 05:51:15JosephNuthalapatiReplace screenshot with the latest version72018-03-05 12:17:19JosephNuthalapatiRenamed from 'FreedomBox/Manual/Disks'.62018-03-05 12:16:41JosephNuthalapatiRenaming Disks to Storage52017-04-09 13:45:57JamesValleroyupdate note about issue42017-03-31 20:16:25Drahtseilupdate screenshot with "expand partition"32017-02-10 22:33:01JamesValleroyadd warning about non-functional feature22016-08-31 17:10:11Drahtseilscreenshot12016-08-31 17:09:10DrahtseilDisks creation
StorageStorage allows you to see the storage devices attached to your FreedomBox and their disk space usage. FreedomBox can automatically detect and mount removable media like USB flash drives. They are listed under the Removable Devices section along with an option to eject them. If there is some free space left after the root partition, the option to expand the root partition is also available. This is typically not shown, since expanding the root partition happens automatically when the FreedomBox starts up for the first time. Storage.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Storage112018-12-18 00:01:12JamesValleroyfix screenshot parameter102018-12-04 06:20:20JosephNuthalapatiRestrict screenshot width to 800px92018-09-25 06:01:56JosephNuthalapatiUpdate description to match current functionality82018-09-25 05:51:15JosephNuthalapatiReplace screenshot with the latest version72018-03-05 12:17:19JosephNuthalapatiRenamed from 'FreedomBox/Manual/Disks'.62018-03-05 12:16:41JosephNuthalapatiRenaming Disks to Storage52017-04-09 13:45:57JamesValleroyupdate note about issue42017-03-31 20:16:25Drahtseilupdate screenshot with "expand partition"32017-02-10 22:33:01JamesValleroyadd warning about non-functional feature22016-08-31 17:10:11Drahtseilscreenshot12016-08-31 17:09:10DrahtseilDisks creation
StorageStorage allows you to see the storage devices attached to your FreedomBox and their disk space usage. FreedomBox can automatically detect and mount removable media like USB flash drives. They are listed under the Removable Devices section along with an option to eject them. If there is some free space left after the root partition, the option to expand the root partition is also available. This is typically not shown, since expanding the root partition happens automatically when the FreedomBox starts up for the first time. Storage.png Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Syncthing.raw.xml b/doc/Syncthing.raw.xml index d836942e5..29636f15e 100644 --- a/doc/Syncthing.raw.xml +++ b/doc/Syncthing.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Syncthing102018-03-10 04:32:57JosephNuthalapatiFix oversized image92017-10-22 14:57:58Drahtseil82017-10-22 14:57:09DrahtseilSyncthing GUI image72017-10-22 14:54:54DrahtseilSome rewording etc.62017-10-21 14:59:53DrahtseilTitel same as in Plinth GUI; standard footer; some basic restructuring before I will update the docu more in detail52017-04-04 10:39:36JosephNuthalapati42017-03-23 10:54:49JosephNuthalapatiRewrote the section on Syncthing's role in FreedomBox32017-03-23 05:12:13SunilMohanAdapaMinor formatting22017-03-23 05:11:43SunilMohanAdapaAdd note about availability of Syncthing12017-03-23 02:11:00JosephNuthalapatiCreated wiki page for Syncthing
File Synchronization (Syncthing)With Syncthing installed on your FreedomBox, you can synchronize content from other devices to your FreedomBox and vice-versa. For example, you can keep the photos taken on your mobile phone synchronized to your FreedomBox. Note: Syncthing is available in FreedomBox starting with Plinth version 0.14. Users should keep in mind that Syncthing is a peer-to-peer synchronization solution, not a client-server one. This means that the FreedomBox isn't really the server and your other devices clients. They're all devices from Syncthing's perspective. You can use Syncthing to synchronize your files between any of your devices. The advantage that FreedomBox provides is that it is a server that's always running. Suppose you want your photos on your phone to be synchronized to your laptop, if you simply sync the photos to the FreedomBox, the laptop can get them from the FreedomBox whenever it comes online the next time. You don't have to be worried about your other devices being online for synchronization. If your FreedomBox is one of the devices set up with your Syncthing shared folder, you can rest assured that your other devices will eventually get the latest files once they come online. After installation follow the instructions in the getting started of the Syncthing project. Syncthing allows individual folders to be selectively shared with other devices. Devices must be paired up before sharing by scanning QR codes or entering the device ids manually. Syncthing has a discovery service for easily identifying the other devices on the same network having Syncthing installed. In order to access to the web client of the Syncthing instance running on your FreedomBox, use the path /syncthing. This web client is currently only accessible to the users of the FreedomBox that have administrator privileges, though it might be accessible to all FreedomBox users in a future release. Syncthing web interface Syncthing has android apps available on the F-Droid and Google Play app stores. Cross-platform desktop apps are also available. To learn more about Syncthing, please visit their official website and documentation. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Syncthing102018-03-10 04:32:57JosephNuthalapatiFix oversized image92017-10-22 14:57:58Drahtseil82017-10-22 14:57:09DrahtseilSyncthing GUI image72017-10-22 14:54:54DrahtseilSome rewording etc.62017-10-21 14:59:53DrahtseilTitel same as in Plinth GUI; standard footer; some basic restructuring before I will update the docu more in detail52017-04-04 10:39:36JosephNuthalapati42017-03-23 10:54:49JosephNuthalapatiRewrote the section on Syncthing's role in FreedomBox32017-03-23 05:12:13SunilMohanAdapaMinor formatting22017-03-23 05:11:43SunilMohanAdapaAdd note about availability of Syncthing12017-03-23 02:11:00JosephNuthalapatiCreated wiki page for Syncthing
File Synchronization (Syncthing)With Syncthing installed on your FreedomBox, you can synchronize content from other devices to your FreedomBox and vice-versa. For example, you can keep the photos taken on your mobile phone synchronized to your FreedomBox. Note: Syncthing is available in FreedomBox starting with Plinth version 0.14. Users should keep in mind that Syncthing is a peer-to-peer synchronization solution, not a client-server one. This means that the FreedomBox isn't really the server and your other devices clients. They're all devices from Syncthing's perspective. You can use Syncthing to synchronize your files between any of your devices. The advantage that FreedomBox provides is that it is a server that's always running. Suppose you want your photos on your phone to be synchronized to your laptop, if you simply sync the photos to the FreedomBox, the laptop can get them from the FreedomBox whenever it comes online the next time. You don't have to be worried about your other devices being online for synchronization. If your FreedomBox is one of the devices set up with your Syncthing shared folder, you can rest assured that your other devices will eventually get the latest files once they come online. After installation follow the instructions in the getting started of the Syncthing project. Syncthing allows individual folders to be selectively shared with other devices. Devices must be paired up before sharing by scanning QR codes or entering the device ids manually. Syncthing has a discovery service for easily identifying the other devices on the same network having Syncthing installed. In order to access to the web client of the Syncthing instance running on your FreedomBox, use the path /syncthing. This web client is currently only accessible to the users of the FreedomBox that have administrator privileges, though it might be accessible to all FreedomBox users in a future release. Syncthing web interface Syncthing has android apps available on the F-Droid and Google Play app stores. Cross-platform desktop apps are also available. To learn more about Syncthing, please visit their official website and documentation. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/TinyTinyRSS.raw.xml b/doc/TinyTinyRSS.raw.xml index aec3530c9..22ea0c8f0 100644 --- a/doc/TinyTinyRSS.raw.xml +++ b/doc/TinyTinyRSS.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/TinyTinyRSS102018-03-11 03:05:29JosephNuthalapatiFix oversized images92017-10-18 13:51:27JosephNuthalapatiRemove link to source code as this wiki seems to have banned anything that starts with git.tt82017-10-18 13:47:46JosephNuthalapatiAdd importing OPML feeds and link to source code of TT-RSS Android App72017-10-18 12:58:46JosephNuthalapatiAdd documentation for automatic detection of RSS feeds and the Unsubscribe option62017-10-18 12:37:03JosephNuthalapatiAdd screenshots for subscribing to a new RSS feed52017-10-16 12:11:52SunilMohanAdapaMinor styling42017-10-16 12:08:36SunilMohanAdapaAdd information about mobile application32016-12-31 03:49:54JamesValleroyadd screenshot22016-12-31 03:44:56JamesValleroyadd user info12016-09-04 10:18:59Drahtseilstub created
News Feed Reader (Tiny Tiny RSS)Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, designed to allow reading news from any location, while feeling as close to a real desktop application as possible. Any user created through FreedomBox web interface will be able to login and use this app. Each user has their own feeds, state and preferences.
Using the Web InterfaceWhen enabled, Tiny Tiny RSS will be available from /tt-rss path on the web server. Any user created through Plinth will be able to login and use this app. Tiny Tiny RSS
Adding a new feed1. Go to the website you want the RSS feed for and copy the RSS/Atom feed link from it. Selecting feeds 2. Select "Subscribe to feed.." from the Actions dropdown. Subscribe to feed 3. In the dialog box that appears, paste the URL for copied in step 1 and click the Subscribe button. Subscription dialog box Give the application a minute to fetch the feeds after clicking Subscribe. In some websites, the RSS feeds button isn't clearly visible. In that case, you can simply paste the website URL into the Subscribe dialog (step 3) and let TT-RSS automatically detect the RSS feeds on the page. You can try this now with the homepage of WikiNews As you can see in the image below, TT-RSS detected and added the Atom feed of WikiNews to our list of feeds. WikiNews feed added If you don't want to keep this feed, right click on the feed shown in the above image, select Edit feed and click Unsubscribe in the dialog box that appears. Unsubscribe from a feed
Importing your feeds from another feed readerIn your existing feed reader, find an option to Export your feeds to a file. Prefer the OPML file format if you have to choose between multiple formats. Let's say your exported feeds file is called Subscriptions.opml Click on the Actions menu at the top left corner and select Preferences. You will be taken to another page. Select the second tab called Feeds in the top header. Feeds has several sections. The second one is called OPML. Select it. OPML feeds page To import your Subscriptions.opml file into TT-RSS, Click Browse and select the file from your file system Click Import my OPML After importing, you'll be taken to the Feeds section that's above the OPML section in the page. You can see that the feeds from your earlier feed reader are now imported into Tiny Tiny RSS. You can now start using Tiny Tiny RSS as your primary feed reader. In the next section, we will discuss setting up the mobile app, which can let you read your feeds on the go.
Using the Mobile AppThe official Android app from the Tiny Tiny RSS project works with FreedomBox's Tiny Tiny RSS Server. The older TTRSS-Reader application is known not to work. The official Android app is unfortunately only available on the Google Play Store and not on F-Droid. You can still obtain the source code and build the apk file yourself. To configure, first install the application, then in the setting page, set URL as . Set your user name and password in the Login details as well as HTTP Authentication details. If your FreedomBox does not have a valid HTTPS certificate, then in settings request allowing any SSL certificate and any host. Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/TinyTinyRSS102018-03-11 03:05:29JosephNuthalapatiFix oversized images92017-10-18 13:51:27JosephNuthalapatiRemove link to source code as this wiki seems to have banned anything that starts with git.tt82017-10-18 13:47:46JosephNuthalapatiAdd importing OPML feeds and link to source code of TT-RSS Android App72017-10-18 12:58:46JosephNuthalapatiAdd documentation for automatic detection of RSS feeds and the Unsubscribe option62017-10-18 12:37:03JosephNuthalapatiAdd screenshots for subscribing to a new RSS feed52017-10-16 12:11:52SunilMohanAdapaMinor styling42017-10-16 12:08:36SunilMohanAdapaAdd information about mobile application32016-12-31 03:49:54JamesValleroyadd screenshot22016-12-31 03:44:56JamesValleroyadd user info12016-09-04 10:18:59Drahtseilstub created
News Feed Reader (Tiny Tiny RSS)Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, designed to allow reading news from any location, while feeling as close to a real desktop application as possible. Any user created through FreedomBox web interface will be able to login and use this app. Each user has their own feeds, state and preferences.
Using the Web InterfaceWhen enabled, Tiny Tiny RSS will be available from /tt-rss path on the web server. Any user created through Plinth will be able to login and use this app. Tiny Tiny RSS
Adding a new feed1. Go to the website you want the RSS feed for and copy the RSS/Atom feed link from it. Selecting feeds 2. Select "Subscribe to feed.." from the Actions dropdown. Subscribe to feed 3. In the dialog box that appears, paste the URL for copied in step 1 and click the Subscribe button. Subscription dialog box Give the application a minute to fetch the feeds after clicking Subscribe. In some websites, the RSS feeds button isn't clearly visible. In that case, you can simply paste the website URL into the Subscribe dialog (step 3) and let TT-RSS automatically detect the RSS feeds on the page. You can try this now with the homepage of WikiNews As you can see in the image below, TT-RSS detected and added the Atom feed of WikiNews to our list of feeds. WikiNews feed added If you don't want to keep this feed, right click on the feed shown in the above image, select Edit feed and click Unsubscribe in the dialog box that appears. Unsubscribe from a feed
Importing your feeds from another feed readerIn your existing feed reader, find an option to Export your feeds to a file. Prefer the OPML file format if you have to choose between multiple formats. Let's say your exported feeds file is called Subscriptions.opml Click on the Actions menu at the top left corner and select Preferences. You will be taken to another page. Select the second tab called Feeds in the top header. Feeds has several sections. The second one is called OPML. Select it. OPML feeds page To import your Subscriptions.opml file into TT-RSS, Click Browse and select the file from your file system Click Import my OPML After importing, you'll be taken to the Feeds section that's above the OPML section in the page. You can see that the feeds from your earlier feed reader are now imported into Tiny Tiny RSS. You can now start using Tiny Tiny RSS as your primary feed reader. In the next section, we will discuss setting up the mobile app, which can let you read your feeds on the go.
Using the Mobile AppThe official Android app from the Tiny Tiny RSS project works with FreedomBox's Tiny Tiny RSS Server. The older TTRSS-Reader application is known not to work. The official Android app is unfortunately only available on the Google Play Store and not on F-Droid. You can still obtain the source code and build the apk file yourself. To configure, first install the application, then in the setting page, set URL as . Set your user name and password in the Login details as well as HTTP Authentication details. If your FreedomBox does not have a valid HTTPS certificate, then in settings request allowing any SSL certificate and any host. Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Tor.raw.xml b/doc/Tor.raw.xml index a886748a5..ee37a59b2 100644 --- a/doc/Tor.raw.xml +++ b/doc/Tor.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Tor162018-12-30 19:13:56Drahtseilrelay requirements152018-03-19 06:27:56JosephNuthalapatiAdd section on circumventing tor censorship142018-03-19 06:25:43JosephNuthalapatiAdd section on circumventing tor censorship132017-01-07 16:00:24JamesValleroyadd image122017-01-07 15:21:27JamesValleroyplural112016-12-31 02:19:46JamesValleroymention ssh102016-12-31 02:19:03JamesValleroyadd relay info92016-12-23 18:31:29JamesValleroyundo outline level change82016-12-23 18:30:06JamesValleroymove down outline level72016-04-10 07:14:17PhilippeBaretAdded bottom navigation link62015-12-15 16:54:58PhilippeBaretText finishing52015-12-15 16:40:11PhilippeBaret42015-12-15 16:34:38PhilippeBaretAdded Tor definition32015-09-13 14:54:59SunilMohanAdapaDemote headings one level for inclusion into manual22015-09-13 14:53:54SunilMohanAdapaAdd FreedomBox category and portal12015-09-12 15:55:05JamesValleroycreate tor page
Anonymity Network (Tor)
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.
Using Tor to browse anonymouslyTor Browser is the recommended way to browse the web using Tor. You can download the Tor Browser from and follow the instructions on that site to install and run it.
Using Tor Hidden Service to access your FreedomBoxTor Hidden Service provides a way to access your FreedomBox, even if it's behind a router or firewall. To enable Tor Hidden 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 Hidden 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 Hidden 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.) Tor Browser - Plinth Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Hidden Service configured on the FreedomBox.
Running a Tor relayWhen 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 Plinth. At the bottom of the Tor page in Plinth, 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.
Using Tor SOCKS port (advanced)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.
Circumventing Tor censorshipIf 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 Tor BridgeDB 2. Add the lines to your FreedomBox Tor configuration as show below. Tor Configuration Page Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Tor162018-12-30 19:13:56Drahtseilrelay requirements152018-03-19 06:27:56JosephNuthalapatiAdd section on circumventing tor censorship142018-03-19 06:25:43JosephNuthalapatiAdd section on circumventing tor censorship132017-01-07 16:00:24JamesValleroyadd image122017-01-07 15:21:27JamesValleroyplural112016-12-31 02:19:46JamesValleroymention ssh102016-12-31 02:19:03JamesValleroyadd relay info92016-12-23 18:31:29JamesValleroyundo outline level change82016-12-23 18:30:06JamesValleroymove down outline level72016-04-10 07:14:17PhilippeBaretAdded bottom navigation link62015-12-15 16:54:58PhilippeBaretText finishing52015-12-15 16:40:11PhilippeBaret42015-12-15 16:34:38PhilippeBaretAdded Tor definition32015-09-13 14:54:59SunilMohanAdapaDemote headings one level for inclusion into manual22015-09-13 14:53:54SunilMohanAdapaAdd FreedomBox category and portal12015-09-12 15:55:05JamesValleroycreate tor page
Anonymity Network (Tor)
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.
Using Tor to browse anonymouslyTor Browser is the recommended way to browse the web using Tor. You can download the Tor Browser from and follow the instructions on that site to install and run it.
Using Tor Hidden Service to access your FreedomBoxTor Hidden Service provides a way to access your FreedomBox, even if it's behind a router or firewall. To enable Tor Hidden 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 Hidden 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 Hidden 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.) Tor Browser - Plinth Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Hidden Service configured on the FreedomBox.
Running a Tor relayWhen 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 Plinth. At the bottom of the Tor page in Plinth, 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.
Using Tor SOCKS port (advanced)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.
Circumventing Tor censorshipIf 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 Tor BridgeDB 2. Add the lines to your FreedomBox Tor configuration as show below. Tor Configuration Page Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Transmission.raw.xml b/doc/Transmission.raw.xml index 6658e5c92..ea92a6a50 100644 --- a/doc/Transmission.raw.xml +++ b/doc/Transmission.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Transmission102019-03-22 07:08:45JosephNuthalapatiAdd tips on how to transfer downloads from FreedomBox to local PC92016-12-31 02:07:57JamesValleroyadd login info82016-12-30 19:20:51JamesValleroyreword72016-12-30 19:13:09JamesValleroyadd intro paragraph62016-12-30 18:59:46JamesValleroyno space in "BitTorrent"52016-12-26 18:00:44JamesValleroyadd screenshot42016-09-01 19:04:35Drahtseiladapted title to Plinth wording32016-04-10 07:27:22PhilippeBaretAdded bottom navigation link22015-12-15 20:42:02PhilippeBaret12015-12-15 18:23:33PhilippeBaretAdded Transmission page and definition
BitTorrent (Transmission)
What is Transmission ?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients 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".
ScreenshotTransmission Web Interface
Using TransmissionAfter installing Transmission, it can be accessed at https://<your freedombox>/transmission. When you try to access this page, you will be required to login with a username and password. The default for both is "transmission". You can change the username and password using the configuration form in Plinth.
Known IssuesThe initial password is shown in the Plinth configuration form in a hashed format. This prevents it from being read or copied. However, after the password is changed, it is shown directly, without hashing.
Tips
Transferring Downloads from the FreedomBoxTransmission'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 to browse the downloads directory using a suitable file manager or web browser (e.g. dolphin or Konqueror). Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Transmission102019-03-22 07:08:45JosephNuthalapatiAdd tips on how to transfer downloads from FreedomBox to local PC92016-12-31 02:07:57JamesValleroyadd login info82016-12-30 19:20:51JamesValleroyreword72016-12-30 19:13:09JamesValleroyadd intro paragraph62016-12-30 18:59:46JamesValleroyno space in "BitTorrent"52016-12-26 18:00:44JamesValleroyadd screenshot42016-09-01 19:04:35Drahtseiladapted title to Plinth wording32016-04-10 07:27:22PhilippeBaretAdded bottom navigation link22015-12-15 20:42:02PhilippeBaret12015-12-15 18:23:33PhilippeBaretAdded Transmission page and definition
BitTorrent (Transmission)
What is Transmission ?BitTorrent is a communications protocol using peer-to-peer (P2P) file sharing. It is not anonymous; you should assume that others can see what files you are sharing. There are two BitTorrent web clients 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".
ScreenshotTransmission Web Interface
Using TransmissionAfter installing Transmission, it can be accessed at https://<your freedombox>/transmission. When you try to access this page, you will be required to login with a username and password. The default for both is "transmission". You can change the username and password using the configuration form in Plinth.
Known IssuesThe initial password is shown in the Plinth configuration form in a hashed format. This prevents it from being read or copied. However, after the password is changed, it is shown directly, without hashing.
Tips
Transferring Downloads from the FreedomBoxTransmission'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 to browse the downloads directory using a suitable file manager or web browser (e.g. dolphin or Konqueror). Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/Upgrades.raw.xml b/doc/Upgrades.raw.xml index 404249759..525bb1512 100644 --- a/doc/Upgrades.raw.xml +++ b/doc/Upgrades.raw.xml @@ -5,4 +5,4 @@
FreedomBox/Manual/Upgrades52017-03-31 20:11:01DrahtseilScreenshot automatic upgrades42016-09-01 19:20:27Drahtseiladapted title to Plinth wording32016-01-16 07:41:43StacyCockrum22016-01-16 07:35:56StacyCockrum12015-09-16 15:01:05SunilMohanAdapaAdd upgrades manual page
Software UpgradesFreedomBox can automatically install security upgrades. On the Upgrades page of the Settings section in Plinth you can turn on automatic upgrades. For FreedomBox versions above 0.5, 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. Upgrades 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 upgrades happen. Alternatively, you can perform manual upgrades as described below. upgrades.png
Manual UpgradesIn the Plinth web interface, you can initiate a manual upgrade process from Upgrades page of the Settings section. Note that once the upgrades start, it may take a long time to complete and Plinth may seem to wait for the page to load. Under some circumstances, automatic upgrades may fail and require you perform a manual upgrade action. Even upgrades initiated from Plinth may not finish properly. This may be because the upgrade process requires you to make a decision. In these cases, manual upgrade on the terminal may be the only option. In addition, while the upgrade task is running any application installations will wait until the upgrade task is finished. Depending on the hardware, the upgrade task may take a little time, therefore, giving the impression that the application installation stalled. To perform manual upgrades on the terminal, login into FreedomBox on a terminal or using a remote secure shell (see Secure Shell section). Then run the following commands: This will ask you if it is alright to install/upgrade (or remove) some packages and use (or release) some disk space. Say yes after review. In some cases, during the upgrades process you will be asked questions about modified configuration files, answering with a default Keep current configuration is usually safe. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +# apt-get dist-upgrade]]>This will ask you if it is alright to install/upgrade (or remove) some packages and use (or release) some disk space. Say yes after review. In some cases, during the upgrades process you will be asked questions about modified configuration files, answering with a default Keep current configuration is usually safe. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox \ No newline at end of file diff --git a/doc/Users.raw.xml b/doc/Users.raw.xml index 49b6e1e72..e903c4644 100644 --- a/doc/Users.raw.xml +++ b/doc/Users.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/Users42017-01-14 20:13:01JamesValleroyadd known issue32016-12-31 04:15:09JamesValleroyreword22016-09-01 19:21:25Drahtseiladapted title to Plinth wording12016-08-21 16:48:45DrahtseilCreated Users
Users and GroupsYou can grant access to your FreedomBox for other users. Provide the Username with a password and assign a group to it. Currently the groups admin wiki are supported. 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). These characteristics can also be changed later-on. 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. A user's account can be deactivated, which will temporarily disable the account.
Known IssuesCurrently, Plinth does not distinguish between users and administrators. Every user added through Plinth will have full access to the Plinth interface. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/Users42017-01-14 20:13:01JamesValleroyadd known issue32016-12-31 04:15:09JamesValleroyreword22016-09-01 19:21:25Drahtseiladapted title to Plinth wording12016-08-21 16:48:45DrahtseilCreated Users
Users and GroupsYou can grant access to your FreedomBox for other users. Provide the Username with a password and assign a group to it. Currently the groups admin wiki are supported. 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). These characteristics can also be changed later-on. 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. A user's account can be deactivated, which will temporarily disable the account.
Known IssuesCurrently, Plinth does not distinguish between users and administrators. Every user added through Plinth will have full access to the Plinth interface. Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/ejabberd.raw.xml b/doc/ejabberd.raw.xml index 076151d78..052905fc9 100644 --- a/doc/ejabberd.raw.xml +++ b/doc/ejabberd.raw.xml @@ -2,4 +2,4 @@ -
FreedomBox/Manual/ejabberd122019-03-01 17:43:12JosephNuthalapatiFix PageKite url112019-02-27 00:06:38JamesValleroymake title consistent with FreedomBox interface102018-03-02 13:01:38JosephNuthalapatiConsistent naming conventions92017-01-07 17:42:27JamesValleroyadd note about service restart82017-01-02 13:48:30JamesValleroyadd port forwarding info72016-12-31 03:11:19JamesValleroyclarify62016-12-31 03:10:19JamesValleroymention web client52016-12-31 02:35:52JamesValleroyadd security info42016-09-04 10:31:37Drahtseiladded links32016-04-10 07:18:35PhilippeBaretAdded bottom navigation link22015-12-15 18:37:29PhilippeBaretAdded definition to Chat server page12015-09-20 23:52:11JamesValleroyadd xmpp page
Chat Server (ejabberd)
What is XMPP?XMPP is a federated protocol for Instant Messaging. This means that users who have accounts on one server, can talk to users that are on another server. XMPP can also be used for voice and video calls, if supported by the clients. With XMPP, there are two ways that conversations can be secured: TLS: This secures the connection between the client and server, or between two servers. This should be supported by all clients and is highly recommended. End-to-end: This secures the messages sent from one client to another, so that even the server cannot see the contents. The latest and most convenient protocol is called OMEMO, but it is only supported by a few clients. There is another protocol called OTR that may be supported by some clients that lack OMEMO support. Both clients must support the same protocol for it to work.
Setting the Domain NameFor XMPP to work, your FreedomBox needs to have a Domain Name that can be accessed over the public Internet. You can read more about obtaining a Domain Name in the Dynamic DNS section of this manual. Once you have a Domain Name, you can tell your FreedomBox to use it by setting the Domain Name in the System Configuration. Note: After changing your Domain Name, the Chat Server (XMPP) page may show that the service is not running. After a minute or so, it should be up and running again. Please note that PageKite does not support the XMPP protocol at this time.
Registering XMPP users through SSOCurrently, all users created through Plinth will be able to login to the XMPP server. You can add new users through the System Users and Groups module. It does not matter which Groups are selected for the new user.
Using the web clientAfter the XMPP module install completes, the JSXC web client for XMPP can be accessed at https://<your freedombox>/plinth/apps/xmpp/jsxc/. It will automatically check the BOSH server connection to the configured domain name.
Using a desktop or mobile clientXMPP clients are available for various desktop and mobile platforms.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for XMPP: TCP 5222 (client-to-server) TCP 5269 (server-to-server) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, April 28th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file +
FreedomBox/Manual/ejabberd122019-03-01 17:43:12JosephNuthalapatiFix PageKite url112019-02-27 00:06:38JamesValleroymake title consistent with FreedomBox interface102018-03-02 13:01:38JosephNuthalapatiConsistent naming conventions92017-01-07 17:42:27JamesValleroyadd note about service restart82017-01-02 13:48:30JamesValleroyadd port forwarding info72016-12-31 03:11:19JamesValleroyclarify62016-12-31 03:10:19JamesValleroymention web client52016-12-31 02:35:52JamesValleroyadd security info42016-09-04 10:31:37Drahtseiladded links32016-04-10 07:18:35PhilippeBaretAdded bottom navigation link22015-12-15 18:37:29PhilippeBaretAdded definition to Chat server page12015-09-20 23:52:11JamesValleroyadd xmpp page
Chat Server (ejabberd)
What is XMPP?XMPP is a federated protocol for Instant Messaging. This means that users who have accounts on one server, can talk to users that are on another server. XMPP can also be used for voice and video calls, if supported by the clients. With XMPP, there are two ways that conversations can be secured: TLS: This secures the connection between the client and server, or between two servers. This should be supported by all clients and is highly recommended. End-to-end: This secures the messages sent from one client to another, so that even the server cannot see the contents. The latest and most convenient protocol is called OMEMO, but it is only supported by a few clients. There is another protocol called OTR that may be supported by some clients that lack OMEMO support. Both clients must support the same protocol for it to work.
Setting the Domain NameFor XMPP to work, your FreedomBox needs to have a Domain Name that can be accessed over the public Internet. You can read more about obtaining a Domain Name in the Dynamic DNS section of this manual. Once you have a Domain Name, you can tell your FreedomBox to use it by setting the Domain Name in the System Configuration. Note: After changing your Domain Name, the Chat Server (XMPP) page may show that the service is not running. After a minute or so, it should be up and running again. Please note that PageKite does not support the XMPP protocol at this time.
Registering XMPP users through SSOCurrently, all users created through Plinth will be able to login to the XMPP server. You can add new users through the System Users and Groups module. It does not matter which Groups are selected for the new user.
Using the web clientAfter the XMPP module install completes, the JSXC web client for XMPP can be accessed at https://<your freedombox>/plinth/apps/xmpp/jsxc/. It will automatically check the BOSH server connection to the configured domain name.
Using a desktop or mobile clientXMPP clients are available for various desktop and mobile platforms.
Port ForwardingIf your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for XMPP: TCP 5222 (client-to-server) TCP 5269 (server-to-server) Back to Features introduction or manual pages. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 11th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 This page is copyright its contributors and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. CategoryFreedomBox
\ No newline at end of file diff --git a/doc/freedombox-manual.raw.xml b/doc/freedombox-manual.raw.xml index d6b5d9148..b9f12ed9c 100644 --- a/doc/freedombox-manual.raw.xml +++ b/doc/freedombox-manual.raw.xml @@ -4,6 +4,18 @@ FreedomBox/Manual + + 76 + 2019-04-24 03:14:10 + SunilMohanAdapa + Add link to Pioneer Edition + + + 75 + 2019-04-24 01:39:13 + SunilMohanAdapa + Include Pine A64+ + 74 2019-02-27 00:28:00 @@ -6410,898 +6422,1118 @@ Password:
Hardware - 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 plan to support/customize existing hardware. + 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. In addition to supporting various single board computers and other devices, FreedomBox also supports being installed in a virtual machine. Also, any Debian machine can be turned into a FreedomBox by installing the freedombox-setup package. See the manual for more details. - Recommendation: If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space. +
+ Recommended Hardware + On April 22nd, 2019, the FreedomBox Foundation announced the sales of the Pioneer Edition FreedomBox Home Server Kits. This is the recommended 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. + + + + + + + + + + + + + + Pioneer Edition FreedomBox Home Server Kits + + + + + + Pioneer Edition FreedomBox Home Server Kits + + + + + + +
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. If you are using a board that uses SD cards, when you flash the FreedomBox image onto your SD card, we recommend that you use an SD card with at least 8GB of storage space. + + + + + + + + + + + + + + + + A20 OLinuXino Lime2 + + + + + + A20 OLinuXino Lime2 + + + + + + + + + + + A20 OLinuXino MICRO + + + + + + A20 OLinuXino MICRO + + + + + + + + + + + PC Engines APU + + + + + + PC Engines APU + + + + + + + + + + + + + Cubietruck + + + + + + Cubietruck + + + + + + + + + + + Cubieboard 2 + + + + + + Cubieboard2 + + + + + + + + + + + BeagleBone Black + + + + + + BeagleBone Black + + + + + + + + + + + + + pcDuino3 + + + + + + pcDuino3 + + + + + + + + + + + Debian + + + + + + Debian + + + + + + + + + + + VirtualBox + + + + + + VirtualBox + + + + + + + + + + + + + Pine A64+ + + + + + + Pine A64+ + + + + + + + + + + + Banana Pro + + + + + + Banana Pro + + + + + + +
- Recommended Hardware + Hardware Comparision - + + + + + + + - + - - - - - - - Cubietruck - - - - - - Cubietruck + Name - + - - - - - - - Cubieboard 2 - - - - - - Cubieboard2 + Speed (GHz) - + - - - - - - - BeagleBone Black - - - + Debian arch + + - BeagleBone Black + Ram (GB) + + + + + disk (GB) + + + + + battery + + + + + SATA + + + + + Ethernet speed + + + + + + OSHW + - + + APU.1D + + + 1x2 + + + amd64 + + + 2 + + + - + + + - + + - - - - - - - A20 OLinuXino Lime2 - - - - - - A20 OLinuXino Lime2 + + + + + + (./) + + - - - - - - - - - A20 OLinuXino MICRO - - - - - - A20 OLinuXino MICRO - + + 1000x3 - + - - - - - - - PC Engines APU - - - - - - PC Engines APU + + + + + + {X} + + - + + APU.1D4 + + + 1x2 + + + amd64 + + + 4 + + + - + + + - + + - - - - - - - pcDuino3 - - - - - - pcDuino3 + + + + + + (./) + + - + + 1000x3 + + - - - - - - - Debian - - - - - - Debian + + + + + + {X} + + - + + + + BeagleBone Black C + + + 1 + + + armhf/omap + + + ½ + + + 4 + + + - + + + - + + + 100 + + - - - - - - - VirtualBox - - - + + + + + + (./) + + + + + + + Cubieboard2 + + + 1x2 + + + armhf/sunxi + + + 1 + + + 4 + + - VirtualBox + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 100 + + + + + + + + + {X} + + + + + + + + Cubieboard2-Dual + + + 1x2 + + + armhf/sunxi + + + 1 + + + - + + + + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 100 + + + + + + + + + {X} + + + + + + + + Cubieboard3/Cubietruck + + + 1x2 + + + armhf/sunxi + + + 2 + + + 8 + + + + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 1000 + + + + + + + + + {X} + + + + + + + + OLinuXino A20 LIME + + + 1x2 + + + armhf/sunxi + + + ½ + + + - + + + + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 100 + + + + + + + + + (./) + + + + + + + + OLinuXino A20 LIME2 + + + 1x2 + + + armhf/sunxi + + + 1 + + + - + + + + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 1000 + + + + + + + + + (./) + + + + + + + + OLinuXino A20 MICRO + + + 1x2 + + + armhf/sunxi + + + 1 + + + - + + + + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 100 + + + + + + + + + (./) + + + + + + + + pcDunino3 + + + 1x2 + + + armhf/sunxi + + + 1 + + + 4 + + + + + + + + + (./) + + + + + + + + + + + + (./) + + + + + + 100 + + + + + + + + + {X} + + + + + + + + Pine A64+ + + + 1.2x4 + + + arm64/sunxi + + + ½,1,2 + + + - + + + - + + + - + + + 1000 + + + + + + + + + {X} + + + + + + + + Banana Pro + + + 1.2x2 + + + armhf/sunxi + + + 1 + + + - + + + - + + + + + + + + + (./) + + + + + + 10/100/1000 + + + + + + + + + {X} + + -
- Recommended Hardware chart - - - - - - - - - - - - - - - - Name - - - - - Speed (GHz) - - - - - Debian arch - - - - - Ram (GB) - - - - - disk (GB) - - - - - battery - - - - - SATA - - - - - Ethernet speed - - - - - - OSHW - - - - - - - APU.1D - - - 1x2 - - - amd64 - - - 2 - - - - - - - - - - - - - - - - - (./) - - - - - - 1000x3 - - - - - - - - - {X} - - - - - - - - APU.1D4 - - - 1x2 - - - amd64 - - - 4 - - - - - - - - - - - - - - - - - (./) - - - - - - 1000x3 - - - - - - - - - {X} - - - - - - - - BeagleBone Black C - - - 1 - - - armhf/omap - - - ½ - - - 4 - - - - - - - - - - - 100 - - - - - - - - - (./) - - - - - - - - Cubieboard2 - - - 1x2 - - - armhf/sunxi - - - 1 - - - 4 - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 100 - - - - - - - - - {X} - - - - - - - - Cubieboard2-Dual - - - 1x2 - - - armhf/sunxi - - - 1 - - - - - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 100 - - - - - - - - - {X} - - - - - - - - Cubieboard3/Cubietruck - - - 1x2 - - - armhf/sunxi - - - 2 - - - 8 - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 1000 - - - - - - - - - {X} - - - - - - - - OLinuXino A20 LIME - - - 1x2 - - - armhf/sunxi - - - ½ - - - - - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 100 - - - - - - - - - (./) - - - - - - - - OLinuXino A20 LIME2 - - - 1x2 - - - armhf/sunxi - - - 1 - - - - - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 1000 - - - - - - - - - (./) - - - - - - - - OLinuXino A20 MICRO - - - 1x2 - - - armhf/sunxi - - - 1 - - - - - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 100 - - - - - - - - - (./) - - - - - - - - pcDunino3 - - - 1x2 - - - armhf/sunxi - - - 1 - - - 4 - - - - - - - - - (./) - - - - - - - - - - - - (./) - - - - - - 100 - - - - - - - - - {X} - - - - - - - - -
-
-
- Also Working Hardware - This hardware works but is not recommended due to freedom, performance-per-cost, or other concerns: - - - - - - - - - - - - - - - - Raspberry Pi 2 - - - - - - Raspberry Pi 2 - - - - - - - - - - - Raspberry Pi 3 Model B - - - - - - Raspberry Pi 3 Model B - - - - - - - - - - - Raspberry Pi 3 Model B+ - - - - - - Raspberry Pi 3 Model B+ - - - - - - -
-
- 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. - - - - - - - - - - - - - - - DreamPlug - - - - - - DreamPlug - - - - - - - - - - - Raspberry Pi - - - - - - Raspberry Pi - - - - - - - Note: As FreedomBox is currently in the development stage, Supported Hardware means that FreedomBox images are built for said hardware and at least one developer has reported the basic functions to be working.
- Targeted Hardware + Also Working Hardware + This hardware works but is not recommended because the hardware can't run entirely on free software: + + + + + + + + + + + + + + + + Raspberry Pi 2 + + + + + + Raspberry Pi 2 + + + + + + + + + + + Raspberry Pi 3 Model B + + + + + + Raspberry Pi 3 Model B + + + + + + + + + + + Raspberry Pi 3 Model B+ + + + + + + Raspberry Pi 3 Model B+ + + + + + + +
+
+ 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. + + + + + + + + + + + + + + + DreamPlug + + + + + + DreamPlug + + + + + + + + + + + Raspberry Pi + + + + + + Raspberry Pi + + + + + + + Note: As FreedomBox is currently in the development stage, Supported Hardware means that FreedomBox images are built for said hardware and at least one developer has reported the basic functions to be working. +
+
+ Adding Hardware Support + Although the project may focus on supporting specific devices, we are looking to support as much hardware as possible given that it is suitable for FreedomBox's needs. Take a look at the list of targeted hardware for more information. + If you are a developer, consider adding hardware support for your device by modifying Freedom Maker. If you have access to one of these targeted hardware devices and would like to work with us to make it run FreedomBox, please contact us! +
+
+ Pioneer Edition FreedomBox Home Server Kit + + + + + + + Pioneer Edition FreedomBox Home Server Kit + + + + The Pioneer Edition FreedomBox Home Server Kit includes all the hardware needed for launching a FreedomBox home server on an Olimex A20-OLinuXino-LIME2 board. The Pioneer Edition FreedomBox Home Server is the first commercially available version of FreedomBox. 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. + The kit includes the A20-OlinuXino-LIME2, a custom metal case with a laser-engraved FreedomBox logo, a high-speed 32GB micro SD card with the FreedomBox software pre-installed, a backup battery, a power adapter, and an Ethernet cable. + Recommendation: This is the hardware recommended for all users who can't build their own FreedomBox by buying the right components, downloading the image and preparing the SD card.
- List of Targeted Hardware - Although the project may focus on supporting specific devices, we are looking to support as much hardware as possible given that it is suitable for FreedomBox's needs. Take a look at the list of targeted hardware for more information. + Availability + + + Price: 82 EUR + + + + Olimex Store + + +
- Adding Hardware Support - If you are a developer, consider adding hardware support for your device by modifying Freedom Maker. If you have access to one of these targeted hardware devices and would like to work with us to make it run FreedomBox, please contact us! + Hardware Specifications + + + Open Source Hardware (OSHW): Yes + + + CPU: Allwinner A20, ARM Cortex-A7 @ 1GHz dual-core + + + RAM: 1 GiB DDR3 + + + Storage: 32GB class 10+ microSD card pre-loaded with FreedomBox + + + Battery: 3.3V Li-Po, 1400mAh (4-5 hours of backup without additional devices connected via USB) + + + Ethernet: 10/100/1000, RJ45 (1 meter cable included) + + + Power adapter: 110-220 V input, 5V output, EU style (with optional UK or US sockets) + + + Box: Custom metallic box with FreedomBox decal + + + The kits run entirely on Free Software. They work with Kernel and u-boot from Debian repositories. Even the boot firmware in ROM called BROM is free software (GPLV2+). +
+
+ Download + The kits come with an SD card pre-loaded with FreedomBox. There is no need to download images. However, if you wish to reset your devices to a pristine state, then you can do so with the the image provided. Follow the instructions on the download page to create a FreedomBox SD card and boot the device. Make sure to download the Pioneer Edition images. These SD card images are meant for use with the on-board SD card slot and won't work when used with a separate SD card reader connected via USB. + An alternative to downloading these images is to install Debian on the device and then install FreedomBox on it. +
+
+ Build Image + FreedomBox images for this hardware can be built using Freedom Maker. +
+
+ Known Issues + + + The image that shipped with the kits uses a slightly modified u-boot from Debian and not stock Debian like the rest of FreedomBox. So, if you wish to get the source code, please use the FreedomBox team's u-boot repository. + +
@@ -7594,7 +7826,30 @@ Password: Known Issues - Order hardware revision G2, because the current revision K is not working properly. + Revision C hardware has poor performance when receiving Ethernet data in Gigabit mode. To workaround the problem, you can switch to 100 Mbps mode instead of Gigabit mode. Login to your FreedomBox as root (or plugin the SD card into another computer) and create the file /etc/NetworkManager/dispatcher.d/20-fix-ethernet-problem with the following contents: + + + + Revision G2 hardware has poor performance when transmitting Ethernet data in Gigabit mode. Download and use the Pioneer Edition image to fix the issue. It contains a slightly modified u-boot. The above workaround to put the Ethernet into 100 Mbps mode also fixes this issue. + + + Revision K hardware is not working properly.
@@ -8026,6 +8281,109 @@ Password: None
+
+ Pine A64+ + + + + + + + Pine 64+ + + + + Pine A64+ is an affordable single board computer with good performance. + Recommendation: Pine A64+ series of boards do not have built-in storage. If installing to a microSD card, it is recommended to choose a microSD card of class 10 or better with at least 8 GB of storage. +
+ Similar Hardware + + + Both 1GB and 2GB versions of Pine A64+ are supported with the same FreedomBox image. + + + Pine A64-LTS is not supported yet. + + +
+
+ Download + FreedomBox SD card images for this hardware are available. Follow the instructions on the download page to create a FreedomBox SD card and boot into FreedomBox. Pick the image meant for Pine A64+. + An alternative to downloading these images is to install Debian on the device and then install FreedomBox on it. +
+
+ Build Image + FreedomBox images for this hardware can be built using freedom-maker. +
+
+ Availability + + + Price: 29 USD (for the 2 GB variant), 21 USD (for the 1 GB variant) + + + + Pine A64+ with 1 GB RAM at Pine64 Store + + + + + Pine A64+ with 2 GB RAM at Pine64 Store + + + +
+
+ Hardware + + + Open Source Hardware (OSHW): No + + + CPU: Allwinner A64, Quad-core ARM Cortex A53 64-bit processor + + + RAM: 3 variants - 512 MB (not recommended), 1 GB and 2 GB (recommended) + + + Storage: SD card, eMMC (module sold separately but not tested with FreedomBox) + + + Architecture: arm64 + + + Ethernet: Gigabit Ethernet port + + + Battery: Supports battery backup using a Li-Po battery + + + WiFi: None, use a USB WiFi device + + + SATA: None + + +
+
+ Non-Free Status + + + Non-free blobs required: No + + + WiFi: Not available + + + Works with stock Debian kernel: Yes + + +
+
+ Known Issues + None +
+
VirtualBox @@ -9091,6 +9449,23 @@ wget https://www.thinkpenguin.com/files/ath9k_firmware_free-version/htc_7010.fw]
Release Notes The following are the release notes for each FreedomBox version. +
+ 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. + + +
FreedomBox 19.5 (2019-04-15) diff --git a/doc/images/banana-pro_thumb.jpg b/doc/images/banana-pro_thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..82818bb5acc7f8c8baacc4b8e06cbf8ec206f6e7 GIT binary patch literal 205481 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

T0 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 VhM_tEU#6UHD71`_V;^}k{$Jt7_!$5I literal 0 HcmV?d00001 diff --git a/doc/images/pioneer-edition.jpg b/doc/images/pioneer-edition.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d6241d5cf395da5787f4a0d1b50a6a51fa47175 GIT binary patch literal 52740 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 literal 0 HcmV?d00001 diff --git a/doc/images/pioneer-edition_thumb.jpg b/doc/images/pioneer-edition_thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1916443ef572c1e71721be4177ed367a1ce73ffd GIT binary patch literal 23691 zcmbTd19&A}vnae{JDJ$FJ+W;}j7cV#*tTuknb^q$6Wg|piH*DG{oW7fKj%5my?>=E z3tg+at9CC{)%sZa*a9F+i%W?EK!898LI(hRY-5jzxtf~-08&yk0B8UJ00lq<0R^A} zb4EbK0f7L308>XG;{KiY1m>wg!2YTS1?HK7^zgtm5Qr?mJUTFq1)_Nf_+K=I!2A>t zMeI!s9ZkLxxtKee5lKkNDFWz#tp9NTXZoj-h=qZfiGd5i!oE}v zW@c{T;OOM+;_Bue5Ev935*ijBpOBc8oRXTBo?lQ{R9sS8R$f=%(Ad=6(%RP3+t)uZ zI5a#mGdnlGu(-6mvc0prw|{VWbbNAkeRF$v|M2+q{70@oa{d$kN4Zdda)E+_gMmZ+ zkqZRW1&ClM;1I;jkf=gRP=2iA1(`w7QR@>7z#$j%rs!1kY zVmiS!L)b5T^v5zOm_Ph!-1AKTjvS&rxO+ze+7!&b%16s?)i4gU7zcD2et&mwtVmWSsLJ8-39S~IZPZ54ThcLqu+tIs3FnyL?@Y>& zv$iPA?jNDbkL?Mk$_4#jF|XXx-89VR@I+%uYjA033+)#Fbo{f}RhL4eMubR%Wve?( z(UUP@h|05y^o|wjf)p$a8Gt82C%EH^wU-C+HvY}}o8IRPo6N(hZ2xv7y{m`NSFu(` z#&u%rn%-;5Ig#u zL0E_Ea`>@V>dK0*0gq}W4jdJd;?V3ia`SfxI7d3i56Y_}ym`L_ls3wpw;UwhcQS-vCp_d9)6UWI>ojax+2Jb zK@1hec{;}o)7CkL?WQ32_9}Emh&EwCY)a7f<~{*jwjV@SW(&W)IE6@G;{smC-PAj- z!1}U@*P30<@en=$bOujouL`@W`O6IE1UJ>5(w7UqdfYb22isgstN7_`?^3Cz?@u3!HIxs~p$BWafalT4bDbS6vU@mFM6C&_T%Kgl| zyFw{!T)UxDe#bb)Ne(e7(`K^)r8VAn!XjEs*<2nq^rElma%YVxy({lCBp1;r$AFi$ zG;8=uSjo68_i6?nzQ+UQ@TB~#;_g)R0pOzo5jv<`I(}%rsZh6-qOJV}%Qd-Jq)M7? zIopZzn9brCu_(Jj<@T56)5#joGKF!5@jpheD4lwyJ4tCfIG6et(O3-5f3AjYt!!@ z_wsQx))h&+&)C}`r4Jal-YI1(r#OzB3(8?cNiNicLobWN13!NU6EJxpsmpO(=s%{c zb3k6i4Y{Kn@#2gWGM00c@S08fbmmi zZ4-1o+p`kic7=mln|xUppaJubG+oJYVX<>VzpW?7X-wO8SjZXiAN#Jwaw%D_oSDgN;EBPx-d+e5jmER?$mB znnp4&-VNMNe1`j|oJ9^s-+*|iDy3Hs>wQ7Q$$l)ky9UD@_+qg1o@iwgc}3S-Q1u)N z$GXKKCF4cMKg?MR&M3|Gg&p*Q(V!@K=b}RpDbW+@IZT8%WEwf(H?=;@S7*o-f4S_Wy&2qw6nE`!iguW8IUak z1lr}gt2%x+JV}&`__Qn5?WjT&GpD3=LjtAM9FGCp_#Re2`-{gvGk>k`;oQB%Tcn^w z6R(8KzvHpJrBSKK&>}FDSu#qNEDRfwj*R4G>PAl+sz$%-2h5grNS1&I!sRF&Dy-sG z;bU|*Vm+YeP7&v0P36V2M0207WZ;FLW^O&JOxlZmNxQY_%|XsVc2)nB^q{NlePE>1}5oBt{Z6_$u<=2*UlAT1m8}dSw-aS&W`D z#DMqWC$TT6m;TlC=I0h@xo(OVjKR|sr${e3%h9syzpdQPK2 z$BUx-tH+h>vZ^WI3h0tXMC8ReaXMk2hzYSK#W@NFH4&p0LN!nXEY{;R&?1kxC zL7oLy6uoBz0`og?L2m8S9{^D7_pgidz_0NWTgDe}ilxfE7=*_C7Df{IxMtEo%9dAD(gfHXJfB9}YrXOi& zv1TowqPW}g&fHUE9;x2H9=E=Blr6;`rXwq+UwZJmqLjuX?nfbg}fXuOOrh2Pn7g-v+Yf6I!@!xBk{-ryeQn^aMXm6I2z4%Dbg z+mG9tO(4l?{tWVkbAxQwaa@S*Lbo|C*=dim*y5Wqvql09a$;6~R30ffbxR{= z5Zy>U{K>B0A}gA+`B7c9?Y*9f-?WGyNfDZGq~$PmM%%(k0!-<5UePYEwzjT;S1L_? z@iB%wn9k8b=Cu^;gW?D&GBJI8X^XRS#q||ON%-{kN;=SYq!Z*;}hZ-u}zx`Sz z~9 z5KLWZoP2Mo7{|B#3;e6ot-wNK3GWZdfg)ahvuq{w49#vvg>4HDYGsf49Msha1bL^{ zc#3oh#+Pgid3TUwRjVrSi2dQk+Df#=q}YYbp#;9rbE(;IJLO2B!qbJ+K<QT z65rw?c=77d;^nXkyDMnavowCQx;y5{X;BG>d%!9Jj+kX+0v6N9reu{Pqi>DV^%8xl z-F6a43f$tECn;;tLCMY)hi%c5^wY{IU4V;`PXAacJlGlZ%m}3m>UHAL%ok_$d_OVA zf%NEpxO6RRvmXXtjF%RZXPp3lWu`^6&mo(cNc(yLI)}cM2q}JSnv%U1tT(I>RKf(PHjNC7cXOTj z3}kJOYgYUyII$RYfb-rFM)X;~9fZp9De?&Es}4Edu@pF`=l1L{TDFfYAuz)`=YJ1w z=QDnv?eLc}X0ljN2BE3xc7n?0Gk2_UYSDJp+SFRSBWwSeGQI|G#QZb)IQuTaqe$my z(f+u3Ds_XR&z^wwc-(14RD7`CMFms0E-)72ykQ}xPe!3(lDs*a^hGp)p_f+>d+0~u zY(T=1nCRThh1(u0j6@P8A`)bhpB|zmyK$;Qv!&IVuw*Ytt(M{hg#!JfUB4x^gS83O z^+|B%JGz(oSRo#YBy}hx6yEeobOS7aM``V$sJm#;K@k2_D%yPMf~p_Dl7RlcrflHN z23S)mEu=&L8VglP97NhC&eCU;8-FTrGPq*_|A{v>nZGzaBDtUHfy`}r0BxV3q>_n& z&*4;>+GA0cn!L>8I|CI#gHopYkdTa2`pGNp<%8apPWi(90Gz;1TdE=R`RSu_Vxrp8 zgeqts0ERLb<0J?E9ZRM{m!n_@7aL7Z?QKrk1b)opc}t_{QD)mTXgjJIiEy>r_XD8M zG^GEak^Ann<_q|RF{py#MWQT19L(!V8ce>5XMv&W4CYIHtE5x#*T(p|I-C$G`;{~F zmW{ehm{SfF>8_mD@9p=Y-VZT=XM%CX0Q=z276K`bcWqFfnyTs@qe;7OHuOKNk`?HF zK!TMHYOOz3Uhd~6y(;93BF=W6tZS6K82B*j$k$gaS$Y$^*yQY;C?%o651Q zW_yC#M!!1T?X-9G&Gf(3I>9L1=5R54I?3gNq!)ewoYOcSR!IDn?ER$r0`7{4%1AR8 z?30zTT}c}9Q+0_52Y43ZQaH;pcSnynuh2Wf(5-rr-Dj?3;~H$u&3@riVHt;u9EZDD zm=ihWLhjxa4uMhRCZDUu7C3mQnYtwIPZ9(a!En|}(^GbkUYFMCIV)oMV z@@KjE;WUDOZ9@KRM1Ux+c%tS@BM!}XdRQI4iHIxG;$SaMk$ivP>|u7^9$EfVaBzzP9+b5@1b zibt+IDHizQV>GRnow80bJK5G#Ox9k^knq=C3|$7$;WpOr6HhzSg?HMnpc%F}9sJsu zlvqRvyIFA~tI^q(+afCa4%o=2W=^9d>w=+|-O|EC_5>^2=@t_%k|uSrmI!w|CcN;L z(KNTTkg++XqQ?1i<^*EfNPZ8TGWeTeG$EISCD?jJ8~pe9PfP7l3a%KxV2CV8|+d#sFvn}{xpdq&%17i73o5bI1HvC;4=RiN1ouKmr5adxE*okt) zk85^et@0xL=5|9tNRo4}QF5rnGaXVo^ZjZQ#*=RGRsNVRHUk%IINQ#@_butfC&{BZ zh#&8W09}c^u_pV5kbSJz!J8l_$SD^BXb!~>qPLr<_*=nahX2KW^Z&Ky{G$vB712&@ zymO9mW<9VBH4gvF0oQ$T#G7`C9RW!>MYbcf;))ZhzS@*vpmVfJVz3jc@hUoA1&$yO znqtFb=mF9H=^vNvTsB~Ew_~j;ytI*bEdT&VfigVO>G1N^@ReR&#*0g z-zkVr!&wtF*g7Z`7pxZ+fuqZT={wdU*YmSRy{pKU5lPWzSn=ArSRwtd4}e=&&rf{G zUVAHt;RZr@OMddUYqlTQl-<4jOc8gK;lRZhj3?^MZ8!cx+s^xuVS8R2YR+56Rkhsg z?J7OZG(8=CezPAW2B{*1R+afeVuKcX?2uvj26;Hv0@s|OnmB+^+6!Hs^nW+C{&!RC z=MTV+M(>iRn!#d|Qoh9$RcX+*1)Q*F$gQb-ph6V#<39k@dNMdX& z^B_rij}B6o`>BmH75U9EkKr+CF=c#m7Sm!x|2NMU_*nkS;{XN<`sV@yIPiji{$sm` zfQ5pBgocNOhlhiOgF`?>MMgkGL4<=t{)CKzhK_-O0gr@<^$8sd6&(ZpFOLHlunjl_ z3bsp%2 zfB=I5n)7jhH~!f3|9$t5wI1lE`1so-jtqtjY;p3(;q*VjAWG5gsH)8*&bJe>y0zcg z-2l4YI^+B^Ecgj@6v{KmPd4{y-x;{>=>LsNS)ZsI;LLsAL)%p|;pT znwOPkSh2LiPs~$(hO^G*f6(@+&ER}1W*Z%EG(j&mK`xh+CTAr*oBxv&aynuyQ6t%pMnmxIfi zUXm7gFG+D$QumQN4DeA{&uqbIKrydugoV(Hkz@)GGH&%g>7PE?M>3AxHZl&q@t~5c z(!@S6Chk`WusV7EcAEI94qb5(ZQYr8Z~_1jEq~uyUrzU|_aQT_w{1!6e z#a2mFU!3`LNoc7mn}EVnN@yM~O-rr8d~_Z&V+r#t_S16m)@!H+v3PH2Iox#ma3FOi7XCHnkKDG zUqq*KMV)x+b5_P7VqEmNBSD&Z7E4`+1%OCYS~$VU%V*@P*Q=_Q7b4=Mc0$SW&hg}D zLQO?GjNjoDby5_ca=uPYM|?T z6?^aM<*4+r5lpI}T;{ogQ)dTzLdz>XYvi7B>>m2p_n4Gwht<)P8Kcxh5*0M)#3@** zWQ7yA<*w>|J)4-Y!Nuy&gq9QgNBL?!xvH|{OvGlhyYtnvb@h2jRSwUXTgRTT@&pH~ zgGYxO?;#nJTuz?Oqem5D`Jlusfioav$VzB{IPk($De?{*^Uiq}+J!Q3d8tY3mn&<) zZf14iGxNr+Wmerl{o?Z3PCTs{1XH=9D1>q`va+xdsw!Dnpy$ql^9rw(hMeg%i)e1} z)^@XjTMEEzWx`J^oCV(Lw!?<<%gvpxqr*Hb8b(^8A2c9L1(hgOHa9ebYH@qf{n@C4 z_-m}JtccmQg29uP{x1M`bbW<_L_~qP7gWduflZNN5nt5=jirTD7zj)Qi4lylm8YWC@(QP7mg0@l((_tcDrfba zuEQn&Y6$2>5Hk&%77=;VdxxGC@nzJGS?R}b1L6U!AV_-e0T z^19CY`X^H053sjZ^C9u7nlyDyyt^p~h#j=PHaB`P^Ypv;V}cJD2DLd%bS@t@`2Ix< zblm4l(3#6Jq%?&64BAg}cg(Wn2&)co+W>QPF?sg?rQ$ydKERod7C4VV0OxIpKl9yR z_x_sb0FWq9$V8}UOz6bSf%Ie8y$2?!fll z;?B9oMQm8q=kjeWADU}5c~KQ~uxyU=*Atq8ud6Z~&(XRhR_vl1yf; zGY5(W2Iu-;=;?*Iao$!ju)n*^+F3L+<8vsbH>OYG@~jEnI=?JX4jEwfLMFg)c(q4ojGgTmdR}Vvd4peVJRJxQVsO3z)i4ahyh) z*C&>u`HB%3PuH#w6|*{6#9S_?J=Zu($svHwe-{l_i^dXcW7(!jYIQTvn$KLiP=#5nCi+6W{1wesO8Z-r9%-l9$UPaItIbBMQ?JBP z+H$x@DNrmGG)z3Gtj^a8edAS^iDA6?sGjj{FKt_>6kdwCi$l+Y=(bS}1!5+22qiuc zJE6w-)tQwS9V;(KgcgTi6hl>=T7vLswJvmlBhJk*T47Lw%EdZqSU)4NL zl%htG6hSrP+BH{XZ#y#)=^~PjP0!iChsh+XRuOWZXbuyW!sGKE)DPl%UcwH7Wx|Ln zDu}^5%!azaDO}D)s7axJ01liA;r%Pt*=X%`G|21hNCt-EH8DUCbMi?bz!)fUkvtum z8{WmOQ(2_Bb8zn`*xdU;W$?6NRjNi{`y@Hc}lhc>PM#Fo!lMh-eea2aLj7{ukij}n0DLB{M#8cHND!>|1 zXC4o^k7C9-nmEKt#c0lS!q`%TE+%K9Q;6p7r>a#c zpfR3;;y9mkto&IN!Bx7H90%=oXox#GINsCRTxb-yAIM(%E~SCcpBLHOCLIQz4~OZ5 zN#p1gS!A3FNVQsL^P*L3n)3wJmp*EWZ8d)0T=|{BuX@HPsw!>uwO)(^0^+CfS(!ZW zK~=_65Kz3%z419eyoaNj15P%a!(B*ugrwP&DR>cOeSL(|_YL0WO8K;yGc? z*STYYD~!+dKZRWPWqP)coY$q7JV^%!*lo}tobB9SBsZE!6^csTH-e7biLsarziTIo z$DCQir*g&Vt<9vH_Cw$DU*s<9r3$4&@8-u`6b}_TOpvY=NIw96 zz)_s>AJIh+;Gm$uaJfGKjEDn6K_zBl21h0$Q9@%86oODhHzZ{hRyN4{Ya|B__W~eq zZ|4X?ci0>5F$b`f5DpL~Ovv7D2E-1W2NGgi72;Pq9Gg_JoWUibnpw|7$0!!7t_bhU zw#4?1L+zwRz>bP=83u}zO-y!b1AVMcV}lU@7iIrT_^>*3w}Uk}Q(>ruZ%4VbQ3Lfz z6+6km;GjmOxT%KtY}#*a zIagzy()cl@;MlNIOA^)vh~=alkAx9 zW5RGYp&x)l;q!8hB((L3@=Y$p47gAs72|Q%B|SLi$(A15m}^`lP)baxx^{59Q63uqW68&mC{!w1<6^`Tn`%r1nDIHX6#Ml-ZpY0mWUpT~Y>7dwBXa!yTLjojjH+ zi@NVdcJr8?hZwq+OHoe+b+~1j0{9V4Rk8X^K01RmVfRElCL%Umd(!4BoU_vM2fw6^ zVIlYo&;X!%h~e+KoSn)Ec)if0Kr&A&M)hoc73*-eD0NtJy-!7?4Zj9Yl()(|cV==x zq`a29rPI&qep$^C>9f3j)ivHNT<&u{{oV&9-wc_=iY>lXUhz(@|2X0kQ|h%W&4%iG zJ_~bT)f7s4p{iDvcpI(*hQ4o%&-BZiOWDN#4l$N75t1c50KP<2CCa8{G=v%C(O2IL z9btd_1fPVfe~mLSYUL`Hy-%W+#;CH-q?ger5N#r=fj*m<>Ci2;RCI+sS}6tO5#;lD z(^NxKC`ZaqJ=OC{z9+28pl}%@WdF82m}D^FDL9LH`7;T#fVQiyIe(U&;3G$WGys_R z%FCXS2_a49x}EIY__IG6s2^i4RIe?wi+Dv@A_m9=nCo$P(gR^sgkuwOC%vtI#2691!LfdhjPf!&IU1wv3r2@PG*kW^S1gVn(9 zA3Y27ub%Y*a7DYIp&RN_oc;1B%9bjl?c+(t(+Snu2Z~zS@4r@I0{)(#R1BTU>y>@^e3x^Qm<7Ew>LS#I)2n?2$jU8w05sdcg=oRN zUX{&#ckc>Qkx!4Z*)|cQ2@wqV04NY&1oTwL;K*4K<2P~`7;s|ZS>T$j$KJ_gL65hMu9)%>-;r|5=L>D>Tz`iNYCnC4mc)76ZD?Rd}_%+!^;rQ(;s zzGr8>a@{;Hh4|kU>Vx-GR=5x6eIUGK8rJPqgYvl9=J25qKMNN~n^gMu96Bd8`;S zXuFlJIrLE*41li#yO^AoYF|RW2W(rIf|g=5>_WCkW`Y9}FG zv8m`NO3R-`Mg&VPCe{!lC{W#8o&Hf2+29a)LB#uCBvDf`8!-f#;9XWpWeNfP* z`wC!Io0a3UY(57~s`_p7T?IHsh$H{84T3?!K>#h6e{G?FMPS78pD_ZBgh@yV0-cDI zMNnAT&@N8J$S<#3MA5!>8iS10cw5x~7^<6)Uw3)+_vQ*x0QBX(UPbcz1Ff37kOY*B zPx=So7(!m5OQnX+4^w{3r_EU0>-SZLex}2asUg3*tg?9sdGu8wNnJgC#}>kSmTSvR zm^l~*-IS1MW7#6#Xu>J1G~P~>%a@kt{vxU*{E}q!AoNlL6%dBjL7a=9F%{rYtVlU^ z&cEdwT>C~Gvd3|x{iBgm;3-$Q-8)Fu=6YjjH#o)dezsDZTGuOYP|7h8CfRZYT%QyT zu8TUR{k25?43%2UQW-Q8$CsPvqUg|NG1nqWsF@<>Si%?c7$y%xDBZHwMD~mOm>yUz4!y}6y*HA%wUG_pu%ELj;@Z_6 zHG+1tSuT4lhw*HyuZ^%Q*0C6&738fU2!2Do)LVyYAM2G!hkyFEBPDU)8}{{in{4uHjM63P6lxrNi*CQ(3TskpVCabCR2M*t$y+x@nytjHmSzuwe;Ok ze^SXTC4hXhdcwlRla9Nto~1j{Q&JWK^+b~_?NvwIh0(Hs#lW^mK937uI|>D?W;+<6 z*@J&cPnCgwpJa>#u^!wFFAPZFIwck}!%@mr-;4{d+j9A}W)z*9`*=!b-XZZ$NvoiI z_=S)vuZM=+Eu>+2Nt`-DjwdPRvv1XGNvm%J3~};H<$8*cg+yEw56@@oVAVwQGWJUQ zWjhe_HG`kDu7sxE>E#rU*%_L!%EF3C_!-wjvJa|-?jL{~@+3n{!ylz={K$39>bXm; zWGBty8D-ZMTs2ha`R1cn5f`|1^qUq}{3#}0j%6lN`m?9-#1vz*Nex8?pAA`BZ#(nT zBe-Iiu^UghC%0SZ6541Oai3tl##0dvAc_v~E~;qst#iVuRw73pNT9!meYKWnp5WhU zpU2o&9f<1nAq|-A`03repJQyXtj0&2L_Ye72J_LS=U@*ZKgl6wUP}Fu%2v~jIYY0m z`%nu%>3g&-eUWSEyTAxF!$_w3oes(BNhOoyudlr-qT&5&K15_ja>T*G(1Hr1)KK3Q z8krbOcH&%sF*jrp^cBl?WQtUxeQT>}iH%xhRml>WpRviB67q|}QAtK>PjM%XW_n#{ zgtBjjU!Oix(-asBNFaOKMb55(c2F6Pz?7Mg0n}-j3aN`TY7JE@Q2YZm_4t{6R67}_ zal*`ddLGN^@y@ewX5+I_lQ6szr_Hg-nA3D;t)kF2qDd}W#ZT@P-e0#@IFd3xwRUUK zU}YuMCGomh;chL8&7~t7g%A{ZnmrFj=P__)Q`2}@!%fBp7p2K1XUN5JO9ZuWvspJ~ z341{KB(kzaVJ9cj`!(TsPZju&^P|w@o6G#b``&84IBzjgPy2{&Q&#kiy9Xpjdh;jBQK@3KG9mBNIW%Q% z7HsRDsuCUL#T1M!)^m_1UsNXW!;n*2)ZF?#ATJ+NWn?*$Gvr|ea~E1^St6|H6ho)T znj_@DD+Z47%I^G7hM-0IvUJkL|VvKaD zpwRO{&{Qd~F2==1QKzEEnh(QDY7;KmQ%U%?!XU3*ScBr;i~REq96p9iApbKqmGv^m zqAkCo;#OU4O+Qn3e_jmf0B?aJ0E5yX@F(|6V(aFt0CYXoFX^Th8>PoPmeF)ZiuM`tluUF3O~scqY3(r0#G^erwni9zI=vs3RU z^t^G~8Vi-sDxtZ8~4}ZV4SW7O+(C$ zMcokV2lpDd#4;|MGd z&IufX`7fhLF~9GDbNDy@054PpvSqhZuN|i>_K_Tys!3L9h*U^>@%5)c9Ad2ts|X)I zCN%Yt4Q2@Z$@-F5yHZ=|8K|rlm$`ENTj?driYK;dfvPa8)~ZI0WP3`(0mO8a6d9k*PTnTugBGLusKTNN{?fM_5DbNx5*QOl+ zf&x6{q-2O}2Rz_ZE7*NW#5BEqrT8z?s{ru_pmROH2|s>-r>iIBqEC}UKREu^fTH#3 zlSBfp86okG44lTdB)wjf>ZA{Vk0D$iZl}y?HHf6rek=;l+Jjf9lFj!+0l$eE4jGe9 zcT#f>6Vu^hUWFwRk=lO&Xtjh?{-%d$6Sj|`Iv>rrS!)g)2! zU>+k|>1Hb7G3ZX|YtexNyjPYQ9QlBdYSZso-Up_6gqiqN&xYO$LX_k7RslTnB()r!H51F?3uvX6@GjT-Zu0t2dsPU2MYiZHw0jCgNL)R>6%u9BJilUQ zEWMG-tTV&jKmt+xlAXAjwq8oGnVgaMY;IOQT7`W`>9zI{zZOwp)eFCmRh&P$ya$Yl zUQM+(=EZ;|1#(H_5xW7?tGI5qHQ z0%JF{fXBE}l|57SpxMrTZ*-N7GCAV&8?{%ku;dU7I_gl&38-G;(b+I&uR|7BC zG_bjtVHOUux&9cE1K1dSyYH&Qs6<|5?cfSi<{k;3W8~n#FKsE41)CmleClqf;(jaq z3fjv=`n9p!!8o06AL^eZRv>lytfY1Kn;T);5m&Kxayr%vVf56pn>{O&|U zVTL9GlqbGVjbuK>h(;0(#f%yDE8++`2MC+B?^hj)fciikM&px!2}pG@FL?Z#w_fiHbDp+h2iF2iaXyUD@ec@Nz?Q zdm~>hNgLLEq9PRHey-&!ZiKYNe>Y2tZ~4|4s!@-o(_&Skd2Hf|rcXTbX&3su6{1Jv z{D^$dHgy_Fl^abVG>~LjeA-L(ITU|AKDfkUu zkROjIAem_x+@if629SD1b!TkskLk9y16aL&qWE>z_6n^cViraXq*P3$=Ilcs0HUiI z7!=4f{7Vgnsih3iU%Duy#6>bX)B+~Ysw^&=>H5?tWTo3o&A3JQew5EOds0A4I^Mf7 zZB{}V+pqL-cpBVW%-HEVl7Uk7R%&wNz%vd`hA8(qVJT2>11UzdK#NI7=^4KW!Xno) z8MZd zy!trYdC{?(PTqm>j(7w&I+hE3M|5RwqMqbdIw=+xWjw<~?@&+qHzR%u;e|k<+|>2k zITQ3S<8F#ChuN3ZDI+p_8~Rf+<$d>Nyag>*SR%4FTx43%Oq=ibSR@5%Q4T~+(cy5d zCjP#xQN$ zQ4@Qit>ks|hAI$&$4=OglJ+Z3rE9@=!U%H7(l%{;O3?VVchGZ$V#VL|=r>LLspYDVp^5kjX5LN~yCKwBa|V{; zP^D3)y+qVgWBbcz>xGF=A~{={@v)JQYlS1AMKm)V)ntSTyut0T0_B8Y<~3f zf&|Y$8f%-no6VX0YPh7s64qsse?odju4sJKFDWZ35xQ$-^$|9yZQ2EkcNA7t!sKC2 z;h}(9%1OESxdMSthc*d3f%Hq$B(JVG#B#5w#5q86Msi2WMpTH>1MStGOv!kIo|o~_ zilLt+F0+|7j)_ixPH|2MV}!hxQ5ANEgKc&w^VHy-MkHF~n3LNut5W6GM~n%~R7V;E&&Lx9bGPp_kT zs>hZ+a2bhn!A-341>5k8^Y@(d`$je~Ug*^^)BL>fLSK%4{pQLxu^Q(sH~RL#xHFUh z#DM*u@$x!b#dKd|GYQ{YWX@up*?6C^EXZQPrM6WSYSU{2qh%%i$l`?%o!fZjHwDP+ z%_IMa&v!>Bzkj)C@nWhBEJ~6zu^s7LyRmh${iQkz)dagJC+S}zf2l%>h`cTek|(10 zZ@rNrxPvI#!T(FikyBjn>}&rj#+zTzj1>N>7%S}>5h)wf{0zgHRk zcUiR5c`%}4|ypr~p(a&Vj>0OnA9Z{ad>QFIy0dii^;9E|0;R+cDiAfEwxCTVPD9*TMcs zM}G*u1)k4RtA4-% zlEs!VgxR7Jp29X0@w;dd`2DVZ%Qqdo3zV3_1hQf%aaPf%t@ISc@0~)Yn2sc5`Csmd z*)}#GFh(xdMF&tJ$YDGUzWDo>ELKkz)>m2JsXlD$977X;B0kD+GBO|9?~h+Q!3C9J zw5BPSdrpSxw0yP!MjOZo3WROAb#mhMJzy23+e@P;JhT?8Z7LAj@unT>DHu*D;kS@N zw%3X+-LXR{cA018os5MyU$FD7a#RqY?y;t+5X?M`wx%eR&f+u8lb|qzsZt z;U{KbUjMzr?f*_xsinAtn#=OAw#HoA%oCEp?+0@KuD$xB(et zy8Jgb7?}xO@Eirt6&ZPyeOJUL+4`UR?-6WSNnhN+TL#cw%oKstqGJ#*h0%tg_;o51l4 z0WJ?5=`mm*_9Db@se-tMW@=ZCD-oWsd_aQ7YiDU{Ludj{C$* zN6a#;z6sMIqFZqWSX4YrlI)wA<5I;7l{=UkN{Jnea@+V2&X}oHvVtw=(pKGlU{vk| zmBq{RE~m70J>}OLo0l}i&B2aZ;`r(@qefXm{2+7?w5npqQswwnT?t5J7|nZ(Y?QV^ zHr&u-;F;k`xucJM2=P@JWcHhm8QcSG^a2N{B*nuL`inBmbZWl ziTld|VA=}t>P)nO>O@o~qW1}?%tmOIF<{xn)E5JC_Vb-+5GJCt)-1(s@i0qAkI5EV zkH@i7ULrIZQsIzu2QawYN^>(ip4``Q;TXWK7;F$+39WKX?sO^j zw$*S0V=JT77pOp@1TNi9sXWD1tA4rS^y(@JV}UlRRgaW%-M`?OnL>iu-Hc-0{{V$$ zi)P`EANrsF!~iQ00RRF50s;a800sjA0RR910RRypF+ovbaeX9nlEC+&fPoS_>%q#9djL2~OghAdu z7r87k)zX z2B$pjsbsO2ClFlVL`J;LHQSbzzNh#TP;}l`T<2suf2A9bXScLUc=Rtc@O^>iSrv@w z(#Phfi17(WYxlScLagEDDirvGWrZhf(iqJWlZy~?1g)fLY8+QnCmCw5b3Ko^*_A4; zAanuTEDgFp@4v)Mf^QX~pxH`iQFt0`X)_pm3t;|ly_{4`pnz}X4<81f=vJWkjf-Qi z+@TM!$_G0S%)_9k%P$T&Ew7wM2I&f>^KdH+5Z3?%;|r4m(@x# zdjiiaqp?p>vc+CKHGBjw2L_QU{@W%kry$uV8ypt@0GX3OoKyzeL41(tc8T(r>vE<} zqu379x9V6j%#{+AOAW3E#vg`Sk(RicGWwQYTD@C!F=#FK1pQGY#tuFfHW$*zxT}G6uksZ0>R|W4GJ~+s0^D{ zA1t5&dHa@LhzcNuI<*K2o|FQ1j{MA_y+j`>bJ}CX5@@GWRHZj^sduXKkkDqY?qKAP zx@8929HPfjXyHbaD78GLE3jR>T(d*FG-kZ)o3)|q#yHY`|+5MliKI~)x(%N|_aVpFXAS+3$uBI`j%}W;=YyBly zx&h}_OoYneeZ}WImsp6&rpt4v-Ui%{0hwHDb_4x6s8WoG7lTb8>SU};0LsMX%hh~2 z`DlOykfsN~X0j|{!;>icK9UhIl(GUaGv**wh4A`q@WTmKIhTdP)iVMY=Jfz0;l)DW z%}WJopt~6*q9tElz_xJZ%~aboH3it;n}ejOS*%NU6BTtjfx&3!H)_Ad%b-CAJ@p#s z^(YzOMeTnQqDw>3vtC*}!`PMxVbXs54@hZiz!rysh=2uGQtFyGb4)~v32AxU4l8Kc zmYrV~o@Q(VZorP4+m~N(BI;J`-8nS3ehJY(xAkI@pps03N5lNe;E|@gc z=(ni38+oq0%ppd)+)J=iV~Is9)nxwwh`YO+sk0Q{tVJT%tIT;zy|W0JLq^{$O;M4) zkXK;`Jcs0e6#=m}IzY?j;*FDL_>P7bMdqdq^|&&vr?T%ozyVadLjf&8)#?8L6C%|d zWs)`y!mVZs#U0+_>nItcxU7ZXcig>Wl->>1z~iMtizX+zl49w+#SZI9@NS=z>SD~p zde(tsum}K1v6edi)9z5806hy>UzwkQ7On#k+cjyGY)t|j&}3CUt^0-rb6uXd_DHjf zmJgBB@j0q(DXWZC*cyhQC>y0NWTm$dXbO5sM$x z_vQ$!ZvgV=+df@OMc_HV{>59hazO@EIV$3X-JDA;26^@F0V=F<+$>U<;u*AK8Guz? z#bR4l{hY!p;#g7v@RIe}eq{;K8%psF*Kh99^^dh;AxLhkMh02i{?GXaMwuc%OH z>Gc5+I~v?}HXS)7j|vj`OLS7Vd`7N@Ybl@9s1e({lp3K}y+VY$dVZoE=>tTxywE%D zcPrFHsoOfrFvKW=FkA-p8GxTrX4rC(`-P}b6=K>RIngV(b*2#fks$W0#TcNgz7J5Q zW8+b2yoSbL-49$v7VYy;>n?Gbd_wfC&HMJiC<8&MltW#T{Qm$DgvNHj{lYS)dE;Jc zs0^wuu8Ks65CKByxff@tmIT5&pNb5C$7LoV0*)HL>h2gS4I5D9E7NxJjqCU{~r;^k7g)fJ`M z!Net07xXh7y6shc#g_tcUoInv`~b(7{i8rufA&<(jx~jVDdCE(#HBQGoI#T|=X#WA zU{Sn7bU5(9Mc(Ni%3PLSiEM?ftgN7?7YS^_#(MIV{=@z>l?8aO$P)8~Yb$DVbJKXh zUE!5%YqzxSwGgJAf!XrE5C{QwsEkw^Zt4htv^?OJ49?=rBAes=)WiXy;UYFreWk%o z8M7MZAke;Gu%T_6L{VH3A)%)~-c|%*HFf=_bGw2cHYMutyM^&k{hI?@-)s@LAfe&k zoxzgjlLJvjt8N1jAVBCU0M^3z{__9^pEB!cZ<^Z$yfpXRwHm+D6c)_KGOFd%5x~06 zzD|B6LM_GX(1Cy;pMqROgaF#KL+D%_AKE{Nd@4^OQx3}h-zW~Qm%|Q8@+|`DpnfF; zXaj*ltXE~3TGY0`8+W&mPX7QBxcmvktO-XIVF(%Lj{g8t7KwN`vQ-uqjaDGlP+H*T z=Iu9LFZC#06o0=m!-lx2NL{)(^%1~llpowc*uRLFl8i1`Fbj`@9))_uNVk!I-rn;m z%BAkE3h-l$vC}Ozq9jVZVeSA?L3f!zuP&=mIn^(Qa+AEjb0oU8{Jg;cF~ChTm~xXV zvNlXZVZbgY1EoUR1EuITV^3|M> zvDhQJOox_73(NxgKGi1FG z*(e%we`F@Gdh-(Pw)&_AKAlencWev_`iccw`C@=f*A-O~T{U=_IWW8PE94D1Uj(u& zI@|nAK(=p|EBRo;zNOLB6f5Q!=AhgMBZv@&Qrg#F%SU{EX`|Y%Hjjc_GbVx_Pk*Jo zEJSQ)R`3c|EE3YMGS(ZSfL}JNSWd{f+CUNQq7FFLsySQJE}YlH>L{UFJ4f(0RsJRN z!kAG2f;He0+wj1b1{o~j=3>`*@o~B|nZ~9SN;ibedKcq2D1o!4VWfT{S<~zw1}oxK zGU!nNT!*Lujjp!@GE=x^xkFKAr(Z9kDk|H~%qlhv#{otr*@fPChzBnaAX!$hMtH$E z_&V9kN4Ob<&IaDqwRu_5+5t&X#XtQJU@TK!lYB900|4$jW$3NJfLN~_P6|U=#l%n<(%M2bXq zBpCJ5p&9(sjddzzjxlzO>E8N;czk)ikX6D;AsZD+!@NtkDsJUNL+D#%b8CR5+B`4= zMl-aOHEiIDj9*}P6jH$FJCr2&T*A|o#?l3VFK%H*)gM;?a50jD3{ecrVXR@ejfULq z)IoPtWhI79$Sg0`HFf*BeS(q6ye8(IYJ_tNEhwL^FS$s@x`A3F% zM|eQoQDC$Ifd2rBl9yRji74^~3f*^f;o;ykvGmFOC`|F;|w@&Jw28 zhxEl10vT#mt8V>caUU7TFl&l(cO6V4h+{YxSGe0p1{l!<9yyA;vGmN~8m~K=T$Whg z1jJ>cfzMLa9TwetWtfw~e7wRHKy?Zg-sUt`^%YReFVt0S->CH5dwsZv;SVYhvE4Nr zt^Sleu$h2JJO})!LqKJ4+=@ifMzio(E~$d-pE_j{iMBabt2TdPJ6KIQ8ZYHznt82_ zX~n~)*e&uFC{REdzGCm0+;YRS%s?nB3o%XZXw96|HCRjMWKlR+EWhG5mwz^2Y&wcg zh!k8NSyPEb-eT1l9B}PE0deQe5(BKKp>L=)WZ2!jzE%E!BMm&PWbmAtOBs?8mcuL0 zTN@!4TmouT4X6>e%Xe@ChemtMgbW+Ra9(8ximKDSxLobO%KhgmMYTw*`Kqy0?4YLQ3Z~0F%pQ{Zk0k_&_ zycBr;jL>Meucy63=V3NoX1Rg62FHo_ zyhQ_dcH!lnTy1NTYGZ5S3h7B4BH9?(FV5k@pOWk5Ulyw5`HVKgr`+5s!w@@Se}M`?c&1Nw?>gT36b(U-%;Cbm@W zCAOB6xRovl>`copw%eJXWYfMcT7sG4UhT|QkLFozOo#O^n(+$-Lb1H3!kS75OHG6hLOUja zi)ao!MVdH*8;rUjW%!5FP(VE_kK5pbC;?zQ89l%B37XfW6p6^oK+KD4@;2eeQv;Tz zh3*VXC@WW>iBz@I=aiOnPfT?MKs))EdJp