From ab16dec26b1262572f428dfe6daa29a86d518442 Mon Sep 17 00:00:00 2001 From: Petter Reinholdtsen Date: Tue, 5 May 2020 05:19:32 +0000 Subject: [PATCH 01/40] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 86.7% (1091 of 1257 strings) --- plinth/locale/nb/LC_MESSAGES/django.po | 55 ++++++++++---------------- 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index 1205d713e..ece48cc66 100644 --- a/plinth/locale/nb/LC_MESSAGES/django.po +++ b/plinth/locale/nb/LC_MESSAGES/django.po @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" -"PO-Revision-Date: 2020-04-07 19:03+0000\n" -"Last-Translator: Allan Nordhøy \n" +"POT-Creation-Date: 2020-04-20 17:53-0400\n" +"PO-Revision-Date: 2020-05-06 06:11+0000\n" +"Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0-dev\n" +"X-Generator: Weblate 4.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -36,10 +36,9 @@ msgid "FreedomBox" msgstr "FreedomBox" #: plinth/daemon.py:70 -#, fuzzy, python-brace-format -#| msgid "Service %(service_name)s is running." +#, python-brace-format msgid "Service {service_name} is running" -msgstr "Tjenesten {service_name} kjører." +msgstr "Tjenesten {service_name} kjører" #: plinth/daemon.py:96 #, python-brace-format @@ -242,7 +241,6 @@ msgid "Select Disk or Partition" msgstr "Velg disk eller partisjon" #: plinth/modules/backups/forms.py:175 -#, fuzzy msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "Sikkerhetskopier vil bli lagret i mappen FreedomBoxBackups" @@ -441,24 +439,12 @@ msgid "Are you sure that you want to remove this repository?" msgstr "Er du sikker på at du ønsker å fjerne dette depotet?" #: plinth/modules/backups/templates/backups_repository_remove.html:19 -#, fuzzy -#| msgid "" -#| "\n" -#| " The remote repository will not be deleted.\n" -#| " This just removes the repository from the listing on the backup " -#| "page, you\n" -#| " can add it again later on.\n" -#| " " msgid "" "The remote repository will not be deleted. This just removes the repository " "from the listing on the backup page, you can add it again later on." msgstr "" -"\n" -" Fjerndepotet vil ikke bli slettet..\n" -" Dette fjerner kun depotoppføringen fra listen på sikkerhetskopi-siden, " -"du\n" -" kan legge oppføringen tilbake senere.\n" -" " +"Fjerndepotet vil ikke bli slettet. Dette fjerner kun depotoppføringen fra " +"listen på sikkerhetskopi-siden, du kan legge oppføringen tilbake senere." #: plinth/modules/backups/templates/backups_repository_remove.html:31 msgid "Remove Location" @@ -1634,18 +1620,14 @@ msgid "Firewall" msgstr "Brannmur" #: plinth/modules/firewall/components.py:118 -#, fuzzy, python-brace-format -#| msgid "%(service_name)s is available only on internal networks." +#, python-brace-format msgid "Port {name} ({details}) available for internal networks" -msgstr "" -"Tjenesten %(service_name)s er kun tilgjengelig på interne nettverk." +msgstr "Port {name} ({details}) tilgjengelig på interne nettverk" #: plinth/modules/firewall/components.py:126 -#, fuzzy, python-brace-format -#| msgid "%(service_name)s is available only on internal networks." +#, python-brace-format msgid "Port {name} ({details}) available for external networks" -msgstr "" -"Tjenesten %(service_name)s er kun tilgjengelig på interne nettverk." +msgstr "Port {name} ({details}) tilgjengelig på eksterne nettverk" #: plinth/modules/firewall/components.py:131 #, python-brace-format @@ -3400,7 +3382,6 @@ msgid "All web apps" msgstr "Alle nettprogrammer" #: plinth/modules/networks/__init__.py:40 -#, fuzzy msgid "" "Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or " "PPPoE. Share that connection with other devices on the network." @@ -3672,10 +3653,9 @@ msgid "Open" msgstr "Åpen" #: plinth/modules/networks/forms.py:297 -#, fuzzy, python-brace-format -#| msgid "Choose how your {box_name} is connected to your network" +#, python-brace-format msgid "Specify how your {box_name} is connected to your network" -msgstr "Velg hvordan din {box_name} er koblet til nettverket ditt" +msgstr "Angi hvordan din {box_name} er tilkoblet ditt nettverket" #: plinth/modules/networks/forms.py:304 #, python-brace-format @@ -3693,6 +3673,10 @@ msgid "" "adapter. {box_name} is directly connected to the Internet and all your " "devices connect to {box_name} for their Internet connectivity.

" msgstr "" +"{box_name} er ruteren din

Din {box_name} har flere " +"nettverksgrensesnitt, for eksempel flere Ethernett-innganger eller et Wifi-" +"kort. {box_name} er koblet direkte til Internet og alle enhetene dine kan " +"koble seg til {box_name} med Internett-forbindelsen sin.

" #: plinth/modules/networks/forms.py:320 #, python-brace-format @@ -3701,6 +3685,9 @@ msgid "" "connection is directly attached to your {box_name} and there are no other " "devices on the network. This can happen on community or cloud setups.

" msgstr "" +"Koblet direkte til Internett

Internett-forbindelsen " +"din er koblet direkte til idn {box_name} og det er ingen andre enheter på " +"nettverket. Dette kan gjelde fellesbokser eller skyoppsett.

" #: plinth/modules/networks/forms.py:339 msgid "Choose your internet connection type" From d437f6142324d8a4b84da6f79fd840729948dc8d Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 4 May 2020 12:42:16 -0400 Subject: [PATCH 02/40] snapshot: Set as essential module Storage Snapshots will be installed by default. It will only be usable if filesystem is btrfs. For other filesystems, a message is displayed that it is not available. Closes #1284. Signed-off-by: James Valleroy Reviewed-by: Sunil Mohan Adapa --- plinth/modules/snapshot/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plinth/modules/snapshot/__init__.py b/plinth/modules/snapshot/__init__.py index 3d79c44e9..13faf8d48 100644 --- a/plinth/modules/snapshot/__init__.py +++ b/plinth/modules/snapshot/__init__.py @@ -17,6 +17,8 @@ from .manifest import backup # noqa, pylint: disable=unused-import version = 4 +is_essential = True + managed_packages = ['snapper'] _description = [ From 17e3150a283b771839b88d7fdd69a73747d61af7 Mon Sep 17 00:00:00 2001 From: Michael Breidenbach Date: Sun, 10 May 2020 10:00:53 +0000 Subject: [PATCH 03/40] Translated using Weblate (German) Currently translated at 100.0% (1264 of 1264 strings) --- plinth/locale/de/LC_MESSAGES/django.po | 81 ++++++++++---------------- 1 file changed, 31 insertions(+), 50 deletions(-) diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index 50c80b17c..43462e349 100644 --- a/plinth/locale/de/LC_MESSAGES/django.po +++ b/plinth/locale/de/LC_MESSAGES/django.po @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-04 19:59-0400\n" -"PO-Revision-Date: 2020-04-27 16:11+0000\n" -"Last-Translator: nautilusx \n" +"PO-Revision-Date: 2020-05-11 10:41+0000\n" +"Last-Translator: Michael Breidenbach \n" "Language-Team: German \n" "Language: de\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.2-dev\n" +"X-Generator: Weblate 4.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -976,20 +976,27 @@ msgid "" "other communication servers can use it to establish a call between parties " "who are otherwise unable connect to each other." msgstr "" +"Coturn ist ein Server zur Erleichterung von Audio-/Videogesprächen und -" +"konferenzen durch die Bereitstellung einer Implementierung der Protokolle " +"TURN und STUN. WebRTC-, SIP- und andere Kommunikationsserver können ihn " +"verwenden, um eine Verbindung zwischen Parteien herzustellen, die sich sonst " +"nicht miteinander verbinden können." #: plinth/modules/coturn/__init__.py:35 msgid "" "It is not meant to be used directly by users. Servers such as matrix-synapse " "need to be configured with the details provided here." msgstr "" +"Sie ist nicht für die direkte Nutzung durch Benutzer gedacht. Server wie " +"Matrix-Synapse müssen mit den hier gemachten Angaben konfiguriert werden." #: plinth/modules/coturn/__init__.py:64 msgid "Coturn" -msgstr "" +msgstr "Coturn" #: plinth/modules/coturn/__init__.py:65 msgid "VoIP Helper" -msgstr "" +msgstr "VoIP-Helfer" #: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22 msgid "TLS domain" @@ -1006,12 +1013,12 @@ msgstr "" #: plinth/modules/coturn/templates/coturn.html:15 msgid "Use the following URLs to configure your communication server:" msgstr "" +"Verwenden Sie die folgenden URLs zur Konfiguration Ihres " +"Kommunikationsservers:" #: plinth/modules/coturn/templates/coturn.html:26 -#, fuzzy -#| msgid "The following storage devices are in use:" msgid "Use the following shared authentication secret:" -msgstr "Die folgenden Speichermedien werden verwendet:" +msgstr "Verwenden Sie das folgende geteilte Authentifizierungsgeheimnis:" #: plinth/modules/datetime/__init__.py:25 msgid "" @@ -2078,23 +2085,17 @@ msgstr "" "org\" target=\"_blank\"> Diskussionsforum." #: plinth/modules/help/templates/help_feedback.html:26 -#, fuzzy -#| msgid "" -#| "If you find any bugs or issues, please use the issue " -#| "tracker to let our developers know. To report, first check if the " -#| "issue is already reported and then use the \"New issue\" button." msgid "" "If you find any bugs or issues, please use the issue " "tracker to let our developers know. To report, first check if the issue " "is already reported and then use the \"New issue\" button." msgstr "" -"Wenn Sie Fehler oder Probleme finden, verwenden Sie bitte den issue tracker, um unsere Entwickler darüber zu informieren. Um einen " -"Bericht zu erstellen, überprüfen Sie zunächst, ob das Problem bereits " -"gemeldet wurde und klicken Sie dann auf die Schaltfläche \"Neues Problem\"." +"Wenn Sie Fehler oder Probleme finden, verwenden Sie bitte den issue tracker, um unsere Entwickler darüber zu informieren. Um " +"einen Bericht zu erstellen, überprüfen Sie zunächst, ob das Problem bereits " +"gemeldet wurde und klicken Sie dann auf die Schaltfläche \"New issue\"." #: plinth/modules/help/templates/help_feedback.html:36 msgid "Thank you!" @@ -2190,12 +2191,7 @@ msgid "Status Log" msgstr "Statusprotokoll" #: plinth/modules/help/templates/statuslog.html:13 -#, fuzzy, python-format -#| msgid "" -#| "These are the last %(num_lines)s lines of the status log for this web " -#| "interface. If you want to report a bug, please use the bug tracker and " -#| "attach this status log to the bug report." +#, python-format msgid "" "These are the last %(num_lines)s lines of the status log for this web " "interface. If you want to report a bug, please use the online Fehlerverfolger und fügen " +"org/freedombox-team/freedombox/issues\">online Fehlerverfolger und fügen " "diese Ausgabe hinzu." #: plinth/modules/help/templates/statuslog.html:24 @@ -3313,7 +3309,7 @@ msgstr "Mumblefly" #: plinth/modules/mumble/manifest.py:60 msgid "Mumla" -msgstr "" +msgstr "Mumla" #: plinth/modules/mumble/views.py:29 msgid "SuperUser password successfully updated." @@ -5651,11 +5647,7 @@ msgid "Rollback to snapshot #%(number)s" msgstr "Zurücksetzen auf Speicherauszug #%(number)s" #: plinth/modules/snapshot/templates/snapshot_not_supported.html:11 -#, fuzzy, python-format -#| msgid "" -#| "Your have a filesystem of type %(fs_type)s. Snapshots " -#| "are currently only available on %(types_supported)s " -#| "filesystems." +#, python-format msgid "" "You have a filesystem of type %(fs_type)s. Snapshots are " "currently only available on %(types_supported)s filesystems." @@ -7114,11 +7106,6 @@ msgid "Requested page %(request_path)s was not found." msgstr "Die angeforderte Seite %(request_path)s wurde nicht gefunden." #: plinth/templates/404.html:19 -#, fuzzy -#| msgid "" -#| "If you believe this missing page should exist, please file a bug at the " -#| "FreedomBox Service (Plinth) project issue tracker." msgid "" "If you believe this missing page should exist, please file a bug at the " "FreedomBox Service (Plinth) project online Problemverfolger des FreedomBox " -"(Plinth) Projektes." +"freedombox-team/freedombox/issues\">online Problemverfolger des " +"FreedomBox (Plinth) Projektes." #: plinth/templates/500.html:10 msgid "500" msgstr "500" #: plinth/templates/500.html:14 -#, fuzzy, python-format -#| msgid "" -#| "This is an internal error and not something you caused or can fix. Please " -#| "report the error on the bug tracker so we can fix it. Also, please " -#| "attach the status log to the bug " -#| "report." +#, python-format msgid "" "This is an internal error and not something you caused or can fix. Please " "report the error on the status log to the bug report." msgstr "" "Dies ist ein interner Fehler und nicht etwas, das Sie verursacht haben oder " -"beheben können. Bitte melden Sie den Fehler im online Fehlermelder, so dass " -"wir ihn beheben können. Fügen Sie auch das Statusprotokoll dem Fehlerbericht bei." +"beheben können. Bitte melden Sie den Fehler im online " +"Fehlermelder, so dass wir ihn beheben können. Fügen Sie auch das Statusprotokoll dem Fehlerbericht bei." #: plinth/templates/app-header.html:22 msgid "Installation" From b008697a0e187d9fcf55574043141fe36823604e Mon Sep 17 00:00:00 2001 From: Michael Breidenbach Date: Sun, 10 May 2020 03:33:49 +0000 Subject: [PATCH 04/40] Translated using Weblate (Swedish) Currently translated at 100.0% (1264 of 1264 strings) --- plinth/locale/sv/LC_MESSAGES/django.po | 75 ++++++++++---------------- 1 file changed, 27 insertions(+), 48 deletions(-) diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index a53a5da99..ddd4d5448 100644 --- a/plinth/locale/sv/LC_MESSAGES/django.po +++ b/plinth/locale/sv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-04 19:59-0400\n" -"PO-Revision-Date: 2020-05-02 08:11+0000\n" +"PO-Revision-Date: 2020-05-11 10:41+0000\n" "Last-Translator: Michael Breidenbach \n" "Language-Team: Swedish \n" @@ -960,20 +960,26 @@ msgid "" "other communication servers can use it to establish a call between parties " "who are otherwise unable connect to each other." msgstr "" +"Coturn är en server för att underlätta ljud- / videosamtal och konferenser " +"genom att tillhandahålla en implementering av TURN- och STUN-protokoll. " +"WebRTC, SIP och andra kommunikationsservrar kan använda den för att upprätta " +"ett samtal mellan parter som annars inte kan ansluta till varandra." #: plinth/modules/coturn/__init__.py:35 msgid "" "It is not meant to be used directly by users. Servers such as matrix-synapse " "need to be configured with the details provided here." msgstr "" +"Det är inte avsett att användas direkt av användarna. Servrar som matris-" +"synaps måste konfigureras med de uppgifter som anges här." #: plinth/modules/coturn/__init__.py:64 msgid "Coturn" -msgstr "" +msgstr "Coturn" #: plinth/modules/coturn/__init__.py:65 msgid "VoIP Helper" -msgstr "" +msgstr "VoIP-hjälpare" #: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22 msgid "TLS domain" @@ -990,12 +996,11 @@ msgstr "" #: plinth/modules/coturn/templates/coturn.html:15 msgid "Use the following URLs to configure your communication server:" msgstr "" +"Använd följande webbadresser för att konfigurera din kommunikationsserver:" #: plinth/modules/coturn/templates/coturn.html:26 -#, fuzzy -#| msgid "The following storage devices are in use:" msgid "Use the following shared authentication secret:" -msgstr "Följande lagringsenheter används:" +msgstr "Använd följande delade autentiseringshemligheter:" #: plinth/modules/datetime/__init__.py:25 msgid "" @@ -2045,12 +2050,6 @@ msgstr "" "\"_blank\"> diskussionsforum." #: plinth/modules/help/templates/help_feedback.html:26 -#, fuzzy -#| msgid "" -#| "If you find any bugs or issues, please use the issue " -#| "tracker to let our developers know. To report, first check if the " -#| "issue is already reported and then use the \"New issue\" button." msgid "" "If you find any bugs or issues, please use the issue " @@ -2058,9 +2057,9 @@ msgid "" "is already reported and then use the \"New issue\" button." msgstr "" "Om du hittar fel eller problem kan du använda utföra tracker att " -"låta våra utvecklare veta. För att rapportera ska du först kontrollera om " -"problemet redan har rapporterats och sedan använda knappen \"New issue\"." +"org/freedombox-team/freedombox/issues\" target=\"_blank\">issue tracker " +"att låta våra utvecklare veta. För att rapportera ska du först kontrollera " +"om problemet redan har rapporterats och sedan använda knappen \"New issue\"." #: plinth/modules/help/templates/help_feedback.html:36 msgid "Thank you!" @@ -2155,12 +2154,7 @@ msgid "Status Log" msgstr "Status Log" #: plinth/modules/help/templates/statuslog.html:13 -#, fuzzy, python-format -#| msgid "" -#| "These are the last %(num_lines)s lines of the status log for this web " -#| "interface. If you want to report a bug, please use the bug tracker and " -#| "attach this status log to the bug report." +#, python-format msgid "" "These are the last %(num_lines)s lines of the status log for this web " "interface. If you want to report a bug, please use the bug tracker och bifoga " -"denna statuslogg rapport bug-tracker." +"webbgränssnitt. Om du vill rapportera ett fel, använd bug tracker " +"och bifoga denna statuslogg rapport bug-tracker." #: plinth/modules/help/templates/statuslog.html:24 msgid "" @@ -3257,7 +3251,7 @@ msgstr "Mumblefly" #: plinth/modules/mumble/manifest.py:60 msgid "Mumla" -msgstr "" +msgstr "Mumla" #: plinth/modules/mumble/views.py:29 msgid "SuperUser password successfully updated." @@ -5555,18 +5549,14 @@ msgid "Rollback to snapshot #%(number)s" msgstr "Återställning till ögonblicksbild #%(number)s" #: plinth/modules/snapshot/templates/snapshot_not_supported.html:11 -#, fuzzy, python-format -#| msgid "" -#| "Your have a filesystem of type %(fs_type)s. Snapshots " -#| "are currently only available on %(types_supported)s " -#| "filesystems." +#, python-format msgid "" "You have a filesystem of type %(fs_type)s. Snapshots are " "currently only available on %(types_supported)s filesystems." msgstr "" -"Du har ett filsystem av typen %(fs_type)s . " -"Ögonblicksbilder är för närvarande endast tillgängliga på " -"%(types_supported)s filsystem." +"Du har ett filsystem av typen %(fs_type)s. Ögonblicksbilder " +"är för närvarande endast tillgängliga på %(types_supported)s" +" filsystem." #: plinth/modules/snapshot/templates/snapshot_rollback.html:12 msgid "Roll back the system to this snapshot?" @@ -6988,11 +6978,6 @@ msgid "Requested page %(request_path)s was not found." msgstr "Begärd sida %(request_path)s hittades inte." #: plinth/templates/404.html:19 -#, fuzzy -#| msgid "" -#| "If you believe this missing page should exist, please file a bug at the " -#| "FreedomBox Service (Plinth) project issue tracker." msgid "" "If you believe this missing page should exist, please file a bug at the " "FreedomBox Service (Plinth) project issue tracker." +"freedombox-team/freedombox/issues\">issue tracker." #: plinth/templates/500.html:10 msgid "500" msgstr "500" #: plinth/templates/500.html:14 -#, fuzzy, python-format -#| msgid "" -#| "This is an internal error and not something you caused or can fix. Please " -#| "report the error on the bug tracker so we can fix it. Also, please " -#| "attach the status log to the bug " -#| "report." +#, python-format msgid "" "This is an internal error and not something you caused or can fix. Please " "report the error on the bug tracker så att vi kan fixa det. Bifoga också status logg till felrapporten." +"freedombox/issues\">bug tracker så att vi kan fixa det. Bifoga också status logg till felrapporten." #: plinth/templates/app-header.html:22 msgid "Installation" From 9c4431ec1624b1e636e4b3f5448875f4fc09106f Mon Sep 17 00:00:00 2001 From: Fioddor Superconcentrado Date: Mon, 11 May 2020 16:25:06 +0000 Subject: [PATCH 05/40] Folder remained unrenamed. Should have changed along with git links. --- HACKING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HACKING.md b/HACKING.md index 02ddf599f..4922eb195 100644 --- a/HACKING.md +++ b/HACKING.md @@ -92,7 +92,7 @@ and requires about 4.5 GB of disk space. ```bash host$ git clone https://salsa.debian.org/freedombox-team/freedombox.git - host$ cd plinth + host$ cd freedombox ``` 2. To download, setup, run, and configure a VM for FreedomBox development using From 20f2ff937045ae2b79a0e191574c236aef3f566e Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Wed, 6 May 2020 14:54:30 -0700 Subject: [PATCH 06/40] snapshot: Fix issues with restore and delete - Avoid no-response error when deleting a snapshot. This is caused when disk is full and delete operation tries to store data in session which is stored on disk. The session update fails and there are no values to delete. This case in not handled and return a None in view causing a 500 error. Use GET params instead. - Delete all functionality that is meant to speed up deleting snapshots has regressed and is currently never used. Further, there are more types of snapshots that can't be deleted that needs to be handled in delete all functionality. Drop it for now. - When snapper list is run the snapshot number can contain '-', '+' or '*' suffixed to it. Currently only '*' is handled. This leads to failure in listing the snapshots after a restore snapshot'. Fix this is properly parsing. Also it is no longer needed to query 'btrfs' command to know the snapshot that will used at next boot. '+' or '*' means that. - Don't list snapshot number '0'. It is never listed to the user and it can never be deleted. It represents the current system. - Properly implement checking for default and active snapshots. Don't let delete operation on either of them. - Fix regression with disabling the delete button when there are no snapshots that can be deleted. Tests performed: - Before any snapshot is restored, the labels 'will be used at next boot' and 'in use' are not shown. Snapshot with number 0 is not shown. - Immediately after restoring a snapshot, the 'will be used at next boot' label will shown up on snapshot that is going to boot next. - After rebooting after restore, the snapshot that has been restored will show 'will be used at next boot' and 'in use' labels. Restoring another snapshot will move the 'will be used at next boot' label to the new restore snapshot but keep the 'in use' label on the current snapshot until next reboot. Snapshot with number 0 is not shown. - Delete check boxes are not shown against the 'in use' and 'will be used at next boot' snapshots. Entering their values manually in the URL in the delete screen will lead them to be ignored. - Select multiple snapshots and click delete. The details appear properly in the confirmation window. Deleting will delete the snapshots. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- actions/snapshot | 63 +++++---------- .../templates/snapshot_delete_selected.html | 17 ++-- .../snapshot/templates/snapshot_manage.html | 64 ++++++++------- plinth/modules/snapshot/views.py | 78 +++++++++++-------- 4 files changed, 108 insertions(+), 114 deletions(-) diff --git a/actions/snapshot b/actions/snapshot index 538042258..f74513089 100755 --- a/actions/snapshot +++ b/actions/snapshot @@ -35,9 +35,6 @@ def parse_arguments(): help='Delete a snapshot by number') subparser.add_argument('number', help='Number of snapshot to delete') - subparser = subparsers.add_parser('delete-all', - help='Delete all the snapshots') - subparser = subparsers.add_parser('set-config', help='Configure automatic snapshots') subparser.add_argument('config') @@ -166,25 +163,30 @@ def _add_fstab_entry(mount_point): aug.save() -def _get_snapper_list(): - command = ['snapper', 'list'] - process = subprocess.run(command, stdout=subprocess.PIPE, check=True) - return process.stdout.decode().splitlines() +def _parse_number(number): + """Parse the char following the number and return status of snapshot.""" + is_default = number[-1] in ('+', '*') + is_active = number[-1] in ('-', '*') + return number.strip('-+*'), is_default, is_active def subcommand_list(_): """List snapshots.""" - lines = _get_snapper_list() - keys = ('number', 'type', 'pre_number', 'date', 'user', 'cleanup', - 'description') + process = subprocess.run(['snapper', 'list'], stdout=subprocess.PIPE, + check=True) + lines = process.stdout.decode().splitlines() + + keys = ('number', 'is_default', 'is_active', 'type', 'pre_number', 'date', + 'user', 'cleanup', 'description') snapshots = [] for line in lines[2:]: - parts = [part.strip('* ') for part in line.split('|')] - snapshots.append(dict(zip(keys, parts))) - - default = _get_default_snapshot() - for snapshot in snapshots: - snapshot['is_default'] = (snapshot['number'] == default) + parts = [part.strip() for part in line.split('|')] + parts = list(_parse_number(parts[0])) + parts[1:] + snapshot = dict(zip(keys, parts)) + # Snapshot 0 always represents the current system, it need not be + # listed and cannot be deleted. + if snapshot['number'] != '0': + snapshots.append(snapshot) snapshots.reverse() print(json.dumps(snapshots)) @@ -231,35 +233,6 @@ def subcommand_delete(arguments): subprocess.run(command, check=True) -def subcommand_delete_all(_): - """Delete all the snapshots (except the active one).""" - lines = _get_snapper_list() - snapshot_range = [line.split('|')[0].strip() for line in lines[3:]] - default_snapshot = _get_default_snapshot() - if snapshot_range: - if default_snapshot: - index = snapshot_range.index(default_snapshot) - range_before = snapshot_range[:index] - range_after = snapshot_range[index + 1:] - to_delete = [range_before, range_after] - else: - to_delete = [snapshot_range] - - delete_args = filter(None, map(_get_delete_arg, to_delete)) - for arg in delete_args: - subprocess.run(['snapper', 'delete', arg], check=True) - - -def _get_delete_arg(range_list): - """Return 'a-b' when given ['a', ..., 'b'].""" - if not range_list: - return None - elif len(range_list) == 1: - return range_list[0] - else: - return range_list[0] + '-' + range_list[-1] - - def subcommand_set_config(arguments): command = ['snapper', 'set-config'] + arguments.config.split() subprocess.run(command, check=True) diff --git a/plinth/modules/snapshot/templates/snapshot_delete_selected.html b/plinth/modules/snapshot/templates/snapshot_delete_selected.html index 2bfbab10d..929f6f4b5 100644 --- a/plinth/modules/snapshot/templates/snapshot_delete_selected.html +++ b/plinth/modules/snapshot/templates/snapshot_delete_selected.html @@ -19,13 +19,11 @@ {% for snapshot in snapshots %} - {% if not snapshot.is_default %} - - {{ snapshot.number }} - {{ snapshot.date }} - {{ snapshot.description }} - - {% endif %} + + {{ snapshot.number }} + {{ snapshot.date }} + {{ snapshot.description }} + {% endfor %} @@ -33,6 +31,11 @@

{% csrf_token %} + + {% for snapshot in snapshots %} + + {% endfor %} +
diff --git a/plinth/modules/snapshot/templates/snapshot_manage.html b/plinth/modules/snapshot/templates/snapshot_manage.html index 7244b2c39..e15842e21 100644 --- a/plinth/modules/snapshot/templates/snapshot_manage.html +++ b/plinth/modules/snapshot/templates/snapshot_manage.html @@ -19,7 +19,8 @@
+ value="{% trans 'Delete Snapshots' %}" + {{ has_deletable_snapshots|yesno:',disabled="disabled"' }}/>
@@ -33,35 +34,38 @@ {% for snapshot in snapshots %} - {% if snapshot.description != "current" %} - - - {{ snapshot.number }} - {% if snapshot.is_default %} - - {% trans "active" %} - - {% endif %} - - {{ snapshot.date }} - {{ snapshot.description }} - - - - - - - {% if not snapshot.is_default %} - - {% endif %} - - - {% endif %} + + + {{ snapshot.number }} + {% if snapshot.is_default %} + + {% trans "will be used at next boot" %} + + {% endif %} + {% if snapshot.is_active %} + + {% trans "in use" %} + + {% endif %} + + {{ snapshot.date }} + {{ snapshot.description }} + + + + + + + {% if not snapshot.is_default and not snapshot.is_active %} + + {% endif %} + + {% endfor %} diff --git a/plinth/modules/snapshot/views.py b/plinth/modules/snapshot/views.py index bfe741aa2..03ee06804 100644 --- a/plinth/modules/snapshot/views.py +++ b/plinth/modules/snapshot/views.py @@ -4,8 +4,10 @@ Views for snapshot module. """ import json +import urllib.parse from django.contrib import messages +from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse, reverse_lazy @@ -78,15 +80,21 @@ def manage(request): actions.superuser_run('snapshot', ['create']) messages.success(request, _('Created snapshot.')) if 'delete_selected' in request.POST: - if request.POST.getlist('snapshot_list'): - snapshot_to_delete = request.POST.getlist('snapshot_list') - request.session['snapshots'] = snapshot_to_delete - return redirect(reverse('snapshot:delete-selected')) + to_delete = request.POST.getlist('snapshot_list') + if to_delete: + # Send values using GET params instead of session variables so + # that snapshots can be deleted even when disk is full. + params = [('snapshots', number) for number in to_delete] + params = urllib.parse.urlencode(params) + url = reverse('snapshot:delete-selected') + return HttpResponseRedirect(f'{url}?{params}') output = actions.superuser_run('snapshot', ['list']) snapshots = json.loads(output) - has_deletable_snapshots = any( - [snapshot for snapshot in snapshots[1:] if not snapshot['is_default']]) + has_deletable_snapshots = any([ + snapshot for snapshot in snapshots + if not snapshot['is_default'] and not snapshot['is_active'] + ]) return TemplateResponse( request, 'snapshot_manage.html', { @@ -100,6 +108,7 @@ def manage(request): def update_configuration(request, old_status, new_status): """Update configuration of snapshots.""" + def make_config(args): key, stamp = args[0], args[1] if old_status[key] != new_status[key]: @@ -142,39 +151,44 @@ def update_configuration(request, old_status, new_status): def delete_selected(request): + """View to delete selected snapshots.""" + if request.method == 'POST': + to_delete = set(request.POST.getlist('snapshots')) + else: + to_delete = set(request.GET.getlist('snapshots')) + + if not to_delete: + return redirect(reverse('snapshot:manage')) + output = actions.superuser_run('snapshot', ['list']) snapshots = json.loads(output) + snapshots_to_delete = [ + snapshot for snapshot in snapshots if snapshot['number'] in to_delete + and not snapshot['is_active'] and not snapshot['is_default'] + ] if request.method == 'POST': - if 'snapshots' in request.session: - to_delete = request.session['snapshots'] - try: - if to_delete == len(snapshots): - actions.superuser_run('snapshot', ['delete_all']) - messages.success(request, _('Deleted all snapshots')) - else: - for snapshot in to_delete: - actions.superuser_run('snapshot', ['delete', snapshot]) - messages.success(request, _('Deleted selected snapshots')) - except ActionError as exception: - if 'Config is in use.' in exception.args[2]: - messages.error( - request, - _('Snapshot is currently in use. ' - 'Please try again later.')) - else: - raise + try: + for snapshot in snapshots_to_delete: + actions.superuser_run('snapshot', + ['delete', snapshot['number']]) - return redirect(reverse('snapshot:manage')) + messages.success(request, _('Deleted selected snapshots')) + except ActionError as exception: + if 'Config is in use.' in exception.args[2]: + messages.error( + request, + _('Snapshot is currently in use. ' + 'Please try again later.')) + else: + raise - if 'snapshots' in request.session: - data = request.session['snapshots'] - to_delete = list(filter(lambda x: x['number'] in data, snapshots)) + return redirect(reverse('snapshot:manage')) - return TemplateResponse(request, 'snapshot_delete_selected.html', { - 'title': _('Delete Snapshots'), - 'snapshots': to_delete - }) + return TemplateResponse(request, 'snapshot_delete_selected.html', { + 'title': _('Delete Snapshots'), + 'snapshots': snapshots_to_delete + }) def rollback(request, number): From c8b2cc0b8edd303bb9d6bc3b3dc235df1d208437 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 11 May 2020 21:46:06 -0400 Subject: [PATCH 07/40] functional_tests: snapshot: Skip delete all when there are no snapshots Signed-off-by: James Valleroy --- functional_tests/support/system.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/functional_tests/support/system.py b/functional_tests/support/system.py index 82105af31..20e79e243 100644 --- a/functional_tests/support/system.py +++ b/functional_tests/support/system.py @@ -85,13 +85,13 @@ def check_language(browser, language_code): def delete_all_snapshots(browser): - browser.visit(config['DEFAULT']['url'] + '/plinth/sys/snapshot/manage/') - browser.find_by_id('select-all').check() + if get_snapshot_count(browser): + browser.find_by_id('select-all').check() + submit(browser, browser.find_by_name('delete_selected')) - submit(browser, browser.find_by_name('delete_selected')) - confirm_button = browser.find_by_name('delete_confirm') - if confirm_button: # Only if redirected to confirm page - submit(browser, confirm_button) + confirm_button = browser.find_by_name('delete_confirm') + if confirm_button: # Only if redirected to confirm page + submit(browser, confirm_button) def create_snapshot(browser): From c624538788a0c6536e4fdb9721b2ac7633c61a22 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Tue, 12 May 2020 07:50:10 +0530 Subject: [PATCH 08/40] samba: Change description to Network File Storage Discussion on the forum: https://discuss.freedombox.org/t/what-is-samba-app/699 Signed-off-by: Joseph Nuthalapati Reviewed-by: Sunil Mohan Adapa --- plinth/modules/samba/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plinth/modules/samba/__init__.py b/plinth/modules/samba/__init__.py index e6f9376af..33f474e42 100644 --- a/plinth/modules/samba/__init__.py +++ b/plinth/modules/samba/__init__.py @@ -60,7 +60,7 @@ class SambaApp(app_module.App): info = app_module.Info(app_id=self.app_id, version=version, name=_('Samba'), icon_filename='samba', - short_description=_('File Sharing'), + short_description=_('Network File Storage'), manual_page='Samba', description=_description, clients=clients) self.add(info) From e465645594ae4d5976a06a8d7faab0fac01669f3 Mon Sep 17 00:00:00 2001 From: fred1m Date: Sun, 3 May 2020 16:17:33 +0200 Subject: [PATCH 09/40] performance: Add app for system monitoring MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Using cockpit-pcp in ‘System’ section. Signed-off-by: fred1m [sunil: Minor grammar fix in description, minor styling] [sunil: Drop the icon completely in favor of just the font icon] Signed-off-by: Sunil Mohan Adapa Reviewed-by: Sunil Mohan Adapa --- plinth/modules/performance/__init__.py | 86 +++++++++++++++++++ .../etc/plinth/modules-enabled/performance | 1 + .../access.d/10freedombox-performance.conf | 1 + plinth/modules/performance/manifest.py | 15 ++++ plinth/modules/performance/tests/__init__.py | 0 plinth/modules/performance/urls.py | 13 +++ 6 files changed, 116 insertions(+) create mode 100644 plinth/modules/performance/__init__.py create mode 100644 plinth/modules/performance/data/etc/plinth/modules-enabled/performance create mode 100644 plinth/modules/performance/data/etc/security/access.d/10freedombox-performance.conf create mode 100644 plinth/modules/performance/manifest.py create mode 100644 plinth/modules/performance/tests/__init__.py create mode 100644 plinth/modules/performance/urls.py diff --git a/plinth/modules/performance/__init__.py b/plinth/modules/performance/__init__.py new file mode 100644 index 000000000..260171084 --- /dev/null +++ b/plinth/modules/performance/__init__.py @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app for System Monitoring (cockpit-pcp) in ‘System’. +""" + +from django.utils.translation import ugettext_lazy as _ + +from plinth import app as app_module +from plinth import menu +from plinth.daemon import Daemon + +from .manifest import clients + +version = 1 + +name = _('Performance') + +managed_services = [ + 'pmcd.service', 'pmie.service', 'pmlogger.service', 'pmproxy.service' +] + +managed_packages = ['cockpit-pcp'] + +_description = [ + ('Performance app allows you to collect, store and view information about ' + 'utilization of the hardware. This can give you basic insights into ' + 'usage patterns and whether the hardware is overloaded by users and ' + 'services.'), + ('Performance metrics are collected by Performance Co-Pilot and can be ' + 'viewed using the Cockpit app.'), +] + +app = None + + +class PerformanceApp(app_module.App): + """FreedomBox app for Performance.""" + + app_id = 'performance' + + def __init__(self): + """Create components for the app.""" + super().__init__() + info = app_module.Info(app_id=self.app_id, version=version, + name=_('Performance'), icon='fa-bar-chart', + short_description=_('System Monitoring'), + description=_description, + manual_page='Performance', clients=clients) + self.add(info) + + menu_item = menu.Menu('menu-performance', info.name, + info.short_description, info.icon, + 'performance:index', parent_url_name='system') + self.add(menu_item) + + daemon_0 = Daemon('daemon-performance-0', managed_services[0], + listen_ports=None) + self.add(daemon_0) + + daemon_1 = Daemon('daemon-performance-1', managed_services[1], + listen_ports=None) + self.add(daemon_1) + + daemon_2 = Daemon('daemon-performance-2', managed_services[2], + listen_ports=None) + self.add(daemon_2) + + daemon_3 = Daemon('daemon-performance-3', managed_services[3], + listen_ports=None) + self.add(daemon_3) + + +def init(): + """Initialize the Performance module.""" + global app + app = PerformanceApp() + + setup_helper = globals()['setup_helper'] + if setup_helper.get_state() != 'needs-setup' and app.is_enabled(): + app.set_enabled(True) + + +def setup(helper, old_version=None): + """Install and configure the module.""" + helper.install(managed_packages) + helper.call('post', app.enable) diff --git a/plinth/modules/performance/data/etc/plinth/modules-enabled/performance b/plinth/modules/performance/data/etc/plinth/modules-enabled/performance new file mode 100644 index 000000000..14c84862a --- /dev/null +++ b/plinth/modules/performance/data/etc/plinth/modules-enabled/performance @@ -0,0 +1 @@ +plinth.modules.performance diff --git a/plinth/modules/performance/data/etc/security/access.d/10freedombox-performance.conf b/plinth/modules/performance/data/etc/security/access.d/10freedombox-performance.conf new file mode 100644 index 000000000..cbc66d077 --- /dev/null +++ b/plinth/modules/performance/data/etc/security/access.d/10freedombox-performance.conf @@ -0,0 +1 @@ ++:pcp:cron diff --git a/plinth/modules/performance/manifest.py b/plinth/modules/performance/manifest.py new file mode 100644 index 000000000..4d0c87e6d --- /dev/null +++ b/plinth/modules/performance/manifest.py @@ -0,0 +1,15 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app for System Monitoring (cockpit-pcp) in ‘System’. +""" + +from django.utils.translation import ugettext_lazy as _ +from plinth.clients import validate + +clients = validate([{ + 'name': _('Cockpit'), + 'platforms': [{ + 'type': 'web', + 'url': '/_cockpit/' + }] +}]) diff --git a/plinth/modules/performance/tests/__init__.py b/plinth/modules/performance/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/plinth/modules/performance/urls.py b/plinth/modules/performance/urls.py new file mode 100644 index 000000000..06920625d --- /dev/null +++ b/plinth/modules/performance/urls.py @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app for System Monitoring (cockpit-pcp) in ‘System’. +""" + +from django.conf.urls import url + +from plinth.views import AppView + +urlpatterns = [ + url(r'^sys/performance/$', AppView.as_view(app_id='performance'), + name='index'), +] From 7f7b5b4e675fa163f070bc13be6bb192187beb1d Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 11 May 2020 22:26:45 -0700 Subject: [PATCH 10/40] performance: Add basic functional tests Signed-off-by: Sunil Mohan Adapa --- functional_tests/features/performance.feature | 20 +++++++++++++++++++ functional_tests/support/interface.py | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 functional_tests/features/performance.feature diff --git a/functional_tests/features/performance.feature b/functional_tests/features/performance.feature new file mode 100644 index 000000000..cbae2c492 --- /dev/null +++ b/functional_tests/features/performance.feature @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +@system @performance +Feature: Performance - system monitoring + Run the Performance Co-Pilot app. + +Background: + Given I'm a logged in user + And advanced mode is on + And the performance application is installed + +Scenario: Enable performance application + Given the performance application is disabled + When I enable the performance application + Then the performance service should be running + +Scenario: Disable performance application + Given the performance application is enabled + When I disable the performance application + Then the performance service should not be running diff --git a/functional_tests/support/interface.py b/functional_tests/support/interface.py index c9a4f23d9..fb8af4c28 100644 --- a/functional_tests/support/interface.py +++ b/functional_tests/support/interface.py @@ -13,8 +13,8 @@ from .service import wait_for_page_update sys_modules = [ 'avahi', 'backups', 'bind', 'cockpit', 'config', 'datetime', 'diagnostics', 'dynamicdns', 'firewall', 'letsencrypt', 'monkeysphere', 'names', - 'networks', 'pagekite', 'power', 'security', 'snapshot', 'ssh', 'storage', - 'upgrades', 'users' + 'networks', 'pagekite', 'performance', 'power', 'security', 'snapshot', + 'ssh', 'storage', 'upgrades', 'users' ] default_url = config['DEFAULT']['url'] From 6d2f4b6cea368e51c5e996222b8df4380f18da6f Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Thu, 7 May 2020 20:15:50 -0700 Subject: [PATCH 11/40] daemon: Allow using an alias when enabling a daemon Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/daemon.py | 16 +++++++++++++++- plinth/tests/test_daemon.py | 12 +++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/plinth/daemon.py b/plinth/daemon.py index 4644d17b2..3b80d8a2a 100644 --- a/plinth/daemon.py +++ b/plinth/daemon.py @@ -15,7 +15,7 @@ from plinth import action_utils, actions, app class Daemon(app.LeaderComponent): """Component to manage a background daemon or any systemd unit.""" def __init__(self, component_id, unit, strict_check=False, - listen_ports=None): + listen_ports=None, alias=None): """Initialize a new daemon component. 'component_id' must be a unique string across all apps and components @@ -28,12 +28,24 @@ class Daemon(app.LeaderComponent): 'tcp', 'udp4', 'udp6', 'udp' indicating the protocol that the daemon listens on. This information is used to run diagnostic tests. + 'alias' is an alternate name for the same unit file. When a unit file + is renamed, the new unit file usually contains an Alias= setting in + [Install] section with value of old unit name. When the unit is + enabled, a symlink with the name of the alias is created. All + operations such as is-enabled, is-running and disable work with the + alias along with the primary unit name. However, for the case of + enabling the unit file, the alias does not work. To be able to provide + management for multiple versions of the unit file with different names, + specify an alias. Both the names are taken into consideration when + enabling the unit file. + """ super().__init__(component_id) self.unit = unit self.strict_check = strict_check self.listen_ports = listen_ports or [] + self.alias = alias def is_enabled(self): """Return if the daemon/unit is enabled.""" @@ -43,6 +55,8 @@ class Daemon(app.LeaderComponent): def enable(self): """Run operations to enable the daemon/unit.""" actions.superuser_run('service', ['enable', self.unit]) + if self.alias: + actions.superuser_run('service', ['enable', self.alias]) def disable(self): """Run operations to disable the daemon/unit.""" diff --git a/plinth/tests/test_daemon.py b/plinth/tests/test_daemon.py index e9e49edbc..8fc1018eb 100644 --- a/plinth/tests/test_daemon.py +++ b/plinth/tests/test_daemon.py @@ -29,12 +29,14 @@ def test_initialization(): assert daemon.unit == 'test-unit' assert not daemon.strict_check assert daemon.listen_ports == [] + assert daemon.alias is None listen_ports = [(345, 'tcp4'), (123, 'udp')] daemon = Daemon('test-daemon', 'test-unit', strict_check=True, - listen_ports=listen_ports) + listen_ports=listen_ports, alias='test-unit-2') assert daemon.strict_check assert daemon.listen_ports == listen_ports + assert daemon.alias == 'test-unit-2' @patch('plinth.action_utils.service_is_enabled') @@ -60,6 +62,13 @@ def test_enable(superuser_run, daemon): daemon.enable() superuser_run.assert_has_calls([call('service', ['enable', 'test-unit'])]) + daemon.alias = 'test-unit-2' + daemon.enable() + superuser_run.assert_has_calls([ + call('service', ['enable', 'test-unit']), + call('service', ['enable', 'test-unit-2']) + ]) + @patch('plinth.actions.superuser_run') def test_disable(superuser_run, daemon): @@ -83,6 +92,7 @@ def test_is_running(service_is_running, daemon): @patch('plinth.daemon.diagnose_port_listening') def test_diagnose(port_listening, service_is_running, daemon): """Test running diagnostics.""" + def side_effect(port, kind): return [f'test-result-{port}-{kind}', 'passed'] From e3228467f3ed321d0e4ec2f74c2fc13635d224e8 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Thu, 7 May 2020 20:23:32 -0700 Subject: [PATCH 12/40] bind: Add daemon alias for bind9 -> named bind9 package version 1:9.16.1-2 in unstable renamed bind9.service to named.service. The new service file contains Alias=bind9.service. Use this support multiple versions of the package across Debian stable, testing and unstable. Closes: #1816. Tests performed: - Enable the service. 'service enable bind9' is called but fails with error ignored. 'service enable named' is also called but succeeds. Running 'service is-enable bind9' and 'service is-enabled named' return success. App page show enabled, there are no errors on the page. - When app is enabled, there is no message that service is not running. - When diagnostics are run, it shows that bind9 service is running. - Disable the app. 'service disable bind9' is called. Running 'service is-enable bind9' and 'service is-enabled named' return errors. App page shows disabled, there are no errors. - Repeat tests on Debian stable. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/bind/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py index 850cbb353..e20979da1 100644 --- a/plinth/modules/bind/__init__.py +++ b/plinth/modules/bind/__init__.py @@ -21,7 +21,7 @@ from .manifest import backup # noqa, pylint: disable=unused-import version = 2 -managed_services = ['bind9'] +managed_services = ['bind9', 'named'] managed_packages = ['bind9'] @@ -97,7 +97,8 @@ class BindApp(app_module.App): 'daemon-bind', managed_services[0], listen_ports=[(53, 'tcp6'), (53, 'udp6'), (53, 'tcp4'), - (53, 'udp4')]) + (53, 'udp4')], + alias=managed_services[1]) self.add(daemon) From b763391dfb82bf9a8be66a46707cf0b725aef4fc Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Thu, 7 May 2020 20:26:57 -0700 Subject: [PATCH 13/40] daemon: bind: cosmetic: yapf, isort formatting Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/daemon.py | 1 + plinth/modules/bind/__init__.py | 16 +++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/plinth/daemon.py b/plinth/daemon.py index 3b80d8a2a..eb64eba3b 100644 --- a/plinth/daemon.py +++ b/plinth/daemon.py @@ -14,6 +14,7 @@ from plinth import action_utils, actions, app class Daemon(app.LeaderComponent): """Component to manage a background daemon or any systemd unit.""" + def __init__(self, component_id, unit, strict_check=False, listen_ports=None, alias=None): """Initialize a new daemon component. diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py index e20979da1..80f0dc70e 100644 --- a/plinth/modules/bind/__init__.py +++ b/plinth/modules/bind/__init__.py @@ -3,11 +3,11 @@ FreedomBox app to configure BIND server. """ -import augeas import re from collections import defaultdict from pathlib import Path +import augeas from django.utils.translation import ugettext_lazy as _ from plinth import actions @@ -233,8 +233,8 @@ def get_served_domains(): :return: dictionary in the form 'domain_name': ['ip_address', 'ipv6_addr'] """ RECORD_TYPES = ('A', 'AAAA') - aug = augeas.Augeas( - flags=augeas.Augeas.NO_LOAD + augeas.Augeas.NO_MODL_AUTOLOAD) + aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD + + augeas.Augeas.NO_MODL_AUTOLOAD) aug.set('/augeas/load/Dns_Zone/lens', 'Dns_Zone.lns') zone_file_path = Path(ZONES_DIR) @@ -252,8 +252,8 @@ def get_served_domains(): count = 1 mname = aug.get(base_path.format(record_order=count, field='mname')) while True: - record_type = aug.get(base_path.format(record_order=count, - field='type')) + record_type = aug.get( + base_path.format(record_order=count, field='type')) # no record type ends the search if record_type is None: @@ -261,10 +261,8 @@ def get_served_domains(): if record_type in RECORD_TYPES: served_domains[mname].append( - aug.get(base_path.format( - record_order=count, field='rdata') - ) - ) + aug.get(base_path.format(record_order=count, + field='rdata'))) count += 1 From 55f4573e93986aad97b0f0432cf8bb4ee4ee33a9 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Thu, 7 May 2020 15:21:35 -0700 Subject: [PATCH 14/40] firewall: Reload firewalld so it works with newly installed services firewalld has no problem retrieving service information for just-installed files, it only fails when adding/removing those services to zones. A reload is needed before those services can be used. Don't perform firewalld reload during setup.py or debian/postinst. Instead reload when firewalld throws an error that it does not know a service. This approach is more minimally intrusive and does not run reload operations when no services need to be loaded, during Debian package building etc. Closes: #376. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/firewall/__init__.py | 39 +++++++++++++++++++++++++++ plinth/modules/firewall/components.py | 6 +++++ 2 files changed, 45 insertions(+) diff --git a/plinth/modules/firewall/__init__.py b/plinth/modules/firewall/__init__.py index 1cbc30bd0..5ab04d8d7 100644 --- a/plinth/modules/firewall/__init__.py +++ b/plinth/modules/firewall/__init__.py @@ -142,6 +142,45 @@ def ignore_dbus_error(dbus_error=None, service_error=None): raise +def parse_dbus_error(exception): + """Parse a GDBus error.""" + parts = exception.message.split(':') + if parts[0] != 'GDBus.Error' or \ + parts[1] != 'org.fedoraproject.FirewallD1.Exception': + return None + + return parts[2].strip() + + +def reload(): + """Reload firewalld.""" + logger.info('Reloading firewalld') + with ignore_dbus_error(dbus_error='ServiceUnknown'): + proxy = _get_dbus_proxy(_FIREWALLD_OBJECT, _FIREWALLD_INTERFACE) + proxy.reload() + + +def try_with_reload(operation): + """Try an operation and retry after firewalld reload. + + When a service file is newly installed into /usr/lib/firewalld/services, + it's information can be immediately queried but the service can't be + added/removed from a zone. A firewalld reload is necessary. So, try an + operation and if it fails with INVALID_SERVICE error, reload firewalld and + try again. + + """ + try: + operation() + except glib.Error as exception: + error = parse_dbus_error(exception) + if error != 'INVALID_SERVICE': + raise + + reload() + operation() + + def get_enabled_status(): """Return whether firewall is enabled""" output = _run(['get-status'], superuser=True) diff --git a/plinth/modules/firewall/components.py b/plinth/modules/firewall/components.py index 9d2b5baf5..29b450bf8 100644 --- a/plinth/modules/firewall/components.py +++ b/plinth/modules/firewall/components.py @@ -51,7 +51,10 @@ class Firewall(app.FollowerComponent): def enable(self): """Open firewall ports when the component is enabled.""" super().enable() + firewall.try_with_reload(self._enable) + def _enable(self): + """Open firewall ports.""" internal_enabled_ports = firewall.get_enabled_services(zone='internal') external_enabled_ports = firewall.get_enabled_services(zone='external') @@ -66,7 +69,10 @@ class Firewall(app.FollowerComponent): def disable(self): """Close firewall ports when the component is disabled.""" super().disable() + firewall.try_with_reload(self._disable) + def _disable(self): + """Close firewall ports.""" internal_enabled_ports = firewall.get_enabled_services(zone='internal') external_enabled_ports = firewall.get_enabled_services(zone='external') From adc1c67e12f12f211a0812e3b465a23fcf43218d Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Fri, 28 Feb 2020 11:44:40 +0530 Subject: [PATCH 15/40] functional-tests: Skip network setup wizard Fixes #1781 Signed-off-by: Joseph Nuthalapati [sunil: Update to work with latest code] Signed-off-by: Sunil Mohan Adapa Reviewed-by: Sunil Mohan Adapa --- functional_tests/support/interface.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/functional_tests/support/interface.py b/functional_tests/support/interface.py index fb8af4c28..19dfa38d0 100644 --- a/functional_tests/support/interface.py +++ b/functional_tests/support/interface.py @@ -41,6 +41,11 @@ def login(browser, url, username, password): browser.visit(default_url + '/plinth/firstboot/welcome') submit(browser) # click the "Start Setup" button create_admin_account(browser, username, password) + if '/network-topology-first-boot' in browser.url: + submit(browser, element=browser.find_by_name('skip')[0]) + + if '/internet-connection-type' in browser.url: + submit(browser, element=browser.find_by_name('skip')[0]) def is_login_prompt(browser): From 8b721a27efdd6e91f6d38bc5bf53129456a63f60 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Fri, 7 Feb 2020 11:22:24 +0530 Subject: [PATCH 16/40] functional-tests: Move Disable tests to the end Disabling an application at the end of test suite frees us system resources for the remaining applications. Signed-off-by: Joseph Nuthalapati Reviewed-by: Sunil Mohan Adapa --- functional_tests/features/gitweb.feature | 10 +++++----- functional_tests/features/samba.feature | 10 +++++----- functional_tests/features/searx.feature | 9 ++++----- functional_tests/features/upgrades.feature | 16 ++++++++-------- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/functional_tests/features/gitweb.feature b/functional_tests/features/gitweb.feature index 833a69fde..5f3be943b 100644 --- a/functional_tests/features/gitweb.feature +++ b/functional_tests/features/gitweb.feature @@ -42,11 +42,6 @@ Scenario: Backup and restore gitweb Then the repository should be restored And the gitweb site should be available -Scenario: Disable gitweb application - Given the gitweb application is enabled - When I disable the gitweb application - Then the gitweb site should not be available - Scenario: Public gitweb site shows only public repositories Given the gitweb application is enabled And both public and private repositories exist @@ -90,3 +85,8 @@ Scenario: Access private repository with git client And the repository should not be publicly writable And the repository should be privately readable And the repository should be privately writable + +Scenario: Disable gitweb application + Given the gitweb application is enabled + When I disable the gitweb application + Then the gitweb site should not be available diff --git a/functional_tests/features/samba.feature b/functional_tests/features/samba.feature index 9ff767d47..1b5aaf7b9 100644 --- a/functional_tests/features/samba.feature +++ b/functional_tests/features/samba.feature @@ -14,11 +14,6 @@ Scenario: Enable samba application When I enable the samba application Then the samba service should be running -Scenario: Disable samba application - Given the samba application is enabled - When I disable the samba application - Then the samba service should not be running - Scenario: Enable open samba share Given the samba application is enabled When I enable the open samba share @@ -50,3 +45,8 @@ Scenario: Backup and restore samba And I restore the samba app data backup Then the samba service should be running And I can write to the home samba share + +Scenario: Disable samba application + Given the samba application is enabled + When I disable the samba application + Then the samba service should not be running diff --git a/functional_tests/features/searx.feature b/functional_tests/features/searx.feature index ca95cbac1..735981ada 100644 --- a/functional_tests/features/searx.feature +++ b/functional_tests/features/searx.feature @@ -19,11 +19,6 @@ Scenario: Backup and restore searx And I restore the searx app data backup Then the searx site should be available -Scenario: Disable searx application - Given the searx application is enabled - When I disable the searx application - Then the searx site should not be available - Scenario: Enable public access Given the searx application is enabled When I enable public access in searx @@ -47,3 +42,7 @@ Scenario: Preserve public access setting Then searx app should be visible on the front page And the searx site should be available +Scenario: Disable searx application + Given the searx application is enabled + When I disable the searx application + Then the searx site should not be available diff --git a/functional_tests/features/upgrades.feature b/functional_tests/features/upgrades.feature index f46c0ea1f..ff8551c3c 100644 --- a/functional_tests/features/upgrades.feature +++ b/functional_tests/features/upgrades.feature @@ -7,10 +7,10 @@ Feature: Software Upgrades Background: Given I'm a logged in user -Scenario: Disable automatic upgrades - Given automatic upgrades are enabled - When I disable automatic upgrades - Then automatic upgrades should be disabled +Scenario: Enable automatic upgrades + Given automatic upgrades are disabled + When I enable automatic upgrades + Then automatic upgrades should be enabled Scenario: Backup and restore upgrades When I enable automatic upgrades @@ -19,7 +19,7 @@ Scenario: Backup and restore upgrades And I restore the upgrades app data backup Then automatic upgrades should be enabled -Scenario: Enable automatic upgrades - Given automatic upgrades are disabled - When I enable automatic upgrades - Then automatic upgrades should be enabled +Scenario: Disable automatic upgrades + Given automatic upgrades are enabled + When I disable automatic upgrades + Then automatic upgrades should be disabled From 6216f7872c72c058fc3c4c5daac69481126086a6 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 6 Apr 2020 20:12:34 -0700 Subject: [PATCH 17/40] glib: Allow scheduling non-repeating tasks in separate threads Signed-off-by: Sunil Mohan Adapa --- plinth/glib.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plinth/glib.py b/plinth/glib.py index dc535defe..85a48c872 100644 --- a/plinth/glib.py +++ b/plinth/glib.py @@ -47,8 +47,9 @@ def _run(): logger.info('Glib main loop thread exited.') -def schedule(interval, method, data=None, in_thread=True): +def schedule(interval, method, data=None, in_thread=True, repeat=True): """Schedule a recurring call to a method with fixed interval.""" + def _runner(): """Run the target method and log and exceptions.""" try: @@ -64,6 +65,6 @@ def schedule(interval, method, data=None, in_thread=True): thread = threading.Thread(target=_runner) thread.start() - return True + return repeat glib.timeout_add(int(interval * 1000), _run_bare_or_thread, None) From b3663075a0821f27c95e652ca691304abfc89f5a Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 6 Apr 2020 20:13:18 -0700 Subject: [PATCH 18/40] notification: Expand and clarify restriction on id property - This is to allow arbitrary strings to be part of id property via base32 encoding. Signed-off-by: Sunil Mohan Adapa --- plinth/notification.py | 5 ++++- plinth/urls.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plinth/notification.py b/plinth/notification.py index 89140b86e..26c9c5858 100644 --- a/plinth/notification.py +++ b/plinth/notification.py @@ -70,7 +70,9 @@ class Notification(models.StoredNotification): following fields are present in the model: 'id' is a unique string identifier for the notification and acts as the - primary key for the stored database table. + primary key for the stored database table. Only the following chars are + currently allowed: A-Z, a-z, 0-9, - and =. If other chars must be used, it + is recommended to use base32 encoding. 'app_id' is the unique ID of the app showing the notification. @@ -154,6 +156,7 @@ class Notification(models.StoredNotification): been dismissed by the user. """ + class Meta: # pylint: disable=too-few-public-methods """Meta properties of the Notification model.""" proxy = True diff --git a/plinth/urls.py b/plinth/urls.py index 8d69881ed..5317ef32c 100644 --- a/plinth/urls.py +++ b/plinth/urls.py @@ -32,6 +32,6 @@ urlpatterns = [ url(r'locked/$', public(CaptchaLoginView.as_view()), name='locked_out'), # Notifications - url(r'^notification/(?P[a-z0-9-]+)/dismiss/$', + url(r'^notification/(?P[A-Za-z0-9-=]+)/dismiss/$', views.notification_dismiss, name='notification_dismiss') ] From e51d027618466784ddecd16fd450afb5c0db96b9 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 6 Apr 2020 20:04:15 -0700 Subject: [PATCH 19/40] storage: Auto-mount disks, notify of failing disks - Remove freedombox-udiskie.service file. Don't run udiskie anymore. Use our own implementation of auto-mounting. - Schedule disk failure checking to 3 seconds after application initialization. Also perform auto-mounting at that time. - Listen to new filesystems added and auto-mount them. - Listen to disk failing attribute and report to user via a notification. - Add rules to polkit-1 to allow plinth user to mount drives. - Add simple abstractions over DBusProxy objects make accessing properties simpler. - Replicate udiskie's approach to mounting disks. - Mount as root user for now using command line instead of DBus API. This is to keep compatibility with older code that mounted under /media/root with relaxed permissions. Udiskie analysis: - On device added, media added, perform auto_add - On device changed and is addable and old state is not addable or removeable - Automount condition: - Matches configuration - Not ignored - is_filesystem and not mounted -> mount - crypto device -> try unlock -> if success, mount - is partition table - Get all non-ignored devices, if partition then mount - Mount condition: - Is not ignored - Is filesystem - Find device with path - Get options from configuration - Is ntfs and executable ntfs-3g is not available - Call mount - No support for udisks1 - Built-in rules - {'symlinks': '/dev/mapper/docker-*', 'ignore': True} - {'symlinks': '/dev/disk/by-id/dm-name-docker-*', 'ignore': True} - {'is_loop': True, 'is_ignored': False, 'loop_file': '/*', 'ignore': False} - {'is_block': False, 'ignore': True} - {'is_external': False, 'is_toplevel': True, 'ignore': True} - {'is_ignored': True, 'ignore': True} Tests performed: - Create a CDROM in VM, inject media. Disk should get mounted. - Create a temp file. mkfs.ext4 it at top level. losetup it. It should not get auto mounted as it is a top level internal device. - Create a temp file. Create two partitions and format the partitions. kpartx -a on it. Both the file systems should get mounted. - Create a temp file. luksformat it. Create a filesystem. luksopen the file. It should get auto mounted. - Checking for disk space repeatedly happens every 3 minutes. - Drives are checked for healthy status only once, 3 seconds after FreedomBox is started. - FreedomBox is able to mount disks while running as 'plinth' user with policykit-1 version 0.105-26. - FreedomBox is able to mount disks while running as 'plinth' user with policykit-1 version 0.116-2 from experimental. - Temporarily flip the is_failing condition in report_failing_drive. When FreedomBox is restarted, notification about drives failing show up. When the condition is reverted to normal, the notification is withdrawn. - Build new Debian package and upgrade system with 20.8 installed. Two files should be removed: /var/lib/systemd/deb-systemd-helper-enabled/freedombox-udiskie.service.dsh-also /etc/systemd/system/multi-user.target.wants/freedombox-udiskie.service . systemctl status freedombox-udiskie.service should report no such unit. Signed-off-by: Sunil Mohan Adapa Reviewed-by: Veiko Aasa --- actions/storage | 24 ++ debian/freedombox.preinst | 16 + plinth/modules/storage/__init__.py | 32 +- .../systemd/system/freedombox-udiskie.service | 22 -- .../rules.d/50-freedombox-udisks2.rules | 18 + .../10-vendor.d/org.freedombox.UDisks2.pkla | 4 + plinth/modules/storage/udisks2.py | 340 ++++++++++++++++++ 7 files changed, 427 insertions(+), 29 deletions(-) delete mode 100644 plinth/modules/storage/data/lib/systemd/system/freedombox-udiskie.service create mode 100644 plinth/modules/storage/data/usr/share/polkit-1/rules.d/50-freedombox-udisks2.rules create mode 100644 plinth/modules/storage/data/var/lib/polkit-1/localauthority/10-vendor.d/org.freedombox.UDisks2.pkla create mode 100644 plinth/modules/storage/udisks2.py diff --git a/actions/storage b/actions/storage index 508dc6d11..6d5b97602 100755 --- a/actions/storage +++ b/actions/storage @@ -34,6 +34,10 @@ def parse_arguments(): subparser.add_argument('device', help='Partition which needs to be resized') + subparser = subparsers.add_parser('mount', help='Mount a filesystem') + subparser.add_argument('--block-device', + help='Block device of the filesystem to mount') + subparser = subparsers.add_parser('eject', help='Eject a storage device') subparser.add_argument('device', help='Path of the device to eject') @@ -232,6 +236,26 @@ def _interpret_unit(value): return int(value) +def subcommand_mount(arguments): + """Mount a disk are root user. + + XXX: This is primarily to provide compatibility with older code that used + udiskie to auto-mount all partitions as root user under /media/root/ + directory. We are setting special permissions for the directory /media/root + and users have set shared folders using this path. This can be removed in + favor of using DBus API once we have a migration plan in place. Disks can + be mounted directly /mount without ACL restrictions that apply to + /mount/ directories. This can be done by setting udev flag + UDISKS_FILESYSTEM_SHARED=1 by writing a udev rule. + + """ + process = subprocess.run([ + 'udisksctl', 'mount', '--block-device', arguments.block_device, + '--no-user-interaction' + ]) + sys.exit(process.returncode) + + def subcommand_eject(arguments): """Eject a device by its path.""" device_path = arguments.device diff --git a/debian/freedombox.preinst b/debian/freedombox.preinst index c10163861..0f04c2681 100755 --- a/debian/freedombox.preinst +++ b/debian/freedombox.preinst @@ -19,6 +19,22 @@ case "$1" in systemctl daemon-reload fi fi + + # Handle removing freedombox-udiskie.service from 20.9. + if dpkg --compare-versions "$2" le 20.9; then + if [ -x "/usr/bin/deb-systemd-invoke" ]; then + deb-systemd-invoke stop freedombox-udiskie.service >/dev/null 2>/dev/null || true + fi + + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper purge freedombox-udiskie.service >/dev/null || true + deb-systemd-helper unmask freedombox-udiskie.service >/dev/null || true + fi + + if [ -d /run/systemd/system ]; then + systemctl daemon-reload + fi + fi ;; esac diff --git a/plinth/modules/storage/__init__.py b/plinth/modules/storage/__init__.py index 7b6fc7651..f7c2ba935 100644 --- a/plinth/modules/storage/__init__.py +++ b/plinth/modules/storage/__init__.py @@ -3,6 +3,7 @@ FreedomBox app to manage storage. """ +import base64 import logging import subprocess @@ -13,17 +14,15 @@ from django.utils.translation import ugettext_noop from plinth import actions from plinth import app as app_module from plinth import cfg, glib, menu, utils -from plinth.daemon import Daemon from plinth.errors import ActionError, PlinthError from plinth.utils import format_lazy, import_from_gi +from . import udisks2 from .manifest import backup # noqa, pylint: disable=unused-import version = 4 -managed_services = ['freedombox-udiskie'] - -managed_packages = ['parted', 'udiskie', 'gir1.2-udisks-2.0'] +managed_packages = ['parted', 'udisks2', 'gir1.2-udisks-2.0'] _description = [ format_lazy( @@ -60,13 +59,13 @@ class StorageApp(app_module.App): 'storage:index', parent_url_name='system') self.add(menu_item) - daemon = Daemon('daemon-udiskie', managed_services[0]) - self.add(daemon) - # Check every hour for low disk space, every 3 minutes in debug mode interval = 180 if cfg.develop else 3600 glib.schedule(interval, warn_about_low_disk_space) + # Schedule initialization of UDisks2 initialization + glib.schedule(3, udisks2.init, repeat=False) + def init(): """Initialize the module.""" @@ -334,3 +333,22 @@ def warn_about_low_disk_space(request): title=title, message=message, actions=actions, data=data, group='admin') + + +def report_failing_drive(id, is_failing): + """Show or withdraw notification about failing drive.""" + notification_id = 'storage-disk-failure-' + base64.b32encode( + id.encode()).decode() + + from plinth.notification import Notification + title = ugettext_noop('Disk failure imminent') + message = ugettext_noop( + 'Disk {id} is reporting that it is likely to fail in the near future. ' + 'Copy any data while you still can and replace the drive.') + data = {'id': id} + note = Notification.update_or_create(id=notification_id, app_id='storage', + severity='error', title=title, + message=message, actions=[{ + 'type': 'dismiss' + }], data=data, group='admin') + note.dismiss(should_dismiss=not is_failing) diff --git a/plinth/modules/storage/data/lib/systemd/system/freedombox-udiskie.service b/plinth/modules/storage/data/lib/systemd/system/freedombox-udiskie.service deleted file mode 100644 index 431113857..000000000 --- a/plinth/modules/storage/data/lib/systemd/system/freedombox-udiskie.service +++ /dev/null @@ -1,22 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later - -[Unit] -Description=handle automounting -Documentation=man:udiskie(1) - -[Service] -ExecStart=/usr/bin/udiskie -LockPersonality=yes -PrivateTmp=yes -ProtectControlGroups=yes -ProtectHome=yes -ProtectKernelLogs=yes -ProtectKernelModules=yes -ProtectKernelTunables=yes -ProtectSystem=full -RestrictAddressFamilies=AF_UNIX -RestrictRealtime=yes -SystemCallArchitectures=native - -[Install] -WantedBy=multi-user.target diff --git a/plinth/modules/storage/data/usr/share/polkit-1/rules.d/50-freedombox-udisks2.rules b/plinth/modules/storage/data/usr/share/polkit-1/rules.d/50-freedombox-udisks2.rules new file mode 100644 index 000000000..89e521108 --- /dev/null +++ b/plinth/modules/storage/data/usr/share/polkit-1/rules.d/50-freedombox-udisks2.rules @@ -0,0 +1,18 @@ +/* +# SPDX-License-Identifier: AGPL-3.0-or-later + +This file is used only by policykit-1 version > 0.105. A corresponding .pkla +file is used by policykit-1 <= 0.105. See: +https://davidz25.blogspot.com/2012/06/authorization-rules-in-polkit.html + +*/ + +polkit.addRule(function(action, subject) { + if ((action.id == "org.freedesktop.udisks2.filesystem-mount" || + action.id == "org.freedesktop.udisks2.filesystem-mount-system" || + action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" || + action.id == "org.freedesktop.udisks2.filesystem-fstab") && + subject.user == "plinth") { + return polkit.Result.YES; + } +}); diff --git a/plinth/modules/storage/data/var/lib/polkit-1/localauthority/10-vendor.d/org.freedombox.UDisks2.pkla b/plinth/modules/storage/data/var/lib/polkit-1/localauthority/10-vendor.d/org.freedombox.UDisks2.pkla new file mode 100644 index 000000000..acb5350f5 --- /dev/null +++ b/plinth/modules/storage/data/var/lib/polkit-1/localauthority/10-vendor.d/org.freedombox.UDisks2.pkla @@ -0,0 +1,4 @@ +[Allow FreedomBox to manage UDisks2] +Identity=unix-user:plinth +Action=org.freedesktop.udisks2.filesystem-mount;org.freedesktop.udisks2.filesystem-mount-system;org.freedesktop.udisks2.filesystem-mount-other-seat;org.freedesktop.udisks2.filesystem-fstab +ResultAny=yes diff --git a/plinth/modules/storage/udisks2.py b/plinth/modules/storage/udisks2.py new file mode 100644 index 000000000..e662ea75e --- /dev/null +++ b/plinth/modules/storage/udisks2.py @@ -0,0 +1,340 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Handle disk operations using UDisk2 DBus API. +""" + +import logging +import threading + +from plinth import actions +from plinth.errors import ActionError +from plinth.utils import import_from_gi + +glib = import_from_gi('GLib', '2.0') +gio = import_from_gi('Gio', '2.0') + +_DBUS_NAME = 'org.freedesktop.UDisks2' + +_INTERFACES = { + 'Ata': 'org.freedesktop.UDisks2.Drive.Ata', + 'Block': 'org.freedesktop.UDisks2.Block', + 'Drive': 'org.freedesktop.UDisks2.Drive', + 'Filesystem': 'org.freedesktop.UDisks2.Filesystem', + 'Job': 'org.freedesktop.UDisks2.Job', + 'Manager': 'org.freedesktop.UDisks2.Manager', + 'ObjectManager': 'org.freedesktop.DBus.ObjectManager', + 'Partition': 'org.freedesktop.UDisks2.Partition', + 'Properties': 'org.freedesktop.DBus.Properties', + 'UDisks2': 'org.freedesktop.UDisks2', +} + +_OBJECTS = { + 'drives': '/org/freedesktop/UDisks2/drives/', + 'jobs': '/org/freedesktop/UDisks2/jobs/', + 'Manager': '/org/freedesktop/UDisks2/Manager', + 'UDisks2': '/org/freedesktop/UDisks2', +} + +_ERRORS = { + 'AlreadyMounted': 'org.freedesktop.UDisks2.Error.AlreadyMounted', + 'Failed': 'org.freedesktop.UDisks2.Error.Failed', +} + +_jobs = {} + +logger = logging.getLogger(__name__) + + +def _get_dbus_proxy(object_, interface): + """Return a DBusProxy for a given UDisks2 object and interface.""" + connection = gio.bus_get_sync(gio.BusType.SYSTEM) + return gio.DBusProxy.new_sync(connection, gio.DBusProxyFlags.NONE, None, + _DBUS_NAME, object_, interface) + + +class Proxy: + """Base methods for abstraction over UDisks2 DBus proxy objects.""" + interface = None + properties = {} + + def __init__(self, object_path): + """Return an object instance.""" + self.object_path = object_path + self._proxy = _get_dbus_proxy(object_path, self.interface) + + def __getattr__(self, name): + """Retrieve a property from underlying proxy or delegate.""" + if name not in self.properties: + return getattr(self._proxy, name) + + signature, original_name = self.properties[name] + value = self._proxy.get_cached_property(original_name) + + if value is None: + return value + + if signature == 'ay': + return bytes(value)[:-1].decode() + + if signature == 'aay': + return [bytes(value_item).decode()[:-1] for value_item in value] + + if signature in ('s', 'b', 'o', 'u'): + return glib.Variant.unpack(value) + + raise ValueError('Unhandled type') + + +class Drive(Proxy): + """Abstraction for UDisks2 Drive.""" + interface = _INTERFACES['Drive'] + properties = {'id': ('s', 'Id')} + + +class BlockDevice(Proxy): + """Abstraction for UDisks2 Block device.""" + interface = _INTERFACES['Block'] + properties = { + 'crypto_backing_device': ('o', 'CryptoBackingDevice'), + 'device': ('ay', 'Device'), + 'hint_ignore': ('b', 'HintIgnore'), + 'hint_system': ('b', 'HintSystem'), + 'id': ('s', 'Id'), + 'preferred_device': ('ay', 'PreferredDevice'), + 'symlinks': ('aay', 'Symlinks'), + } + + +class Partition(Proxy): + """Abstraction for UDisks2 Partition.""" + interface = _INTERFACES['Partition'] + properties = { + 'number': ('u', 'Number'), + } + + +class Filesystem(Proxy): + """Abstraction for UDisks2 Filesystem.""" + interface = _INTERFACES['Filesystem'] + properties = {'mount_points': ('aay', 'MountPoints')} + + +def _mount(object_path): + """Start the mount operation on an block device. + + Runs in a separate thread from glib due to blocking operations. + + """ + filesystem = Filesystem(object_path) + block_device = BlockDevice(object_path) + if filesystem.mount_points: + logger.info('Ignoring auto-mount on already mounted device: %s %s', + block_device.id, block_device.preferred_device) + return + + logger.info('Auto-mounting device: %s %s', block_device.id, + block_device.preferred_device) + try: + actions.superuser_run( + 'storage', + ['mount', '--block-device', block_device.preferred_device], + log_error=False) + except ActionError as exception: + parts = exception.args[2].split(':') + if parts[1].strip() != 'GDBus.Error': + raise + + if parts[2].strip() == _ERRORS['AlreadyMounted']: + logger.warning('Device is already mounted: %s %s', block_device.id, + block_device.preferred_device) + elif parts[2].strip() == _ERRORS['Failed']: + logger.warning('Mount operation failed: %s %s: %s', + block_device.id, block_device.preferred_device, + exception) + else: + raise + + +def _on_job_created(object_path, interfaces_created): + """Called when a job is created. + + Runs in glib thread. No blocking operations. + + """ + job = interfaces_created[_INTERFACES['Job']] + if job['Operation'] == 'filesystem-mount': + logger.info('Mounting operation started on disk: %s', + ', '.join(job['Objects'])) + _jobs[object_path] = job + + +def _on_job_removed(object_path): + """Called when a job is completed. + + Runs in glib thread. No blocking operations. + + """ + if object_path in _jobs: + logger.info('Mounting operation completed on disk: %s', + ', '.join(_jobs[object_path]['Objects'])) + + +def _on_filesystem_added(object_path, _interfaces): + """Called when a filesystem is added. + + Runs in glib thread. No blocking operations. + + """ + threading.Thread(target=_consider_for_mounting, args=[object_path]).start() + + +def _consider_for_mounting(object_path): + """Check if the block device needs mounting and mount it.""" + block_device = BlockDevice(object_path) + + # Ignore non-block devices. + if not block_device.device: + logger.info('Ignoring non-block device, not auto-mounting %s', + object_path) + return + + logger.info('New filesystem found: %s %s', block_device.id, + block_device.preferred_device) + + # Ignore devices that are hinted by udev to ignore. + if block_device.hint_ignore: + logger.info( + 'Ignoring auto-mount of device due to udev ignore hint: %s %s', + block_device.id, block_device.preferred_device) + return + + # Ignore docker devices. + for symlink in block_device.symlinks: + if symlink.startswith('/dev/mapper/docker-') or \ + symlink.startswith('/dev/disk/by-id/dm-name-docker-'): + logger.info('Ignoring auto-mount of docker device: %s %s', + block_device.id, block_device.preferred_device) + return + + # Ignore non-external devices that don't have partition table (top-level + # filesystem). If the device is backed by a crypto device, still handle it. + # XXX: This rule is from udiskie. Should we keep it? + partition = Partition(object_path) + if block_device.hint_system and not partition.number and \ + block_device.crypto_backing_device == '/': + logger.info('Ignoring auto-mount of top-level internal device: %s %s', + block_device.id, block_device.preferred_device) + return + + _mount(object_path) + + +def _on_interfaces_added(_connection, _sender_name, _object_path, + _interface_name, _signal_name, parameters, _user_data, + _unknown): + """Called when objects/interfaces have been added. + + Runs in glib thread. No blocking operations. + + """ + object_path, interfaces = parameters + if object_path.startswith(_OBJECTS['jobs']): + _on_job_created(object_path, interfaces) + + if _INTERFACES['Filesystem'] in interfaces: + _on_filesystem_added(object_path, interfaces) + + +def _on_interfaces_removed(_connection, _sender_name, _object_path, + _interface_name, _signal_name, parameters, + _user_data, _unknown): + """Called when objects/interfaces have been removed. + + Runs in glib thread. No blocking operations. + + """ + object_path, _interfaces = parameters + if object_path.startswith(_OBJECTS['jobs']): + _on_job_removed(object_path) + + +def _on_properties_changed(_connection, _sender_name, object_path, + _interface_name, _signal_name, parameters, + _user_data, _unknown): + """Called when properties change on matching objects. + + Runs in glib thread. No blocking operations. + + """ + interface_changed, properties_changed, _properties_invalided = parameters + if interface_changed == _INTERFACES['Ata'] and \ + 'SmartFailing' in properties_changed: + drive = Drive(object_path) + thread = threading.Thread( + target=_report_failing_drive, + args=[drive.id, properties_changed['SmartFailing']]) + thread.start() + + +def _report_failing_drive(id_, is_failing): + """Show or withdraw notification about failing drive.""" + if is_failing: + logger.info('Drive %s is failing', id_) + else: + logger.info('Drive %s appears healthy', id_) + + from . import report_failing_drive + report_failing_drive(id_, is_failing) + + +def _connect(): + """Connect to all necessary signals from UDisks2.""" + udisks = _get_dbus_proxy(_OBJECTS['UDisks2'], _INTERFACES['UDisks2']) + connection = udisks.get_connection() + + connection.signal_subscribe(None, _INTERFACES['ObjectManager'], + 'InterfacesAdded', _OBJECTS['UDisks2'], None, + gio.DBusSignalFlags.NONE, _on_interfaces_added, + None, None) + connection.signal_subscribe(None, _INTERFACES['ObjectManager'], + 'InterfacesRemoved', _OBJECTS['UDisks2'], None, + gio.DBusSignalFlags.NONE, + _on_interfaces_removed, None, None) + connection.signal_subscribe(udisks.get_name(), _INTERFACES['Properties'], + 'PropertiesChanged', None, None, + gio.DBusSignalFlags.NONE, + _on_properties_changed, None, None) + + +def _check_failing_drives(): + """Check if any of the drives are failing and report.""" + manager = _get_dbus_proxy(_OBJECTS['UDisks2'], + _INTERFACES['ObjectManager']) + objects = manager.GetManagedObjects() + for _, interface_and_properties in objects.items(): + if _INTERFACES['Drive'] in interface_and_properties and \ + _INTERFACES['Ata'] in interface_and_properties: + _report_failing_drive( + interface_and_properties[_INTERFACES['Drive']]['Id'], + interface_and_properties[_INTERFACES['Ata']]['SmartFailing']) + + +def _mount_initial_devices(): + """Check if any of the block devices need mounting.""" + manager = _get_dbus_proxy(_OBJECTS['UDisks2'], + _INTERFACES['ObjectManager']) + objects = manager.GetManagedObjects() + for object_, interface_and_properties in objects.items(): + if _INTERFACES['Filesystem'] in interface_and_properties: + _consider_for_mounting(object_) + + +def init(_data): + """Subscribe to signals from UDisks2 and check for failing drives. + + Runs in a separate thread from glib thread due to blocking operations. + + """ + _connect() + _check_failing_drives() + _mount_initial_devices() From dbf70b9fefbb2e5fd8ab0de98a893882991d5a45 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 16 May 2020 08:04:27 -0400 Subject: [PATCH 20/40] quassel: Use systemd sandboxing features Tests: - Installed Quassel and diagnostics are passed. - Quassel client connection is successful. Signed-off-by: James Valleroy [sunil: Remove RemainAfterExit=no as it is default] [sunil: Remove ReadWritePaths= as {Logs|State}Directory= take care of it] Signed-off-by: Sunil Mohan Adapa Reviewed-by: Sunil Mohan Adapa --- .../quasselcore.service.d/freedombox.conf | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 plinth/modules/quassel/data/lib/systemd/system/quasselcore.service.d/freedombox.conf diff --git a/plinth/modules/quassel/data/lib/systemd/system/quasselcore.service.d/freedombox.conf b/plinth/modules/quassel/data/lib/systemd/system/quasselcore.service.d/freedombox.conf new file mode 100644 index 000000000..2a8068bfc --- /dev/null +++ b/plinth/modules/quassel/data/lib/systemd/system/quasselcore.service.d/freedombox.conf @@ -0,0 +1,17 @@ +[Service] +LockPersonality=yes +LogsDirectory=quassel +NoNewPrivileges=yes +PrivateDevices=yes +PrivateMounts=yes +PrivateTmp=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=strict +RestrictAddressFamilies=AF_INET AF_INET6 +RestrictRealtime=yes +StateDirectory=quassel +SystemCallArchitectures=native From 355b2be90e12faf2b3a5bd290fefedb76b12f411 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 12 May 2020 17:11:21 -0700 Subject: [PATCH 21/40] package: Fix error log when checking if package manager is busy Reuse the method in package.py that checks is package manager is busy without printing and error log. Tests performed: - Try to install a package and wait at the apt confirmation prompt. - Go to power index page /sys/power/ . It shows a warning that package manager is busy. No error log is printed. - Go to system restart page. It shows a warning that package manager is busy. No error log is printed. - Go to system poweroff page. It shows a warning that package manager is busy. No error log is printed. - Without package manager being busy, above warnings are not shown. - Go to manual update package. It shows as updating if apt is busy, otherwise shows the manual update button. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/power/views.py | 17 ++++------------- plinth/modules/upgrades/views.py | 13 ++----------- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/plinth/modules/power/views.py b/plinth/modules/power/views.py index 54f6eaaca..f104a0c96 100644 --- a/plinth/modules/power/views.py +++ b/plinth/modules/power/views.py @@ -8,7 +8,7 @@ from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import reverse -from plinth import actions +from plinth import actions, package from plinth.modules import power @@ -18,7 +18,7 @@ def index(request): request, 'power.html', { 'title': power.app.info.name, 'app_info': power.app.info, - 'pkg_manager_is_busy': _is_pkg_manager_busy() + 'pkg_manager_is_busy': package.is_package_manager_busy() }) @@ -37,7 +37,7 @@ def restart(request): 'title': power.app.info.name, 'form': form, 'manual_page': power.app.info.manual_page, - 'pkg_manager_is_busy': _is_pkg_manager_busy() + 'pkg_manager_is_busy': package.is_package_manager_busy() }) @@ -56,14 +56,5 @@ def shutdown(request): 'title': power.app.info.name, 'form': form, 'manual_page': power.app.info.manual_page, - 'pkg_manager_is_busy': _is_pkg_manager_busy() + 'pkg_manager_is_busy': package.is_package_manager_busy() }) - - -def _is_pkg_manager_busy(): - """Return whether a package manager is running.""" - try: - actions.superuser_run('packages', ['is-package-manager-busy']) - return True - except actions.ActionError: - return False diff --git a/plinth/modules/upgrades/views.py b/plinth/modules/upgrades/views.py index 1da6c734d..4e0549f2c 100644 --- a/plinth/modules/upgrades/views.py +++ b/plinth/modules/upgrades/views.py @@ -8,7 +8,7 @@ from django.template.response import TemplateResponse from django.urls import reverse_lazy from django.utils.translation import ugettext as _ -from plinth import actions +from plinth import actions, package from plinth.errors import ActionError from plinth.modules import upgrades from plinth.views import AppView @@ -55,15 +55,6 @@ class UpgradesConfigurationView(AppView): return super().form_valid(form) -def is_package_manager_busy(): - """Return whether a package manager is running.""" - try: - actions.superuser_run('packages', ['is-package-manager-busy']) - return True - except actions.ActionError: - return False - - def get_log(): """Return the current log for unattended upgrades.""" return actions.superuser_run('upgrades', ['get-log']) @@ -71,7 +62,7 @@ def get_log(): def upgrade(request): """Serve the upgrade page.""" - is_busy = is_package_manager_busy() + is_busy = package.is_package_manager_busy() if request.method == 'POST': try: From 4dfa9436b123d8e840f100adff88902ccdbd9326 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 12 May 2020 17:15:47 -0700 Subject: [PATCH 22/40] power: cosmetic: Fix flake8 warnings Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/power/views.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plinth/modules/power/views.py b/plinth/modules/power/views.py index f104a0c96..fad662eca 100644 --- a/plinth/modules/power/views.py +++ b/plinth/modules/power/views.py @@ -29,9 +29,8 @@ def restart(request): if request.method == 'POST': actions.superuser_run('power', ['restart'], run_in_background=True) return redirect(reverse('apps')) - else: - form = Form(prefix='power') + form = Form(prefix='power') return TemplateResponse( request, 'power_restart.html', { 'title': power.app.info.name, @@ -48,9 +47,8 @@ def shutdown(request): if request.method == 'POST': actions.superuser_run('power', ['shutdown'], run_in_background=True) return redirect(reverse('apps')) - else: - form = Form(prefix='power') + form = Form(prefix='power') return TemplateResponse( request, 'power_shutdown.html', { 'title': power.app.info.name, From 0b1219a90cb5e3b56c73d297dfa9c268cacdb182 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 12 May 2020 17:16:21 -0700 Subject: [PATCH 23/40] first_setup: Fix regression with logo not showing Logo is not shown when first setup is running in the background and the first setup busy page is shown. This is a regression when PNG logos were moved to a different folder. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/templates/first_setup.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plinth/templates/first_setup.html b/plinth/templates/first_setup.html index 7740b5d41..21e94b29c 100644 --- a/plinth/templates/first_setup.html +++ b/plinth/templates/first_setup.html @@ -29,7 +29,7 @@ {% endif %}

- {{ box_name }}

From 3c85846fa2edd8d2f49de844a4c9bff84208ff35 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Fri, 15 May 2020 12:15:58 -0400 Subject: [PATCH 24/40] minidlna: Move sysctl config to /etc/sysctl.d/50-freedombox.conf /etc/sysctl.conf is owned by procps package. Test: Run minidlna install on fresh image. - /etc/sysctl.conf is not modified. - /etc/sysctl.d/50-freedombox.conf has the expected content. - /proc/sys/fs/inotify/max_user_watches contains 100000. - Running with these changes upgrades app version and triggers a setup. Changes in /etc/sysctl.conf are removed. After undoing the changes /etc/sysctl.conf is identical to pristine version installed from procps package. This can be obtained by running; rm -f /etc/sysctl.conf ; apt install --reinstall procps -o Dpkg::Options::=--force-confmiss Closes #1802. Signed-off-by: James Valleroy [sunil: Undo changes done in /etc/sysctl.conf in older versions] [sunil: Increment app version to trigger configuration migration] [sunil: Ensure that app is not re-enabled during migration] Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- actions/minidlna | 36 ++++++++++++++++++++++------- plinth/modules/minidlna/__init__.py | 5 ++-- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/actions/minidlna b/actions/minidlna index 70f28d657..9afed64f7 100755 --- a/actions/minidlna +++ b/actions/minidlna @@ -15,6 +15,11 @@ from plinth.utils import grep CONFIG_PATH = '/etc/minidlna.conf' +SYSCTL_CONF = '''# This file is managed and overwritten by FreedomBox. +# Helps minidlna monitor changes in large media directories +fs.inotify.max_user_watches = 100000 +''' + def parse_arguments(): """Return parsed command line arguments as dictionary.""" @@ -33,19 +38,34 @@ def parse_arguments(): return parser.parse_args() +def _undo_old_configuration_changes(): + """Restore /etc/sysctl.conf to before our changes. + + Older version of minidlna app in FreedomBox < 20.9 wrote to + /etc/sysctl.conf directly. This will cause conffile prompt during upgrade + of procps package. Undo the changes so that upgrade can happen smoothly. + + """ + aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD + + augeas.Augeas.NO_MODL_AUTOLOAD) + aug.set('/augeas/load/Sysctl/lens', 'Sysctl.lns') + aug.set('/augeas/load/Sysctl/incl[last() + 1]', '/etc/sysctl.conf') + aug.load() + + key_path = '/files/etc/sysctl.conf/fs.inotify.max_user_watches' + if aug.get(key_path) == '100000': + aug.remove(key_path) + aug.save() + + def subcommand_setup(arguments): """ Increase inotify watches per folder to allow minidlna to monitor changes in large media-dirs. """ - aug = augeas.Augeas( - flags=augeas.Augeas.NO_LOAD + augeas.Augeas.NO_MODL_AUTOLOAD) - aug.set('/augeas/load/Sysctl/lens', 'Sysctl.lns') - aug.set('/augeas/load/Sysctl/incl[last() + 1]', '/etc/sysctl.conf') - aug.load() - - aug.set('/files/etc/sysctl.conf/fs.inotify.max_user_watches', '100000') - aug.save() + _undo_old_configuration_changes() + with open('/etc/sysctl.d/50-freedombox-minidlna.conf', 'w') as conf: + conf.write(SYSCTL_CONF) subprocess.run(['systemctl', 'restart', 'systemd-sysctl'], check=True) diff --git a/plinth/modules/minidlna/__init__.py b/plinth/modules/minidlna/__init__.py index 778b971b5..e888d0176 100644 --- a/plinth/modules/minidlna/__init__.py +++ b/plinth/modules/minidlna/__init__.py @@ -13,7 +13,7 @@ from plinth.modules.users.components import UsersAndGroups from .manifest import backup, clients # noqa -version = 1 +version = 2 managed_packages = ['minidlna'] @@ -94,4 +94,5 @@ def setup(helper, old_version=None): """Install and configure the package""" helper.install(managed_packages) helper.call('post', actions.superuser_run, 'minidlna', ['setup']) - helper.call('post', app.enable) + if not old_version: + helper.call('post', app.enable) From d44283d9bac8a74aad7fbd57e41aeb885ffd116e Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 17 May 2020 14:25:57 -0700 Subject: [PATCH 25/40] minidlna: cosmetic: isort fixes Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- actions/minidlna | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/actions/minidlna b/actions/minidlna index 9afed64f7..f84135f02 100755 --- a/actions/minidlna +++ b/actions/minidlna @@ -4,12 +4,13 @@ Configuration actions for the minidlna server. """ import argparse -from tempfile import mkstemp -from shutil import move import subprocess -from os import fdopen, remove, chmod, stat +from os import chmod, fdopen, remove, stat +from shutil import move +from tempfile import mkstemp import augeas + from plinth import action_utils from plinth.utils import grep From 74dac0b49de2f3adaa79e017669e208216c493e7 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 17 May 2020 12:37:56 -0700 Subject: [PATCH 26/40] mediawiki: Stop jobrunner during backup/restore Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/mediawiki/manifest.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plinth/modules/mediawiki/manifest.py b/plinth/modules/mediawiki/manifest.py index 39771604c..79d3c266d 100644 --- a/plinth/modules/mediawiki/manifest.py +++ b/plinth/modules/mediawiki/manifest.py @@ -2,8 +2,8 @@ from django.utils.translation import ugettext_lazy as _ -from plinth.modules.backups.api import validate as validate_backup from plinth.clients import validate +from plinth.modules.backups.api import validate as validate_backup clients = validate([{ 'name': _('MediaWiki'), @@ -19,5 +19,6 @@ backup = validate_backup({ }, 'data': { 'directories': ['/var/lib/mediawiki-db/'] - } + }, + 'services': ['mediawiki-jobrunner'] }) From 317b5207f693f6e70c80f5209e1cf91ab5fba743 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 17 May 2020 12:43:28 -0700 Subject: [PATCH 27/40] minidlna: Stop daemon during backup/restore Backup and restore the configuration file too. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/minidlna/manifest.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plinth/modules/minidlna/manifest.py b/plinth/modules/minidlna/manifest.py index b99644a26..716b72e99 100644 --- a/plinth/modules/minidlna/manifest.py +++ b/plinth/modules/minidlna/manifest.py @@ -118,6 +118,8 @@ clients = validate([ # for now hard code default media folder. backup = validate_backup({ 'data': { + 'files': ['/etc/minidlna.conf'], 'directories': ['/var/lib/minidlna'] - } + }, + 'services': ['minidlna'] }) From e66988840bb9012b686856059655646a569de044 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 17 May 2020 12:43:47 -0700 Subject: [PATCH 28/40] mumble: Stop server during backup/restore Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/mumble/manifest.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plinth/modules/mumble/manifest.py b/plinth/modules/mumble/manifest.py index 3dfcca553..d605e6817 100644 --- a/plinth/modules/mumble/manifest.py +++ b/plinth/modules/mumble/manifest.py @@ -66,4 +66,9 @@ clients = validate([{ }] }]) -backup = validate_backup({'data': {'directories': ['/var/lib/mumble-server']}}) +backup = validate_backup({ + 'data': { + 'directories': ['/var/lib/mumble-server'] + }, + 'services': ['mumble-server'] +}) From 664067aa13db5596e67b24469f9296c234b6fbcc Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 17 May 2020 12:44:05 -0700 Subject: [PATCH 29/40] quassel: Fix stopping server during backup/restore Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/quassel/manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plinth/modules/quassel/manifest.py b/plinth/modules/quassel/manifest.py index fb252e747..f4e4b4b5a 100644 --- a/plinth/modules/quassel/manifest.py +++ b/plinth/modules/quassel/manifest.py @@ -49,5 +49,5 @@ backup = validate_backup({ 'secrets': { 'directories': ['/var/lib/quassel/'] }, - 'services': ['quassel-core'], + 'services': ['quasselcore'], }) From 935db83d8b21560e13b5522a950a0008565a4bd6 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 17 May 2020 12:44:31 -0700 Subject: [PATCH 30/40] tor: Fix stopping server during backup/restore Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/tor/manifest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plinth/modules/tor/manifest.py b/plinth/modules/tor/manifest.py index 801217f3b..a15799ad1 100644 --- a/plinth/modules/tor/manifest.py +++ b/plinth/modules/tor/manifest.py @@ -48,5 +48,5 @@ backup = validate_backup({ 'secrets': { 'directories': ['/var/lib/tor/', '/var/lib/tor-instances/'] }, - 'services': ['tor@service'] + 'services': ['tor@plinth'] }) From 0b5c195e170059455a6261d496cf5f9c1ce71869 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 11 May 2020 11:07:26 -0400 Subject: [PATCH 31/40] upgrades: Add needrestart to restart services as needed Signed-off-by: James Valleroy Reviewed-by: Sunil Mohan Adapa --- plinth/modules/upgrades/__init__.py | 2 +- .../upgrades/data/etc/needrestart/conf.d/freedombox.conf | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 plinth/modules/upgrades/data/etc/needrestart/conf.d/freedombox.conf diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index 8016d3f36..a70038037 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -17,7 +17,7 @@ version = 3 is_essential = True -managed_packages = ['unattended-upgrades'] +managed_packages = ['unattended-upgrades', 'needrestart'] _description = [ _('Check for and apply the latest software and security updates.') diff --git a/plinth/modules/upgrades/data/etc/needrestart/conf.d/freedombox.conf b/plinth/modules/upgrades/data/etc/needrestart/conf.d/freedombox.conf new file mode 100644 index 000000000..a1853d350 --- /dev/null +++ b/plinth/modules/upgrades/data/etc/needrestart/conf.d/freedombox.conf @@ -0,0 +1,2 @@ +# Automatically restart services when needed. +$nrconf{restart} = 'a'; From 7c38dad03dc041289d2a7eacea8afc17adc84e91 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Wed, 13 May 2020 12:08:51 -0400 Subject: [PATCH 32/40] upgrades: Enable Automatic-Reboot option of unattended-upgrades Closes #654. Signed-off-by: James Valleroy Reviewed-by: Sunil Mohan Adapa --- .../upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades b/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades index eaa4f7233..f9965ce21 100644 --- a/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades +++ b/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades @@ -14,3 +14,7 @@ Unattended-Upgrade::Remove-Unused-Dependencies "true"; Unattended-Upgrade::Origins-Pattern { "o=Debian Backports,a=${distro_codename}-backports,l=Debian Backports"; }; + +// Automatically reboot *WITHOUT CONFIRMATION* if +// the file /var/run/reboot-required is found after the upgrade +Unattended-Upgrade::Automatic-Reboot "true"; From 6ee60647c92f105e56a86605148517d5332472b5 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 18 May 2020 13:34:11 -0700 Subject: [PATCH 33/40] upgrades: Always schedule a reboot at 02:00 local time Test: - Downgrade kernel (linux-image-amd64) to earlier version. - Reboot into the older kernel. - Remove the newer kernel package. - Run FreedomBox in develop mode. - Run unattended-upgrades --debug to upgrade all packages. - At the end a message is printed that shutdown is scheduled. - Check /run/systemd/shutdown/scheduled file and see that microseconds since epoch is set to tomorrow 02:00 local time. Signed-off-by: Sunil Mohan Adapa --- .../upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades b/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades index f9965ce21..363873f00 100644 --- a/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades +++ b/plinth/modules/upgrades/data/etc/apt/apt.conf.d/60unattended-upgrades @@ -18,3 +18,7 @@ Unattended-Upgrade::Origins-Pattern { // Automatically reboot *WITHOUT CONFIRMATION* if // the file /var/run/reboot-required is found after the upgrade Unattended-Upgrade::Automatic-Reboot "true"; + +// If automatic reboot is enabled and needed, reboot at the specific +// time instead of immediately +Unattended-Upgrade::Automatic-Reboot-Time "02:00"; From d93de4fa61fd08e646edeb5ec11f271deb314976 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Mon, 18 May 2020 13:34:22 -0700 Subject: [PATCH 34/40] upgrades: Add information about service restart and system reboot Signed-off-by: Sunil Mohan Adapa --- plinth/modules/upgrades/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index a70038037..6b6d91331 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -20,7 +20,12 @@ is_essential = True managed_packages = ['unattended-upgrades', 'needrestart'] _description = [ - _('Check for and apply the latest software and security updates.') + _('Check for and apply the latest software and security updates.'), + _('Updates are run at 06:00 everyday according to local time zone. Set ' + 'your time zone in Date & Time app. Apps are restarted after update ' + 'causing them to be unavailable briefly. If system reboot is deemed ' + 'necessary, it is done automatically at 02:00 causing all apps to be ' + 'unavailable briefly.') ] app = None From f74ca9044a40acdbee96130edfd4e7886e1809a5 Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Tue, 12 May 2020 11:19:20 -0700 Subject: [PATCH 35/40] performance: Launch the Cockpit graphs directly if possible Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/performance/manifest.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plinth/modules/performance/manifest.py b/plinth/modules/performance/manifest.py index 4d0c87e6d..22b616c51 100644 --- a/plinth/modules/performance/manifest.py +++ b/plinth/modules/performance/manifest.py @@ -4,12 +4,13 @@ FreedomBox app for System Monitoring (cockpit-pcp) in ‘System’. """ from django.utils.translation import ugettext_lazy as _ + from plinth.clients import validate clients = validate([{ 'name': _('Cockpit'), 'platforms': [{ 'type': 'web', - 'url': '/_cockpit/' + 'url': '/_cockpit/system/graphs' }] }]) From 6e32ae9045cd1c9433d0dc9e93020739a93457ed Mon Sep 17 00:00:00 2001 From: "Luis A. Arizmendi" Date: Mon, 18 May 2020 07:49:23 +0000 Subject: [PATCH 36/40] Translated using Weblate (Spanish) Currently translated at 100.0% (1264 of 1264 strings) --- plinth/locale/es/LC_MESSAGES/django.po | 128 ++++++++++--------------- 1 file changed, 53 insertions(+), 75 deletions(-) diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index d0ebe5ce9..66f1ad1f0 100644 --- a/plinth/locale/es/LC_MESSAGES/django.po +++ b/plinth/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-04 19:59-0400\n" -"PO-Revision-Date: 2020-05-02 08:11+0000\n" +"PO-Revision-Date: 2020-05-18 22:17+0000\n" "Last-Translator: Luis A. Arizmendi \n" "Language-Team: Spanish \n" @@ -969,20 +969,27 @@ msgid "" "other communication servers can use it to establish a call between parties " "who are otherwise unable connect to each other." msgstr "" +"El servidor Coturn permite realizar llamadas de audio y videoconferencias " +"mediante la implementación de los protocolos TURN y STUN. Servidores WebRTC, " +"SIP y de otros tipos pueden usarlo para establecer llamadas entre partes que " +"no tienen otra alternativa disponible." #: plinth/modules/coturn/__init__.py:35 msgid "" "It is not meant to be used directly by users. Servers such as matrix-synapse " "need to be configured with the details provided here." msgstr "" +"No está diseñado para una manipulación directa por el usuario. Algunos " +"servidores como matrix-synapse tienen que configurarse con los detalles que " +"se proporcionan aquí." #: plinth/modules/coturn/__init__.py:64 msgid "Coturn" -msgstr "" +msgstr "Coturn" #: plinth/modules/coturn/__init__.py:65 msgid "VoIP Helper" -msgstr "" +msgstr "Asistente VoIP" #: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22 msgid "TLS domain" @@ -998,13 +1005,11 @@ msgstr "" #: plinth/modules/coturn/templates/coturn.html:15 msgid "Use the following URLs to configure your communication server:" -msgstr "" +msgstr "Use las siguientes URL para configurar su servidor de comunicación:" #: plinth/modules/coturn/templates/coturn.html:26 -#, fuzzy -#| msgid "The following storage devices are in use:" msgid "Use the following shared authentication secret:" -msgstr "Se están usando los siguientes dispositivos de almacenamiento:" +msgstr "Use la clave compartida siguiente:" #: plinth/modules/datetime/__init__.py:25 msgid "" @@ -1268,8 +1273,7 @@ msgstr "" #, python-brace-format msgid "The public domain name you want to use to reach your {box_name}." msgstr "" -"Nombre de dominio público que quiere usar para para identificar su " -"{box_name}." +"Nombre de dominio público que quiere usar para identificar su {box_name}." #: plinth/modules/dynamicdns/forms.py:43 msgid "Use this option if your provider uses self signed certificates." @@ -1479,9 +1483,9 @@ msgid "" "any user with a {box_name} login." msgstr "" "Para comunicarse puede usar el cliente web o " -"cualquier otro cliente XMPP. Cuando se activa, ejabberd está disponible " -"para cualquier usuario con acceso a {box_name}." +"cualquier otro " +"cliente XMPP. Cuando se activa, ejabberd está disponible para cualquier <" +"a href=\"{users_url}\">usuario con acceso a {box_name}." #: plinth/modules/ejabberd/__init__.py:69 msgid "ejabberd" @@ -2042,7 +2046,7 @@ msgstr "Aprenda más..." #: plinth/modules/help/templates/help_feedback.html:12 #, python-format msgid "Your feedback will help us improve %(box_name)s!" -msgstr "¡Tus comentarios nos ayudarán a mejorar %(box_name)s!" +msgstr "¡Tus comentarios nos ayudarán a mejorar %(box_name)s!" #: plinth/modules/help/templates/help_feedback.html:18 msgid "" @@ -2051,27 +2055,21 @@ msgid "" "\"_blank\"> discussion forum." msgstr "" "Haznos saber acerca de funcionalidades que falten, tus apps favoritas y cómo " -"podemos mejorarlas en nuestro foro de debate." #: plinth/modules/help/templates/help_feedback.html:26 -#, fuzzy -#| msgid "" -#| "If you find any bugs or issues, please use the issue " -#| "tracker to let our developers know. To report, first check if the " -#| "issue is already reported and then use the \"New issue\" button." msgid "" "If you find any bugs or issues, please use the issue " "tracker to let our developers know. To report, first check if the issue " "is already reported and then use the \"New issue\" button." msgstr "" -"Si encuentras defectos o incidencias, por favor usa el gestor de " -"incidencias para informar a nuestros desarrolladores. Comprueba primero " -"que la incidencia no haya sido informada ya y usa el botón \"Nueva incidencia" -"\" (\"New issue\")." +"Si encuentras defectos o incidencias, por favor usa el gestor de incidencias para informar a nuestros desarrolladores. " +"Compruebe primero que la incidencia no haya sido ya informada y use luego el " +"botón \"Nueva incidencia\"." #: plinth/modules/help/templates/help_feedback.html:36 msgid "Thank you!" @@ -2139,7 +2137,7 @@ msgid "" "using %(box_name)s, you can ask for help from our community of users and " "contributors." msgstr "" -"Si no logra hacer algo o tiene problemas usando %(box_name)s puede pedir " +"Si no logra hacer algo o tiene problemas usando %(box_name)s puede pedir " "ayuda de la comunidad de usuarios y contribuyentes." #: plinth/modules/help/templates/help_support.html:20 @@ -2167,22 +2165,17 @@ msgid "Status Log" msgstr "Registro de estado" #: plinth/modules/help/templates/statuslog.html:13 -#, fuzzy, python-format -#| msgid "" -#| "These are the last %(num_lines)s lines of the status log for this web " -#| "interface. If you want to report a bug, please use the bug tracker and " -#| "attach this status log to the bug report." +#, python-format msgid "" "These are the last %(num_lines)s lines of the status log for this web " "interface. If you want to report a bug, please use the bug tracker and " "attach this status log to the bug report." msgstr "" -"Éstas son las últimas %(num_lines)s líneas del registro de estado. Si quiere " -"informar de un defecto, por favor utilice el gestor de defectos y adjunte este " -"registro de estado al informe." +"Éstas son las últimas %(num_lines)s líneas del registro de estado para esta " +"interfaz web. Si quiere informar de un defecto, por favor utilice el gestor de " +"defectos y adjunte este registro de estado al informe." #: plinth/modules/help/templates/statuslog.html:24 msgid "" @@ -2674,7 +2667,7 @@ msgid "" "Matrix user IDs will look like @username:domainname." msgstr "" "Es necesario configurar el servicio Matrix para un dominio, de forma que " -"quien use otro servidor Matrix pueda acceder a quien esté en este servidor " +"quien use otro servidor Matrix pueda acceder a quien esté en este servidor " "mediante su nombre de dominio. El ID de usuaria/o será de la forma " "@username:domainname." @@ -2707,7 +2700,7 @@ msgid "" "look like @username:%(domain_name)s. Changing the domain name after " "the initial setup is currently not supported." msgstr "" -"El dominio de su servidor Matrix es %(domain_name)s. La ID de " +"El dominio de su servidor Matrix es %(domain_name)s. La ID de " "usuaria/o será parecida a @username:%(domain_name)s. Actualmente no " "se puede cambiar el nombre de dominio una vez ha sido configurado." @@ -3075,12 +3068,12 @@ msgid "" msgstr "" "Con Monkeysphere puede crear una clave OpenPGP para cada dominio con acceso " "SSH configurado. Puede subir la clave OpenPGP pública a un servidor de " -"claves OpenPGP, de forma que quien acceda por SSH a su servidor podrá " -"verificar la conexión. Para que que se pueda confiar en la clave, al menos " -"una persona (generalmente el o la propietaria de la máquina) debe firmarla " -"usando el proceso de firmado habitual de OpenPGP. Consulte la Documentación de " -"Monkeysphere SSH para más detalles." +"claves, de forma que quien acceda por SSH a su servidor podrá verificar la " +"conexión. Para que que se pueda confiar en la clave, al menos una persona (" +"generalmente el o la propietaria de la máquina) debe firmarla usando el " +"proceso habitual de OpenPGP. Consulte la Documentación de Monkeysphere SSH para más " +"detalles." #: plinth/modules/monkeysphere/__init__.py:27 msgid "" @@ -3277,7 +3270,7 @@ msgstr "Mumblefly" #: plinth/modules/mumble/manifest.py:60 msgid "Mumla" -msgstr "" +msgstr "Mumla" #: plinth/modules/mumble/views.py:29 msgid "SuperUser password successfully updated." @@ -4676,8 +4669,8 @@ msgstr "" "Puede usar Privoxy indicando como proxy en su navegador el nombre de " "anfitrión de su {box_name} (o la dirección IP) en el puerto 8118. Mientras " "use Privoxy puede acceder a los detalles de su configuración y a la " -"documentación en http://config." -"privoxy.org/ o http://p.p." +"documentación en http://config.privoxy." +"org/ o http://p.p." #: plinth/modules/privoxy/__init__.py:55 msgid "Privoxy" @@ -5507,7 +5500,7 @@ msgstr "Conservar el máximo número de instantáneas por hora." #: plinth/modules/snapshot/forms.py:36 msgid "Daily Snapshots Limit" -msgstr "Límite diario de instantáneas" +msgstr "Límite diario de instantáneas" #: plinth/modules/snapshot/forms.py:37 msgid "Keep a maximum of this many daily snapshots." @@ -5581,11 +5574,7 @@ msgid "Rollback to snapshot #%(number)s" msgstr "Restaurar a instantánea %(number)s" #: plinth/modules/snapshot/templates/snapshot_not_supported.html:11 -#, fuzzy, python-format -#| msgid "" -#| "Your have a filesystem of type %(fs_type)s. Snapshots " -#| "are currently only available on %(types_supported)s " -#| "filesystems." +#, python-format msgid "" "You have a filesystem of type %(fs_type)s. Snapshots are " "currently only available on %(types_supported)s filesystems." @@ -5916,7 +5905,7 @@ msgstr "Partición ampliada con éxito." #: plinth/modules/storage/views.py:90 #, python-brace-format msgid "{drive_vendor} {drive_model} can be safely unplugged." -msgstr "Ya puede desconectar {drive_vendor} {drive_model} con seguridad." +msgstr "Ya puede desconectar {drive_vendor} {drive_model} con seguridad." #: plinth/modules/storage/views.py:94 msgid "Device can be safely unplugged." @@ -6013,8 +6002,8 @@ msgid "" msgstr "" "El dominio del servidor Tahoe-LAFS es %(domain_name)s. Cambiar el " "nombre de dominio de FreedomBox hará necesario reinstalar Tahoe-LAFS lo que " -"implica que PERDERÁ SUS DATOS. Puede acceder a Tahoe-LAFS en https://%(domain_name)s:5678." +"implica que PERDERÁ SUS DATOS. Puede acceder a Tahoe-LAFS en https://%(domain_name)s:5678." #: plinth/modules/tahoe/templates/tahoe-post-setup.html:29 msgid "Local introducer" @@ -6264,7 +6253,7 @@ msgid "" "desktop application as possible." msgstr "" "Tiny Tiny RSS es un lector de noticias (RSS/Atom) y agregador, diseñado para " -"permitir noticias desde cualquier lugar, mientras mantiene un aspecto de " +"publicar desde cualquier lugar, a la vez que mantiene un aspecto de " "aplicación de escritorio en la medida de lo posible." #: plinth/modules/ttrss/__init__.py:33 @@ -7020,32 +7009,21 @@ msgid "Requested page %(request_path)s was not found." msgstr "No se encontró la página %(request_path)s solicitada." #: plinth/templates/404.html:19 -#, fuzzy -#| msgid "" -#| "If you believe this missing page should exist, please file a bug at the " -#| "FreedomBox Service (Plinth) project issue tracker." msgid "" "If you believe this missing page should exist, please file a bug at the " "FreedomBox Service (Plinth) project issue tracker." msgstr "" -"Si cree que esta página debería existir, por favor informe del error en el " -"sistema " -"de seguimiento de incidentes de FredoomBox." +"Si cree que esta página debería existir, por favor informe del error en el <" +"a href=\"https://salsa.debian.org/freedombox-team/freedombox/issues\">" +"sistema de seguimiento de incidentes de FredoomBox." #: plinth/templates/500.html:10 msgid "500" msgstr "500" #: plinth/templates/500.html:14 -#, fuzzy, python-format -#| msgid "" -#| "This is an internal error and not something you caused or can fix. Please " -#| "report the error on the bug tracker so we can fix it. Also, please " -#| "attach the status log to the bug " -#| "report." +#, python-format msgid "" "This is an internal error and not something you caused or can fix. Please " "report the error on the sistema de seguimiento de incidentes " -"para que podamos solucionarlo. Por favor, adjunte al informe de error el resgistro de estado." +"org/freedombox-team/freedombox/issues\">sistema de seguimiento de " +"incidentes para que podamos solucionarlo. Por favor, adjunte al informe " +"de error el resgistro de estado." #: plinth/templates/app-header.html:22 msgid "Installation" From d31ee29d0e25acfff7d75df4be639af038071ad1 Mon Sep 17 00:00:00 2001 From: Artem Date: Sun, 17 May 2020 19:11:32 +0000 Subject: [PATCH 37/40] Translated using Weblate (Russian) Currently translated at 74.8% (946 of 1264 strings) --- plinth/locale/ru/LC_MESSAGES/django.po | 47 +++++++------------------- 1 file changed, 12 insertions(+), 35 deletions(-) diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index 8163e471b..0a81a1ea1 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-04 19:59-0400\n" -"PO-Revision-Date: 2020-04-25 14:11+0000\n" +"PO-Revision-Date: 2020-05-18 22:17+0000\n" "Last-Translator: Artem \n" "Language-Team: Russian \n" @@ -16,9 +16,9 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.0.2-dev\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" +"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -460,25 +460,13 @@ msgid "Are you sure that you want to remove this repository?" msgstr "Вы уверены, что хотите удалить этот репозиторий?" #: plinth/modules/backups/templates/backups_repository_remove.html:19 -#, fuzzy -#| msgid "" -#| "\n" -#| " The remote repository will not be deleted.\n" -#| " This just removes the repository from the listing on the backup " -#| "page, you\n" -#| " can add it again later on.\n" -#| " " msgid "" "The remote repository will not be deleted. This just removes the repository " "from the listing on the backup page, you can add it again later on." msgstr "" -"\n" -" ......Репозиторий, находящийся на удалённой машине, не может быть " -"стёрт.\n" -".....Это только удалит репозиторий из списка на странице резервного " -"сохранения, ......вы сможете позже снова добавить его. \n" -"....\n" -" " +"Репозиторий, находящийся на удалённой машине, не может быть стёрт. Это " +"только удалит репозиторий из списка на странице резервного сохранения, вы " +"сможете позже снова добавить его." #: plinth/modules/backups/templates/backups_repository_remove.html:31 #, fuzzy @@ -2835,27 +2823,16 @@ msgid "" msgstr "" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:30 -#, fuzzy, python-format -#| msgid "" -#| "\n" -#| " The configured domain name is using a self-signed certificate.\n" -#| " Federation with other Matrix Synapse instances requires a valid " -#| "TLS\n" -#| " certificate. Please go to Let's\n" -#| " Encrypt to obtain one.\n" -#| " " +#, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " "with other Matrix Synapse instances requires a valid TLS certificate. Please " "go to Let's Encrypt to obtain one." msgstr "" -"\n" -" Выбранное доменное имя использует самоподписанный сертификат.\n" -" Федерация с другими инстанциями Matrix Synapse требует действующего " -"TLS сертификата.\n" -" Пожалуйста, посетите Let's\n" -" Encrypt, чтобы получить его.\n" -" " +"Выбранное доменное имя использует самоподписанный сертификат. Федерация с " +"другими инстанциями Matrix Synapse требует действующего TLS сертификата. " +"Пожалуйста, посетите Let's Encrypt, " +"чтобы получить его." #: plinth/modules/matrixsynapse/views.py:86 msgid "Public registration enabled" From 3da46d40b9323b81c0574c0e88fb653d1fb9932b Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 18 May 2020 18:39:09 -0400 Subject: [PATCH 38/40] locale: Update translation strings Signed-off-by: James Valleroy --- plinth/locale/bg/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/bn/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/cs/LC_MESSAGES/django.po | 174 ++++++++++------- plinth/locale/da/LC_MESSAGES/django.po | 185 +++++++++++------- plinth/locale/de/LC_MESSAGES/django.po | 196 +++++++++++-------- plinth/locale/django.pot | 159 +++++++++------ plinth/locale/el/LC_MESSAGES/django.po | 169 ++++++++++------ plinth/locale/es/LC_MESSAGES/django.po | 203 ++++++++++++-------- plinth/locale/fa/LC_MESSAGES/django.po | 168 +++++++++------- plinth/locale/fake/LC_MESSAGES/django.po | 185 +++++++++++------- plinth/locale/fr/LC_MESSAGES/django.po | 177 ++++++++++------- plinth/locale/gl/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/gu/LC_MESSAGES/django.po | 164 +++++++++------- plinth/locale/hi/LC_MESSAGES/django.po | 173 ++++++++++------- plinth/locale/hu/LC_MESSAGES/django.po | 174 ++++++++++------- plinth/locale/id/LC_MESSAGES/django.po | 172 ++++++++++------- plinth/locale/it/LC_MESSAGES/django.po | 166 +++++++++------- plinth/locale/ja/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/kn/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/lt/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/nb/LC_MESSAGES/django.po | 174 ++++++++++------- plinth/locale/nl/LC_MESSAGES/django.po | 177 ++++++++++------- plinth/locale/pl/LC_MESSAGES/django.po | 166 +++++++++------- plinth/locale/pt/LC_MESSAGES/django.po | 161 ++++++++++------ plinth/locale/ru/LC_MESSAGES/django.po | 181 ++++++++++------- plinth/locale/sl/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/sr/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/sv/LC_MESSAGES/django.po | 182 +++++++++++------- plinth/locale/ta/LC_MESSAGES/django.po | 159 +++++++++------ plinth/locale/te/LC_MESSAGES/django.po | 185 +++++++++++------- plinth/locale/tr/LC_MESSAGES/django.po | 181 ++++++++++------- plinth/locale/uk/LC_MESSAGES/django.po | 164 +++++++++------- plinth/locale/zh_Hans/LC_MESSAGES/django.po | 181 ++++++++++------- 33 files changed, 3416 insertions(+), 2232 deletions(-) diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po index 5db0784f8..751392cf1 100644 --- a/plinth/locale/bg/LC_MESSAGES/django.po +++ b/plinth/locale/bg/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2019-10-12 14:52+0000\n" "Last-Translator: Nevena Mircheva \n" "Language-Team: Bulgarian instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4252,6 +4262,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4680,14 +4694,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4695,14 +4709,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4781,20 +4795,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4802,15 +4816,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4838,45 +4856,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4937,7 +4951,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4945,96 +4959,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5444,11 +5469,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5500,7 +5533,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5517,11 +5550,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index 6d07c4834..f0527da62 100644 --- a/plinth/locale/bn/LC_MESSAGES/django.po +++ b/plinth/locale/bn/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,27 +26,27 @@ msgstr "" msgid "FreedomBox" msgstr "" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, python-brace-format msgid "Service {service_name} is running" msgstr "" -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "" @@ -667,6 +667,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "" @@ -695,7 +696,7 @@ msgstr "" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "" @@ -827,7 +828,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "" @@ -1405,17 +1406,17 @@ msgstr "" msgid "Firewall" msgstr "" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3276,7 +3277,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -3968,6 +3969,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4245,6 +4255,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4671,14 +4685,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4686,14 +4700,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4772,20 +4786,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4793,15 +4807,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4829,45 +4847,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4928,7 +4942,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4936,96 +4950,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5435,11 +5460,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5489,7 +5522,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5506,11 +5539,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index 2edce3b3b..a3139c281 100644 --- a/plinth/locale/cs/LC_MESSAGES/django.po +++ b/plinth/locale/cs/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-04-01 00:36+0000\n" "Last-Translator: Pavel Borecki \n" "Language-Team: Czech %(service_name)s is available only on internal networks." msgid "Port {name} ({details}) available for internal networks" msgstr "" "Služba %(service_name)s je k dispozici pouze na vnitřních sítích." -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, fuzzy, python-brace-format #| msgid "%(service_name)s is available only on internal networks." msgid "Port {name} ({details}) available for external networks" msgstr "" "Služba %(service_name)s je k dispozici pouze na vnitřních sítích." -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3791,7 +3792,7 @@ msgstr "Rozhraní" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "Popis" @@ -4566,6 +4567,17 @@ msgstr "" "Viz instrukce pro nastavení SSH klienta" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Nastavení systému" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Restartovat nebo vypnout systém." @@ -4916,6 +4928,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Distributed File Storage" +msgid "Network File Storage" +msgstr "Distribuované souborové úložiště" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5420,7 +5438,7 @@ msgstr "Upravit sdílení" msgid "Share deleted." msgstr "Sdílení smazáno." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5430,7 +5448,7 @@ msgstr "" "souborového systému btrfs. Ty je možné použít pro vrácení systému do " "dřívějšího funkčního stavu v případě nechtěných změn." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5441,7 +5459,7 @@ msgstr "" "osy) a také před a po instalaci software. Nejstarší zachycené stavy budou " "automaticky mazány podle níže uvedených nastavení." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups, protože mohou být ukládány pouze na stejném oddílu, " "jako živá data. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Zachycené stavy datového úložiště" @@ -5540,20 +5558,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Nevratně smazat tyto zachycené stavy?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Počet" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Datum" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Smazat zachycené stavy" @@ -5561,15 +5579,19 @@ msgstr "Smazat zachycené stavy" msgid "Create Snapshot" msgstr "Pořídit zachycený stav" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Obnovit ze zálohy" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "aktivní" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Vrátit k zachycenému stavu č. %(number)s" @@ -5606,45 +5628,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Vrátit k zachycenému stavu č. %(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Spravovat zachycené stavy" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Zachycený stav pořízen." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Nastavení zachycování stavů úložiště aktualizováno" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Chyba akce: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Všechny zachycené stavy smazány" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Označené zachycené stavy smazány" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "Zachycený stav je používán. Zkuste to později." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Vráceno zpět do podoby zachyceného stavu č. {number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "Pro dokončení obnovy ze zálohy je třeba systém restartovat." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Vrátit do podoby zachyceného stavu" @@ -5713,7 +5731,7 @@ msgstr "Sdružené přihlášení (SSO)" msgid "Login" msgstr "Přihlášení" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5724,88 +5742,88 @@ msgstr "" "{box_name}. Lze zobrazit úložná zařízení, která jsou využívána, připojovat a " "odpojovat ta vyjímatelná." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Úložiště" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} bajtů" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Operace se nezdařila." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Operace byla zrušena." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Toto zařízení už je odpojováno (umount)." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "Operace není podporována z důvodu chybějící podpory ovladače/nástroje." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Časový limit aplikace překročen." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "Operace by probudila disk který je v režimu hlubokého spánku." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Pokus o odpojení zařízení které je zaneprázdněno." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Operace už byla zrušena." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Chybí oprávnění pro provedení požadované operace." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Toto zařízení je už připojeno (mount)." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Zařízení není připojeno." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Není umožněno použít požadovanou volbu." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Zařízení je připojeno jiným uživatelem." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5815,10 +5833,21 @@ msgstr "" "Varování: Dochází volné místo na systémovém oddílu ({percent_used}% využito, " "{free_space} volné)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid repository name." @@ -6326,11 +6355,19 @@ msgid "Check for and apply the latest software and security updates." msgstr "" "Zjistit dostupnost a uplatnit nejnovější aktualizace a opravy zabezpečení." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Aktualizovat" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6391,7 +6428,7 @@ msgstr "Vyp/zap. záznamy událostí při nedávných aktualizacích" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Ruční aktualizace" @@ -6408,11 +6445,11 @@ msgstr "Automatické aktualizace zapnuty" msgid "Automatic upgrades disabled" msgstr "Automatické aktualizace vypnuty" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Proces přechodu na novější verze zahájen." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Spouštění přechodu na novější verzi se nezdařilo." @@ -7394,6 +7431,12 @@ msgstr "%(percentage)s%% dokončeno" msgid "Gujarati" msgstr "gudžarátština" +#~ msgid "active" +#~ msgstr "aktivní" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Všechny zachycené stavy smazány" + #~ msgid "Enable application" #~ msgstr "Zapnout aplikaci" @@ -8173,9 +8216,6 @@ msgstr "gudžarátština" #~ "Může být jako jeden z nich. Mnohé ze služeb které používáte na webu mohou " #~ "brzy být u vás doma a pod vaší kontrolou!" -#~ msgid "System Configuration" -#~ msgstr "Nastavení systému" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "Zde je možné spravovat systém, pohánějící váš %(box_name)s." diff --git a/plinth/locale/da/LC_MESSAGES/django.po b/plinth/locale/da/LC_MESSAGES/django.po index 7da85534c..22d8c707b 100644 --- a/plinth/locale/da/LC_MESSAGES/django.po +++ b/plinth/locale/da/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2016-07-03 21:44+0000\n" "Last-Translator: Mikkel Kirkgaard Nielsen \n" "Language-Team: Danish instruktioner for opsætning af SSH-klient" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Systemkonfiguration" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Genstart eller luk systemet." @@ -4969,6 +4981,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Netværkstidsserver" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5470,14 +5488,14 @@ msgstr "Rediger Bruger" msgid "Share deleted." msgstr "{name} slettet." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5485,14 +5503,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 #, fuzzy #| msgid "Create User" msgid "Storage Snapshots" @@ -5585,20 +5603,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Slet bruger permanent?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" @@ -5610,17 +5628,19 @@ msgstr "Slet %(name)s" msgid "Create Snapshot" msgstr "Opret Bruger" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -#, fuzzy -#| msgid "Inactive" -msgid "active" -msgstr "Inaktiv" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5648,53 +5668,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Create User" msgid "Manage Snapshots" msgstr "Opret Bruger" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Configuration updated" msgid "Storage snapshots configuration updated" msgstr "Konfiguration opdateret" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Fejl under handling: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Delete %(name)s" -msgid "Deleted all snapshots" -msgstr "Slet %(name)s" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete %(name)s" msgid "Deleted selected snapshots" msgstr "Slet %(name)s" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5761,7 +5775,7 @@ msgstr "" msgid "Login" msgstr "Log ind" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5769,109 +5783,120 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 #, fuzzy #| msgid "reStore" msgid "Storage" msgstr "reStore" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, fuzzy, python-brace-format #| msgid "{disk_size} bytes" msgid "{disk_size:.1f} bytes" msgstr "{disk_size} bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, fuzzy, python-brace-format #| msgid "{disk_size} KiB" msgid "{disk_size:.1f} KiB" msgstr "{disk_size} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, fuzzy, python-brace-format #| msgid "{disk_size} MiB" msgid "{disk_size:.1f} MiB" msgstr "{disk_size} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, fuzzy, python-brace-format #| msgid "{disk_size} GiB" msgid "{disk_size:.1f} GiB" msgstr "{disk_size} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, fuzzy, python-brace-format #| msgid "{disk_size} TiB" msgid "{disk_size:.1f} TiB" msgstr "{disk_size} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy #| msgid "repro service is running" msgid "The device is already unmounting." msgstr "repro-tjenesten er aktiv" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy #| msgid "This service already exists" msgid "The device is already mounted." msgstr "Denne tjeneste eksisterer allerede" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 #, fuzzy #| msgid "repro service is not running" msgid "The device is not mounted." msgstr "repro-tjenesten er ikke aktiv" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6350,11 +6375,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Opdater" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Manual" msgid "FreedomBox Updated" @@ -6422,7 +6455,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6442,11 +6475,11 @@ msgstr "Automatisk opdatering aktiveret" msgid "Automatic upgrades disabled" msgstr "Automatisk opdatering deaktiveret" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Opdateringsprocessen er startet." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Kunne ikke starte opdatering." @@ -7415,6 +7448,16 @@ msgstr "%(percentage)s%% færdig" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Inactive" +#~ msgid "active" +#~ msgstr "Inaktiv" + +#, fuzzy +#~| msgid "Delete %(name)s" +#~ msgid "Deleted all snapshots" +#~ msgstr "Slet %(name)s" + #~ msgid "Enable application" #~ msgstr "Aktiver applikation" @@ -7956,9 +7999,6 @@ msgstr "" #~ "portaler? Sådan en kan den også være. Mange af de tjenester du bruger på " #~ "webbet kan snart være tilgængelig her og under din kontrol!" -#~ msgid "System Configuration" -#~ msgstr "Systemkonfiguration" - #, fuzzy #~| msgid "Here you can administrate the underlying system of your {box_name}." #~ msgid "" @@ -8249,9 +8289,6 @@ msgstr "" #~ msgid "Enable service discovery" #~ msgstr "Aktiver tjenestesøgning" -#~ msgid "Network Time Server" -#~ msgstr "Netværkstidsserver" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index 43462e349..760826730 100644 --- a/plinth/locale/de/LC_MESSAGES/django.po +++ b/plinth/locale/de/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-05-11 10:41+0000\n" "Last-Translator: Michael Breidenbach \n" "Language-Team: German to let our developers know. To report, first check if the issue " "is already reported and then use the \"New issue\" button." msgstr "" -"Wenn Sie Fehler oder Probleme finden, verwenden Sie bitte den issue tracker, um unsere Entwickler darüber zu informieren. Um " -"einen Bericht zu erstellen, überprüfen Sie zunächst, ob das Problem bereits " -"gemeldet wurde und klicken Sie dann auf die Schaltfläche \"New issue\"." +"Wenn Sie Fehler oder Probleme finden, verwenden Sie bitte den issue tracker, um unsere Entwickler darüber zu informieren. " +"Um einen Bericht zu erstellen, überprüfen Sie zunächst, ob das Problem " +"bereits gemeldet wurde und klicken Sie dann auf die Schaltfläche \"New issue" +"\"." #: plinth/modules/help/templates/help_feedback.html:36 msgid "Thank you!" @@ -3850,7 +3852,7 @@ msgstr "Schnittstelle" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "Beschreibung" @@ -4647,6 +4649,17 @@ msgstr "" "Siehe SSH-Client Konfigurationsanweisungen" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "System-Konfiguration" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Neu starten oder das System herunterfahren." @@ -5007,6 +5020,12 @@ msgstr "Zugriff auf die privaten Freigaben" msgid "Samba" msgstr "Samba" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Netzwerk Zeit-Server" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -5490,7 +5509,7 @@ msgstr "Freigabe bearbeiten" msgid "Share deleted." msgstr "Freigabe gelöscht." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5501,7 +5520,7 @@ msgstr "" "unerwünschte Änderungen in einen vorherigen bekannten guten Zustand zurück " "zu versetzen." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5513,7 +5532,7 @@ msgstr "" "Software. Ältere Schnappschüsse werden gemäß den Einstellungen unten " "automatisch bereinigt." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for Datensicherungen, da sie nur auf derselben " "Partition gespeichert werden können. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Speicherauszüge" @@ -5612,20 +5631,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Folgenden Speicherauszug dauerhaft löschen?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Nummer" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Datum" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Speicherauszüge löschen" @@ -5633,15 +5652,19 @@ msgstr "Speicherauszüge löschen" msgid "Create Snapshot" msgstr "Speicherauszug anlegen" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Zurücksetzen" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "aktiv" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Zurücksetzen auf Speicherauszug #%(number)s" @@ -5675,48 +5698,44 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Zurücksetzen auf Speicherauszug #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Verwalten der Speicherauszüge" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Speicherauszug erstellt." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Konfiguration der Speicherauszüge aktualisiert" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Aktionsfehler: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Alle Schnappschüsse wurden gelöscht" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Ausgewählte Schnappschüsse gelöscht" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" "Schnappschüsse ist derzeit im Gebrauch. Bitte versuchen Sie es später noch " "einmal." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Zurückgesetzt auf Speicherauszug #{number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" "Das System muss neu gestartet werden, um das Zurücksetzen abzuschließen." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Zurücksetzen auf Speicherauszug" @@ -5787,7 +5806,7 @@ msgstr "Einmal-Anmeldung" msgid "Login" msgstr "Anmelden" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5799,101 +5818,112 @@ msgstr "" "Speichermedien einsehen, Wechselmedien einbinden und aushängen, die Root-" "Partition erweitern usw." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Speicher" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} Bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Der Vorgang schlug fehl." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Der Vorgang wurde abgebrochen." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Das Gerät wird bereits ausgehängt." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" "Der Vorgang ist wegen fehlender Treiber-/Werkzeugunterstützung nicht möglich." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Der Vorgang beendet wegen Zeitüberschreitung." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" "Dieser Vorgang würde ein Gerät aufwecken, dass sich in einem Tiefschlaf-" "Zustand befindet." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Es wird versucht, ein Gerät auszuhängen, das beschäftigt ist." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Dieser Vorgang wurde bereits abgebrochen." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Nicht autorisiert, um den gewünschten Vorgang auszuführen." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Dieses Gerät ist bereits eingebunden." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Das Gerät ist nicht eingebunden." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Die gewünschte Option ist nicht gestattet." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Das Gerät ist von einem anderen Benutzer eingebunden." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" "Geringer Speicherplatz auf der Systempartition: {percent_used}% belegt, " "{free_space} verfügbar." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "Wenig Plattenspeicherplatz" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "Ungültiger Verzeichnisname." @@ -6380,11 +6410,19 @@ msgstr "" "Prüfen Sie die neuesten Software- und Sicherheitsupdates und installieren " "Sie diese." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Aktualisieren" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "FreedomBox aktualisiert" @@ -6441,7 +6479,7 @@ msgstr "Umschalten der letzten Update-Protokolle" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Manuelles Update" @@ -6458,11 +6496,11 @@ msgstr "Automatische Systemaktualisierung aktivieren" msgid "Automatic upgrades disabled" msgstr "Automatische Aktualisierungen ausgeschaltet" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Aktualisierung gestartet." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Starten der Aktualisierung fehlgeschlagen." @@ -7129,10 +7167,10 @@ msgid "" "the status log to the bug report." msgstr "" "Dies ist ein interner Fehler und nicht etwas, das Sie verursacht haben oder " -"beheben können. Bitte melden Sie den Fehler im online " -"Fehlermelder, so dass wir ihn beheben können. Fügen Sie auch das Statusprotokoll dem Fehlerbericht bei." +"beheben können. Bitte melden Sie den Fehler im online Fehlermelder, so " +"dass wir ihn beheben können. Fügen Sie auch das Statusprotokoll dem Fehlerbericht bei." #: plinth/templates/app-header.html:22 msgid "Installation" @@ -7404,6 +7442,12 @@ msgstr "%(percentage)s %% abgeschlossen" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "aktiv" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Alle Schnappschüsse wurden gelöscht" + #~ msgid "Enable application" #~ msgstr "Anwendung aktivieren" @@ -8187,9 +8231,6 @@ msgstr "Gujarati" #~ "möglich Dienste selbst zu betreiben und damit wieder Kontrolle über die " #~ "eigenen Daten zu erlangen!" -#~ msgid "System Configuration" -#~ msgstr "System-Konfiguration" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "Hier können Sie das Basissystem Ihrer %(box_name)s verwalten." @@ -8527,9 +8568,6 @@ msgstr "Gujarati" #~ msgid "Enable service discovery" #~ msgstr "Dienste-Erkennung einschalten" -#~ msgid "Network Time Server" -#~ msgstr "Netzwerk Zeit-Server" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot index ee36e3b3d..9f02dec18 100644 --- a/plinth/locale/django.pot +++ b/plinth/locale/django.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,27 +25,27 @@ msgstr "" msgid "FreedomBox" msgstr "" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, python-brace-format msgid "Service {service_name} is running" msgstr "" -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "" @@ -666,6 +666,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "" @@ -694,7 +695,7 @@ msgstr "" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "" @@ -826,7 +827,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "" @@ -1404,17 +1405,17 @@ msgstr "" msgid "Firewall" msgstr "" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3275,7 +3276,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -3967,6 +3968,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4244,6 +4254,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4670,14 +4684,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4685,14 +4699,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4771,20 +4785,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4792,15 +4806,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4828,45 +4846,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4927,7 +4941,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4935,96 +4949,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5434,11 +5459,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5488,7 +5521,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5505,11 +5538,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index 8b3e378b7..bac1b6ab8 100644 --- a/plinth/locale/el/LC_MESSAGES/django.po +++ b/plinth/locale/el/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-01-25 17:21+0000\n" "Last-Translator: Nektarios Katakis \n" "Language-Team: Greek Οδηγίες" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Επανεκκίνηση ή κλείσιμο του συστήματος." @@ -5026,6 +5036,12 @@ msgstr "Πρόσβαση στα ιδιωτικά μερίσματα" msgid "Samba" msgstr "Samba" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Distributed File Storage" +msgid "Network File Storage" +msgstr "Διανεμημένος χώρος αποθήκευσης αρχείων" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -5530,7 +5546,7 @@ msgstr "Επεξεργασία μερίσματος" msgid "Share deleted." msgstr "Το μέρισμα διαγράφηκε." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5541,7 +5557,7 @@ msgstr "" "σε μια προηγουμένως γνωστή καλή κατάσταση σε περίπτωση ανεπιθύμητων αλλαγών " "στο σύστημα." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5552,7 +5568,7 @@ msgstr "" "και επίσης πριν και μετά από μια εγκατάσταση λογισμικού. Τα παλαιότερα " "στιγμιότυπα θα καθαρίζονται αυτόματα σύμφωνα με τις παρακάτω ρυθμίσεις." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for αντίγραφα ασφαλείας επειδή " "μπορούν να αποθηκευτούν μόνο στο ίδιο διαμέρισμα του δίσκου. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Στιγμιότυπα συστήματος αρχείων" @@ -5651,20 +5667,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Να διαγραφούν οριστικά τα παρακάτω στιγμιότυπα;" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Αριθμός" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Ημερομηνία" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Διαγραφή στιγμιότυπων" @@ -5672,15 +5688,19 @@ msgstr "Διαγραφή στιγμιότυπων" msgid "Create Snapshot" msgstr "Δημιουργία στιγμιότυπου" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Επαναφορά" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "Ενεργό" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Επαναφορά στο στιγμιότυπο #%(number)s" @@ -5718,48 +5738,44 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Επαναφορά στο στιγμιότυπο #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Διαχείριση στιγμιότυπων" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Το στιγμιότυπο δημιουργήθηκε." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Η ρύθμιση παραμέτρων των στιγμιότυπων αποθήκευσης Ενημερώθηκε" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Σφάλμα ενέργειας: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Διαγραφή όλων των στιγμιότυπων" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Διαγράφηκαν επιλεγμένα στιγμιότυπα" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" "Το στιγμιότυπο χρησιμοποιείται αυτήν τη στιγμή. Παρακαλώ προσπαθήστε ξανά " "αργότερα." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Πραγματοποιήθηκε επαναφορά στο στιγμιότυπο #{number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" "Πρέπει να γίνει επανεκκίνηση του συστήματος για να ολοκληρωθεί η επαναφορά." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Επαναφορά σε στιγμιότυπο" @@ -5831,7 +5847,7 @@ msgstr "Single Sign On" msgid "Login" msgstr "Είσοδος" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5843,89 +5859,89 @@ msgstr "" "χρησιμοποιούνται προς το παρόν, να προσθέσετε και να αφαιρέσετε αφαιρούμενα " "μέσα, επεκτείνετε το root διαμέρισμα κλπ." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Χώρος Αποθήκευσης" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Η ενέργεια απέτυχε." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Η ενέργεια ακυρώθηκε." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Η συσκευή είναι ήδη προς αφαίρεση." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "Η ενέργεια δεν υποστηρίζεται λόγω μη υποστήριξης προγραμματος οδηγού." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Η ενέργεια απέτυχε επειδή διήρκησε πολύ χρόνο." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" "Η ενέργεια θα ξυπνήσει ένα δίσκο που είναι σε μια βαθιά κατάσταση ύπνου." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Γίνεται προσπάθεια αφαίρεσης μιας συσκευής που είναι απασχολημένη." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Η ενέργια έχει ήδη ακυρωθεί." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Δεν έχετε εξουσιοδότηση για την εκτέλεση της συγκεκριμένης ενέργειας." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Η συσκευή έχει ήδη προστεθεί." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Η συσκευή δεν είναι τοποθετημένη." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Δεν έχετε εξουσιοδότηση για την εκτέλεση της συγκεκριμένης ενέργειας." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Η συσκευή έχει ήδη προστεθεί από άλλο χρήστη." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5935,10 +5951,21 @@ msgstr "" "Προειδοποίηση: χαμηλός χώρος στο διαμέρισμα του συστήματος ({percent_used}% " "χρησιμοποιείται, {free_space} είναι ελεύθερος)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "Το όνομα καταλόγου δεν είναι έγκυρο." @@ -6431,11 +6458,19 @@ msgid "Check for and apply the latest software and security updates." msgstr "" "Ελέγξτε και εφαρμόστε τις πιο πρόσφατες ενημερώσεις λογισμικού και ασφαλείας." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Ενημερωμένη έκδοση" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6495,7 +6530,7 @@ msgstr "Ενεργοποίηση αρχείων καταγραφής πρόσφ #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Μη αυτόματη ενημέρωση" @@ -6512,11 +6547,11 @@ msgstr "Oι αυτόματες ενημερώσεις ενεργοποιήθηκ msgid "Automatic upgrades disabled" msgstr "Oι αυτόματες ενημερώσεις απενεργοποιήθηκαν" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Ξεκίνησε η διαδικασία αναβάθμισης." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Η εκκίνηση της αναβάθμισης απέτυχε." @@ -7509,6 +7544,12 @@ msgstr "ολοκληρώθηκε το %(percentage)s%%" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "Ενεργό" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Διαγραφή όλων των στιγμιότυπων" + #~ msgid "Enable application" #~ msgstr "Ενεργοποίηση εφαρμογής" diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index 66f1ad1f0..0330c17fa 100644 --- a/plinth/locale/es/LC_MESSAGES/django.po +++ b/plinth/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-05-18 22:17+0000\n" "Last-Translator: Luis A. Arizmendi \n" "Language-Team: Spanish user with a {box_name} login." msgstr "" "Para comunicarse puede usar el cliente web o " -"cualquier otro " -"cliente XMPP. Cuando se activa, ejabberd está disponible para cualquier <" -"a href=\"{users_url}\">usuario con acceso a {box_name}." +"cualquier otro cliente XMPP. Cuando se activa, ejabberd está disponible " +"para cualquier usuario con acceso a {box_name}." #: plinth/modules/ejabberd/__init__.py:69 msgid "ejabberd" @@ -1592,17 +1593,17 @@ msgstr "" msgid "Firewall" msgstr "Cortafuegos" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "Puerto {name}{details} disponible para redes internas" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "Puerto {name}{details} disponible para redes externas" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "Puerto {name}{details} no disponible para redes externas" @@ -2065,9 +2066,9 @@ msgid "" "tracker to let our developers know. To report, first check if the issue " "is already reported and then use the \"New issue\" button." msgstr "" -"Si encuentras defectos o incidencias, por favor usa el gestor de incidencias para informar a nuestros desarrolladores. " +"Si encuentras defectos o incidencias, por favor usa el gestor de incidencias para informar a nuestros desarrolladores. " "Compruebe primero que la incidencia no haya sido ya informada y use luego el " "botón \"Nueva incidencia\"." @@ -3069,8 +3070,8 @@ msgstr "" "Con Monkeysphere puede crear una clave OpenPGP para cada dominio con acceso " "SSH configurado. Puede subir la clave OpenPGP pública a un servidor de " "claves, de forma que quien acceda por SSH a su servidor podrá verificar la " -"conexión. Para que que se pueda confiar en la clave, al menos una persona (" -"generalmente el o la propietaria de la máquina) debe firmarla usando el " +"conexión. Para que que se pueda confiar en la clave, al menos una persona " +"(generalmente el o la propietaria de la máquina) debe firmarla usando el " "proceso habitual de OpenPGP. Consulte la Documentación de Monkeysphere SSH para más " "detalles." @@ -3798,7 +3799,7 @@ msgstr "Interfaz" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "Descripción" @@ -4580,6 +4581,17 @@ msgstr "" "Vea las instrucciones para la configuración del cliente SSH" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Configuración del sistema" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Reiniciar o apagar el sistema." @@ -4934,6 +4946,12 @@ msgstr "Acceso a los elementos compartidos privados" msgid "Samba" msgstr "Samba" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Servidor NTP" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -5417,7 +5435,7 @@ msgstr "Editar compartición" msgid "Share deleted." msgstr "Compartición eliminada." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5427,7 +5445,7 @@ msgstr "" "btrfs. Éstas pueden emplearse para recuperar el sistema a un estado anterior " "correcto en caso de cambios no deseados." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5439,7 +5457,7 @@ msgstr "" "instantáneas más antiguas se eliminarán automáticamente según la siguiente " "configuración." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for las copias de seguridad ya que se almacenan en la " "misma partición. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Almacén de instantáneas" @@ -5539,20 +5557,20 @@ msgid "Delete the following snapshots permanently?" msgstr "¿Eliminar las siguientes instantáneas definitivamente?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Número" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Fecha" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Eliminar instantáneas" @@ -5560,15 +5578,19 @@ msgstr "Eliminar instantáneas" msgid "Create Snapshot" msgstr "Crear instantánea" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Restaurar" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "Activa" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Restaurar a instantánea %(number)s" @@ -5601,46 +5623,42 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Restaurar a instantánea %(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Gestionar instantáneas" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Instantánea creada." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Configuración de almacenamiento de instantáneas actualizada" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Acción de error: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Eliminar todas las instantáneas" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Las instantáneas seleccionadas fueron eliminadas" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" "La instantánea se está usando actualmente. Inténtelo de nuevo más tarde." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Sistema restaurado a la instantánea {number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "Debe reiniciar el sistema para completar la restauración." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Restaurar a instantánea" @@ -5710,7 +5728,7 @@ msgstr "Inicio de sesión único" msgid "Login" msgstr "Inicio de sesión" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5721,98 +5739,109 @@ msgstr "" "{box_name}. Puede ver el medio de almacenamiento que está usando, montar y " "desmontar medios extraíbles, ampliar la partición raíz, etc." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Almacén" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Falló la operación." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Se ha cancelado la operación." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "El dispositivo ya se está desmontando." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "No se soporta esta operación por falta de un driver o herramienta." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "La operación agotó el tiempo." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "La operación podría activar un disco que está en estado de reposo." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Tratando de desmontar un dispositivo ocupado." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Ya se ha cancelado la operación." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "No tiene autorización para la operación solicitada." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "El dispositivo ya está montado." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "El dispositivo no está montado." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "La operación solicitada no está permitida." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "El dispositivo está ya montado por otro usuario." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" "Poco espacio en la partición del sistema: {percent_used}% usado, " "{free_space} libre." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "Poco espacio en disco" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "Nombre de carpeta no válido." @@ -6002,8 +6031,8 @@ msgid "" msgstr "" "El dominio del servidor Tahoe-LAFS es %(domain_name)s. Cambiar el " "nombre de dominio de FreedomBox hará necesario reinstalar Tahoe-LAFS lo que " -"implica que PERDERÁ SUS DATOS. Puede acceder a Tahoe-LAFS en https://%(domain_name)s:5678." +"implica que PERDERÁ SUS DATOS. Puede acceder a Tahoe-LAFS en https://%(domain_name)s:5678." #: plinth/modules/tahoe/templates/tahoe-post-setup.html:29 msgid "Local introducer" @@ -6296,11 +6325,19 @@ msgid "Check for and apply the latest software and security updates." msgstr "" "Buscar y aplicar las últimas actualizaciones del software y de seguridad." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Actualización" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "FreedomBox actualizado" @@ -6357,7 +6394,7 @@ msgstr "Alternar los registros de las actualizaciones recientes" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Actualización manual" @@ -6374,11 +6411,11 @@ msgstr "Actualizaciones automáticas activadas" msgid "Automatic upgrades disabled" msgstr "Actualizaciones automáticas desactivadas" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Proceso de actualización iniciado." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "No se ha podido iniciar la actualización." @@ -7014,9 +7051,9 @@ msgid "" "FreedomBox Service (Plinth) project issue tracker." msgstr "" -"Si cree que esta página debería existir, por favor informe del error en el <" -"a href=\"https://salsa.debian.org/freedombox-team/freedombox/issues\">" -"sistema de seguimiento de incidentes de FredoomBox." +"Si cree que esta página debería existir, por favor informe del error en el " +"sistema de seguimiento de incidentes de FredoomBox." #: plinth/templates/500.html:10 msgid "500" @@ -7303,6 +7340,12 @@ msgstr "%(percentage)s%% completado" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "Activa" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Eliminar todas las instantáneas" + #~ msgid "Enable application" #~ msgstr "Activar aplicación" @@ -8087,9 +8130,6 @@ msgstr "Gujarati" #~ "de los servicios que hoy usa en Internet puede tenerlos ¡en su propio " #~ "dispositivo y bajo su control!" -#~ msgid "System Configuration" -#~ msgstr "Configuración del sistema" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "Aquí puede administrar el sistema básico de su %(box_name)s." @@ -8399,9 +8439,6 @@ msgstr "Gujarati" #~ msgid "Enable service discovery" #~ msgstr "Activar detección de servicios" -#~ msgid "Network Time Server" -#~ msgstr "Servidor NTP" - #, fuzzy #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po index df9e4267a..7f71bb83f 100644 --- a/plinth/locale/fa/LC_MESSAGES/django.po +++ b/plinth/locale/fa/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2016-08-12 15:51+0000\n" "Last-Translator: Masoud Abkenar \n" "Language-Team: Persian instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4696,6 +4706,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Interface" +msgid "Network File Storage" +msgstr "واسط" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5180,14 +5196,14 @@ msgstr "مشترک" msgid "Share deleted." msgstr "{name} پاک شد." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5195,14 +5211,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 #, fuzzy #| msgid "Delete %(name)s" msgid "Storage Snapshots" @@ -5293,20 +5309,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" @@ -5316,15 +5332,19 @@ msgstr "پاک‌کردن %(name)s" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5352,53 +5372,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Snapshots" msgstr "پاک‌کردن %(name)s" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Configuration updated" msgid "Storage snapshots configuration updated" msgstr "پیکربندی به‌روز شد" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Delete %(name)s" -msgid "Deleted all snapshots" -msgstr "پاک‌کردن %(name)s" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete %(name)s" msgid "Deleted selected snapshots" msgstr "پاک‌کردن %(name)s" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5465,7 +5479,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5473,102 +5487,113 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, fuzzy, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size} بایت" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, fuzzy, python-brace-format #| msgid "{disk_size} KiB" msgid "{disk_size:.1f} KiB" msgstr "{disk_size} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, fuzzy, python-brace-format #| msgid "{disk_size} MiB" msgid "{disk_size:.1f} MiB" msgstr "{disk_size} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, fuzzy, python-brace-format #| msgid "{disk_size} GiB" msgid "{disk_size:.1f} GiB" msgstr "{disk_size} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, fuzzy, python-brace-format #| msgid "{disk_size} TiB" msgid "{disk_size:.1f} TiB" msgstr "{disk_size} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy #| msgid "The requested domain is already registered." msgid "The device is already mounted." msgstr "دامنهٔ درخواستی از قبل ثبت شده است." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -5996,11 +6021,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy msgid "FreedomBox Updated" msgstr "FreedomBox" @@ -6055,7 +6088,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6074,11 +6107,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" @@ -6985,6 +7018,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Delete %(name)s" +#~ msgid "Deleted all snapshots" +#~ msgstr "پاک‌کردن %(name)s" + #, fuzzy #~ msgid "Enable application" #~ msgstr "فعال‌سازی برنامه" diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po index 02f0782fb..1d499dbe1 100644 --- a/plinth/locale/fake/LC_MESSAGES/django.po +++ b/plinth/locale/fake/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Plinth Developers INSTRUCTIONS" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "SYSTEM CONFIGURATION" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "RESTART OR SHUT DOWN THE SYSTEM." @@ -5062,6 +5074,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "NETWORK TIME SERVER" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5563,14 +5581,14 @@ msgstr "EDIT USER" msgid "Share deleted." msgstr "{name} DELETED." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5578,14 +5596,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 #, fuzzy #| msgid "Create User" msgid "Storage Snapshots" @@ -5678,20 +5696,20 @@ msgid "Delete the following snapshots permanently?" msgstr "DELETE USER PERMANENTLY?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" @@ -5703,17 +5721,19 @@ msgstr "DELETE %(name)s" msgid "Create Snapshot" msgstr "CREATE USER" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -#, fuzzy -#| msgid "Inactive" -msgid "active" -msgstr "INACTIVE" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5741,53 +5761,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Create User" msgid "Manage Snapshots" msgstr "CREATE USER" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Configuration updated" msgid "Storage snapshots configuration updated" msgstr "CONFIGURATION UPDATED" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "ACTION ERROR: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Delete %(name)s" -msgid "Deleted all snapshots" -msgstr "DELETE %(name)s" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete %(name)s" msgid "Deleted selected snapshots" msgstr "DELETE %(name)s" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5854,7 +5868,7 @@ msgstr "" msgid "Login" msgstr "LOGIN" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5862,104 +5876,115 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 #, fuzzy #| msgid "reStore" msgid "Storage" msgstr "RESTORE" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy #| msgid "repro service is running" msgid "The device is already unmounting." msgstr "REPRO SERVICE IS RUNNING" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy #| msgid "This service already exists" msgid "The device is already mounted." msgstr "THIS SERVICE ALREADY EXISTS" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 #, fuzzy #| msgid "repro service is not running" msgid "The device is not mounted." msgstr "REPRO SERVICE IS NOT RUNNING" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6438,13 +6463,21 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 #, fuzzy #| msgid "Update URL" msgid "Update" msgstr "UPDATE URL" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Manual" msgid "FreedomBox Updated" @@ -6511,7 +6544,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6530,11 +6563,11 @@ msgstr "AUTOMATIC UPGRADES ENABLED" msgid "Automatic upgrades disabled" msgstr "AUTOMATIC UPGRADES DISABLED" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "UPGRADE PROCESS STARTED." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "STARTING UPGRADE FAILED." @@ -7509,6 +7542,16 @@ msgstr "%(percentage)s%% COMPLETE" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Inactive" +#~ msgid "active" +#~ msgstr "INACTIVE" + +#, fuzzy +#~| msgid "Delete %(name)s" +#~ msgid "Deleted all snapshots" +#~ msgstr "DELETE %(name)s" + #, fuzzy #~| msgid "Applications" #~ msgid "Enable application" @@ -8015,9 +8058,6 @@ msgstr "" #~ "ON\n" #~ "SITE AND UNDER YOUR CONTROL!" -#~ msgid "System Configuration" -#~ msgstr "SYSTEM CONFIGURATION" - #, fuzzy #~| msgid "" #~| "Here you can administrate the underlying system of your %(box_name)s." @@ -8311,9 +8351,6 @@ msgstr "" #~ msgid "Enable service discovery" #~ msgstr "ENABLE SERVICE DISCOVERY" -#~ msgid "Network Time Server" -#~ msgstr "NETWORK TIME SERVER" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BITTORRENT (DELUGE)" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 6496d908b..412ae2bd6 100644 --- a/plinth/locale/fr/LC_MESSAGES/django.po +++ b/plinth/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-05-02 08:11+0000\n" "Last-Translator: Nathan \n" "Language-Team: French wiki PageKite (en anglais)" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Configuration Système" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Redémarrer ou éteindre le système." @@ -5042,6 +5054,12 @@ msgstr "Accès aux partages privés" msgid "Samba" msgstr "Samba" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Serveur de temps réseau" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -5534,7 +5552,7 @@ msgstr "Modifier le partage" msgid "Share deleted." msgstr "Partage supprimé." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5545,7 +5563,7 @@ msgstr "" "utilisés pour ramener le système à un état précédent connu pour être " "fonctionnel, dans le cas ou des changements non désirés ont été appliqués." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5557,7 +5575,7 @@ msgstr "" "instantanés plus anciens peuvent être supprimés automatiquement en fonction " "du paramétrage qui suit." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for sauvegardes car ils sont forcément conservés sur la même partition. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Instantanés de disque" @@ -5657,20 +5675,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Supprimer définitivement ces instantanés ?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Numéro" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Date" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Supprimer les instantanés" @@ -5678,15 +5696,19 @@ msgstr "Supprimer les instantanés" msgid "Create Snapshot" msgstr "Créer un instantané" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Revenir en arrière" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "actif" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Revenir à l'instantané #%(number)s" @@ -5724,46 +5746,42 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Revenir à l'instantané #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Gestion des instantanés" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Instantané créé." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Configuration des instantanés de disque mise à jour" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Erreur sur action : {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Supprimer tous les instantanés" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Supprimer les instantanés sélectionnés" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" "L’instantané est en cours d’utilisation. Veuillez réessayer ultérieurement." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Retour vers l'instantané #{number} effectué." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "Le système doit être redémarré pour terminer le retour en arrière." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Revenir à l'instantané" @@ -5833,7 +5851,7 @@ msgstr "Authentification unique" msgid "Login" msgstr "S’identifier" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5845,101 +5863,112 @@ msgstr "" "d’utilisation, monter et démonter des médias amovibles, étendre la partition " "racine, etc." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Stockage" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} octets" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} Kio" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} Mio" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} Gio" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} Tio" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "L'opération a échoué." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "L'opération a été annulée." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Le périphérique est déjà en train d’être démonté." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" "L’opération n’est pas gérée par manque d'un pilote ou d'un outil adapté." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "L'opération ne s'est pas terminée." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" "L'opération devrait réveiller un disque qui se trouve dans un état " "d'endormissement profond." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Tentative de démontage d’un périphérique en cours d’utilisation." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "L'opération a déjà été annulée." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Vous n'êtes pas autorisé à effectuer l'opération demandée." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Le périphérique est déjà monté." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Le périphérique n’est pas monté." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Vous n'êtes pas autorisé à utiliser l'option demandée." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Le périphérique est monté par un autre utilisateur." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" "Espace faible sur la partition système : {percent_used}% utilisés, " "{free_space} libre." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "Espace disque faible" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "Nom de répertoire invalide." @@ -6428,11 +6457,19 @@ msgstr "" "Rechercher et installer les dernières mises à jour logicielles et les " "correctifs de sécurité." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Mises à jour" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "FreedomBox mise à jour" @@ -6490,7 +6527,7 @@ msgstr "Basculer les journaux de modification récents" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Mise à jour manuelle" @@ -6509,11 +6546,11 @@ msgstr "Mises à niveau automatiques activées" msgid "Automatic upgrades disabled" msgstr "Mises à niveau automatiques désactivées" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Mise à niveau initiée." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Le lancement de la mise à niveau a échoué." @@ -7464,6 +7501,12 @@ msgstr "%(percentage)s%% effectué" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "actif" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Supprimer tous les instantanés" + #~ msgid "Enable application" #~ msgstr "Activer l'application" @@ -8232,9 +8275,6 @@ msgstr "Gujarati" #~ "messages instantanés, de média social ou de blogue. Il est aussi possible " #~ "d'élaborer un portail réunissant plusieurs services sous votre contrôle." -#~ msgid "System Configuration" -#~ msgstr "Configuration Système" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "" @@ -8560,9 +8600,6 @@ msgstr "Gujarati" #~ msgid "Enable service discovery" #~ msgstr "Activer la découverte de services" -#~ msgid "Network Time Server" -#~ msgstr "Serveur de temps réseau" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index c8a00ae7d..080caa731 100644 --- a/plinth/locale/gl/LC_MESSAGES/django.po +++ b/plinth/locale/gl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2019-07-11 08:01+0000\n" "Last-Translator: Miguel A. Bouzada \n" "Language-Team: Galician instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4248,6 +4258,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4676,14 +4690,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4691,14 +4705,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4777,20 +4791,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4798,15 +4812,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4834,45 +4852,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4933,7 +4947,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4941,96 +4955,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5440,11 +5465,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5496,7 +5529,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5513,11 +5546,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po index c74b994b2..578661129 100644 --- a/plinth/locale/gu/LC_MESSAGES/django.po +++ b/plinth/locale/gu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2018-02-05 18:37+0000\n" "Last-Translator: drashti kaushik \n" "Language-Team: Gujarati instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "સિસ્ટમ રૂપરેખાંકન" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4453,6 +4465,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4885,14 +4901,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4900,14 +4916,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4986,20 +5002,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -5007,15 +5023,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5043,46 +5063,42 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy msgid "Storage snapshots configuration updated" msgstr "DNSSEC ગોઠવણીને સુધારેલી શરુ કરો" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5147,7 +5163,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5155,96 +5171,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -5662,11 +5689,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5722,7 +5757,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -5741,11 +5776,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" @@ -6701,9 +6736,6 @@ msgstr "" #~ msgid "Where to Get Help" #~ msgstr "મદદ ક્યાંથી મળે" -#~ msgid "System Configuration" -#~ msgstr "સિસ્ટમ રૂપરેખાંકન" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "અહીં તમે તમારી અંતર્ગત સિસ્ટમનું સંચાલન કરી શકો છો %(box_name)s." diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index d2495f265..c2790cdab 100644 --- a/plinth/locale/hi/LC_MESSAGES/django.po +++ b/plinth/locale/hi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-04-03 20:11+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Hindi %(service_name)s is running." msgid "Service {service_name} is running" msgstr "सर्विस %(service_name)s चल रहा है." -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "{kind} में सुन कर पोर्ट {listen_address} :{port}" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "{kind} में सुन कर पोर्ट{port}" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "{host}:{port} से जुड़े" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "{host}:{port} से नहीं जोड़ सखता" @@ -763,6 +763,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "कॉकपिट" @@ -793,7 +794,7 @@ msgstr "सामान्य कॉन्फ़िगरेशन" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "कॉन्फ़िगर करें" @@ -960,7 +961,7 @@ msgstr "" msgid "Coquelicot" msgstr "कोकेलिकॉट" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "फ़ाइल शेयरइंग" @@ -1629,19 +1630,19 @@ msgstr "" msgid "Firewall" msgstr "फ़ायरवॉल" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, fuzzy, python-brace-format #| msgid "%(service_name)s is available only on internal networks." msgid "Port {name} ({details}) available for internal networks" msgstr "%(service_name)s सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है." -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, fuzzy, python-brace-format #| msgid "%(service_name)s is available only on internal networks." msgid "Port {name} ({details}) available for external networks" msgstr "%(service_name)s सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है." -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3739,7 +3740,7 @@ msgstr "इंटरफ़ेस" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "विवरण" @@ -4509,6 +4510,15 @@ msgstr "" "SSH ग्राहक सेटअप देखें instructions" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "सिस्टम को रीस्टार्ट करें या शट डाउन करें ." @@ -4856,6 +4866,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Distributed File Storage" +msgid "Network File Storage" +msgstr "फ़ाइल स्टोरेज वितरित" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5356,7 +5372,7 @@ msgstr "शेयर संपादित करें" msgid "Share deleted." msgstr "शेयर हटाया गया." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5366,7 +5382,7 @@ msgstr "" "को वापस रोल करने के लिए इस्तेमाल किया जा सकता है, एक पहले अच्छी स्थिति ज्ञात है अगर " "सिस्टम पर अवांछित बदलाव किया गया." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5374,7 +5390,7 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 #, fuzzy #| msgid "" #| "Snapshots work on btrfs file systems only and on the root partition only. " @@ -5388,7 +5404,7 @@ msgstr "" "स्नैपशॉट्स सिर्फ btrfs फाइल सिस्टम और रूट पार्टीशन पर काम करते हैं. स्नैपशॉट बैकअप के लिए " "प्रतिस्थापन नहीं है क्योंकि वे उसी पार्टीशन पर संग्रहित होते हैं. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "स्टोरेज स्नैपशॉटस" @@ -5470,20 +5486,20 @@ msgid "Delete the following snapshots permanently?" msgstr "इन स्नैपशॉटस स्थाई रूप से हटाएं?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "संख्या" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "तिथि" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "स्नैपशॉटस हटाएँ" @@ -5491,15 +5507,19 @@ msgstr "स्नैपशॉटस हटाएँ" msgid "Create Snapshot" msgstr "स्नैपशॉट बनाइये" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "रोलबैक" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "एक्टिव" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "स्नैपशॉट से रोलबैक करें #%(number)s" @@ -5529,49 +5549,43 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "स्नैपशॉट से रोलबैक करें #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "स्नैपशॉटस प्रबंधित करें" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "स्नैपशॉट बनाया गया है." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "स्टोरेज स्नैपशॉट कॉंफ़िगरेशन अपडेट किया गया" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "क्रिया त्रुटि: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Deleted all snapshots." -msgid "Deleted all snapshots" -msgstr "सब स्नैपशॉटस हटाएँ गएे." - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete all the snapshots" msgid "Deleted selected snapshots" msgstr "सब स्नैपशॉटस हटाएँ" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "स्नैपशॉट #{number} पर वापस रोलबाक होगा." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "रोलबैक शुरु करने के लिए सिस्टम रीस्टार्ट करने का ज़रुरत है." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "स्नैपशॉट को रोलबैक करें" @@ -5641,7 +5655,7 @@ msgstr "एकल साइन-ऑन" msgid "Login" msgstr "लॉगिन" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5649,88 +5663,88 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "स्टोरेज" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} बाइट्स" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} किब" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} मेब" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} जिब" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} टीब" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "ऑपरेशन अनुत्तीर्ण हो गया." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "ऑपरेशन रद्द किया गया." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "यह डिवाइस पहले से अनमाउट किया जा रहा है." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "यह ऑपरेशन अनुपलब्ध है क्यैकि ड्राइवर/उपकरण टूल समर्थित नहीं है." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "ऑपरेशन टाइम आउट हो गया." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "यह ऑपरेशन गहरी नींद की स्थिति का डिस्क को जाग जाएगा." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "व्यस्त डिवाइस को अनमाउंट करने का प्रयास कर रहा है." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "ऑपरेशन पहले से रद्द किया गया." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "अनुरोधित ऑपरेशन करने के लिए अधिकृत नहीं है." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "यह डिवाइस पहले से माउंट किया गया." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "यह डिवाइस नहीं माउंट किया गया." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "अनुरोधित विकल्प का उपयोग करने की अनुमति नहीं है." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "किसी और यूसर ने डिवाइस माउंट किया गया है." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5740,10 +5754,21 @@ msgstr "" "वार्निंग: सिस्टम पार्टीशन पर कम जगह ({percent_used}% उपयोग किया गया, " "{free_space} free)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6245,11 +6270,19 @@ msgstr "टैनी टैनी आरएसएस (फोर्क)" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "अपडेट" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6315,7 +6348,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6334,11 +6367,11 @@ msgstr "ऑटोमेटिक अपग्रेडस सक्षम कि msgid "Automatic upgrades disabled" msgstr "ऑटोमेटिक अपग्रेडस अक्षम किया गया" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "अपग्रेड प्रक्रिया शुरू हुई." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "अपग्रेड प्रारंभ करना विफल रहा." @@ -7299,6 +7332,14 @@ msgstr "%(percentage)s%% पूर्ण" msgid "Gujarati" msgstr "" +#~ msgid "active" +#~ msgstr "एक्टिव" + +#, fuzzy +#~| msgid "Deleted all snapshots." +#~ msgid "Deleted all snapshots" +#~ msgstr "सब स्नैपशॉटस हटाएँ गएे." + #~ msgid "Enable application" #~ msgstr "एप्लिकेशन सक्षम करें" diff --git a/plinth/locale/hu/LC_MESSAGES/django.po b/plinth/locale/hu/LC_MESSAGES/django.po index 12ec3d930..3369e09de 100644 --- a/plinth/locale/hu/LC_MESSAGES/django.po +++ b/plinth/locale/hu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-02-17 20:32+0000\n" "Last-Translator: Doma Gergő \n" "Language-Team: Hungarian instrukciókat" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Rendszerbeállítások" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Újraindítás vagy leállítás." @@ -4929,6 +4941,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Distributed File Storage" +msgid "Network File Storage" +msgstr "Elosztott fájltároló" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5448,7 +5466,7 @@ msgstr "Megosztás szerkesztése" msgid "Share deleted." msgstr "Megosztás törölve." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5459,7 +5477,7 @@ msgstr "" "működő állapotába való visszaállítására abban az esetben, ha nem kívánt " "változtatások történtek a rendszerben." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5471,7 +5489,7 @@ msgstr "" "pillanatképek automatikusan ki lesznek takarítva az alábbi beállítások " "szerint." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for Biztonsági mentést, mivel a pillanatképek csak ugyanazon a " "partíción tárolhatók amikről készülnek. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Háttértár-pillanatképek" @@ -5570,20 +5588,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Véglegesen törlöd az alábbi pillanatképeket?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Sorszám" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Dátum" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Pillanatképek törlése" @@ -5591,15 +5609,19 @@ msgstr "Pillanatképek törlése" msgid "Create Snapshot" msgstr "Pillanatkép létrehozása" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Visszaállít" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "aktív" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Visszaállítás erre a pillanatképre: %(number)s" @@ -5637,46 +5659,42 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Visszaállítás erre a pillanatképre: %(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Pillanatképek kezelése" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Pillanatkép létrehozva." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Tárolási pillanatképek konfigurációja frissítve" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Hiba a művelet közben: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Minden pillanatkép törölve" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Kiválasztott pillanatképek törölve" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" "Pillanatkép jelenleg is használatban van. Kérlek, próbáld meg újra később." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "A {number} számú pillanatképre visszaállítva." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "A visszaállítás befejezéséhez a rendszert újra kell indítani." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Visszaállítás pillanatképre" @@ -5749,7 +5767,7 @@ msgstr "Egyszeri bejelentkezés" msgid "Login" msgstr "Bejelentkezés" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5761,91 +5779,91 @@ msgstr "" "fel- és lecsatolhatsz cserélhető adathordozókat, kibővítheted a root " "partíciót, stb." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Háttértár" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} byte" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "A művelet sikertelen." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "A művelet meg lett szakítva." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Az eszköz leválasztása már folyamatban van." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" "A művelet nem támogatott hiányzó eszközvezérlő/segédeszköz támogatás miatt." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "A művelet túllépte az időkorlátot." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" "A művelet fel fogja ébreszteni a lemezt, amely mély-alvó állapotban van." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" "Megpróbáltál leválasztani egy eszközt, amely jelenleg is használatban van." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "A művelet már meg lett szakítva." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Nem jogosult végrehajtani a kért műveletet." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Az eszköz már fel lett csatolva." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Az eszköz nincs felcsatolva." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Nem használhatja a kért lehetőséget." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Az eszközt egy másik felhasználó felcsatolva." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5855,10 +5873,21 @@ msgstr "" "Figyelmeztetés: Kevés a szabad hely a rendszerpartíción ({percent_used}% " "felhasználva, {free_space} szabad)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid repository name." @@ -6378,11 +6407,19 @@ msgid "Check for and apply the latest software and security updates." msgstr "" "A legfrissebb szoftver- és biztonsági frissítések ellenőrzése és alkalmazása." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Frissítés" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6440,7 +6477,7 @@ msgstr "Frissítésnapló megjelenítése" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Kézi frissítés" @@ -6457,11 +6494,11 @@ msgstr "Automatikus frissítések engedélyezve" msgid "Automatic upgrades disabled" msgstr "Automatikus frissítések kikapcsolva" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "A frissítési folyamat elkezdődött." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "A frissítést nem sikerült elindítani." @@ -7442,6 +7479,12 @@ msgstr "befejezettségi szint: %(percentage)s%%" msgid "Gujarati" msgstr "Gudzsaráti" +#~ msgid "active" +#~ msgstr "aktív" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Minden pillanatkép törölve" + #~ msgid "Enable application" #~ msgstr "Alkalmazás engedélyezése" @@ -8182,9 +8225,6 @@ msgstr "Gudzsaráti" #~ "lehet. Segítségével a felhasználó saját maga üzemeltethet " #~ "szolgáltatásokat, visszanyerve az ellenőrzést az adatai felett." -#~ msgid "System Configuration" -#~ msgstr "Rendszerbeállítások" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "Itt módosíthatóak a %(box_name)s alapbeállításai." diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po index 30037f39f..198ed3841 100644 --- a/plinth/locale/id/LC_MESSAGES/django.po +++ b/plinth/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (FreedomBox)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2018-11-02 00:44+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Indonesian instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Pengaturan Sistem" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Jalankan ulang atau matikan sistem." @@ -4438,6 +4450,11 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +msgid "Network File Storage" +msgstr "Interface" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -4916,14 +4933,14 @@ msgstr "Shared" msgid "Share deleted." msgstr "{name} dihapus." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4931,14 +4948,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -5025,20 +5042,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Tanggal" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" @@ -5048,15 +5065,19 @@ msgstr "Hapus %(name)s" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5084,53 +5105,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Snapshots" msgstr "Hapus %(name)s" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "General Configuration" msgid "Storage snapshots configuration updated" msgstr "Konfigurasi Umum" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Delete %(name)s" -msgid "Deleted all snapshots" -msgstr "Hapus %(name)s" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete %(name)s" msgid "Deleted selected snapshots" msgstr "Hapus %(name)s" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5197,7 +5212,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5205,101 +5220,112 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, fuzzy, python-brace-format #| msgid "{disk_size} bytes" msgid "{disk_size:.1f} bytes" msgstr "{disk_size} bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, fuzzy, python-brace-format #| msgid "{disk_size} KiB" msgid "{disk_size:.1f} KiB" msgstr "{disk_size} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, fuzzy, python-brace-format #| msgid "{disk_size} MiB" msgid "{disk_size:.1f} MiB" msgstr "{disk_size} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, fuzzy, python-brace-format #| msgid "{disk_size} GiB" msgid "{disk_size:.1f} GiB" msgstr "{disk_size} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, fuzzy, python-brace-format #| msgid "{disk_size} TiB" msgid "{disk_size:.1f} TiB" msgstr "{disk_size} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Actions" @@ -5723,11 +5749,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5784,7 +5818,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Manual" msgid "Manual update" @@ -5803,11 +5837,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" @@ -6709,6 +6743,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Delete %(name)s" +#~ msgid "Deleted all snapshots" +#~ msgstr "Hapus %(name)s" + #~ msgid "Enable application" #~ msgstr "Aktifkan aplikasi" @@ -6882,9 +6921,6 @@ msgstr "" #~ msgid "Services and Applications" #~ msgstr "Layanan dan Aplikasi" -#~ msgid "System Configuration" -#~ msgstr "Pengaturan Sistem" - #~ msgid "Language changed" #~ msgstr "Bahasa telah dipilih" diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po index 77ee651cd..2ff150641 100644 --- a/plinth/locale/it/LC_MESSAGES/django.po +++ b/plinth/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-04-11 13:36+0000\n" "Last-Translator: Jeannette L \n" "Language-Team: Italian istruzioni della configurazione del client SSH" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Configurazione sistema" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Riavvia o spegni il sistema." @@ -4951,6 +4963,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Interface" +msgid "Network File Storage" +msgstr "Interfaccia" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5409,14 +5427,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5424,14 +5442,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -5510,20 +5528,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -5531,15 +5549,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5567,46 +5589,42 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy msgid "Deleted selected snapshots" msgstr "Istantanee selezionate cancellate" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5672,7 +5690,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5680,97 +5698,108 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy msgid "The device is already unmounting." msgstr "Il dispositivo sta già smontando." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Il dispositivo è già montato." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy msgid "Invalid directory name." @@ -6192,11 +6221,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -6249,7 +6286,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Aggiornamento manuale" @@ -6266,11 +6303,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" @@ -7653,9 +7690,6 @@ msgstr "" #~ msgid "Where to Get Help" #~ msgstr "Dove Trovare Aiuto" -#~ msgid "System Configuration" -#~ msgstr "Configurazione sistema" - #, fuzzy #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po index 1201de88c..9f0ea4c59 100644 --- a/plinth/locale/ja/LC_MESSAGES/django.po +++ b/plinth/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,27 +26,27 @@ msgstr "" msgid "FreedomBox" msgstr "" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, python-brace-format msgid "Service {service_name} is running" msgstr "" -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "" @@ -667,6 +667,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "" @@ -695,7 +696,7 @@ msgstr "" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "" @@ -827,7 +828,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "" @@ -1405,17 +1406,17 @@ msgstr "" msgid "Firewall" msgstr "" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3276,7 +3277,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -3968,6 +3969,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4245,6 +4255,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4671,14 +4685,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4686,14 +4700,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4772,20 +4786,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4793,15 +4807,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4829,45 +4847,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4928,7 +4942,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4936,96 +4950,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5435,11 +5460,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5489,7 +5522,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5506,11 +5539,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po index 1201de88c..9f0ea4c59 100644 --- a/plinth/locale/kn/LC_MESSAGES/django.po +++ b/plinth/locale/kn/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,27 +26,27 @@ msgstr "" msgid "FreedomBox" msgstr "" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, python-brace-format msgid "Service {service_name} is running" msgstr "" -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "" @@ -667,6 +667,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "" @@ -695,7 +696,7 @@ msgstr "" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "" @@ -827,7 +828,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "" @@ -1405,17 +1406,17 @@ msgstr "" msgid "Firewall" msgstr "" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3276,7 +3277,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -3968,6 +3969,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4245,6 +4255,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4671,14 +4685,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4686,14 +4700,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4772,20 +4786,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4793,15 +4807,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4829,45 +4847,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4928,7 +4942,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4936,96 +4950,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5435,11 +5460,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5489,7 +5522,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5506,11 +5539,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po index 5623eff9f..bac1ff7f6 100644 --- a/plinth/locale/lt/LC_MESSAGES/django.po +++ b/plinth/locale/lt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,27 +27,27 @@ msgstr "" msgid "FreedomBox" msgstr "" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, python-brace-format msgid "Service {service_name} is running" msgstr "" -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "" @@ -668,6 +668,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "" @@ -696,7 +697,7 @@ msgstr "" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "" @@ -828,7 +829,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "" @@ -1406,17 +1407,17 @@ msgstr "" msgid "Firewall" msgstr "" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3277,7 +3278,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -3969,6 +3970,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4246,6 +4256,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4672,14 +4686,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4687,14 +4701,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4773,20 +4787,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4794,15 +4808,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4830,45 +4848,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4929,7 +4943,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4937,96 +4951,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5436,11 +5461,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5490,7 +5523,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5507,11 +5540,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index ece48cc66..b12872704 100644 --- a/plinth/locale/nb/LC_MESSAGES/django.po +++ b/plinth/locale/nb/LC_MESSAGES/django.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-20 17:53-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-05-06 06:11+0000\n" "Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål instructions (instruksjoner)" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Systemoppsett" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Start om igjen, eller slå av systemet." @@ -4960,6 +4972,12 @@ msgstr "Tilgang til private delinger" msgid "Samba" msgstr "Samba" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Distributed File Storage" +msgid "Network File Storage" +msgstr "Distribuert fillagring" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5458,7 +5476,7 @@ msgstr "Rediger deling" msgid "Share deleted." msgstr "Deling slettet." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5469,7 +5487,7 @@ msgstr "" "en tidligere kjent god tilstand i tilfelle det har skjedd uønskede endringer " "på systemet." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5480,7 +5498,7 @@ msgstr "" "etter programvareinstallasjon. Eldre øyeblikksbilder renskes automatisk i " "henhold til innstillingene nedenfor." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for sikkerhetskopier i og med at de er lagret på samme partisjon. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Lagrings-avbildninger" @@ -5576,20 +5594,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Slett denne avbildningen for godt?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Nummer" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Dato" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Slett avbildninger" @@ -5597,15 +5615,19 @@ msgstr "Slett avbildninger" msgid "Create Snapshot" msgstr "Opprett øyeblikksbilde" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Rull tilbake" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "Slått på" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Rull tilbake til øyeblikksbilde #%(number)s" @@ -5643,45 +5665,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Rull tilbake til øyeblikksbilde #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Behandle avbildninger" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Opprett øyeblikksbilde." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Lagringsavbildings-oppsett oppdatert" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Handlingsfeil: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Slettet alle avbildninger" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Slettet alle valgte avbildninger" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "Øyeblikksbilde i bruk. Prøv igjen senere." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Rullet tilbake til øyeblikksbilde #{number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "Systemet må startes på nytt for å fullføre tilbakerullingen." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Rull tilbake til øyeblikksbilde" @@ -5759,7 +5777,7 @@ msgstr "Engangspålogging" msgid "Login" msgstr "Login" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5770,89 +5788,89 @@ msgstr "" "kan vise lagringsmedia som er i bruk, montere og avmontere flyttbare medium, " "utvide rotpartisjonen, osv." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Lager" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} byte" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Operasjonen mislyktes." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Operasjonen ble avbrutt." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Enheten avmonteres allerede." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" "Denne aktiviteten støttes ikke på grunn av manglende driver-/verktøystøtte." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Tidsavbrudd for operasjon." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "Operasjonen vil vekke en disk fra en tilstand av dyp søvn." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Prøver å avmontere en opptatt enhet." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Operasjonen har allerede blitt avbrutt." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Mangler rettigheter til utførelse av forespurt operasjon." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Denne enheten er allerede montert." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Enheten er ikke montert." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Mangler rettigheter til bruk av forespurt valg." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Enheten er montert av en annen bruker." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5862,10 +5880,21 @@ msgstr "" "Advarsel: Lite plass igjen på systempartisjon ({percent_used}% brukt, " "{free_space} ledig)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "Lite ledig diskplass" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "Ugyldig katalognavn." @@ -6364,11 +6393,19 @@ msgstr "Tiny Tiny RSS (avgreining)" msgid "Check for and apply the latest software and security updates." msgstr "Sjekk og legg til siste programvare- og sikkerhetsoppdateringer." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Oppdater" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6427,7 +6464,7 @@ msgstr "Veksle nylige oppdateringslogger" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Manuell oppdatering" @@ -6445,11 +6482,11 @@ msgstr "Automatiske oppgraderinger aktivert" msgid "Automatic upgrades disabled" msgstr "Automatiske oppgraderinger avslått (deaktivert)" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Oppgraderingsprosessen (upgrade process) har startet." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Å starte oppgradering (upgrade) mislyktes." @@ -7433,6 +7470,12 @@ msgstr "%(percentage)s%% fullført" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "Slått på" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Slettet alle avbildninger" + #~ msgid "Enable application" #~ msgstr "Aktiver program" @@ -8220,9 +8263,6 @@ msgstr "Gujarati" #~ "du webportaler? Vi kan være en av dem også. Mange av de tjenestene du " #~ "bruker på nettet kan snart være her og under din kontroll!" -#~ msgid "System Configuration" -#~ msgstr "Systemoppsett" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "" diff --git a/plinth/locale/nl/LC_MESSAGES/django.po b/plinth/locale/nl/LC_MESSAGES/django.po index 26ec56343..7702c33c2 100644 --- a/plinth/locale/nl/LC_MESSAGES/django.po +++ b/plinth/locale/nl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-01-17 21:21+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Dutch instructies (Engelstalig)" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Systeeminstelling" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Herstarten of uitschakelen van het systeem." @@ -4837,6 +4849,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Netwerktijdsserver" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5333,7 +5351,7 @@ msgstr "Gedeelde map bewerken" msgid "Share deleted." msgstr "Gedeelde map verwijderd." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5343,7 +5361,7 @@ msgstr "" "kunnen worden gebruikt om in geval van ongewenste wijzigingen aan het " "systeem terug te keren naar een voorheen goed werkende staat." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5351,7 +5369,7 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups aangezien ze op dezelfde partitie als hun bron worden " "bewaard. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Opslag Snapshots" @@ -5446,20 +5464,20 @@ msgid "Delete the following snapshots permanently?" msgstr "De volgende snapshots permanent verwijderen?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Nummer" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Datum" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Snapshots verwijderen" @@ -5467,15 +5485,19 @@ msgstr "Snapshots verwijderen" msgid "Create Snapshot" msgstr "Maak Snapshot" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Terugdraaien" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "actief" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Terugdraaien tot snapshot #%(number)s" @@ -5506,46 +5528,42 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Terugdraaien tot Snapshot #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Beheren van Snapshots" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Gemaakte snapshot." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Opslag van Snapshots configuratie is bijgewerkt" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Actiefout: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Alle snapshots verwijderd" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Verwijderde geselecteerde snapshots" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Teruggezet naar snapshot #{number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" "Het systeem moet opnieuw worden opgestart om het terugdraaien te voltooien." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Terugdraaien naar Snapshot" @@ -5616,7 +5634,7 @@ msgstr "Eenmalige aanmelding" msgid "Login" msgstr "Aanmelding" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5624,88 +5642,88 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Storage" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "De bewerking is mislukt." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "De bewerking is afgebroken." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Het apparaat is al aan het ontkoppelen." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Er is een time-out opgetreden voor deze bewerking." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Poging om een apparaat te ontkoppelen dat in gebruik is." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "De bewerking is al geannuleerd." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Het apparaat is al gekoppeld." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Het apparaat is niet ge-mount." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5715,10 +5733,21 @@ msgstr "" "Waarschuwing: Weinig ruimte op de systeempartitie ({percent_used} % " "gebruikt, {free_space} vrij)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6238,11 +6267,19 @@ msgid "Check for and apply the latest software and security updates." msgstr "" "Controleer de nieuwste software- en beveiligingsupdates en pas deze toe." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Update" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6302,7 +6339,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Handmatige update" @@ -6319,11 +6356,11 @@ msgstr "Automatisch bijwerken ingeschakeld" msgid "Automatic upgrades disabled" msgstr "Automatisch bijwerken uitgeschakeld" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Upgrade-proces gestart." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Starten van de upgrade is mislukt." @@ -7302,6 +7339,12 @@ msgstr "%(percentage)s%% voltooid" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "actief" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Alle snapshots verwijderd" + #~ msgid "Enable application" #~ msgstr "Toepassing inschakelen" @@ -8147,9 +8190,6 @@ msgstr "Gujarati" #~ "anderen afneemt kunnen nu thuis beheerd worden, en onder eigen controle " #~ "staan!" -#~ msgid "System Configuration" -#~ msgstr "Systeeminstelling" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "Hier kunt u het onderliggende systeem van %(box_name)s beheren." @@ -8469,9 +8509,6 @@ msgstr "Gujarati" #~ msgid "Enable service discovery" #~ msgstr "Service Discovery Inschakelen" -#~ msgid "Network Time Server" -#~ msgstr "Netwerktijdsserver" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po index 44f5cf317..381783204 100644 --- a/plinth/locale/pl/LC_MESSAGES/django.po +++ b/plinth/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-02-19 22:47+0000\n" "Last-Translator: Radek Pasiok \n" "Language-Team: Polish %(service_name)s is not running." msgid "Port {name} ({details}) available for internal networks" msgstr "Usługa %(service_name)s nie jest uruchomiona." -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, fuzzy, python-brace-format #| msgid "Service %(service_name)s is not running." msgid "Port {name} ({details}) available for external networks" msgstr "Usługa %(service_name)s nie jest uruchomiona." -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3597,7 +3598,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -4295,6 +4296,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Uruchom ponownie lub wyłącz system." @@ -4581,6 +4591,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -5027,14 +5041,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5042,14 +5056,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -5136,20 +5150,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" @@ -5159,15 +5173,19 @@ msgstr "Usuń %(name)s" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5195,53 +5213,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Snapshots" msgstr "Usuń %(name)s" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Access rights configuration updated" msgid "Storage snapshots configuration updated" msgstr "Zaktualizowano ustawienia praw dostępu" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Delete %(name)s" -msgid "Deleted all snapshots" -msgstr "Usuń %(name)s" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete %(name)s" msgid "Deleted selected snapshots" msgstr "Usuń %(name)s" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5308,7 +5320,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5316,99 +5328,110 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, fuzzy, python-brace-format #| msgid "{disk_size} bytes" msgid "{disk_size:.1f} bytes" msgstr "{disk_size} bajtów" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, fuzzy, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, fuzzy, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, fuzzy, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, fuzzy, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy #| msgid "The requested domain is already registered." msgid "The device is already mounted." msgstr "Wnioskowana domena jest już zarejstrowana." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -5839,11 +5862,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -5900,7 +5931,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -5919,11 +5950,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" @@ -6876,6 +6907,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Delete %(name)s" +#~ msgid "Deleted all snapshots" +#~ msgstr "Usuń %(name)s" + #~ msgid "Enable application" #~ msgstr "Aktywuj aplikację" diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po index a7656af8b..a3f912684 100644 --- a/plinth/locale/pt/LC_MESSAGES/django.po +++ b/plinth/locale/pt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-04-08 13:55+0000\n" "Last-Translator: Manuela Silva \n" "Language-Team: Portuguese instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4396,6 +4406,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Servidor do Tempo da Rede" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -4843,14 +4859,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4858,14 +4874,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4944,20 +4960,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4965,15 +4981,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -5001,47 +5021,43 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Configuration updated" msgid "Storage snapshots configuration updated" msgstr "Configuração atualizada" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5104,7 +5120,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5112,98 +5128,109 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy #| msgid "Service discovery server is running" msgid "The device is already unmounting." msgstr "O Servidor da descoberta do serviço está a correr" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "Esta operação pode ligar um disco que esteja no estado de adormecido." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid domain name" @@ -5624,11 +5651,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5684,7 +5719,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5701,11 +5736,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index 0a81a1ea1..cd5f7d4a7 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-05-18 22:17+0000\n" "Last-Translator: Artem \n" "Language-Team: Russian =2 && n%10<=" -"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.1-dev\n" #: doc/dev/_templates/layout.html:11 @@ -28,28 +28,28 @@ msgstr "Страница источника" msgid "FreedomBox" msgstr "FrеedomBox" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, fuzzy, python-brace-format #| msgid "Service %(service_name)s is running." msgid "Service {service_name} is running" msgstr "Выполняется служба %(service_name)s." -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "Слушать на {kind} порт {listen_address}:{port}" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "Слушать порт {port} на {kind}" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "Подключение к {host}:{port}" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "Невозможно подключиться к {host}:{port}" @@ -782,6 +782,7 @@ msgstr "" "использовать IP-адрес как часть URL." #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "Cockpit" @@ -814,7 +815,7 @@ msgstr "Общие настройки" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "Настроить" @@ -975,7 +976,7 @@ msgstr "" msgid "Coquelicot" msgstr "Coquelicot" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "Обмен Файлами" @@ -1660,19 +1661,19 @@ msgstr "" msgid "Firewall" msgstr "Брандмауэр" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, fuzzy, python-brace-format #| msgid "%(service_name)s is available only on internal networks." msgid "Port {name} ({details}) available for internal networks" msgstr "%(service_name)s доступно только во внутренних сетях." -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, fuzzy, python-brace-format #| msgid "%(service_name)s is available only on internal networks." msgid "Port {name} ({details}) available for external networks" msgstr "%(service_name)s доступно только во внутренних сетях." -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "Порт {name} ({details}) недоступен для внешних сетей" @@ -3860,7 +3861,7 @@ msgstr "Интерфейс" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "Описание" @@ -4638,6 +4639,17 @@ msgstr "" "Инструкции " "по настройке клиента SSH" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Конфигурация системы" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Перезагрузка или завершение работы системы." @@ -4990,6 +5002,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Сетевой сервер времени" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5497,7 +5515,7 @@ msgstr "Редактировать общий ресурс" msgid "Share deleted." msgstr "Общий ресурс удалён." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5507,7 +5525,7 @@ msgstr "" "btrfs. Они могут использоваться для отката системы к последнему рабочему " "состоянию в случае неприемлемых изменений в системе." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5518,7 +5536,7 @@ msgstr "" "до и после инсталляции программного обеспечения. Старые снимки автоматически " "удаляются в соответствии с установками ниже." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups, так как они хранятся на том же разделе. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Хранилище снимков" @@ -5615,20 +5633,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Окончательно удалить этот снапшот?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Номер" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Дата" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Удалить снапшот" @@ -5636,15 +5654,19 @@ msgstr "Удалить снапшот" msgid "Create Snapshot" msgstr "Создать снимок" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Откат" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "активен" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Откат к снимку #%(number)s" @@ -5680,45 +5702,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Откат к снимку %(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Управление снапшотами" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Создан снимок." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Настройки хранения снапшотов обновлены" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Ошибка действий: {0}[{1}][{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Удалить все снапшоты" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Удалить выбранные снапшоты" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "Снимок сейчас используется. Попробуйте позже." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Откат к снимку #{number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "Необходимо перезагрузить систему для завершения отката." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Откат к снимку" @@ -5791,7 +5809,7 @@ msgstr "Единый вход" msgid "Login" msgstr "Логин" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5802,89 +5820,89 @@ msgstr "" "{box_name}. Вы можете видеть, какие носители используются, монтировать и " "размонтировать подключаемые носители, увеличивать корневой раздел итп." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Storage" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} байт" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} КиБ" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} Миб" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} Гиб" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} Тиб" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Операция не удалась." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Операция была отменена." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Устройство уже отключается." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" "Операция не поддерживается из-за отсутствия поддержки драйвера или утилиты." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Время операции вышло." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "Операция пробудит диск, находящийся в режиме глубокого сна." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Попытка отключения устройства, которое используется." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Операция уже отменена." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Отсутствует авторизация для выполнения запрошенной операции." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Устройство уже подключено." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Устройство не подключено." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Использование запрошенной опции не разрешено." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Устройство подключено другим пользователем." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5894,10 +5912,21 @@ msgstr "" "Предупреждение: недостаточно свободного пространства на системном разделе " "({percent_used}% используется, {free_space} свободно)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6409,11 +6438,19 @@ msgstr "Tiny Tiny RSS (Fork)" msgid "Check for and apply the latest software and security updates." msgstr "Проверьте и установите новейшие программы и обновления безопасности." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Обновление" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6476,7 +6513,7 @@ msgstr "Переключите последние протоколы обнов #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Ручное обновление" @@ -6493,11 +6530,11 @@ msgstr "Автоматические обновления включены" msgid "Automatic upgrades disabled" msgstr "Автоматические обновления отключены" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Начался процесс обновления." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Сбой при запуске обновления." @@ -7477,6 +7514,12 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "active" +#~ msgstr "активен" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Удалить все снапшоты" + #~ msgid "Enable application" #~ msgstr "Включить приложение" @@ -8227,9 +8270,6 @@ msgstr "Гуджарати" #~ "Помните Web-порталы? Вы можете быть одним из них. Многие службы, которыми " #~ "пользуетесь Вы, могут быть в этой коробке и под Вашим контролем!" -#~ msgid "System Configuration" -#~ msgstr "Конфигурация системы" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "" @@ -8545,9 +8585,6 @@ msgstr "Гуджарати" #~ msgid "Enable service discovery" #~ msgstr "Включить обнаружение служб" -#~ msgid "Network Time Server" -#~ msgstr "Сетевой сервер времени" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "БитТоррент (Deluge)" diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po index cf591faf7..b4d5731c6 100644 --- a/plinth/locale/sl/LC_MESSAGES/django.po +++ b/plinth/locale/sl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2019-05-07 20:48+0000\n" "Last-Translator: Erik Ušaj \n" "Language-Team: Slovenian instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4403,6 +4413,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4837,14 +4851,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4852,14 +4866,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4938,20 +4952,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4959,15 +4973,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4995,45 +5013,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5096,7 +5110,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5104,96 +5118,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -5613,11 +5638,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5669,7 +5702,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5686,11 +5719,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/sr/LC_MESSAGES/django.po b/plinth/locale/sr/LC_MESSAGES/django.po index aa4db540b..7bc756c21 100644 --- a/plinth/locale/sr/LC_MESSAGES/django.po +++ b/plinth/locale/sr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-04-13 05:34+0000\n" "Last-Translator: vihor \n" "Language-Team: Serbian instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4291,6 +4301,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4717,14 +4731,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4732,14 +4746,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4818,20 +4832,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4839,15 +4853,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4875,45 +4893,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4974,7 +4988,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4982,96 +4996,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5481,11 +5506,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5535,7 +5568,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5552,11 +5585,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index ddd4d5448..6b986c457 100644 --- a/plinth/locale/sv/LC_MESSAGES/django.po +++ b/plinth/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-05-11 10:41+0000\n" "Last-Translator: Michael Breidenbach \n" "Language-Team: Swedish bug tracker " -"och bifoga denna statuslogg rapport bug-tracker." +"webbgränssnitt. Om du vill rapportera ett fel, använd bug tracker och " +"bifoga denna statuslogg rapport bug-tracker." #: plinth/modules/help/templates/statuslog.html:24 msgid "" @@ -3782,7 +3783,7 @@ msgstr "Gränssnitt" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "Beskrivning" @@ -4569,6 +4570,15 @@ msgstr "" "Se SSH-klientinstallation instruktioner" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Starta om eller stänga av systemet." @@ -4921,6 +4931,12 @@ msgstr "Tillgång till de privata shares" msgid "Samba" msgstr "Samba" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Tidsserver för nätverket" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -5394,7 +5410,7 @@ msgstr "Redigera share" msgid "Share deleted." msgstr "Share borttagen." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " @@ -5404,7 +5420,7 @@ msgstr "" "Dessa kan användas för att återställa systemet till ett tidigare känt skick " "i händelse av oönskade ändringar i systemet." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5415,7 +5431,7 @@ msgstr "" "även före och efter en programvaruinstallation. Äldre ögonblicksbilder " "kommer att rensas automatiskt enligt inställningarna nedan." -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for säkerhetskopior eftersom de bara kan lagras på " "samma partition. " -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Ögonblicksbilder av lagring" @@ -5514,20 +5530,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Vill du ta bort följande ögonblicksbilder permanent?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Nummer" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Datum" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Ta bort ögonblicksbilder" @@ -5535,15 +5551,19 @@ msgstr "Ta bort ögonblicksbilder" msgid "Create Snapshot" msgstr "Skapa ögonblicksbild" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Återställning" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "Aktiva" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Återställning till ögonblicksbild #%(number)s" @@ -5555,8 +5575,8 @@ msgid "" "currently only available on %(types_supported)s filesystems." msgstr "" "Du har ett filsystem av typen %(fs_type)s. Ögonblicksbilder " -"är för närvarande endast tillgängliga på %(types_supported)s" -" filsystem." +"är för närvarande endast tillgängliga på %(types_supported)s filsystem." #: plinth/modules/snapshot/templates/snapshot_rollback.html:12 msgid "Roll back the system to this snapshot?" @@ -5577,45 +5597,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "Återställning till ögonblicksbild #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "Hantera ögonblicksbilder" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Skapade ögonblicksbild." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "Lagring ögonblicksbildkonfiguration uppdaterad" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Åtgärdsfel: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "Raderade alla ögonblicksbilder" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "Borttagna markerade ögonblicksbilder" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "Ögonblicksbild används för närvarande. Vänligen försök igen senare." -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "Återställs till Snapshot #{number}." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "Systemet måste startas om för att slutföra återställningen." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Återställning till ögonblicksbild" @@ -5685,7 +5701,7 @@ msgstr "Enkel inloggning på" msgid "Login" msgstr "Logga in" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5696,98 +5712,109 @@ msgstr "" "{box_name}. Du kan visa lagringsmedia som för närvarande används, montera " "och demontera flyttbara media, expandera rotpartitionen etc." -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Lagring" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} byte" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} Kib" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} Mib" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} Gib" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} Tib" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "Åtgärden misslyckades." -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "Operationen avbröts." -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "Enheten lossnar redan." -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "Åtgärden stöds inte på grund av saknade drivrutiner/verktygsstöd." -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "Åtgärden orsakade timeout." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "Åtgärden skulle väcka en disk som är i ett djupviloläge." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "Försöker avmontera en enhet som är upptagen." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "Operationen har redan avbrutits." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "Inte behörig att utföra den begärda åtgärden." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "Enheten är redan monterad." -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "Enheten är inte monterad." -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "Inte tillåtet att använda det begärda alternativet." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "Enheten monteras av en annan användare." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" "Lågt utrymme på systempartitionen: {percent_used}% används, {free_space} " "fritt." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "Lågt diskutrymme" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "Ogiltigt katalognamn." @@ -6265,11 +6292,19 @@ msgid "Check for and apply the latest software and security updates." msgstr "" "Sök efter och installera de senaste program-och säkerhetsuppdateringarna." -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Uppdatera" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "FreedomBox uppdaterad" @@ -6326,7 +6361,7 @@ msgstr "Växla senaste uppdateringsloggar" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "Manuell uppdatering" @@ -6343,11 +6378,11 @@ msgstr "Automatiska uppgraderingar aktiverade" msgid "Automatic upgrades disabled" msgstr "Automatiska uppgraderingar inaktiverade" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Uppgraderingsprocessen påbörjades." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Det gick inte att starta uppgraderingen." @@ -7272,6 +7307,12 @@ msgstr "%(percentage)s %% färdigt" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "active" +#~ msgstr "Aktiva" + +#~ msgid "Deleted all snapshots" +#~ msgstr "Raderade alla ögonblicksbilder" + #~ msgid "Enable application" #~ msgstr "Aktivera applikation" @@ -7884,9 +7925,6 @@ msgstr "Gujarati" #~ msgid "Enable service discovery" #~ msgstr "Aktivera tjänstidentifiering" -#~ msgid "Network Time Server" -#~ msgstr "Tidsserver för nätverket" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po index 6d07c4834..f0527da62 100644 --- a/plinth/locale/ta/LC_MESSAGES/django.po +++ b/plinth/locale/ta/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,27 +26,27 @@ msgstr "" msgid "FreedomBox" msgstr "" -#: plinth/daemon.py:70 +#: plinth/daemon.py:85 #, python-brace-format msgid "Service {service_name} is running" msgstr "" -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "" @@ -667,6 +667,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "" @@ -695,7 +696,7 @@ msgstr "" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "" @@ -827,7 +828,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "" @@ -1405,17 +1406,17 @@ msgstr "" msgid "Firewall" msgstr "" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, python-brace-format msgid "Port {name} ({details}) available for internal networks" msgstr "" -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, python-brace-format msgid "Port {name} ({details}) available for external networks" msgstr "" -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3276,7 +3277,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "" @@ -3968,6 +3969,15 @@ msgid "" "SshOverPageKite/\">instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +msgid "System Monitoring" +msgstr "" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4245,6 +4255,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4671,14 +4685,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4686,14 +4700,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4772,20 +4786,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4793,15 +4807,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4829,45 +4847,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -4928,7 +4942,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -4936,96 +4950,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 msgid "Invalid directory name." msgstr "" @@ -5435,11 +5460,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 msgid "FreedomBox Updated" msgstr "" @@ -5489,7 +5522,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5506,11 +5539,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index 6853dfc6c..a2f25e803 100644 --- a/plinth/locale/te/LC_MESSAGES/django.po +++ b/plinth/locale/te/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2020-04-25 14:11+0000\n" "Last-Translator: Joseph Nuthalapati \n" "Language-Team: Telugu సూచనలు " +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "వ్యవస్థ రూపశిల్పం" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "పునఃప్రారంభించండి లేదా సిస్టమ్ మూసివేయండి." @@ -4804,6 +4816,12 @@ msgstr "ప్రైవేటు షేర్లలో ప్రవేశం" msgid "Samba" msgstr "సాంబా" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "అల్లిక సేవిక సమయం" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5318,14 +5336,14 @@ msgstr "వినియోగదారి మార్పు" msgid "Share deleted." msgstr "{name} తొలగించబడింది." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5333,14 +5351,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "నిల్వ దృశ్యములు" @@ -5436,20 +5454,20 @@ msgid "Delete the following snapshots permanently?" msgstr "క్రింది స్నాప్షాట్‌లను శాశ్వతంగా తొలగించు ?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "సంఖ్య" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "తేదీ" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "స్నాప్షాట్‌లను తొలగించు" @@ -5457,17 +5475,19 @@ msgstr "స్నాప్షాట్‌లను తొలగించు" msgid "Create Snapshot" msgstr "స్నాప్షాట్‌ని సృష్టించు" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "యథాస్థితి" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -#, fuzzy -#| msgid "Inactive" -msgid "active" -msgstr "క్రియాశీల" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "స్నాప్షాట్కు రోల్బ్యాక్ చేయండి #%(number)s" @@ -5498,53 +5518,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "స్నాప్షాట్ #%(number)s కు రోల్‌బ్యాక్ చేయండి" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Storage Snapshots" msgid "Manage Snapshots" msgstr "నిల్వ దృశ్యములు" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "స్నాప్షాట్‌ సృష్టించబడినది." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Configuration updated" msgid "Storage snapshots configuration updated" msgstr "ఆకృతీకరణ నవీకరించబడింది" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "చర్య లోపం:{0}{1}{2}" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Deleted all snapshots." -msgid "Deleted all snapshots" -msgstr "అన్ని స్నాప్షాట్స్ ని తొలగించండి." - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete all the snapshots" msgid "Deleted selected snapshots" msgstr "అన్ని స్నాప్షాట్‌లను తొలగించు" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "స్నాప్షాట్ #{number} కు తీస్కుని వెళ్ళబడింది." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "రొల్ల్బచ్క్ ని పూర్తి చేయడానికి వ్యవస్థను పునరుద్ధరించాలి." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "చాయాచిత్రం కు రొల్ల్బచ్క్ చేయండి" @@ -5611,7 +5625,7 @@ msgstr "సింగిల్ సైన్ ఆన్" msgid "Login" msgstr "ప్రవేశించు" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5619,103 +5633,114 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 #, fuzzy msgid "Storage" msgstr "అన్హొస్టెడ్ స్టోరేజ్ ని (పునరుద్ధరించండి)" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} బైట్లు" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} కిలోబైట్లు" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} మెగాబైట్లు" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} గిగాబైట్లు" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} టెరాబైట్లు" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy #| msgid "Mumble server is running" msgid "The device is already unmounting." msgstr "మంబ్లు సేవిక నడుస్తుంది" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "ఆపరేషన్ టైమవుట్ అయింది." -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "ఈ ఆపరేషన్ గాఢ నిద్రలో ఉన్న ఒక డిస్క్ ను మేల్కొలుపుతుంది." -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 #, fuzzy msgid "Attempting to unmount a device that is busy." msgstr "బిజీగా ఉన్న పరికరాన్ని అన్ మౌంట్ చేయడానికి ప్రయత్నిస్తోంది." -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "ఆపరేషన్ ఇప్పటికే రద్దు చేయబడింది." -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "అభ్యర్థించిన ఆపరేషన్ చేయడానికి అధికారం లేదు." -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy msgid "The device is already mounted." msgstr "ఈ సేవ ఇప్పటికే ఉంది" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 #, fuzzy #| msgid "Mumble server is not running" msgid "The device is not mounted." msgstr "మంబ్లు సేవిక నడవంలేదు" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "అభ్యర్థించిన ఎంపికను ఉపయోగించడానికి అనుమతి లేదు." -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "పరికరం మరొక వినియోగదారుచే మౌంట్ చేయబడింది." -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6197,11 +6222,19 @@ msgstr "టైనీ టైనీ RSS" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "నవీకరణ యూ.ఆర్.ఎల్" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Manual" msgid "FreedomBox Updated" @@ -6258,7 +6291,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6277,11 +6310,11 @@ msgstr "స్వయంచాలక నవీకరణలు ప్రారం msgid "Automatic upgrades disabled" msgstr "స్వయంచాలక నవీకరణలు నిలిపివేయబడ్డాయి" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "అప్గ్రేడ్ ప్రక్రియ ప్రారంభించబడింది." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "నవీకరణ ప్రారంభం విఫలమైంది." @@ -7219,6 +7252,16 @@ msgstr "%(percentage)s %% పూర్తి" msgid "Gujarati" msgstr "గుజరాతీ" +#, fuzzy +#~| msgid "Inactive" +#~ msgid "active" +#~ msgstr "క్రియాశీల" + +#, fuzzy +#~| msgid "Deleted all snapshots." +#~ msgid "Deleted all snapshots" +#~ msgstr "అన్ని స్నాప్షాట్స్ ని తొలగించండి." + #~ msgid "Enable application" #~ msgstr "అనువర్తనాన్ని చేతనించు" @@ -7957,9 +8000,6 @@ msgstr "గుజరాతీ" #~ "పొర్టల్స్ గుర్తున్నాయా? ఇది దానిలా కూడా మారగలదు. మీరు ఇంటెర్నెట్లో వినియోగించే అనేక సేవలు ఇప్పుడు మీ " #~ "వద్దనే ఉంటాయి మరియు మీ ఆధీనంలోనే ఉంటాయి!" -#~ msgid "System Configuration" -#~ msgstr "వ్యవస్థ రూపశిల్పం" - #, fuzzy #~| msgid "Here you can administrate the underlying system of your {box_name}." #~ msgid "" @@ -8205,9 +8245,6 @@ msgstr "గుజరాతీ" #~ msgid "Enable service discovery" #~ msgstr "ఆవిష్కరణ సేవను అమలుచెయ్యి" -#~ msgid "Network Time Server" -#~ msgstr "అల్లిక సేవిక సమయం" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "బిట్ టొర్రెంట్ (ప్రళయం)" diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po index 0c9283976..129eb6a0d 100644 --- a/plinth/locale/tr/LC_MESSAGES/django.po +++ b/plinth/locale/tr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2019-08-08 00:22+0000\n" "Last-Translator: Mesut Akcan \n" "Language-Team: Turkish %(service_name)s is running." msgid "Service {service_name} is running" msgstr "%(service_name)s servisi çalışmaktadır." -#: plinth/daemon.py:96 +#: plinth/daemon.py:111 #, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" msgstr "{kind} port {listen_address}:{port} dinleniyor" -#: plinth/daemon.py:99 +#: plinth/daemon.py:114 #, python-brace-format msgid "Listening on {kind} port {port}" msgstr "{kind} port {port} dinleniyor" -#: plinth/daemon.py:167 +#: plinth/daemon.py:182 #, python-brace-format msgid "Connect to {host}:{port}" msgstr "{host}:{port} konumuna bağlan" -#: plinth/daemon.py:169 +#: plinth/daemon.py:184 #, python-brace-format msgid "Cannot connect to {host}:{port}" msgstr "{host}:{port} konumuna bağlanılamadı" @@ -762,6 +762,7 @@ msgid "" msgstr "" #: plinth/modules/cockpit/__init__.py:59 plinth/modules/cockpit/manifest.py:12 +#: plinth/modules/performance/manifest.py:11 msgid "Cockpit" msgstr "Cockpit" @@ -792,7 +793,7 @@ msgstr "Genel Yapılandırma" #: plinth/modules/config/__init__.py:57 plinth/modules/dynamicdns/views.py:29 #: plinth/modules/names/templates/names.html:29 #: plinth/modules/names/templates/names.html:43 -#: plinth/modules/snapshot/views.py:26 +#: plinth/modules/snapshot/views.py:28 #: plinth/modules/tahoe/templates/tahoe-pre-setup.html:24 msgid "Configure" msgstr "Yapılandır" @@ -934,7 +935,7 @@ msgstr "" msgid "Coquelicot" msgstr "" -#: plinth/modules/coquelicot/__init__.py:47 plinth/modules/samba/__init__.py:63 +#: plinth/modules/coquelicot/__init__.py:47 msgid "File Sharing" msgstr "Dosya paylaşımı" @@ -1629,19 +1630,19 @@ msgstr "" msgid "Firewall" msgstr "Güvenlik Duvarı" -#: plinth/modules/firewall/components.py:118 +#: plinth/modules/firewall/components.py:124 #, fuzzy, python-brace-format #| msgid "Service %(service_name)s is not running." msgid "Port {name} ({details}) available for internal networks" msgstr "%(service_name)s servisi çalışmamaktadır." -#: plinth/modules/firewall/components.py:126 +#: plinth/modules/firewall/components.py:132 #, fuzzy, python-brace-format #| msgid "Service %(service_name)s is not running." msgid "Port {name} ({details}) available for external networks" msgstr "%(service_name)s servisi çalışmamaktadır." -#: plinth/modules/firewall/components.py:131 +#: plinth/modules/firewall/components.py:137 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" msgstr "" @@ -3811,7 +3812,7 @@ msgstr "Arayüz" #: plinth/modules/networks/templates/connection_show.html:95 #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:18 -#: plinth/modules/snapshot/templates/snapshot_manage.html:30 +#: plinth/modules/snapshot/templates/snapshot_manage.html:31 #: plinth/modules/snapshot/templates/snapshot_rollback.html:26 msgid "Description" msgstr "Açıklama" @@ -4598,6 +4599,17 @@ msgstr "" "SSH istemci kurulum talimatlarını okuyun" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Sistem Yapılandırması" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "Sistemi tekrar başlat ya da kapat." @@ -4962,6 +4974,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "Ağ Zaman Sunucusu" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5480,7 +5498,7 @@ msgstr "Kullanıcıyı Düzenle" msgid "Share deleted." msgstr "{name} silindi." -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 #, fuzzy #| msgid "" #| "Snapshots allows creating and managing filesystem snapshots. These can be " @@ -5495,7 +5513,7 @@ msgstr "" "verir. Bunlar, sisteme istenmeyen değişiklikler yapılması durumunda sistemin " "daha önce bilinen iyi bir duruma geri getirilmesini sağlar." -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5503,14 +5521,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "Depolama Anlıkları" @@ -5605,20 +5623,20 @@ msgid "Delete the following snapshots permanently?" msgstr "Bu anlıklar daimi olarak silinsin mi?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "Sayı" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "Tarih" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "Anlıkları Sil" @@ -5626,15 +5644,19 @@ msgstr "Anlıkları Sil" msgid "Create Snapshot" msgstr "Anlık Oluştur" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "Geri getir" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "etkin" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "#%(number)s sayılı anlığa geri getir" @@ -5665,54 +5687,48 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "#%(number)s sayılı anlığa geri al" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Storage Snapshots" msgid "Manage Snapshots" msgstr "Depolama Anlıkları" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "Anlık oluşturuldu." -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Timeline Snapshots configuration updated" msgid "Storage snapshots configuration updated" msgstr "Zaman Çizelgesi Anlıklarının yapılandırması güncellendi" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "Eylem hatası: {0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Deleted all snapshots." -msgid "Deleted all snapshots" -msgstr "Tüm anlıklar silindi." - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete all the snapshots" msgid "Deleted selected snapshots" msgstr "Tüm anlıkları sil" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "#{number} sayılı anlığa geri alındı." -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" "Geri alınmanın tamamlanması için sistemin yeniden başlatılması gereklidir." -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "Anlığa Geri Al" @@ -5783,7 +5799,7 @@ msgstr "Tekli Oturum Açma" msgid "Login" msgstr "Giriş" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5791,94 +5807,94 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "Depolama" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "{disk_size:.1f} bayt" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "{disk_size:.1f} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "{disk_size:.1f} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "{disk_size:.1f} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "{disk_size:.1f} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy #| msgid "repro service is running" msgid "The device is already unmounting." msgstr "repro servisi çalışmaktadır" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy #| msgid "This service already exists" msgid "The device is already mounted." msgstr "Bu servis zaten mevcuttur" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 #, fuzzy #| msgid "repro service is not running" msgid "The device is not mounted." msgstr "repro servisi çalışmamaktadır" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, fuzzy, no-python-format, python-brace-format #| msgid "" #| "Warning: Low space on system partition ({percent_used}% used, " @@ -5888,10 +5904,21 @@ msgstr "" "İkaz: sistem disk bölümünde düşük alan (%{percent_used} kullanıldı, " "{free_space} boş)." -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6414,11 +6441,19 @@ msgstr "Tiny Tiny RSS" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "Güncelle" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox Foundation" msgid "FreedomBox Updated" @@ -6485,7 +6520,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6504,11 +6539,11 @@ msgstr "Otomatik yükseltmeler etkinleştirildi" msgid "Automatic upgrades disabled" msgstr "Otomatik yükseltmeler devre dışı bırakıldı" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "Yükseltme süreci başlamıştır." -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "Yükseltmenin başlatılması başarısız oldu." @@ -7487,6 +7522,14 @@ msgstr "%(percentage)s%% tamamlandı" msgid "Gujarati" msgstr "" +#~ msgid "active" +#~ msgstr "etkin" + +#, fuzzy +#~| msgid "Deleted all snapshots." +#~ msgid "Deleted all snapshots" +#~ msgstr "Tüm anlıklar silindi." + #~ msgid "Enable application" #~ msgstr "Uygulamayı etkinleştir" @@ -8271,9 +8314,6 @@ msgstr "" #~ "Onlardan biri de olabiliriz. Web üzerinde kullandığınız servislerin " #~ "birçoğu yakında sizin evinizde ve sizin kontrolünüzde olabileceklerdir!" -#~ msgid "System Configuration" -#~ msgstr "Sistem Yapılandırması" - #~ msgid "" #~ "Here you can administrate the underlying system of your %(box_name)s." #~ msgstr "Burada %(box_name)s kutunuzun temel sistemini yönetebilirsiniz." @@ -8603,9 +8643,6 @@ msgstr "" #~ msgid "Enable service discovery" #~ msgstr "Servis keşfini etkinleştir" -#~ msgid "Network Time Server" -#~ msgstr "Ağ Zaman Sunucusu" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent (Deluge)" diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po index 61a06a161..f9cb438e4 100644 --- a/plinth/locale/uk/LC_MESSAGES/django.po +++ b/plinth/locale/uk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2019-01-04 17:06+0000\n" "Last-Translator: prolinux ukraine \n" "Language-Team: Ukrainian instructions" msgstr "" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "Конфігурація системи" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "" @@ -4341,6 +4353,10 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +msgid "Network File Storage" +msgstr "" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 msgid "Shares" @@ -4775,14 +4791,14 @@ msgstr "" msgid "Share deleted." msgstr "" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 msgid "" "Snapshots allows creating and managing btrfs file system snapshots. These " "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -4790,14 +4806,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" msgstr "" @@ -4876,20 +4892,20 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 msgid "Delete Snapshots" msgstr "" @@ -4897,15 +4913,19 @@ msgstr "" msgid "Create Snapshot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" +msgid "will be used at next boot" msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -4933,45 +4953,41 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 msgid "Manage Snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 msgid "Storage snapshots configuration updated" msgstr "" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "" -#: plinth/modules/snapshot/views.py:154 -msgid "Deleted all snapshots" -msgstr "" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 msgid "Deleted selected snapshots" msgstr "" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "" @@ -5032,7 +5048,7 @@ msgstr "" msgid "Login" msgstr "" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5040,96 +5056,107 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 msgid "Storage" msgstr "" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, python-brace-format msgid "{disk_size:.1f} bytes" msgstr "" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, python-brace-format msgid "{disk_size:.1f} KiB" msgstr "" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, python-brace-format msgid "{disk_size:.1f} MiB" msgstr "" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, python-brace-format msgid "{disk_size:.1f} GiB" msgstr "" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, python-brace-format msgid "{disk_size:.1f} TiB" msgstr "" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 msgid "The device is already unmounting." msgstr "" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 msgid "The device is already mounted." msgstr "" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 msgid "The device is not mounted." msgstr "" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Repository not found" @@ -5541,11 +5568,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -5597,7 +5632,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 msgid "Manual update" msgstr "" @@ -5614,11 +5649,11 @@ msgstr "" msgid "Automatic upgrades disabled" msgstr "" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "" @@ -6529,6 +6564,3 @@ msgstr "" #~ msgid "Currently only limited functionality is available." #~ msgstr "На даний час доступний лише обмежений функціонал." - -#~ msgid "System Configuration" -#~ msgstr "Конфігурація системи" diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po index a9df460df..e40750b79 100644 --- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 19:59-0400\n" +"POT-Creation-Date: 2020-05-18 18:36-0400\n" "PO-Revision-Date: 2019-09-13 05:23+0000\n" "Last-Translator: Anxin YI <2732146152@qq.com>\n" "Language-Team: Chinese (Simplified) 说明" +#: plinth/modules/performance/__init__.py:16 +#: plinth/modules/performance/__init__.py:45 +msgid "Performance" +msgstr "" + +#: plinth/modules/performance/__init__.py:46 +#, fuzzy +#| msgid "System Configuration" +msgid "System Monitoring" +msgstr "系统配置" + #: plinth/modules/power/__init__.py:16 msgid "Restart or shut down the system." msgstr "重新启动或关闭系统。" @@ -4820,6 +4832,12 @@ msgstr "" msgid "Samba" msgstr "" +#: plinth/modules/samba/__init__.py:63 +#, fuzzy +#| msgid "Network Time Server" +msgid "Network File Storage" +msgstr "网络时间服务器" + #: plinth/modules/samba/templates/samba.html:24 #: plinth/modules/samba/templates/samba.html:35 #, fuzzy @@ -5337,7 +5355,7 @@ msgstr "编辑用户" msgid "Share deleted." msgstr "{name} 已删除。" -#: plinth/modules/snapshot/__init__.py:23 +#: plinth/modules/snapshot/__init__.py:25 #, fuzzy #| msgid "" #| "Snapshots allows creating and managing filesystem snapshots. These can be " @@ -5351,7 +5369,7 @@ msgstr "" "快照可以允许创建并管理文件系统快照。这些可以用来回滚系统到前一个已知可用的状" "态,以防意外改变系统状态。" -#: plinth/modules/snapshot/__init__.py:27 +#: plinth/modules/snapshot/__init__.py:29 #, no-python-format msgid "" "Snapshots are taken periodically (called timeline snapshots) and also before " @@ -5359,14 +5377,14 @@ msgid "" "cleaned up according to the settings below." msgstr "" -#: plinth/modules/snapshot/__init__.py:30 +#: plinth/modules/snapshot/__init__.py:32 msgid "" "Snapshots currently work on btrfs file systems only and on the root " "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" -#: plinth/modules/snapshot/__init__.py:52 +#: plinth/modules/snapshot/__init__.py:54 #, fuzzy #| msgid "Create Snapshot" msgid "Storage Snapshots" @@ -5459,20 +5477,20 @@ msgid "Delete the following snapshots permanently?" msgstr "永久删除此快照?" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:16 -#: plinth/modules/snapshot/templates/snapshot_manage.html:28 +#: plinth/modules/snapshot/templates/snapshot_manage.html:29 #: plinth/modules/snapshot/templates/snapshot_rollback.html:24 msgid "Number" msgstr "编号" #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:17 -#: plinth/modules/snapshot/templates/snapshot_manage.html:29 +#: plinth/modules/snapshot/templates/snapshot_manage.html:30 #: plinth/modules/snapshot/templates/snapshot_rollback.html:25 msgid "Date" msgstr "日期" -#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:37 +#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:40 #: plinth/modules/snapshot/templates/snapshot_manage.html:22 -#: plinth/modules/snapshot/views.py:175 +#: plinth/modules/snapshot/views.py:189 #, fuzzy #| msgid "Delete Snapshot" msgid "Delete Snapshots" @@ -5482,15 +5500,19 @@ msgstr "删除快照" msgid "Create Snapshot" msgstr "创建快照" -#: plinth/modules/snapshot/templates/snapshot_manage.html:31 +#: plinth/modules/snapshot/templates/snapshot_manage.html:32 msgid "Rollback" msgstr "回滚" #: plinth/modules/snapshot/templates/snapshot_manage.html:42 -msgid "active" -msgstr "激活" +msgid "will be used at next boot" +msgstr "" -#: plinth/modules/snapshot/templates/snapshot_manage.html:51 +#: plinth/modules/snapshot/templates/snapshot_manage.html:47 +msgid "in use" +msgstr "" + +#: plinth/modules/snapshot/templates/snapshot_manage.html:56 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "回滚到快照 #%(number)s" @@ -5520,53 +5542,47 @@ msgstr "" msgid "Rollback to Snapshot #%(number)s" msgstr "回滚到快照 #%(number)s" -#: plinth/modules/snapshot/views.py:30 +#: plinth/modules/snapshot/views.py:32 #, fuzzy #| msgid "Create Snapshot" msgid "Manage Snapshots" msgstr "创建快照" -#: plinth/modules/snapshot/views.py:79 +#: plinth/modules/snapshot/views.py:81 msgid "Created snapshot." msgstr "创建快照。" -#: plinth/modules/snapshot/views.py:135 +#: plinth/modules/snapshot/views.py:144 #, fuzzy #| msgid "Access rights configuration updated" msgid "Storage snapshots configuration updated" msgstr "访问权配置已更新" -#: plinth/modules/snapshot/views.py:139 plinth/modules/tor/views.py:59 +#: plinth/modules/snapshot/views.py:148 plinth/modules/tor/views.py:59 #, python-brace-format msgid "Action error: {0} [{1}] [{2}]" msgstr "操作错误:{0} [{1}] [{2}]" -#: plinth/modules/snapshot/views.py:154 -#, fuzzy -#| msgid "Delete Snapshot" -msgid "Deleted all snapshots" -msgstr "删除快照" - -#: plinth/modules/snapshot/views.py:158 +#: plinth/modules/snapshot/views.py:176 #, fuzzy #| msgid "Delete Snapshot" msgid "Deleted selected snapshots" msgstr "删除快照" -#: plinth/modules/snapshot/views.py:163 +#: plinth/modules/snapshot/views.py:181 msgid "Snapshot is currently in use. Please try again later." msgstr "" -#: plinth/modules/snapshot/views.py:186 +#: plinth/modules/snapshot/views.py:200 #, python-brace-format msgid "Rolled back to snapshot #{number}." msgstr "回滚到快照 #{number}。" -#: plinth/modules/snapshot/views.py:189 +#: plinth/modules/snapshot/views.py:203 msgid "The system must be restarted to complete the rollback." msgstr "系统需要重启以完成完全回滚。" -#: plinth/modules/snapshot/views.py:201 +#: plinth/modules/snapshot/views.py:215 msgid "Rollback to Snapshot" msgstr "回滚到快照" @@ -5635,7 +5651,7 @@ msgstr "" msgid "Login" msgstr "登录" -#: plinth/modules/storage/__init__.py:30 +#: plinth/modules/storage/__init__.py:29 #, python-brace-format msgid "" "This module allows you to manage storage media attached to your {box_name}. " @@ -5643,109 +5659,120 @@ msgid "" "media, expand the root partition etc." msgstr "" -#: plinth/modules/storage/__init__.py:54 plinth/modules/storage/__init__.py:320 +#: plinth/modules/storage/__init__.py:53 plinth/modules/storage/__init__.py:319 #, fuzzy #| msgid "reStore" msgid "Storage" msgstr "reStore" -#: plinth/modules/storage/__init__.py:213 +#: plinth/modules/storage/__init__.py:212 #, fuzzy, python-brace-format #| msgid "{disk_size} bytes" msgid "{disk_size:.1f} bytes" msgstr "{disk_size} bytes" -#: plinth/modules/storage/__init__.py:217 +#: plinth/modules/storage/__init__.py:216 #, fuzzy, python-brace-format #| msgid "{disk_size} KiB" msgid "{disk_size:.1f} KiB" msgstr "{disk_size} KiB" -#: plinth/modules/storage/__init__.py:221 +#: plinth/modules/storage/__init__.py:220 #, fuzzy, python-brace-format #| msgid "{disk_size} MiB" msgid "{disk_size:.1f} MiB" msgstr "{disk_size} MiB" -#: plinth/modules/storage/__init__.py:225 +#: plinth/modules/storage/__init__.py:224 #, fuzzy, python-brace-format #| msgid "{disk_size} GiB" msgid "{disk_size:.1f} GiB" msgstr "{disk_size} GiB" -#: plinth/modules/storage/__init__.py:228 +#: plinth/modules/storage/__init__.py:227 #, fuzzy, python-brace-format #| msgid "{disk_size} TiB" msgid "{disk_size:.1f} TiB" msgstr "{disk_size} TiB" -#: plinth/modules/storage/__init__.py:235 +#: plinth/modules/storage/__init__.py:234 msgid "The operation failed." msgstr "" -#: plinth/modules/storage/__init__.py:237 +#: plinth/modules/storage/__init__.py:236 msgid "The operation was cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:239 +#: plinth/modules/storage/__init__.py:238 #, fuzzy #| msgid "repro service is running" msgid "The device is already unmounting." msgstr "repro 服务正在运行" -#: plinth/modules/storage/__init__.py:241 +#: plinth/modules/storage/__init__.py:240 msgid "The operation is not supported due to missing driver/tool support." msgstr "" -#: plinth/modules/storage/__init__.py:244 +#: plinth/modules/storage/__init__.py:243 msgid "The operation timed out." msgstr "" -#: plinth/modules/storage/__init__.py:246 +#: plinth/modules/storage/__init__.py:245 msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "" -#: plinth/modules/storage/__init__.py:249 +#: plinth/modules/storage/__init__.py:248 msgid "Attempting to unmount a device that is busy." msgstr "" -#: plinth/modules/storage/__init__.py:251 +#: plinth/modules/storage/__init__.py:250 msgid "The operation has already been cancelled." msgstr "" -#: plinth/modules/storage/__init__.py:257 +#: plinth/modules/storage/__init__.py:256 msgid "Not authorized to perform the requested operation." msgstr "" -#: plinth/modules/storage/__init__.py:259 +#: plinth/modules/storage/__init__.py:258 #, fuzzy #| msgid "This service already exists" msgid "The device is already mounted." msgstr "此服务已存在" -#: plinth/modules/storage/__init__.py:261 +#: plinth/modules/storage/__init__.py:260 #, fuzzy #| msgid "repro service is not running" msgid "The device is not mounted." msgstr "repro 服务未运行" -#: plinth/modules/storage/__init__.py:264 +#: plinth/modules/storage/__init__.py:263 msgid "Not permitted to use the requested option." msgstr "" -#: plinth/modules/storage/__init__.py:267 +#: plinth/modules/storage/__init__.py:266 msgid "The device is mounted by another user." msgstr "" -#: plinth/modules/storage/__init__.py:315 +#: plinth/modules/storage/__init__.py:314 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." msgstr "" -#: plinth/modules/storage/__init__.py:317 +#: plinth/modules/storage/__init__.py:316 msgid "Low disk space" msgstr "" +#: plinth/modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: plinth/modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + #: plinth/modules/storage/forms.py:63 #, fuzzy #| msgid "Invalid hostname" @@ -6216,11 +6243,19 @@ msgstr "" msgid "Check for and apply the latest software and security updates." msgstr "" -#: plinth/modules/upgrades/__init__.py:40 plinth/templates/setup.html:74 +#: plinth/modules/upgrades/__init__.py:24 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: plinth/modules/upgrades/__init__.py:45 plinth/templates/setup.html:74 msgid "Update" msgstr "更新" -#: plinth/modules/upgrades/__init__.py:78 +#: plinth/modules/upgrades/__init__.py:83 #, fuzzy #| msgid "FreedomBox" msgid "FreedomBox Updated" @@ -6286,7 +6321,7 @@ msgstr "" #: plinth/modules/upgrades/templates/upgrades_configure.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:12 -#: plinth/modules/upgrades/views.py:85 +#: plinth/modules/upgrades/views.py:76 #, fuzzy #| msgid "Last update" msgid "Manual update" @@ -6305,11 +6340,11 @@ msgstr "已启用自动升级" msgid "Automatic upgrades disabled" msgstr "已禁用自动升级" -#: plinth/modules/upgrades/views.py:79 +#: plinth/modules/upgrades/views.py:70 msgid "Upgrade process started." msgstr "升级过程开始。" -#: plinth/modules/upgrades/views.py:82 +#: plinth/modules/upgrades/views.py:73 msgid "Starting upgrade failed." msgstr "开始升级失败。" @@ -7308,6 +7343,14 @@ msgstr "已完成 %(percentage)s%%" msgid "Gujarati" msgstr "古吉拉特语" +#~ msgid "active" +#~ msgstr "激活" + +#, fuzzy +#~| msgid "Delete Snapshot" +#~ msgid "Deleted all snapshots" +#~ msgstr "删除快照" + #~ msgid "Enable application" #~ msgstr "启用应用程序" @@ -7859,9 +7902,6 @@ msgstr "古吉拉特语" #~ "点。 还记得门户网站吗?我们也可以是那些之一。 您在 web 上使用的服务和网站" #~ "上很快都会在你控制之下!" -#~ msgid "System Configuration" -#~ msgstr "系统配置" - #, fuzzy #~| msgid "Here you can administrate the underlying system of your {box_name}." #~ msgid "" @@ -8161,9 +8201,6 @@ msgstr "古吉拉特语" #~ msgid "Enable service discovery" #~ msgstr "启用服务发现" -#~ msgid "Network Time Server" -#~ msgstr "网络时间服务器" - #~ msgid "BitTorrent (Deluge)" #~ msgstr "BitTorrent 下载(Deluge)" From eac1256b4b4454774b36b1c74e1a3bc6dd8a2939 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 18 May 2020 19:42:28 -0400 Subject: [PATCH 39/40] doc: Fetch latest manual Signed-off-by: James Valleroy --- doc/manual/en/Apache_userdir.raw.xml | 2 +- doc/manual/en/Backups.raw.xml | 2 +- doc/manual/en/Cockpit.raw.xml | 2 +- doc/manual/en/Configure.raw.xml | 2 +- doc/manual/en/Coquelicot.raw.xml | 2 +- doc/manual/en/Coturn.raw.xml | 4 + doc/manual/en/DateTime.raw.xml | 2 +- doc/manual/en/Deluge.raw.xml | 2 +- doc/manual/en/Diagnostics.raw.xml | 2 +- doc/manual/en/DynamicDNS.raw.xml | 2 +- doc/manual/en/Firewall.raw.xml | 2 +- doc/manual/en/GitWeb.raw.xml | 2 +- doc/manual/en/I2P.raw.xml | 2 +- doc/manual/en/Ikiwiki.raw.xml | 2 +- doc/manual/en/Infinoted.raw.xml | 2 +- doc/manual/en/LetsEncrypt.raw.xml | 2 +- doc/manual/en/MLDonkey.raw.xml | 2 +- doc/manual/en/MatrixSynapse.raw.xml | 2 +- doc/manual/en/MediaWiki.raw.xml | 2 +- doc/manual/en/Minetest.raw.xml | 2 +- doc/manual/en/MiniDLNA.raw.xml | 2 +- doc/manual/en/Monkeysphere.raw.xml | 2 +- doc/manual/en/Mumble.raw.xml | 2 +- doc/manual/en/NameServices.raw.xml | 2 +- doc/manual/en/Networks.raw.xml | 2 +- doc/manual/en/OpenVPN.raw.xml | 2 +- doc/manual/en/PageKite.raw.xml | 2 +- doc/manual/en/Performance.raw.xml | 2 +- doc/manual/en/Power.raw.xml | 2 +- doc/manual/en/Privoxy.raw.xml | 2 +- doc/manual/en/Quassel.raw.xml | 2 +- doc/manual/en/Radicale.raw.xml | 4 +- doc/manual/en/Repro.raw.xml | 2 +- doc/manual/en/Roundcube.raw.xml | 2 +- doc/manual/en/Samba.raw.xml | 2 +- doc/manual/en/Searx.raw.xml | 2 +- doc/manual/en/SecureShell.raw.xml | 2 +- doc/manual/en/Security.raw.xml | 2 +- doc/manual/en/ServiceDiscovery.raw.xml | 2 +- doc/manual/en/Shadowsocks.raw.xml | 2 +- doc/manual/en/Snapshots.raw.xml | 2 +- doc/manual/en/Storage.raw.xml | 2 +- doc/manual/en/Syncthing.raw.xml | 2 +- doc/manual/en/TinyTinyRSS.raw.xml | 2 +- doc/manual/en/Tor.raw.xml | 2 +- doc/manual/en/Transmission.raw.xml | 2 +- doc/manual/en/Upgrades.raw.xml | 2 +- doc/manual/en/Users.raw.xml | 2 +- doc/manual/en/ejabberd.raw.xml | 2 +- doc/manual/en/freedombox-manual.raw.xml | 215 +++++++++++-- .../images/Quassel_PortForwarding_en_v01.png | Bin 0 -> 45458 bytes doc/manual/en/images/performance-one-week.png | Bin 0 -> 45838 bytes doc/manual/es/Apache_userdir.raw.xml | 2 +- doc/manual/es/Backups.raw.xml | 2 +- doc/manual/es/Cockpit.raw.xml | 2 +- doc/manual/es/Configure.raw.xml | 2 +- doc/manual/es/Coquelicot.raw.xml | 2 +- doc/manual/es/Coturn.raw.xml | 4 + doc/manual/es/DateTime.raw.xml | 2 +- doc/manual/es/Deluge.raw.xml | 2 +- doc/manual/es/Diagnostics.raw.xml | 2 +- doc/manual/es/DynamicDNS.raw.xml | 2 +- doc/manual/es/Firewall.raw.xml | 4 +- doc/manual/es/GitWeb.raw.xml | 2 +- doc/manual/es/I2P.raw.xml | 2 +- doc/manual/es/Ikiwiki.raw.xml | 2 +- doc/manual/es/Infinoted.raw.xml | 2 +- doc/manual/es/LetsEncrypt.raw.xml | 2 +- doc/manual/es/MLDonkey.raw.xml | 2 +- doc/manual/es/MatrixSynapse.raw.xml | 2 +- doc/manual/es/MediaWiki.raw.xml | 2 +- doc/manual/es/Minetest.raw.xml | 2 +- doc/manual/es/MiniDLNA.raw.xml | 2 +- doc/manual/es/Monkeysphere.raw.xml | 2 +- doc/manual/es/Mumble.raw.xml | 2 +- doc/manual/es/NameServices.raw.xml | 2 +- doc/manual/es/Networks.raw.xml | 2 +- doc/manual/es/OpenVPN.raw.xml | 2 +- doc/manual/es/PageKite.raw.xml | 2 +- doc/manual/es/Power.raw.xml | 2 +- doc/manual/es/Privoxy.raw.xml | 2 +- doc/manual/es/Quassel.raw.xml | 2 +- doc/manual/es/Radicale.raw.xml | 4 +- doc/manual/es/Repro.raw.xml | 2 +- doc/manual/es/Roundcube.raw.xml | 2 +- doc/manual/es/Samba.raw.xml | 2 +- doc/manual/es/Searx.raw.xml | 2 +- doc/manual/es/SecureShell.raw.xml | 2 +- doc/manual/es/Security.raw.xml | 2 +- doc/manual/es/ServiceDiscovery.raw.xml | 2 +- doc/manual/es/Shadowsocks.raw.xml | 2 +- doc/manual/es/Snapshots.raw.xml | 2 +- doc/manual/es/Storage.raw.xml | 2 +- doc/manual/es/Syncthing.raw.xml | 2 +- doc/manual/es/TinyTinyRSS.raw.xml | 2 +- doc/manual/es/Tor.raw.xml | 2 +- doc/manual/es/Transmission.raw.xml | 2 +- doc/manual/es/Upgrades.raw.xml | 2 +- doc/manual/es/Users.raw.xml | 2 +- doc/manual/es/ejabberd.raw.xml | 2 +- doc/manual/es/freedombox-manual.raw.xml | 293 ++++++++++++++---- .../es/images/Quassel_Installation_es_v01.png | Bin 0 -> 74560 bytes .../images/Quassel_PortForwarding_es_v01.png | Bin 0 -> 45458 bytes ...uassel-client-1-connect-to-core_es_v01.png | Bin 0 -> 59138 bytes ...uassel-client-10-setup-identity_es_v01.png | Bin 0 -> 67502 bytes ...ent-11-setup-network-connection_es_v02.png | Bin 0 -> 77798 bytes .../quassel-client-12-server-info_es_v01.png | Bin 0 -> 58294 bytes ...assel-client-13-server-info-ssl_es_v01.png | Bin 0 -> 61612 bytes ...ent-14-setup-network-connection_es_v01.png | Bin 0 -> 58947 bytes .../quassel-client-15-quassel-main_es_v01.png | Bin 0 -> 311999 bytes ...assel-client-2-add-core-account_es_v01.png | Bin 0 -> 120295 bytes ...uassel-client-3-connect-to-core_es_v01.png | Bin 0 -> 67173 bytes ...4-untrusted-security-certficate_es_v01.png | Bin 0 -> 98602 bytes ...-untrusted-security-certificate_es_v01.png | Bin 0 -> 47963 bytes ...ssel-client-7-create-admin-user_es_v01.png | Bin 0 -> 153981 bytes ...client-8-select-storage-backend_es_v01.png | Bin 0 -> 147108 bytes ...quassel-client-9-welcome-wizard_es_v01.png | Bin 0 -> 94002 bytes 117 files changed, 531 insertions(+), 181 deletions(-) create mode 100644 doc/manual/en/Coturn.raw.xml create mode 100644 doc/manual/en/images/Quassel_PortForwarding_en_v01.png create mode 100644 doc/manual/en/images/performance-one-week.png create mode 100644 doc/manual/es/Coturn.raw.xml create mode 100644 doc/manual/es/images/Quassel_Installation_es_v01.png create mode 100644 doc/manual/es/images/Quassel_PortForwarding_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-1-connect-to-core_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-10-setup-identity_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-11-setup-network-connection_es_v02.png create mode 100644 doc/manual/es/images/quassel-client-12-server-info_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-13-server-info-ssl_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-14-setup-network-connection_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-15-quassel-main_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-2-add-core-account_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-3-connect-to-core_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-4-untrusted-security-certficate_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-5-untrusted-security-certificate_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-7-create-admin-user_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-8-select-storage-backend_es_v01.png create mode 100644 doc/manual/es/images/quassel-client-9-welcome-wizard_es_v01.png diff --git a/doc/manual/en/Apache_userdir.raw.xml b/doc/manual/en/Apache_userdir.raw.xml index 56d1832f2..0ac0f6dc3 100644 --- a/doc/manual/en/Apache_userdir.raw.xml +++ b/doc/manual/en/Apache_userdir.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Apache_userdir62020-02-26 22:51:55JamesValleroyrephrase52020-02-26 22:50:33JamesValleroyPlinth -> FreedomBox42020-02-26 22:49:27JamesValleroysimply wording32019-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 FreedomBox
Using User websitesThe module is always enabled and offers no configuration from the FreedomBox web interface. There is no configuration or status page shown for this module in the FreedomBox web interface. To serve documents, place the files in the designated directory in a FreedomBox 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Apache_userdir62020-02-26 22:51:55JamesValleroyrephrase52020-02-26 22:50:33JamesValleroyPlinth -> FreedomBox42020-02-26 22:49:27JamesValleroysimply wording32019-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 FreedomBox
Using User websitesThe module is always enabled and offers no configuration from the FreedomBox web interface. There is no configuration or status page shown for this module in the FreedomBox web interface. To serve documents, place the files in the designated directory in a FreedomBox 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Backups.raw.xml b/doc/manual/en/Backups.raw.xml index 14c743d2d..b308df17a 100644 --- a/doc/manual/en/Backups.raw.xml +++ b/doc/manual/en/Backups.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Backups312019-11-11 17:07:05JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service302019-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 onion 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Backups312019-11-11 17:07:05JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service302019-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 onion 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Cockpit.raw.xml b/doc/manual/en/Cockpit.raw.xml index a37116b61..e5a9d5570 100644 --- a/doc/manual/en/Cockpit.raw.xml +++ b/doc/manual/en/Cockpit.raw.xml @@ -1,3 +1,3 @@
FreedomBox/Manual/Cockpit62019-11-14 18:04:05fioddorwiki link to wiki page52019-11-11 16:57:11JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service42019-08-20 18:22:51SunilMohanAdapaUpdate information about .local domain and fix URLs32019-07-19 00:08:47SunilMohanAdapaAdd informatio about Cockpit needing a proper domain name22019-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. Cockpit is only usable when you have proper domain name setup for your FreedomBox and you use that domain name to access Cockpit. See the Troubleshooting section for more information. 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
TroubleshootingCockpit requires a domain name to be properly setup on your FreedomBox and will only work when you access it using a URL with that domain name. Cockpit will not work when using IP address in the URL. Using freedombox.local as the domain name also does not work. For example, the following URLs will not work: Starting with FreedomBox version 19.15, using .local domain works. You can access Cockpit using the URL . The .local domain is based on your hostname. If your hostname is mybox, your .local domain name will be mybox.local and the Cockpit URL will be . To properly access Cockpit, use the domain name configured for your FreedomBox.Cockpit will also work well when using a Tor Onion Service. The following URLs will work: The reason for this behaviour is that Cockpit uses WebSockets to connect to the backend server. Cross site requests for WebSockets must be prevented for security reasons. To implement this, Cockpit maintains a list of all domains from which requests are allowed. FreedomBox automatically configures this list whenever you add or remove a domain. However, since we can't rely on IP addresses, they are not added by FreedomBox to this domain list. You can see the current list of allowed domains, as managed by FreedomBox, in /etc/cockpit/cockpit.conf. You may edit this, but do so only if you understand web security consequences of this. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +https://exampletorhs.onion/_cockpit/]]>The reason for this behaviour is that Cockpit uses WebSockets to connect to the backend server. Cross site requests for WebSockets must be prevented for security reasons. To implement this, Cockpit maintains a list of all domains from which requests are allowed. FreedomBox automatically configures this list whenever you add or remove a domain. However, since we can't rely on IP addresses, they are not added by FreedomBox to this domain list. You can see the current list of allowed domains, as managed by FreedomBox, in /etc/cockpit/cockpit.conf. You may edit this, but do so only if you understand web security consequences of this. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Configure.raw.xml b/doc/manual/en/Configure.raw.xml index e77d0d920..0dc6b2282 100644 --- a/doc/manual/en/Configure.raw.xml +++ b/doc/manual/en/Configure.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Coquelicot.raw.xml b/doc/manual/en/Coquelicot.raw.xml index 0851bf7db..a0f08b4f8 100644 --- a/doc/manual/en/Coquelicot.raw.xml +++ b/doc/manual/en/Coquelicot.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Coquelicot82020-04-12 16:01:36JamesValleroyadd links back to top level pages72019-09-11 09:45:09fioddorCategory Deduplicated62018-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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Coquelicot82020-04-12 16:01:36JamesValleroyadd links back to top level pages72019-09-11 09:45:09fioddorCategory Deduplicated62018-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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Coturn.raw.xml b/doc/manual/en/Coturn.raw.xml new file mode 100644 index 000000000..bbdd59ade --- /dev/null +++ b/doc/manual/en/Coturn.raw.xml @@ -0,0 +1,4 @@ +
FreedomBox/Manual/Coturn82020-05-18 23:24:50JamesValleroyremove duplicate word "server"72020-05-18 23:23:07JamesValleroyspelling "known"62020-05-18 23:22:26JamesValleroyadd common acronym (NAT)52020-05-18 23:21:45JamesValleroyspelling42020-05-10 10:33:22fioddorStress the benefits of direct streaming.32020-05-08 19:15:06Drahtseiltiny typo in synapes corrected22020-05-06 06:04:11SunilMohanAdapaUpdate title, include footer12020-05-06 05:59:44SunilMohanAdapaAdd manual page for new app Coturn
VoIP Helper (Coturn)Coturn is a server to facilitate audio/video calls and conferences by providing an implementation of TURN and STUN protocols. WebRTC, SIP and other communication servers can use it to establish a call between parties who are otherwise unable connect to each other. It is not meant to be used directly by users. Servers such as Matrix Synapse need to be configured with the details provided on the Coturn app page. Apart from Matrix Synapse, Jitsi, Ejabberd, Nextcloud Talk, etc. can use Coturn server for audio/video calls and conferences. There is no need for the servers to be running on the same machine as FreedomBox and external servers can use Coturn running on FreedomBox. Coturn is available in FreedomBox since version 20.8 as an advanced app. This means that you need to check "Show advanced apps and features" in "General Configuration" to see Coturn icon in the "Apps" section.
How it worksWhen making an audio/video call, it is best to route the media streams between two peers directly. This will give the best possible latency (better signal quality) and avoid depending on a centralized server (privacy). It scales well because a simple chat server can host thousands of calls without involving the server in any way other than to setup the call. However, this approach does not work most of the time to due to how networks are configured. Most peers on the network do not have a unique IP address allocated to them. They work hidden behind a network device that performs "Network Address Translation" (NAT) for them. This means that the two peers have no way of reaching each other. To address this problem, a simple technique known as STUN was introduced. With the help of a third party STUN server, the peers can trick the NAT devices, to carry the traffic between the two peers. Unfortunately, this trick only works about 80% of the time. So, if STUN fails, peers have no choice but to route their traffic through an intermediary server called TURN server. All the mechanism of trying out STUN first and then falling back to TURN is described in a protocol known as ICE. On FreedomBox, Coturn provides both STUN and TURN servers. Both services are provided over TCP as well as UDP. They are provided on unencrypted as well as encrypted channels (with have a higher chance of success). Since STUN servers are very inexpensive and don't consume a lot of server resources, there is no authentication needed to use them. TURN servers on the other hand need authentication. This authentication is highly simplified and does not require maintaining a database of users. A server such as matrix-synapse which is about to setup an audio/video call between two peers will generate a username and password using a shared secret. When the peers use the TURN server, they will be validated using these credentials because the TURN server also knows the same secret. In summary, a communication server needs to know the URLs of the STUN/TURN servers along with a shared authentication secret for TURN. After that, during audio/video call setup, they will correctly guide the peers to use STUN/TURN servers. Coturn app in FreedomBox provides exactly this information. This information can be used to configure a communication server irrespective of whether it is running on the same FreedomBox or on another server.
Configuring Matrix SynapseMatrix Synapse server in FreedomBox can be configured to use Coturn TURN/STUN server. In future, when you install Matrix Synapse, FreedomBox will automatically install Coturn and configure its parameters into Matrix Synapse. To configure Matrix Synapse, edit the file /etc/matrix-synapse/homeserver.yaml with the following lines: And then restart matrix-synapse server by disabling and re-enabling the matrix-synapse 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/DateTime.raw.xml b/doc/manual/en/DateTime.raw.xml index f6016bb7d..a7f3cad8f 100644 --- a/doc/manual/en/DateTime.raw.xml +++ b/doc/manual/en/DateTime.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/DateTime32020-03-30 00:08:09JamesValleroytoo many #s in front of END_INCLUDE22017-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/DateTime32020-03-30 00:08:09JamesValleroytoo many #s in front of END_INCLUDE22017-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Deluge.raw.xml b/doc/manual/en/Deluge.raw.xml index 2e6453419..ca1c70f80 100644 --- a/doc/manual/en/Deluge.raw.xml +++ b/doc/manual/en/Deluge.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Diagnostics.raw.xml b/doc/manual/en/Diagnostics.raw.xml index c007f3c0e..705c9a44d 100644 --- a/doc/manual/en/Diagnostics.raw.xml +++ b/doc/manual/en/Diagnostics.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/DynamicDNS.raw.xml b/doc/manual/en/DynamicDNS.raw.xml index a6615d562..2b81854c6 100644 --- a/doc/manual/en/DynamicDNS.raw.xml +++ b/doc/manual/en/DynamicDNS.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/DynamicDNS162019-07-31 13:18:03NikolasNybyfix typo152019-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 known as the static IP address. Many Internet service providers don't provide home users with a static IP address or they charge more providing a static IP address. Instead they provide the home user with an IP address that changes every time the user connects to the Internet. Clients wishing to contact the server will have difficulty reaching the server. Dynamic DNS service providers assist in working around a problem. First they provide you with a domain name, such as 'myhost.example.org'. Then they associate your IP address, whenever it changes, with this domain name. Then anyone intending to reach the server will be to contact the server using the domain name 'myhost.example.org' which always points to the latest IP address of the server. For this to work, every time you connect to the Internet, you will have to tell your Dynamic DNS provider what your current IP address is. Hence you need special software on your server to perform this operation. The Dynamic DNS function in FreedomBox will allow users without a static public IP address to push the current public IP address to a Dynamic DNS Server. This allows you to expose services on FreedomBox, such as ownCloud, to the Internet.
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/DynamicDNS162019-07-31 13:18:03NikolasNybyfix typo152019-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 known as the static IP address. Many Internet service providers don't provide home users with a static IP address or they charge more providing a static IP address. Instead they provide the home user with an IP address that changes every time the user connects to the Internet. Clients wishing to contact the server will have difficulty reaching the server. Dynamic DNS service providers assist in working around a problem. First they provide you with a domain name, such as 'myhost.example.org'. Then they associate your IP address, whenever it changes, with this domain name. Then anyone intending to reach the server will be to contact the server using the domain name 'myhost.example.org' which always points to the latest IP address of the server. For this to work, every time you connect to the Internet, you will have to tell your Dynamic DNS provider what your current IP address is. Hence you need special software on your server to perform this operation. The Dynamic DNS function in FreedomBox will allow users without a static public IP address to push the current public IP address to a Dynamic DNS Server. This allows you to expose services on FreedomBox, such as ownCloud, to the Internet.
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Firewall.raw.xml b/doc/manual/en/Firewall.raw.xml index 07a3e1527..425b11b24 100644 --- a/doc/manual/en/Firewall.raw.xml +++ b/doc/manual/en/Firewall.raw.xml @@ -10,4 +10,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: 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +firewall-cmd --permanent --zone=internal --add-interface=eth0]]>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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/GitWeb.raw.xml b/doc/manual/en/GitWeb.raw.xml index dd0457f70..7501971c2 100644 --- a/doc/manual/en/GitWeb.raw.xml +++ b/doc/manual/en/GitWeb.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/GitWeb72020-01-29 06:48:44fioddorInhibit autolink and stress to avoid using admin accounts.62020-01-27 12:42:43VeikoAasa52020-01-27 09:50:21VeikoAasa42019-12-16 23:25:10JamesValleroyadd standard manual page footer32019-12-15 19:38:46DrahtseilCopied description from plinth, managing, access22019-12-14 13:44:36JosephNuthalapatiAdd section: HTTP basic auth12019-12-14 13:14:15JosephNuthalapatiCreate GitWeb page with a stub.
Simple Git Hosting (GitWeb)Git is a distributed version-control system for tracking changes in source code during software development. GitWeb provides a web interface to Git repositories. You can browse history and content of source code, use search to find relevant commits and code. You can also clone repositories and upload code changes with a command-line Git client or with multiple available graphical clients. And you can share your code with people around the world. To learn more on how to use Git visit Git tutorial. Available since version: 19.19
Managing the repositoriesAfter installation of GitWeb, a new repository can be created. It can be marked as private to limit access.
AccessGitWeb can be accessed after installation e.g. by the web client through
HTTP basic authGitWeb on FreedomBox currently supports HTTP remotes only. To avoid having to enter the password each time you pull/push to the repository, you can edit your remote to include the credentials. Example: Your username and password will be encrypted. Someone monitoring the network traffic will notice the domain name only. Note: If using this method, your password will be stored in plain text in the local repository's .git/config file. For this reason, you should create a FreedomBox user who has only access to the gitweb and never use an admin account.
MirroringThough your repositories are primarily hosted on your own FreedomBox, you can configure a repository on another Git hosting system like GitLab as a mirror. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/GitWeb72020-01-29 06:48:44fioddorInhibit autolink and stress to avoid using admin accounts.62020-01-27 12:42:43VeikoAasa52020-01-27 09:50:21VeikoAasa42019-12-16 23:25:10JamesValleroyadd standard manual page footer32019-12-15 19:38:46DrahtseilCopied description from plinth, managing, access22019-12-14 13:44:36JosephNuthalapatiAdd section: HTTP basic auth12019-12-14 13:14:15JosephNuthalapatiCreate GitWeb page with a stub.
Simple Git Hosting (GitWeb)Git is a distributed version-control system for tracking changes in source code during software development. GitWeb provides a web interface to Git repositories. You can browse history and content of source code, use search to find relevant commits and code. You can also clone repositories and upload code changes with a command-line Git client or with multiple available graphical clients. And you can share your code with people around the world. To learn more on how to use Git visit Git tutorial. Available since version: 19.19
Managing the repositoriesAfter installation of GitWeb, a new repository can be created. It can be marked as private to limit access.
AccessGitWeb can be accessed after installation e.g. by the web client through
HTTP basic authGitWeb on FreedomBox currently supports HTTP remotes only. To avoid having to enter the password each time you pull/push to the repository, you can edit your remote to include the credentials. Example: Your username and password will be encrypted. Someone monitoring the network traffic will notice the domain name only. Note: If using this method, your password will be stored in plain text in the local repository's .git/config file. For this reason, you should create a FreedomBox user who has only access to the gitweb and never use an admin account.
MirroringThough your repositories are primarily hosted on your own FreedomBox, you can configure a repository on another Git hosting system like GitLab as a mirror. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/I2P.raw.xml b/doc/manual/en/I2P.raw.xml index 9e2791b74..8497a773f 100644 --- a/doc/manual/en/I2P.raw.xml +++ b/doc/manual/en/I2P.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/I2P12019-04-30 00:40:36SunilMohanAdapaInitial page for I2P application in FreedomBox
Anonymity Network (I2P)
About I2PThe Invisible Internet Project is an anonymous network layer intended to protect communication from censorship and surveillance. I2P provides anonymity by sending encrypted traffic through a volunteer-run network distributed around the world. Find more information about I2P on their project homepage.
Services OfferedThe following services are offered via I2P in FreedomBox by default. Additional services may be available when enabled from I2P router console that can be launched from FreedomBox web interface. Anonymous Internet browsing: I2P can be used to browse Internet anonymously. For this, configure your browser (preferable a Tor Browser) to connect to I2P proxy. This can be done by setting HTTP proxy and HTTPS proxy to freedombox.local (or your FreedomBox's local IP address) and ports to 4444 and 4445 respectively. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Reaching eepsites: I2P network can host websites that can remain anonymous. These are called eepsites and end with .i2p in their domain name. For example, is the website for I2P project in the I2P network. eepsites are not reachable using a regular browser via regular Internet connection. To browse eepsites, your browser needs to be configured to use HTTP, HTTPS proxies as described above. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Anonymous torrent downloads: I2PSnark, an application for anonymously downloading and sharing files over the BitTorrent network is available in I2P and enabled by default in FreedomBox. This application is controlled via a web interface that can be launched from 'Anonymous torrents' section of I2P app in FreedomBox web interface or from the I2P router console interface. Only logged-in users belonging to 'Manage I2P application' group can use this service. IRC network: I2P network contains an IRC network called Irc2P. This network hosts the I2P project's official IRC channel among other channels. This service is enabled by default in FreedomBox. To use it, open your favourite IRC client. Then configure it to connect to host freedombox.local (or your FreedomBox's local IP address) with port number 6668. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. I2P router console: This is the central management interface for I2P. It shows the current status of I2P, bandwidth statistics and allows modifying various configuration settings. You can tune your participation in the I2P network and use/edit a list of your favourite I2P sites (eepsites). Only logged-in users belonging to 'Manage I2P application' group can use this service. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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.
\ No newline at end of file +
FreedomBox/Manual/I2P12019-04-30 00:40:36SunilMohanAdapaInitial page for I2P application in FreedomBox
Anonymity Network (I2P)
About I2PThe Invisible Internet Project is an anonymous network layer intended to protect communication from censorship and surveillance. I2P provides anonymity by sending encrypted traffic through a volunteer-run network distributed around the world. Find more information about I2P on their project homepage.
Services OfferedThe following services are offered via I2P in FreedomBox by default. Additional services may be available when enabled from I2P router console that can be launched from FreedomBox web interface. Anonymous Internet browsing: I2P can be used to browse Internet anonymously. For this, configure your browser (preferable a Tor Browser) to connect to I2P proxy. This can be done by setting HTTP proxy and HTTPS proxy to freedombox.local (or your FreedomBox's local IP address) and ports to 4444 and 4445 respectively. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Reaching eepsites: I2P network can host websites that can remain anonymous. These are called eepsites and end with .i2p in their domain name. For example, is the website for I2P project in the I2P network. eepsites are not reachable using a regular browser via regular Internet connection. To browse eepsites, your browser needs to be configured to use HTTP, HTTPS proxies as described above. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. Anonymous torrent downloads: I2PSnark, an application for anonymously downloading and sharing files over the BitTorrent network is available in I2P and enabled by default in FreedomBox. This application is controlled via a web interface that can be launched from 'Anonymous torrents' section of I2P app in FreedomBox web interface or from the I2P router console interface. Only logged-in users belonging to 'Manage I2P application' group can use this service. IRC network: I2P network contains an IRC network called Irc2P. This network hosts the I2P project's official IRC channel among other channels. This service is enabled by default in FreedomBox. To use it, open your favourite IRC client. Then configure it to connect to host freedombox.local (or your FreedomBox's local IP address) with port number 6668. This service is available only when you are reaching FreedomBox using local network (networks in internal zone) and not available when connecting to FreedomBox from the Internet. One exception to this is when you connect to FreedomBox's VPN service from Internet you can still use this service. I2P router console: This is the central management interface for I2P. It shows the current status of I2P, bandwidth statistics and allows modifying various configuration settings. You can tune your participation in the I2P network and use/edit a list of your favourite I2P sites (eepsites). Only logged-in users belonging to 'Manage I2P application' group can use this service. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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.
\ No newline at end of file diff --git a/doc/manual/en/Ikiwiki.raw.xml b/doc/manual/en/Ikiwiki.raw.xml index 3d0ae1c41..fa6fcf71c 100644 --- a/doc/manual/en/Ikiwiki.raw.xml +++ b/doc/manual/en/Ikiwiki.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Infinoted.raw.xml b/doc/manual/en/Infinoted.raw.xml index e6fc14239..caae3b25b 100644 --- a/doc/manual/en/Infinoted.raw.xml +++ b/doc/manual/en/Infinoted.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/LetsEncrypt.raw.xml b/doc/manual/en/LetsEncrypt.raw.xml index 6e1a694a6..c3d8391c8 100644 --- a/doc/manual/en/LetsEncrypt.raw.xml +++ b/doc/manual/en/LetsEncrypt.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/LetsEncrypt102019-11-01 00:51:44JosephNuthalapatiFix attachment inlining92019-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/LetsEncrypt102019-11-01 00:51:44JosephNuthalapatiFix attachment inlining92019-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/MLDonkey.raw.xml b/doc/manual/en/MLDonkey.raw.xml index b85c9a09b..ded93fb86 100644 --- a/doc/manual/en/MLDonkey.raw.xml +++ b/doc/manual/en/MLDonkey.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/MatrixSynapse.raw.xml b/doc/manual/en/MatrixSynapse.raw.xml index 5ea70929a..990f270a5 100644 --- a/doc/manual/en/MatrixSynapse.raw.xml +++ b/doc/manual/en/MatrixSynapse.raw.xml @@ -4,4 +4,4 @@ chown matrix-synapse:nogroup /etc/matrix-synapse/conf.d/registration_shared_secr systemctl restart matrix-synapse register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml]]>If you wish to see the list of users registered in Matrix Synapse, the following as root user: If you wish to create a community in Matrix Synapse, a Matrix user with server admin privileges is needed. In order to grant such privileges to username run the following commands as root user: 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +echo "UPDATE users SET admin=1 WHERE name='@username:domainname'" | sudo sqlite3 /var/lib/matrix-synapse/homeserver.db ]]>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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/MediaWiki.raw.xml b/doc/manual/en/MediaWiki.raw.xml index ea681ca03..900fcc3ed 100644 --- a/doc/manual/en/MediaWiki.raw.xml +++ b/doc/manual/en/MediaWiki.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/MediaWiki142020-04-12 16:05:09JamesValleroyadd links back to top level pages132020-01-24 11:40:30JosephNuthalapatiAdd screenshot of editor toolbar122020-01-24 11:38:30JosephNuthalapatiMention the default wiki editor in "Editing Wiki content"112020-01-21 08:09:53fioddorCustomization section moved at the end because the others are more generic.102020-01-18 09:41:15JosephNuthalapatiAdd customization section92018-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 app page in web interface.
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 ContentThe MediaWiki installation on FreedomBox ships with a basic editor with a toolbar for common options like Bold, Italics etc. Click on the Advanced section for more options like Headings, bullet lists etc. mediawiki-toolbar.png
Visual EditorMediaWiki's new Visual Editor gives a WYSIWYG user interface to creating wiki pages. This is still a Beta feature and is not provided by default with MediaWiki. 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.
Customization
SkinsMediaWiki's default skin is usually Vector. The default skin set by FreedomBox is Timeless. Vector is a skin best-suited for viewing on desktop browsers. It is not suitable for mobile screen sizes. Wikimedia sites host a separate mobile site. It is not worth hosting a separate mobile site for small MediaWiki installations like those on FreedomBox. Using a mobile-friendly skin like Timeless is a cheaper way of solving the problem. Administrators can choose a default skin from the app configuration. Users of the site also have the choice of viewing it with a different skin. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/MediaWiki142020-04-12 16:05:09JamesValleroyadd links back to top level pages132020-01-24 11:40:30JosephNuthalapatiAdd screenshot of editor toolbar122020-01-24 11:38:30JosephNuthalapatiMention the default wiki editor in "Editing Wiki content"112020-01-21 08:09:53fioddorCustomization section moved at the end because the others are more generic.102020-01-18 09:41:15JosephNuthalapatiAdd customization section92018-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 app page in web interface.
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 ContentThe MediaWiki installation on FreedomBox ships with a basic editor with a toolbar for common options like Bold, Italics etc. Click on the Advanced section for more options like Headings, bullet lists etc. mediawiki-toolbar.png
Visual EditorMediaWiki's new Visual Editor gives a WYSIWYG user interface to creating wiki pages. This is still a Beta feature and is not provided by default with MediaWiki. 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.
Customization
SkinsMediaWiki's default skin is usually Vector. The default skin set by FreedomBox is Timeless. Vector is a skin best-suited for viewing on desktop browsers. It is not suitable for mobile screen sizes. Wikimedia sites host a separate mobile site. It is not worth hosting a separate mobile site for small MediaWiki installations like those on FreedomBox. Using a mobile-friendly skin like Timeless is a cheaper way of solving the problem. Administrators can choose a default skin from the app configuration. Users of the site also have the choice of viewing it with a different skin. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Minetest.raw.xml b/doc/manual/en/Minetest.raw.xml index 5a4e12486..eeebc08bd 100644 --- a/doc/manual/en/Minetest.raw.xml +++ b/doc/manual/en/Minetest.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Minetest42020-05-03 18:37:00JamesValleroyuse https link32017-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Minetest42020-05-03 18:37:00JamesValleroyuse https link32017-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/MiniDLNA.raw.xml b/doc/manual/en/MiniDLNA.raw.xml index 79101f123..899e050b9 100644 --- a/doc/manual/en/MiniDLNA.raw.xml +++ b/doc/manual/en/MiniDLNA.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/MiniDLNA22019-11-21 20:18:10NektariosKatakis12019-11-20 16:49:59NektariosKatakis
MiniDLNAMiniDLNA is a media server with the aim to be compliant with DLNA/UPnP clients.
What is UPnP/DLNA?Universal plug & play is a set of networking protocols that allow devices within a network such as PCs, TVs, printers etc. to seamlessly discover each other and establish communication for data sharing. It is zero configuration protocol and requires only a media server and a media player that are compliant with the protocol. DLNA is derived from UPnP as a form of standardizing media interoperability. It forms a standard/certification which many consumer electronics conform to.
Setting up MiniDLNA on your FreedomBox.To install/enable the media server you need to navigate at MiniDLNA page and enable it. The application is intended to be available in the internal (home) network and therefore it requires a network interface configured for internal traffic. After installation a web page becomes available on . It includes information for how many files the server is detecting, how many connections exist etc. This is very useful if plugging external disks with media to check if the new media files are detected properly. If that is not happening, disabling and enabling the server will fix it.
File systems for external drives.If using an external drive that is used also from a Windows system the preferred filesystem should be NTFS. NTFS will keep Linux file permissions and UTF8 encoding for file names. This is useful if file names are in your language.
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/MiniDLNA22019-11-21 20:18:10NektariosKatakis12019-11-20 16:49:59NektariosKatakis
MiniDLNAMiniDLNA is a media server with the aim to be compliant with DLNA/UPnP clients.
What is UPnP/DLNA?Universal plug & play is a set of networking protocols that allow devices within a network such as PCs, TVs, printers etc. to seamlessly discover each other and establish communication for data sharing. It is zero configuration protocol and requires only a media server and a media player that are compliant with the protocol. DLNA is derived from UPnP as a form of standardizing media interoperability. It forms a standard/certification which many consumer electronics conform to.
Setting up MiniDLNA on your FreedomBox.To install/enable the media server you need to navigate at MiniDLNA page and enable it. The application is intended to be available in the internal (home) network and therefore it requires a network interface configured for internal traffic. After installation a web page becomes available on . It includes information for how many files the server is detecting, how many connections exist etc. This is very useful if plugging external disks with media to check if the new media files are detected properly. If that is not happening, disabling and enabling the server will fix it.
File systems for external drives.If using an external drive that is used also from a Windows system the preferred filesystem should be NTFS. NTFS will keep Linux file permissions and UTF8 encoding for file names. This is useful if file names are in your language.
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Monkeysphere.raw.xml b/doc/manual/en/Monkeysphere.raw.xml index b832e85c4..b60e2a413 100644 --- a/doc/manual/en/Monkeysphere.raw.xml +++ b/doc/manual/en/Monkeysphere.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Mumble.raw.xml b/doc/manual/en/Mumble.raw.xml index be7912edf..9b849a777 100644 --- a/doc/manual/en/Mumble.raw.xml +++ b/doc/manual/en/Mumble.raw.xml @@ -1,2 +1,2 @@
FreedomBox/Manual/Mumble92019-11-07 03:25:36SunilMohanAdapaUpdate super user section82019-11-07 02:51:23SunilMohanAdapaMinor formatting72019-11-07 02:50:58SunilMohanAdapaAdded section about SuperUser account62017-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
Managing PermissionsA super user in Mumble has the ability to create administrator accounts who can in turn manage groups and channel permissions. This can be done after logging in with the username "SuperUser" using the super user password. See Mumble Guide for information on how to do this.. FreedomBox currently does not offer a UI to get or set the super user password for Mumble. A super user password is automatically generated during Mumble setup. To get the password, login to the terminal as admin user using Cockpit , Secure Shell or the console. Then, to read the super user password that was automatically generated during Mumble installation run the following command: You should see output such as: 2019-11-06 02:47:41.313 1 => Password for 'SuperUser' set to 'noo8Dahwiesh']]>Alternatively, you can set a new password as follows: 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +echo "newpassword" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini --readsupw"]]>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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/NameServices.raw.xml b/doc/manual/en/NameServices.raw.xml index c8ac851b9..f0336ca96 100644 --- a/doc/manual/en/NameServices.raw.xml +++ b/doc/manual/en/NameServices.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/NameServices42019-11-11 16:58:04JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service32016-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 Onion 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/NameServices42019-11-11 16:58:04JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service32016-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 Onion 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Networks.raw.xml b/doc/manual/en/Networks.raw.xml index 535d66af2..95c99224a 100644 --- a/doc/manual/en/Networks.raw.xml +++ b/doc/manual/en/Networks.raw.xml @@ -2,4 +2,4 @@ wifi.scan-rand-mac-address=no]]>Then reboot the machine.
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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/OpenVPN.raw.xml b/doc/manual/en/OpenVPN.raw.xml index a98b44a6f..ecbfd15bb 100644 --- a/doc/manual/en/OpenVPN.raw.xml +++ b/doc/manual/en/OpenVPN.raw.xml @@ -1,4 +1,4 @@
FreedomBox/Manual/OpenVPN162019-11-18 22:55:39JamesValleroyadd instructions for Network Manager152019-09-16 09:38:50fioddorMinor layout correction142019-05-10 23:08:07JamesValleroyuse standard text for port forwarding132019-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.
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 OpenVPN: UDP 1194
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. 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]]>If you use Network Manager, you can create a new connection by importing the file: .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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +$ sudo nmcli connection import type openvpn file /path/to/.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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/PageKite.raw.xml b/doc/manual/en/PageKite.raw.xml index b10c30ba9..e430abd81 100644 --- a/doc/manual/en/PageKite.raw.xml +++ b/doc/manual/en/PageKite.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Performance.raw.xml b/doc/manual/en/Performance.raw.xml index 63d99f3c4..726f98563 100644 --- a/doc/manual/en/Performance.raw.xml +++ b/doc/manual/en/Performance.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Performance42020-05-04 08:31:15FredLeMeurWIP:performance: introduce Performance Co-Pilot (cockpit-pcp) in ‘System’32020-05-04 08:28:10FredLeMeur22020-05-04 08:07:58FredLeMeurwith "END_INCLUDE"12020-05-04 08:01:29FredLeMeurinit page
Performance (cockpit-pcp)Cockpit support for reading PCP metrics and loading PCP archives. Performance Co-Pilot (PCP) is a framework and services to support system-level performance monitoring and performance management. When this system app is installed and enabled, cockpit's graphs show the past (up to one week). one-week.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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Performance102020-05-12 04:51:34SunilMohanAdapaCockpit allows viewing upto 1 year at a time92020-05-12 04:40:54SunilMohanAdapaRename the image, minor formatting82020-05-12 04:39:38SunilMohanAdapaAdd the version availability and minor changes72020-05-08 06:41:27FredLeMeurup to 2 weeks62020-05-08 06:32:56FredLeMeurExplain why performance monitoring is needed.52020-05-05 12:39:58FredLeMeurzoom out button42020-05-04 08:31:15FredLeMeurWIP:performance: introduce Performance Co-Pilot (cockpit-pcp) in ‘System’32020-05-04 08:28:10FredLeMeur22020-05-04 08:07:58FredLeMeurwith "END_INCLUDE"12020-05-04 08:01:29FredLeMeurinit page
Performance (cockpit-pcp)Performance app allows you to collect, store and view information about utilization of the hardware. This can gives you basic insights into usage patterns and whether the hardware is overloaded by users and services. Performance metrics are collected by Performance Co-Pilot and can be viewed using the Cockpit app. Performance app is available in FreedomBox since version 20.9. When this system app is installed and enabled, cockpit's graphs shows the past (up to one year at a time). performance-one-week.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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Power.raw.xml b/doc/manual/en/Power.raw.xml index 27992cde3..9714196b9 100644 --- a/doc/manual/en/Power.raw.xml +++ b/doc/manual/en/Power.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Privoxy.raw.xml b/doc/manual/en/Privoxy.raw.xml index 08c80e0b7..bb30d43df 100644 --- a/doc/manual/en/Privoxy.raw.xml +++ b/doc/manual/en/Privoxy.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Privoxy132020-05-03 18:51:16JamesValleroyuse https link for Quickstart122020-05-03 18:49:54JamesValleroyuse https link for FAQ112019-09-16 12:07:52fioddorMinor correction102018-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 web traffic. Thus, you can instruct any computer in your network to pass internet traffic through the proxy to remove unwanted ads and tracking mechanisms. Privoxy is a software for security, privacy, and accurate control over the web. It provides a much more powerful web proxy (and anonymity on the web) than what your browser can offer. Privoxy "is a proxy that is primarily focused on privacy enhancement, ad and junk elimination and freeing the user from restrictions placed on his activities" (source: Privoxy FAQ).
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Privoxy132020-05-03 18:51:16JamesValleroyuse https link for Quickstart122020-05-03 18:49:54JamesValleroyuse https link for FAQ112019-09-16 12:07:52fioddorMinor correction102018-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 web traffic. Thus, you can instruct any computer in your network to pass internet traffic through the proxy to remove unwanted ads and tracking mechanisms. Privoxy is a software for security, privacy, and accurate control over the web. It provides a much more powerful web proxy (and anonymity on the web) than what your browser can offer. Privoxy "is a proxy that is primarily focused on privacy enhancement, ad and junk elimination and freeing the user from restrictions placed on his activities" (source: Privoxy FAQ).
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Quassel.raw.xml b/doc/manual/en/Quassel.raw.xml index c44381098..b2a4cc1e2 100644 --- a/doc/manual/en/Quassel.raw.xml +++ b/doc/manual/en/Quassel.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Quassel82020-05-03 18:48:31JamesValleroyupdate quasseldroid links72019-05-10 23:05:32JamesValleroyuse standard text for port forwarding62019-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 your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Quassel: TCP 4242 Example configuration in router: 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Quassel102020-05-11 23:23:12fioddorExample screenshot in english (previous in german)92020-05-11 23:16:16fioddorPlinth renamed to FreedomBox's web interface,as in the rest of user documentation82020-05-03 18:48:31JamesValleroyupdate quasseldroid links72019-05-10 23:05:32JamesValleroyuse standard text for port forwarding62019-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 FreedomBox's web interface 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 your FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for Quassel: TCP 4242 Example configuration in router: Quassel_PortForwarding_en_v01.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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Radicale.raw.xml b/doc/manual/en/Radicale.raw.xml index 99ebac80c..b20d08c61 100644 --- a/doc/manual/en/Radicale.raw.xml +++ b/doc/manual/en/Radicale.raw.xml @@ -1,4 +1,4 @@ -
FreedomBox/Manual/Radicale522020-05-03 18:43:27JamesValleroyupdate links to supported clients in radicale docs512019-08-11 20:39:37SunilMohanAdapaMinro fixes to workaround for bug502019-08-11 20:32:14SunilMohanAdapaAdd information about bug in radicale492019-05-22 20:58:26David JonesAdded instructions for syncronizing calendars over Tor in Thunderbird.482019-04-04 15:49:32JosephNuthalapatiMention a gotcha about a trailing slash in radicale URL472019-03-01 11:29:01JamesValleroyadd screenshot of web interface462019-03-01 04:01:20JamesValleroyadd instructions on using web interface452019-03-01 03:50:42JamesValleroyupdate setup instructions442019-03-01 03:48:19JamesValleroyrename Plinth -> FreedomBox Service (Plinth)432019-02-27 00:07:37SunilMohanAdapaUpdate incorrect reference to collections-root422019-02-26 20:24:11SunilMohanAdapaMinor update412019-02-26 20:20:18SunilMohanAdapaFix instructions for radicale 2.x manual migration402019-02-21 18:48:01SunilMohanAdapaRemove 'not tested' notice392019-02-21 03:38:31SunilMohanAdapaAdd information about radicale 2.x migration382019-02-10 23:10:19JamesValleroyonly need domain name for DAVx5372019-02-10 23:09:14JamesValleroyrename DAVdroid -> DAVx5362019-02-10 22:59:07JamesValleroyradicale is now in testing352018-09-29 11:28:56JamesValleroyUse calendar-name in CalDAV url342018-07-10 18:04:49BartNotelaers332018-06-17 16:36:11JosephNuthalapatiAdd a missing instruction on how to synchronize using DAVdroid322018-06-01 10:48:04JosephNuthalapatiUpdate DAVdroid account setup with screenshots312018-01-03 08:54:14JosephNuthalapatiUpdate broken link - radicale clients302017-08-06 23:06:11JohannesKeyserupdated dead link to radicale client page, and added warning about misleading URL info292016-12-31 02:28:01JamesValleroystyle changes282016-09-09 15:36:28SunilMohanAdapaMinor indentation fix with screenshot272016-09-09 14:43:07SunilMohanAdapaMinor fix to adjust screenshot262016-09-01 19:11:38Drahtseiladapted title to Plinth wording252016-08-31 17:26:23Drahtseilupdated screenshot242016-08-31 17:24:42DrahtseilAccess rights232016-08-01 16:32:28Drahtseil222016-08-01 16:28:29Drahtseilscreenshots212016-08-01 16:18:30DrahtseilEvolution tutorial to use Calendar instead of Contacts (just happen to have that screenshot)202016-07-31 18:21:39DrahtseilAndroid, advanced user, screenshots still to follow192016-07-31 16:54:46Drahtseil182016-05-18 12:40:51SunilMohanAdapaReduce item nesting to < 4 due to problems in generating FreedomBox Manual172016-04-27 03:35:17StacyCockrumformatting162016-04-27 03:24:18StacyCockrumEditing and added instructions for Evolution Calendar.152016-04-26 06:11:34PhilippeBaretEditing142016-04-25 11:43:17StacyCockrum132016-04-25 11:36:30StacyCockrumI'm not sure if this is the right place to put this kind of information. I thought it would be helpful for a person to know some specifics around the settings. Pls advise if it should go somewhere e122016-04-16 01:38:12PhilippeBaretAdded Why Radical app content112016-04-16 01:36:07PhilippeBaretCorrection102016-04-15 14:58:18StacyCockrum2nd bullet under "How to setup...?" Is it true that a new calendar/address book is created for each client or perhaps the clients need to be configured to access the calendar/address books?92016-04-15 14:53:50StacyCockrumStruggled with the last sentence of the first bullet under "How to setup Radicale?". When the Radicale server is launched does CalDAV become a function of the server or is a CalDAV server?82016-04-11 09:04:25PhilippeBaretCorrection72016-04-11 09:02:38PhilippeBaretCorrection proper terms: CalDAV and CardDAV62016-04-11 09:01:11PhilippeBaretAdded Why running Radicale section52016-04-11 08:53:27PhilippeBaretCorrection42016-04-11 08:48:16PhilippeBaretAdded how to setup Radical server and clients in FreedomBox Manual32016-04-10 07:12:39PhilippeBaretAdded manual link22016-04-10 07:09:27PhilippeBaretAdded Radicale definition on FreedomBox manual12016-04-10 06:40:28PhilippeBaretAdded first content to Radicale manual page
Calendar and Addressbook (Radicale)With Radicale, you can synchronize your personal calendars, ToDo lists, and addressbooks with your various computers, tablets, and smartphones, and share them with friends, without letting third parties know your personal schedule or contacts.
Why should I run Radicale?Using Radicale, you can get rid of centralized services like Google Calendar or Apple Calendar (iCloud) data mining your events and social connections.
How to setup Radicale?First, the Radicale server needs to be activated on your box. Within FreedomBox Service (Plinth) select Apps go to Radicale (Calendar and Addressbook) and install the application. After the installation is complete, make sure the application is marked "enabled" in the FreedomBox interface. Enabling the application launches the Radicale CalDAV/CardDAV server. define the access rights: Only the owner of a calendar/addressbook can view or make changes Any user can view any calendar/addressbook, but only the owner can make changes Any user can view or make changes to any calendar/addressbook Note, that only users with a FreedomBox login can access Radicale. Radicale-Plinth.png If you want to share a calendar with only some users, the simplest approach is to create an additional user-name for these users and to share that user-name and password with them. Radicale provides a basic web interface, which only supports creating new calendars and addressbooks. To add events or contacts, an external supported client application is needed. radicale_web.png Creating addressbook/calendar using the web interface Visit https://IP-address-or-domain-for-your-server/radicale/ Log in with your FreedomBox account Select "Create new addressbook or calendar" Provide a title and select the type Optionally, provide a description or select a color Click "Create" The page will show the URL for your newly created addressbook or calendar Now open your client application to create new calendar and address books that will use your FreedomBox and Radicale server. The Radicale website provides an overview of supported clients, but do not use the URLs described there; FreedomBox uses another setup, follow this manual. Below are the steps for two examples: Example of setup with Evolution client: Calendar Create a new calendar For "Type," select "CalDAV" When "CalDAV" is selected, additional options will appear in the dialogue window. URL: https://IP-address-or-domain-for-your-server/radicale/user/calendar-name.ics/. Items in italics need to be changed to match your settings. note the trailing / in the path, it is important. Enable "Use a secure connection." Name the calendar Radicale-Evolution-Docu.png TODO/Tasks list: Adding a TODO/Tasks list is basically the same as a calendar. Contacts Follow the same steps described above and replace CalDAV with WebDAV. The extension of the address book will be .vcf.
Synchronizing over TorIn Plinth, setting up a calendar with Radicale over Tor is the same as over the clear net. Here is a short summary: When logged in to Plinth over Tor, click on Radicale, and at the prompt provide your FreedomBox user name and password. In the Radicale web interface, log in using your FreedomBox user name and password. Click on "Create new address book or calendar", provide a title, select a type, and click "Create". Save the URL, e.g., https://ONION-ADDRESS-FOR-YOUR-SERVER.onion/radicale/USERNAME/CALENDAR-CODE/. Items in italics need to be changed to match your settings. These instructions are for Thunderbird/Lightning. Note that you will need to be connected to Tor with the Tor Browser Bundle. Open Thunderbird, install the Torbirdy add-on, and restart Thunderbird. (This may not be necessary.) In the Lightning interface, under Calendar/Home in the left panel right click with the mouse and select "New calendar". Select the location of your calendar as "On the Network". Select CalDAV and for the location copy the URL, e.g., https://ONION-ADDRESS-FOR-YOUR-SERVER.onion/radicale/USERNAME/CALENDAR-CODE/. Items in italics need to be changed to match your settings. Provide a name, etc. Click "Next". Your calendar is now syncing with your FreedomBox over Tor. If you have not generated a certificate for your FreedomBox with "Let's Encrypt", you may need to select "Confirm Security Exception" when prompted.
Synchronizing with your Android phoneThere are various Apps that allow integration with the Radicale server. This example uses DAVx5, which is available e.g. on F-Droid. If you intend to use ToDo-Lists as well, the compatible app OpenTasks has to be installed first. Follow these steps for setting up your account with the Radicale server running on your FreedomBox. Install DAVx5 Create a new account on DAVx5 by clicking on the floating + button. Select the second option as shown in the first figure below and enter the base url as (don't miss the / at the end). DAVx5 will be able to discover both CalDAV and WebDAV accounts for the user. Follow this video from DAVx5 FAQ to learn how to migrate your existing contacts to Radicale. Synchronizing contacts Click on the hamburger menus of CalDAV and CardDAV and select either "Refresh ..." in case of existing accounts or "Create ..." in case of new accounts (see the second screenshot below). Check the checkboxes for the address books and calendars you want to synchronize and click on the sync button in the header. (see the third screenshot below) DAVx5 account setup DAVx5 refresh DAVx5 account sync
Advanced Users
Sharing resourcesAbove was shown an easy way to create a resource for a group of people by creating a dedicated account for all. Here will be described an alternative method where two users User1 and User2 are granted access to a calendar. This requires SSH-access to the FreedomBox. create a file /etc/radicale/rights
FreedomBox/Manual/Radicale542020-05-15 11:11:34JamesValleroyrename plinth -> freedombox532020-05-15 11:10:13JamesValleroysuppress wikiword links522020-05-03 18:43:27JamesValleroyupdate links to supported clients in radicale docs512019-08-11 20:39:37SunilMohanAdapaMinro fixes to workaround for bug502019-08-11 20:32:14SunilMohanAdapaAdd information about bug in radicale492019-05-22 20:58:26David JonesAdded instructions for syncronizing calendars over Tor in Thunderbird.482019-04-04 15:49:32JosephNuthalapatiMention a gotcha about a trailing slash in radicale URL472019-03-01 11:29:01JamesValleroyadd screenshot of web interface462019-03-01 04:01:20JamesValleroyadd instructions on using web interface452019-03-01 03:50:42JamesValleroyupdate setup instructions442019-03-01 03:48:19JamesValleroyrename Plinth -> FreedomBox Service (Plinth)432019-02-27 00:07:37SunilMohanAdapaUpdate incorrect reference to collections-root422019-02-26 20:24:11SunilMohanAdapaMinor update412019-02-26 20:20:18SunilMohanAdapaFix instructions for radicale 2.x manual migration402019-02-21 18:48:01SunilMohanAdapaRemove 'not tested' notice392019-02-21 03:38:31SunilMohanAdapaAdd information about radicale 2.x migration382019-02-10 23:10:19JamesValleroyonly need domain name for DAVx5372019-02-10 23:09:14JamesValleroyrename DAVdroid -> DAVx5362019-02-10 22:59:07JamesValleroyradicale is now in testing352018-09-29 11:28:56JamesValleroyUse calendar-name in CalDAV url342018-07-10 18:04:49BartNotelaers332018-06-17 16:36:11JosephNuthalapatiAdd a missing instruction on how to synchronize using DAVdroid322018-06-01 10:48:04JosephNuthalapatiUpdate DAVdroid account setup with screenshots312018-01-03 08:54:14JosephNuthalapatiUpdate broken link - radicale clients302017-08-06 23:06:11JohannesKeyserupdated dead link to radicale client page, and added warning about misleading URL info292016-12-31 02:28:01JamesValleroystyle changes282016-09-09 15:36:28SunilMohanAdapaMinor indentation fix with screenshot272016-09-09 14:43:07SunilMohanAdapaMinor fix to adjust screenshot262016-09-01 19:11:38Drahtseiladapted title to Plinth wording252016-08-31 17:26:23Drahtseilupdated screenshot242016-08-31 17:24:42DrahtseilAccess rights232016-08-01 16:32:28Drahtseil222016-08-01 16:28:29Drahtseilscreenshots212016-08-01 16:18:30DrahtseilEvolution tutorial to use Calendar instead of Contacts (just happen to have that screenshot)202016-07-31 18:21:39DrahtseilAndroid, advanced user, screenshots still to follow192016-07-31 16:54:46Drahtseil182016-05-18 12:40:51SunilMohanAdapaReduce item nesting to < 4 due to problems in generating FreedomBox Manual172016-04-27 03:35:17StacyCockrumformatting162016-04-27 03:24:18StacyCockrumEditing and added instructions for Evolution Calendar.152016-04-26 06:11:34PhilippeBaretEditing142016-04-25 11:43:17StacyCockrum132016-04-25 11:36:30StacyCockrumI'm not sure if this is the right place to put this kind of information. I thought it would be helpful for a person to know some specifics around the settings. Pls advise if it should go somewhere e122016-04-16 01:38:12PhilippeBaretAdded Why Radical app content112016-04-16 01:36:07PhilippeBaretCorrection102016-04-15 14:58:18StacyCockrum2nd bullet under "How to setup...?" Is it true that a new calendar/address book is created for each client or perhaps the clients need to be configured to access the calendar/address books?92016-04-15 14:53:50StacyCockrumStruggled with the last sentence of the first bullet under "How to setup Radicale?". When the Radicale server is launched does CalDAV become a function of the server or is a CalDAV server?82016-04-11 09:04:25PhilippeBaretCorrection72016-04-11 09:02:38PhilippeBaretCorrection proper terms: CalDAV and CardDAV62016-04-11 09:01:11PhilippeBaretAdded Why running Radicale section52016-04-11 08:53:27PhilippeBaretCorrection42016-04-11 08:48:16PhilippeBaretAdded how to setup Radical server and clients in FreedomBox Manual32016-04-10 07:12:39PhilippeBaretAdded manual link22016-04-10 07:09:27PhilippeBaretAdded Radicale definition on FreedomBox manual12016-04-10 06:40:28PhilippeBaretAdded first content to Radicale manual page
Calendar and Addressbook (Radicale)With Radicale, you can synchronize your personal calendars, ToDo lists, and addressbooks with your various computers, tablets, and smartphones, and share them with friends, without letting third parties know your personal schedule or contacts.
Why should I run Radicale?Using Radicale, you can get rid of centralized services like Google Calendar or Apple Calendar (iCloud) data mining your events and social connections.
How to setup Radicale?First, the Radicale server needs to be activated on your box. Within FreedomBox Service (Plinth) select Apps go to Radicale (Calendar and Addressbook) and install the application. After the installation is complete, make sure the application is marked "enabled" in the FreedomBox interface. Enabling the application launches the Radicale CalDAV/CardDAV server. define the access rights: Only the owner of a calendar/addressbook can view or make changes Any user can view any calendar/addressbook, but only the owner can make changes Any user can view or make changes to any calendar/addressbook Note, that only users with a FreedomBox login can access Radicale. Radicale-Plinth.png If you want to share a calendar with only some users, the simplest approach is to create an additional user-name for these users and to share that user-name and password with them. Radicale provides a basic web interface, which only supports creating new calendars and addressbooks. To add events or contacts, an external supported client application is needed. radicale_web.png Creating addressbook/calendar using the web interface Visit https://IP-address-or-domain-for-your-server/radicale/ Log in with your FreedomBox account Select "Create new addressbook or calendar" Provide a title and select the type Optionally, provide a description or select a color Click "Create" The page will show the URL for your newly created addressbook or calendar Now open your client application to create new calendar and address books that will use your FreedomBox and Radicale server. The Radicale website provides an overview of supported clients, but do not use the URLs described there; FreedomBox uses another setup, follow this manual. Below are the steps for two examples: Example of setup with Evolution client: Calendar Create a new calendar For "Type," select "CalDAV" When "CalDAV" is selected, additional options will appear in the dialogue window. URL: https://IP-address-or-domain-for-your-server/radicale/user/calendar-name.ics/. Items in italics need to be changed to match your settings. note the trailing / in the path, it is important. Enable "Use a secure connection." Name the calendar Radicale-Evolution-Docu.png TODO/Tasks list: Adding a TODO/Tasks list is basically the same as a calendar. Contacts Follow the same steps described above and replace CalDAV with WebDAV. The extension of the address book will be .vcf.
Synchronizing over TorIn FreedomBox, setting up a calendar with Radicale over Tor is the same as over the clear net. Here is a short summary: When logged in to FreedomBox interface over Tor, click on Radicale, and at the prompt provide your FreedomBox user name and password. In the Radicale web interface, log in using your FreedomBox user name and password. Click on "Create new address book or calendar", provide a title, select a type, and click "Create". Save the URL, e.g., https://ONION-ADDRESS-FOR-YOUR-SERVER.onion/radicale/USERNAME/CALENDAR-CODE/. Items in italics need to be changed to match your settings. These instructions are for Thunderbird/Lightning. Note that you will need to be connected to Tor with the Tor Browser Bundle. Open Thunderbird, install the Torbirdy add-on, and restart Thunderbird. (This may not be necessary.) In the Lightning interface, under Calendar/Home in the left panel right click with the mouse and select "New calendar". Select the location of your calendar as "On the Network". Select CalDAV and for the location copy the URL, e.g., https://ONION-ADDRESS-FOR-YOUR-SERVER.onion/radicale/USERNAME/CALENDAR-CODE/. Items in italics need to be changed to match your settings. Provide a name, etc. Click "Next". Your calendar is now syncing with your FreedomBox over Tor. If you have not generated a certificate for your FreedomBox with "Let's Encrypt", you may need to select "Confirm Security Exception" when prompted.
Synchronizing with your Android phoneThere are various Apps that allow integration with the Radicale server. This example uses DAVx5, which is available e.g. on F-Droid. If you intend to use ToDo-Lists as well, the compatible app OpenTasks has to be installed first. Follow these steps for setting up your account with the Radicale server running on your FreedomBox. Install DAVx5 Create a new account on DAVx5 by clicking on the floating + button. Select the second option as shown in the first figure below and enter the base url as (don't miss the / at the end). DAVx5 will be able to discover both CalDAV and WebDAV accounts for the user. Follow this video from DAVx5 FAQ to learn how to migrate your existing contacts to Radicale. Synchronizing contacts Click on the hamburger menus of CalDAV and CardDAV and select either "Refresh ..." in case of existing accounts or "Create ..." in case of new accounts (see the second screenshot below). Check the checkboxes for the address books and calendars you want to synchronize and click on the sync button in the header. (see the third screenshot below) DAVx5 account setup DAVx5 refresh DAVx5 account sync
Advanced Users
Sharing resourcesAbove was shown an easy way to create a resource for a group of people by creating a dedicated account for all. Here will be described an alternative method where two users User1 and User2 are granted access to a calendar. This requires SSH-access to the FreedomBox. create a file /etc/radicale/rights 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.
Troubleshooting1. If you are using FreedomBox Pioneer Edition or installing FreedomBox on Debian Buster, then radicale may not be usable immediately after installation. This is due to a bug which has been fixed later. To overcome the problem, upgrade FreedomBox by clicking on 'Manual Update' from 'Updates' app. Otherwise, simply wait a day or two and let FreedomBox upgrade itself. After that install radicale. If radicale is already installed, disable and re-enable it after the update is completed. This will fix the problem and get radicale working properly. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +(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.
Troubleshooting1. If you are using FreedomBox Pioneer Edition or installing FreedomBox on Debian Buster, then radicale may not be usable immediately after installation. This is due to a bug which has been fixed later. To overcome the problem, upgrade FreedomBox by clicking on 'Manual Update' from 'Updates' app. Otherwise, simply wait a day or two and let FreedomBox upgrade itself. After that install radicale. If radicale is already installed, disable and re-enable it after the update is completed. This will fix the problem and get radicale working properly. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Repro.raw.xml b/doc/manual/en/Repro.raw.xml index 3ed8f6284..488a9a373 100644 --- a/doc/manual/en/Repro.raw.xml +++ b/doc/manual/en/Repro.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Roundcube.raw.xml b/doc/manual/en/Roundcube.raw.xml index 9fc5e5d9e..29a846540 100644 --- a/doc/manual/en/Roundcube.raw.xml +++ b/doc/manual/en/Roundcube.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Samba.raw.xml b/doc/manual/en/Samba.raw.xml index d5dd5c3c2..678325403 100644 --- a/doc/manual/en/Samba.raw.xml +++ b/doc/manual/en/Samba.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Samba62020-04-23 13:57:36NektariosKatakis52020-04-23 13:54:36NektariosKatakis42020-04-23 13:50:01NektariosKatakis32020-02-02 07:06:36JosephNuthalapatiAndroid Samba Client needs disk path as well22020-02-01 17:15:51JosephNuthalapatiAdd comparison with Syncthing12020-02-01 17:08:21JosephNuthalapatiFirst draft
File Synchronization (Samba)Samba lets you have a shared folder over the local network that can be used from multiple computers running different operating systems. We will henceforth refer to these shared folders as "shares". You can have a personal folder shared between your own devices (Home share), a folder shared with a trusted group (Group share) or one that is shared with every device on the network (Open share). Samba lets you to treat a share as if it's a local folder on your computer. However, shares are available only on the local network. To learn more about Samba, please refer to the user documentation on their wiki. Available since version: 19.22
Using SambaAfter installation, you can choose which disks to use for sharing. Enabled shares are accessible in the file manager on your computer at location \\freedombox (on Windows) or smb://freedombox.local (on Linux and Mac). There are three types of shares you can choose from: Open share - accessible to everyone in your local network. Group share - accessible only to FreedomBox users who are in the freedombox-share group. Home share - every user in the freedombox-share group can have their own private space.
On AndroidTo access Samba shares on an Android device, install "Android Samba Client" from F-Droid or Google Play. Enter smb://freedombox.local/<disk> as the share path in the app. Your shared folders should then be visible in the file manager app.
Integration with other appsTransmission app on FreedomBox provides a setting to allow downloads to be saved directly to a Samba share. If you want to make available files synchronized with Syncthing through Samba you need to make sure you synchronize in a Samba share folder. Additionally in order to make Syncthing shares available in Samba Open share or Group share you will need to ensure you click "Permissions > Ignore" button under the "Advanced" tab in folder you wish in the Syncthing web UI. This will ensure that the files will be writable through Samba.
Comparison with other apps
SyncthingSyncthing maintains a copy of the shared folder on each device that it is shared with. Samba maintains only one copy on your FreedomBox device. Syncthing can synchronize your shared folders between devices over the Internet. Samba shares are only available on the local network. Since Syncthing is primarily a synchronization solution, it has features like conflict resolution and versioning. Samba has only copy of the file, so it doesn't need such features. For example, if two people are editing a spreadsheet stored on a Samba share, the last one to save the file wins. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Samba82020-05-18 23:18:48JamesValleroysimplify wording72020-05-12 02:24:02JosephNuthalapatiChange short description to Network File Storage62020-04-23 13:57:36NektariosKatakis52020-04-23 13:54:36NektariosKatakis42020-04-23 13:50:01NektariosKatakis32020-02-02 07:06:36JosephNuthalapatiAndroid Samba Client needs disk path as well22020-02-01 17:15:51JosephNuthalapatiAdd comparison with Syncthing12020-02-01 17:08:21JosephNuthalapatiFirst draft
Network File Storage (Samba)Samba lets you have shared folders over the local network that can be used from multiple computers running different operating systems. We refer to these shared folders as "shares". You can have a personal folder shared between your own devices (Home share), a folder shared with a trusted group (Group share) or one that is shared with every device on the network (Open share). Samba lets you to treat a share as if it's a local folder on your computer. However, shares are available only on the local network. To learn more about Samba, please refer to the user documentation on their wiki. Available since version: 19.22
Using SambaAfter installation, you can choose which disks to use for sharing. Enabled shares are accessible in the file manager on your computer at location \\freedombox (on Windows) or smb://freedombox.local (on Linux and Mac). There are three types of shares you can choose from: Open share - accessible to everyone in your local network. Group share - accessible only to FreedomBox users who are in the freedombox-share group. Home share - every user in the freedombox-share group can have their own private space.
On AndroidTo access Samba shares on an Android device, install "Android Samba Client" from F-Droid or Google Play. Enter smb://freedombox.local/<disk> as the share path in the app. Your shared folders should then be visible in the file manager app.
Integration with other appsTransmission app on FreedomBox provides a setting to allow downloads to be saved directly to a Samba share. If you want to make available files synchronized with Syncthing through Samba you need to make sure you synchronize in a Samba share folder. Additionally in order to make Syncthing shares available in Samba Open share or Group share you will need to ensure you click "Permissions > Ignore" button under the "Advanced" tab in folder you wish in the Syncthing web UI. This will ensure that the files will be writable through Samba.
Comparison with other apps
SyncthingSyncthing maintains a copy of the shared folder on each device that it is shared with. Samba maintains only one copy on your FreedomBox device. Syncthing can synchronize your shared folders between devices over the Internet. Samba shares are only available on the local network. Since Syncthing is primarily a synchronization solution, it has features like conflict resolution and versioning. Samba has only copy of the file, so it doesn't need such features. For example, if two people are editing a spreadsheet stored on a Samba share, the last one to save the file wins. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Searx.raw.xml b/doc/manual/en/Searx.raw.xml index 9b0e191cc..229429389 100644 --- a/doc/manual/en/Searx.raw.xml +++ b/doc/manual/en/Searx.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Searx92020-04-12 16:07:28JamesValleroyadd links back to top level pages82019-05-22 17:08:56David JonesAdded information that SearX is accessible via Tor.72018-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 is easily accessible via Tor. 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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Searx92020-04-12 16:07:28JamesValleroyadd links back to top level pages82019-05-22 17:08:56David JonesAdded information that SearX is accessible via Tor.72018-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 is easily accessible via Tor. 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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/SecureShell.raw.xml b/doc/manual/en/SecureShell.raw.xml index 93ecaebb3..d0e74d12c 100644 --- a/doc/manual/en/SecureShell.raw.xml +++ b/doc/manual/en/SecureShell.raw.xml @@ -1,4 +1,4 @@
FreedomBox/Manual/SecureShell162020-04-12 16:07:49JamesValleroyadd links back to top level pages152020-04-04 20:22:52fioddorPlinth as FreedomBox's web interface142020-04-04 20:03:23fioddorPlinth as FreedomBox's web interface132019-11-11 17:01:45JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service122019-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 FreedomBox's web interface 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 FreedomBox's web interface, then you don't need to do this. You can use the user account created in FreedomBox's web interface 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 onion 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 onion 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 FreedomBox's web interface, use the change password page. However, the fbx default user is not managed by FreedomBox's web interface and its password cannot be changed through it. 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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 + 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 onion 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 FreedomBox's web interface, use the change password page. However, the fbx default user is not managed by FreedomBox's web interface and its password cannot be changed through it. 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. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Security.raw.xml b/doc/manual/en/Security.raw.xml index 3cb6e307f..af10c46a0 100644 --- a/doc/manual/en/Security.raw.xml +++ b/doc/manual/en/Security.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Security32019-10-11 23:17:39SunilMohanAdapaClarify information regarding restricting console logins22016-08-31 17:40:56DrahtseilScreenshot12016-08-31 17:37:33Drahtseilcreation
SecurityWhen the Restrict console logins option is enabled, only users in the admin group will be able to log in via console, secure shell (SSH) or graphical login. When this option is disabled, any user with an account on FreedomBox will be able to log in. They may be able to access some services without further authorization. This option should only be disabled if all the users of the system are well trusted. If you wish to use your FreedomBox machine also as a desktop and allow non-admin users to login via GUI, this option must be disabled. You can define the list of users belonging to admin group 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Security32019-10-11 23:17:39SunilMohanAdapaClarify information regarding restricting console logins22016-08-31 17:40:56DrahtseilScreenshot12016-08-31 17:37:33Drahtseilcreation
SecurityWhen the Restrict console logins option is enabled, only users in the admin group will be able to log in via console, secure shell (SSH) or graphical login. When this option is disabled, any user with an account on FreedomBox will be able to log in. They may be able to access some services without further authorization. This option should only be disabled if all the users of the system are well trusted. If you wish to use your FreedomBox machine also as a desktop and allow non-admin users to login via GUI, this option must be disabled. You can define the list of users belonging to admin group 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/ServiceDiscovery.raw.xml b/doc/manual/en/ServiceDiscovery.raw.xml index f9d772674..cae82f54e 100644 --- a/doc/manual/en/ServiceDiscovery.raw.xml +++ b/doc/manual/en/ServiceDiscovery.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Shadowsocks.raw.xml b/doc/manual/en/Shadowsocks.raw.xml index f9d10f699..d9af2e866 100644 --- a/doc/manual/en/Shadowsocks.raw.xml +++ b/doc/manual/en/Shadowsocks.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Shadowsocks22019-05-10 22:54:33JamesValleroyremove wiki links12018-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Shadowsocks22019-05-10 22:54:33JamesValleroyremove wiki links12018-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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Snapshots.raw.xml b/doc/manual/en/Snapshots.raw.xml index 5ae946547..eb7cef0b1 100644 --- a/doc/manual/en/Snapshots.raw.xml +++ b/doc/manual/en/Snapshots.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Storage.raw.xml b/doc/manual/en/Storage.raw.xml index ae37aa0a7..daf178d0b 100644 --- a/doc/manual/en/Storage.raw.xml +++ b/doc/manual/en/Storage.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Syncthing.raw.xml b/doc/manual/en/Syncthing.raw.xml index 12d07c810..8ad0418a8 100644 --- a/doc/manual/en/Syncthing.raw.xml +++ b/doc/manual/en/Syncthing.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Syncthing182019-11-11 17:00:38JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service172019-11-01 01:09:33JosephNuthalapatiMinor formatting changes162019-10-31 15:01:33JosephNuthalapatiMinor change to headings152019-10-31 14:42:33JosephNuthalapatiAdd synchronized password manager142019-10-27 05:53:05JosephNuthalapatiAdd tip to avoid using Syncthing relays132019-09-11 15:33:32fioddorCode decoration122019-06-09 11:07:46David Jones112019-06-09 11:00:48David Jonesadded information about syncthing and tor hidden service102018-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. Available since 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.
Synchronizing over TorSyncthing should automatically sync with your FreedomBox even if it is only accessible as a Tor Onion Service. If you would like to proxy your Syncthing client over Tor, set the all_proxy environment variable: For more information, see the Syncthing documentation on using proxies.
Avoiding Syncthing RelaysSyncthing uses dynamic connections by default to connect with other peers. This means that if you are synchronizing over the Internet, the data might have to go through public Syncthing relays to reach your devices. This doesn't take advantage of the fact that your FreedomBox has a public IP address. When adding your FreedomBox as a device in other Syncthing clients, set the address like "tcp://<my.freedombox.domain>" instead of "dynamic". This allows your Syncthing peers to directly connect to your FreedomBox avoiding the need for relays. It also allows for fast on-demand syncing if you don't want to keep Syncthing running all the time on your mobile devices.
Using Syncthing with other applications
Password ManagerPassword managers that store their databases in files are suitable for synchronization using Syncthing. The following example describes using a free password manager called KeePassXC in combination with Syncthing to serve as a replacement for proprietary password managers that store your passwords in the cloud. KeePassXC stores usernames, passwords etc. in files have the .kdbx extension. These kdbx files can be stored in a Syncthing shared folder to keep them synchronized on multiple machines. Free software applications which can read this file format are available for both desktop and mobile. You typically have to just point the application at the .kdbx file and enter the master password to access your stored credentials. For example, the same kdbx file can be accessed by using KeePassXC on desktop and KeePassDX on Android. KeePassXC can also be used to fill credentials into login fields in the browser by installing a browser extension. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Syncthing182019-11-11 17:00:38JosephNuthalapatiRename Tor Hidden Service to Tor Onion Service172019-11-01 01:09:33JosephNuthalapatiMinor formatting changes162019-10-31 15:01:33JosephNuthalapatiMinor change to headings152019-10-31 14:42:33JosephNuthalapatiAdd synchronized password manager142019-10-27 05:53:05JosephNuthalapatiAdd tip to avoid using Syncthing relays132019-09-11 15:33:32fioddorCode decoration122019-06-09 11:07:46David Jones112019-06-09 11:00:48David Jonesadded information about syncthing and tor hidden service102018-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. Available since 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.
Synchronizing over TorSyncthing should automatically sync with your FreedomBox even if it is only accessible as a Tor Onion Service. If you would like to proxy your Syncthing client over Tor, set the all_proxy environment variable: For more information, see the Syncthing documentation on using proxies.
Avoiding Syncthing RelaysSyncthing uses dynamic connections by default to connect with other peers. This means that if you are synchronizing over the Internet, the data might have to go through public Syncthing relays to reach your devices. This doesn't take advantage of the fact that your FreedomBox has a public IP address. When adding your FreedomBox as a device in other Syncthing clients, set the address like "tcp://<my.freedombox.domain>" instead of "dynamic". This allows your Syncthing peers to directly connect to your FreedomBox avoiding the need for relays. It also allows for fast on-demand syncing if you don't want to keep Syncthing running all the time on your mobile devices.
Using Syncthing with other applications
Password ManagerPassword managers that store their databases in files are suitable for synchronization using Syncthing. The following example describes using a free password manager called KeePassXC in combination with Syncthing to serve as a replacement for proprietary password managers that store your passwords in the cloud. KeePassXC stores usernames, passwords etc. in files have the .kdbx extension. These kdbx files can be stored in a Syncthing shared folder to keep them synchronized on multiple machines. Free software applications which can read this file format are available for both desktop and mobile. You typically have to just point the application at the .kdbx file and enter the master password to access your stored credentials. For example, the same kdbx file can be accessed by using KeePassXC on desktop and KeePassDX on Android. KeePassXC can also be used to fill credentials into login fields in the browser by installing a browser extension. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/TinyTinyRSS.raw.xml b/doc/manual/en/TinyTinyRSS.raw.xml index f549fdb81..bde3a549a 100644 --- a/doc/manual/en/TinyTinyRSS.raw.xml +++ b/doc/manual/en/TinyTinyRSS.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Tor.raw.xml b/doc/manual/en/Tor.raw.xml index 17845c4be..b6a4e97bf 100644 --- a/doc/manual/en/Tor.raw.xml +++ b/doc/manual/en/Tor.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Tor232019-11-28 22:24:36SunilMohanAdapaUpdate link to Tor Relay Guide Closes freedom-maker#169, thanks to Jamie Campbell222019-11-11 16:55:49JosephNuthalapatiRename Hidden Service to Onion Service212019-10-27 06:23:30JosephNuthalapatiAdd screenshot for using Tor SOCKS proxy with Firefox202019-10-27 06:18:47JosephNuthalapatiAdd example for using Tor SOCKS proxy with Firefox192019-06-09 10:47:56David Jonesadded two more apps to list182019-05-22 17:10:34David JonesCorrected formatting; added transition sentence.172019-05-22 17:05:45David JonesStarted a list of apps accessible via 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 Onion Service to access your FreedomBoxTor Onion Service provides a way to access your FreedomBox, even if it's behind a router, firewall, or carrier-grade NAT (i.e., your Internet Service Provider does not provide a public IPv4 address for your router). To enable Tor Onion Service, first navigate to the Anonymity Network (Tor) page. (If you don't see it, click on the FreedomBox logo at the top-left of the page, to go to the main Apps page.) On the Anonymity Network (Tor) page, under Configuration, check "Enable Tor Onion Service", then press the Update setup button. Tor will be reconfigured and restarted. After a while, the page will refresh and under Status, you will see a table listing the Onion Service .onion address. Copy the entire address (ending in .onion) and paste it into the Tor Browser's address field, and you should be able to access your FreedomBox. (You may see a certificate warning because FreedomBox has a self-signed certificate.) Tor Browser - Plinth Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Onion Service configured on the FreedomBox.
Apps accessible via TorThe following apps can be accessed over Tor. Note that this list is not exhaustive. Calendar and Addressbook (Radicale) File Synchronization (Syncthing) Feed reader (TinyTinyRSS) Web Search (Searx) Wiki (MediaWiki) Wiki and Blog (Ikiwiki)
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.
(Advanced) Usage as a SOCKS proxyFreedomBox 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.
Example with FirefoxYour web browser can be configured to use the Tor network for all of your browsing activity. This allows for censorship circumvention and also hides your IP address from websites during regular browsing. For anonymity, using tor browser is recommended. Configure your local FreedomBox IP address and port 9050 as a SOCKS v5 proxy in Firefox. There are extensions to allow for easily turning the proxy on and off. Configuring Firefox with Tor SOCKS proxy With the SOCKS proxy configured, you can now access any onion URL directly from Firefox. FreedomBox itself has an onion v3 address that you can connect to over the Tor network (bookmark this for use in emergency situations).
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Tor232019-11-28 22:24:36SunilMohanAdapaUpdate link to Tor Relay Guide Closes freedom-maker#169, thanks to Jamie Campbell222019-11-11 16:55:49JosephNuthalapatiRename Hidden Service to Onion Service212019-10-27 06:23:30JosephNuthalapatiAdd screenshot for using Tor SOCKS proxy with Firefox202019-10-27 06:18:47JosephNuthalapatiAdd example for using Tor SOCKS proxy with Firefox192019-06-09 10:47:56David Jonesadded two more apps to list182019-05-22 17:10:34David JonesCorrected formatting; added transition sentence.172019-05-22 17:05:45David JonesStarted a list of apps accessible via 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 Onion Service to access your FreedomBoxTor Onion Service provides a way to access your FreedomBox, even if it's behind a router, firewall, or carrier-grade NAT (i.e., your Internet Service Provider does not provide a public IPv4 address for your router). To enable Tor Onion Service, first navigate to the Anonymity Network (Tor) page. (If you don't see it, click on the FreedomBox logo at the top-left of the page, to go to the main Apps page.) On the Anonymity Network (Tor) page, under Configuration, check "Enable Tor Onion Service", then press the Update setup button. Tor will be reconfigured and restarted. After a while, the page will refresh and under Status, you will see a table listing the Onion Service .onion address. Copy the entire address (ending in .onion) and paste it into the Tor Browser's address field, and you should be able to access your FreedomBox. (You may see a certificate warning because FreedomBox has a self-signed certificate.) Tor Browser - Plinth Currently only HTTP (port 80), HTTPS (port 443), and SSH (port 22) are accessible through the Tor Onion Service configured on the FreedomBox.
Apps accessible via TorThe following apps can be accessed over Tor. Note that this list is not exhaustive. Calendar and Addressbook (Radicale) File Synchronization (Syncthing) Feed reader (TinyTinyRSS) Web Search (Searx) Wiki (MediaWiki) Wiki and Blog (Ikiwiki)
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.
(Advanced) Usage as a SOCKS proxyFreedomBox 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.
Example with FirefoxYour web browser can be configured to use the Tor network for all of your browsing activity. This allows for censorship circumvention and also hides your IP address from websites during regular browsing. For anonymity, using tor browser is recommended. Configure your local FreedomBox IP address and port 9050 as a SOCKS v5 proxy in Firefox. There are extensions to allow for easily turning the proxy on and off. Configuring Firefox with Tor SOCKS proxy With the SOCKS proxy configured, you can now access any onion URL directly from Firefox. FreedomBox itself has an onion v3 address that you can connect to over the Tor network (bookmark this for use in emergency situations).
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Transmission.raw.xml b/doc/manual/en/Transmission.raw.xml index fc8f27f85..4f44e4345 100644 --- a/doc/manual/en/Transmission.raw.xml +++ b/doc/manual/en/Transmission.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Transmission142019-10-27 04:42:42JosephNuthalapatiRemove irrelevant known issue132019-10-27 04:41:18JosephNuthalapatiMinor fixes122019-10-27 04:40:38JosephNuthalapati112019-09-04 09:19:59fioddorSecurity recommendation102019-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. Transmission uses single sign-on from FreedomBox, which means that if you are logged in on your FreedomBox, you can directly access Transmission without having to enter the credentials again. Otherwise, you will be prompted to login first and then redirected to the Transmission app.
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Transmission142019-10-27 04:42:42JosephNuthalapatiRemove irrelevant known issue132019-10-27 04:41:18JosephNuthalapatiMinor fixes122019-10-27 04:40:38JosephNuthalapati112019-09-04 09:19:59fioddorSecurity recommendation102019-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. Transmission uses single sign-on from FreedomBox, which means that if you are logged in on your FreedomBox, you can directly access Transmission without having to enter the credentials again. Otherwise, you will be prompted to login first and then redirected to the Transmission app.
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Upgrades.raw.xml b/doc/manual/en/Upgrades.raw.xml index 8d24ca9b9..f8d88d84a 100644 --- a/doc/manual/en/Upgrades.raw.xml +++ b/doc/manual/en/Upgrades.raw.xml @@ -5,4 +5,4 @@ Password: # apt -f install # unattended-upgrade --debug # apt install freedombox -# apt update]]>If apt-get update asks for a confirmation to change Codename or other release information, confirm yes. If during update of freedombox package, if a question about overwriting configuration files is asked, answer to install new configuration files from the latest version of the package. This process will upgrade only packages that don't require configuration file questions (except for freedombox package). After this, let FreedomBox handle the upgrade of remaining packages. Be patient while new releases of FreedomBox are made to handle packages that require manual intervention. If you want to go beyond the recommendation to upgrade all the packages on your FreedomBox and if you are really sure about handling the configuration changes for packages yourself, run the following command: 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +# apt update]]>If apt-get update asks for a confirmation to change Codename or other release information, confirm yes. If during update of freedombox package, if a question about overwriting configuration files is asked, answer to install new configuration files from the latest version of the package. This process will upgrade only packages that don't require configuration file questions (except for freedombox package). After this, let FreedomBox handle the upgrade of remaining packages. Be patient while new releases of FreedomBox are made to handle packages that require manual intervention. If you want to go beyond the recommendation to upgrade all the packages on your FreedomBox and if you are really sure about handling the configuration changes for packages yourself, run the following command: 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/Users.raw.xml b/doc/manual/en/Users.raw.xml index 1bedc0f43..e060c7adc 100644 --- a/doc/manual/en/Users.raw.xml +++ b/doc/manual/en/Users.raw.xml @@ -1 +1 @@ -
FreedomBox/Manual/Users82019-07-29 22:34:11JamesValleroybetter wording72019-07-29 22:22:17JamesValleroyremove "Plinth"62019-07-29 22:10:39JamesValleroymention which releases known issue applies to52019-07-29 22:08:21JamesValleroyadd more supported groups42017-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 bit-torrent ed2k feed-reader syncthing web-search 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). A user's groups 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 IssuesIn Debian Stretch, the FreedomBox web interface does not distinguish between users and administrators. Every user added will have full access to the web interface. This issue is fixed in Debian Buster and later. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
FreedomBox/Manual/Users82019-07-29 22:34:11JamesValleroybetter wording72019-07-29 22:22:17JamesValleroyremove "Plinth"62019-07-29 22:10:39JamesValleroymention which releases known issue applies to52019-07-29 22:08:21JamesValleroyadd more supported groups42017-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 bit-torrent ed2k feed-reader syncthing web-search 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). A user's groups 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 IssuesIn Debian Stretch, the FreedomBox web interface does not distinguish between users and administrators. Every user added will have full access to the web interface. This issue is fixed in Debian Buster and later. 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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/ejabberd.raw.xml b/doc/manual/en/ejabberd.raw.xml index b07ccf3e9..f7801d1a1 100644 --- a/doc/manual/en/ejabberd.raw.xml +++ b/doc/manual/en/ejabberd.raw.xml @@ -1 +1 @@ -
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
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 FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/en/freedombox-manual.raw.xml b/doc/manual/en/freedombox-manual.raw.xml index cda93188a..553743496 100644 --- a/doc/manual/en/freedombox-manual.raw.xml +++ b/doc/manual/en/freedombox-manual.raw.xml @@ -4,6 +4,12 @@ FreedomBox/Manual + + 84 + 2020-05-06 06:02:24 + SunilMohanAdapa + Include Coturn app + 83 2020-05-04 07:46:54 @@ -590,6 +596,8 @@ Quick Start
What you need to get started + The easy way is to buy a FreedomBox kit. + Alternatively you may choose to build it yourself, by gathering all the components: A supported device (including any device that can run Debian). We will call that the FreedomBox in the rest of this manual. @@ -885,7 +893,13 @@
Download and Install - Welcome to the FreedomBox download page. You may either install FreedomBox on one of the supported inexpensive hardware devices, on any Linux Debian operating system, or deploy it on a virtual machine. + Welcome to the FreedomBox download page. + + + Note: If you purchased a FreedomBox kit this section is not meant for you, so you can just skip it entirely. (Unless you specifically want to build an alternative software image). + + + You may either install FreedomBox on one of the supported inexpensive hardware devices, on any Debian operating system, or deploy it on a virtual machine. Installing on a machine running a Debian system is easy because FreedomBox is available as a package. We do recommend to install FreedomBox on a supported single board computer (SBC). The board will be dedicated for FreedomBox use from home, this will prevent a lot of risks, such as accidental misconfiguration by the user. In case of trouble deciding which hardware is best for you or during the installation, please use the support page or read the Questions and Answers page based on posts on the Freedombox-discuss mailing list archives.
Downloading on Debian @@ -1571,13 +1585,13 @@ dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of=
Synchronizing over Tor - In Plinth, setting up a calendar with Radicale over Tor is the same as over the clear net. Here is a short summary: + In FreedomBox, setting up a calendar with Radicale over Tor is the same as over the clear net. Here is a short summary: - When logged in to Plinth over Tor, click on Radicale, and at the prompt provide your FreedomBox user name and password. + When logged in to FreedomBox interface over Tor, click on Radicale, and at the prompt provide your FreedomBox user name and password. - In the Radicale web interface, log in using your FreedomBox user name and password. + In the Radicale web interface, log in using your FreedomBox user name and password. Click on "Create new address book or calendar", provide a title, select a type, and click "Create". @@ -1601,10 +1615,10 @@ dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of=Select CalDAV and for the location copy the URL, e.g., https://ONION-ADDRESS-FOR-YOUR-SERVER.onion/radicale/USERNAME/CALENDAR-CODE/. Items in italics need to be changed to match your settings. - Provide a name, etc. Click "Next". Your calendar is now syncing with your FreedomBox over Tor. + Provide a name, etc. Click "Next". Your calendar is now syncing with your FreedomBox over Tor. - If you have not generated a certificate for your FreedomBox with "Let's Encrypt", you may need to select "Confirm Security Exception" when prompted. + If you have not generated a certificate for your FreedomBox with "Let's Encrypt", you may need to select "Confirm Security Exception" when prompted.
@@ -2036,8 +2050,8 @@ echo "UPDATE users SET admin=1 WHERE name='@username:domainname'" | sudo sqlite3
- File Synchronization (Samba) - Samba lets you have a shared folder over the local network that can be used from multiple computers running different operating systems. We will henceforth refer to these shared folders as "shares". + Network File Storage (Samba) + Samba lets you have shared folders over the local network that can be used from multiple computers running different operating systems. We refer to these shared folders as "shares". You can have a personal folder shared between your own devices (Home share), a folder shared with a trusted group (Group share) or one that is shared with every device on the network (Open share). Samba lets you to treat a share as if it's a local folder on your computer. However, shares are available only on the local network. To learn more about Samba, please refer to the user documentation on their wiki. @@ -2093,7 +2107,7 @@ echo "UPDATE users SET admin=1 WHERE name='@username:domainname'" | sudo sqlite3 How to setup Quassel? - Within Plinth + Within FreedomBox's web interface select Applications @@ -2135,10 +2149,10 @@ echo "UPDATE users SET admin=1 WHERE name='@username:domainname'" | sudo sqlite3 - + - Quassel_PortForwarding.png + Quassel_PortForwarding_en_v01.png @@ -2936,6 +2950,28 @@ $ sudo nmcli connection import type openvpn file /path/to/.ovpn]]>
+
+ VoIP Helper (Coturn) + Coturn is a server to facilitate audio/video calls and conferences by providing an implementation of TURN and STUN protocols. WebRTC, SIP and other communication servers can use it to establish a call between parties who are otherwise unable connect to each other. + It is not meant to be used directly by users. Servers such as Matrix Synapse need to be configured with the details provided on the Coturn app page. Apart from Matrix Synapse, Jitsi, Ejabberd, Nextcloud Talk, etc. can use Coturn server for audio/video calls and conferences. There is no need for the servers to be running on the same machine as FreedomBox and external servers can use Coturn running on FreedomBox. + Coturn is available in FreedomBox since version 20.8 as an advanced app. This means that you need to check "Show advanced apps and features" in "General Configuration" to see Coturn icon in the "Apps" section. +
+ How it works + When making an audio/video call, it is best to route the media streams between two peers directly. This will give the best possible latency (better signal quality) and avoid depending on a centralized server (privacy). It scales well because a simple chat server can host thousands of calls without involving the server in any way other than to setup the call. However, this approach does not work most of the time to due to how networks are configured. Most peers on the network do not have a unique IP address allocated to them. They work hidden behind a network device that performs "Network Address Translation" (NAT) for them. This means that the two peers have no way of reaching each other. + To address this problem, a simple technique known as STUN was introduced. With the help of a third party STUN server, the peers can trick the NAT devices, to carry the traffic between the two peers. Unfortunately, this trick only works about 80% of the time. So, if STUN fails, peers have no choice but to route their traffic through an intermediary server called TURN server. All the mechanism of trying out STUN first and then falling back to TURN is described in a protocol known as ICE. + On FreedomBox, Coturn provides both STUN and TURN servers. Both services are provided over TCP as well as UDP. They are provided on unencrypted as well as encrypted channels (with have a higher chance of success). Since STUN servers are very inexpensive and don't consume a lot of server resources, there is no authentication needed to use them. TURN servers on the other hand need authentication. This authentication is highly simplified and does not require maintaining a database of users. A server such as matrix-synapse which is about to setup an audio/video call between two peers will generate a username and password using a shared secret. When the peers use the TURN server, they will be validated using these credentials because the TURN server also knows the same secret. + In summary, a communication server needs to know the URLs of the STUN/TURN servers along with a shared authentication secret for TURN. After that, during audio/video call setup, they will correctly guide the peers to use STUN/TURN servers. Coturn app in FreedomBox provides exactly this information. This information can be used to configure a communication server irrespective of whether it is running on the same FreedomBox or on another server. +
+
+ Configuring Matrix Synapse + Matrix Synapse server in FreedomBox can be configured to use Coturn TURN/STUN server. In future, when you install Matrix Synapse, FreedomBox will automatically install Coturn and configure its parameters into Matrix Synapse. To configure Matrix Synapse, edit the file /etc/matrix-synapse/homeserver.yaml with the following lines: + + And then restart matrix-synapse server by disabling and re-enabling the matrix-synapse app. +
+
Web Proxy (Privoxy) A web proxy acts as a filter for incoming and outgoing web traffic. Thus, you can instruct any computer in your network to pass internet traffic through the proxy to remove unwanted ads and tracking mechanisms. @@ -6690,22 +6726,15 @@ nmcli con modify "" connection.zone internal]]>
Performance (cockpit-pcp) - - - Cockpit support for reading PCP metrics and loading PCP archives. - - - Performance Co-Pilot (PCP) is a framework and services to support system-level performance monitoring and performance management. - - - When this system app is installed and enabled, cockpit's graphs show the past (up to one week). + Performance app allows you to collect, store and view information about utilization of the hardware. This can gives you basic insights into usage patterns and whether the hardware is overloaded by users and services. + Performance metrics are collected by Performance Co-Pilot and can be viewed using the Cockpit app. Performance app is available in FreedomBox since version 20.9. When this system app is installed and enabled, cockpit's graphs shows the past (up to one year at a time). - + - one-week.png + performance-one-week.png @@ -8069,7 +8098,7 @@ Password:
Pioneer Edition FreedomBox - Pioneer FreedomBox Home Servers are produced and sold by Olimex, a company which specializes in Open Source Hardware. The kit includes pocket-sized server hardware, an SD card with the operating system pre-installed, and a backup battery which can power the hardware for 4-5 hours in case of outages. It sells for 82 euro. By purchasing this product, you also support the FreedomBox Foundation's efforts to create and promote its free and open source server software. + Pioneer FreedomBox Home Servers are produced and sold by Olimex, a company which specializes in Open Source Hardware (OSHW). The kit includes pocket-sized server hardware, an SD card with the operating system pre-installed, and a backup battery which can power the hardware for 4-5 hours in case of outages. It sells for 82 euro. An optional storage add-on for high capacity hard disk (HDD) or solid-state drive (SSD) is also available from Olimex. By purchasing this product, you also support the FreedomBox Foundation's efforts to create and promote its free and open source server software. @@ -8102,6 +8131,9 @@ Password: an Ethernet cable. + + an optional storage add-on for hard disk (HDD) or solid-state drive (SSD) +
@@ -8125,6 +8157,7 @@ Password:
Hardware Specifications + Pioneer Edition FreedomBox Home Server is based on A20-OLinuXino-LIME2 Rev.G. Open Source Hardware (OSHW): Yes @@ -8138,6 +8171,12 @@ Password: Storage: 32GB class 10+ microSD card pre-loaded with FreedomBox + + SATA: 1 SATA port 2.6 compliant 3Gb/s + + + USB: 2 USB 2.0 Hi-Speed host ports + Battery: 3.3V Li-Po, 1400mAh (4-5 hours of backup without additional devices connected via USB) @@ -8147,12 +8186,70 @@ Password: Power adapter: 110-220 V input, 5V output, EU style (with optional UK or US sockets) + + Power consumption: 1.5W and 5W depending on load (0.3A to 1A current) + Box: Custom metallic box with FreedomBox decal + Further information: + + + + Quick start leaflet + + + + + Hardware source files + + + + + A20-OLinuXino-LIME2 rev.G schematic + + + + + A20 SOC datasheet + + + 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+).
+
+ Storage Add-on + You can order a storage add-on along with the Pioneer Edition FreedomBox Home Server. The storage add-on is a SATA disk drive enclosure case optionally with a hard disk or solid-state drive of size 128GB to 2000GB. If you have already purchased the Home Server without the add-on, you can order the add-on separately. + + + + Olimex Store + + + + Price: 9 EUR (without the hard disk, only for the case, you need to add your own HDD/SSD to it) + + + Price: 42 EUR (with 128GB Solid-State Drive) + + + Price: 69 EUR (with 512GB Solid-State Drive) + + + Price: 42 EUR (with 320GB Hard Disk) + + + Price: 53 EUR (with 500GB Hard Disk) + + + Price: 64 EUR (with 1000GB Hard Disk) + + + Price: 86 EUR (with 2000GB Hard Disk) + + +
Download The kits come with an SD card pre-loaded with FreedomBox. There's NO need to download images. @@ -10184,6 +10281,78 @@ 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 20.9 (2020-05-18) +
+ Top Highlights + + + performance: Add app for system monitoring + + + upgrades: Restart services and system when needed after upgrades + + + System restart will happen at 02:00 local time + + + + +
+
+ Other Changes + + + bind: Add service alias for bind9 -> named + + + firewall: Reload firewalld so it works with newly installed services + + + first_setup: Fix regression with logo not showing + + + locale: Update translations for Norwegian Bokmål, German, Swedish, Spanish, and Russian + + + mediawiki: Stop jobrunner during backup/restore + + + minidlna: Stop service during backup/restore + + + mumble: Stop service during backup/restore + + + package: Fix error log when checking if package manager is busy + + + performance: Launch the Cockpit graphs directly if possible + + + quassel: Fix stopping service during backup/restore + + + quassel: Use systemd sandboxing features + + + samba: Change description to Network File Storage + + + snapshot: Fix issues with restore and delete + + + snapshot: Set as essential module + + + storage: Auto-mount disks, notify of failing disks + + + tor: Fix stopping service during backup/restore + + +
+
FreedomBox 20.8 (2020-05-04) diff --git a/doc/manual/en/images/Quassel_PortForwarding_en_v01.png b/doc/manual/en/images/Quassel_PortForwarding_en_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1c06772cf31bc70544af3d016f6432670cd298 GIT binary patch literal 45458 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 literal 0 HcmV?d00001 diff --git a/doc/manual/es/Apache_userdir.raw.xml b/doc/manual/es/Apache_userdir.raw.xml index 07e8e101f..de5e154d8 100644 --- a/doc/manual/es/Apache_userdir.raw.xml +++ b/doc/manual/es/Apache_userdir.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Apache_userdir52020-03-01 11:59:06fioddorSe alinea con la versión 06 en inglés del 26 de febrero de 202042019-10-21 14:19:20fioddorCorrección menor32019-10-21 14:17:11fioddorCorrección menor22019-08-29 12:55:24fioddorCorrección menor12019-08-29 12:50:13fioddorSe crea la versión española.
Sitios Web de Usuario (User websites) (userdir)
¿Qué es User websites?User websites es un módulo del servidor web Apache habilitado para permitir a los usuarios definidos en el sistema FreedomBox exponer un conjunto de archivos del sistema de ficheros de FreedomBox como sitio web a la red local y/o a internet de acuerdo a la configuración de la red y el cortafuegos. Datos básicos de la aplicaciónCategoría Compartición de archivos Disponible desde la versión 0.9.4Sitio web del proyecto original Documentación original de usuario
Captura de pantallaAñadir cuando/si se crea un interfaz para FreedomBox
Usar User websitesEl módulo está siempre activado y el interfaz web de FreedomBox no ofrece configuración ni página de estado para este módulo. Para servir documentos con el módulo solo se necesita poner los documentos en un subdirectorio designado /home/<un_usuario_de_plinth>/public_html. User websites servirá los archivos que haya en este directorio cuando se reciban peticiones con la URI ~<un_usuario_de_freedombox>. Por tanto para un dominio ejemplo.org con un usuario pepe una petición ejemplo.org/~pepe/index.html transferirá el fichero /home/pepe/public_html/index.html.
Usar SFTP para crear public_html y subir archivosPendiente de redactar Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Apache_userdir52020-03-01 11:59:06fioddorSe alinea con la versión 06 en inglés del 26 de febrero de 202042019-10-21 14:19:20fioddorCorrección menor32019-10-21 14:17:11fioddorCorrección menor22019-08-29 12:55:24fioddorCorrección menor12019-08-29 12:50:13fioddorSe crea la versión española.
Sitios Web de Usuario (User websites) (userdir)
¿Qué es User websites?User websites es un módulo del servidor web Apache habilitado para permitir a los usuarios definidos en el sistema FreedomBox exponer un conjunto de archivos del sistema de ficheros de FreedomBox como sitio web a la red local y/o a internet de acuerdo a la configuración de la red y el cortafuegos. Datos básicos de la aplicaciónCategoría Compartición de archivos Disponible desde la versión 0.9.4Sitio web del proyecto original Documentación original de usuario
Captura de pantallaAñadir cuando/si se crea un interfaz para FreedomBox
Usar User websitesEl módulo está siempre activado y el interfaz web de FreedomBox no ofrece configuración ni página de estado para este módulo. Para servir documentos con el módulo solo se necesita poner los documentos en un subdirectorio designado /home/<un_usuario_de_plinth>/public_html. User websites servirá los archivos que haya en este directorio cuando se reciban peticiones con la URI ~<un_usuario_de_freedombox>. Por tanto para un dominio ejemplo.org con un usuario pepe una petición ejemplo.org/~pepe/index.html transferirá el fichero /home/pepe/public_html/index.html.
Usar SFTP para crear public_html y subir archivosPendiente de redactar Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Backups.raw.xml b/doc/manual/es/Backups.raw.xml index e8e0240bc..1252bc656 100644 --- a/doc/manual/es/Backups.raw.xml +++ b/doc/manual/es/Backups.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Backups82020-04-11 10:33:24fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_15425872020-04-04 13:32:23fioddorCorrección menor62020-04-04 13:31:45fioddorImágenes indicativas52020-04-04 13:10:54fioddorCorrección.42020-04-04 13:09:42fioddorSe usan imágenes traducidas y más actuales.32020-04-04 13:06:11fioddorCorrección. Descripción de pasos como texto en los títulos en vez de como imágenes (mejor accesibilidad)22019-11-14 18:14:48fioddorSe alinea con la versión 31 en inglés del 11 de noviembre de 201912019-06-18 15:14:43fioddorSe crea la versión española.
Copias de respaldo (backups)FreedomBox incluye la posibilidad de copiar y restaurar datos, preferencias, configuración y secretos de la mayoría de las aplicaciones. La funcionalidad de Backups se resuelve con el software de backup Borg. Borg es un programa de backup con deduplicación y compresión. Está diseñado para hacer backups eficientes y seguros. Esta funcionalidad de backups se puede emplear para respaldar y recuperar datos aplicación por aplicación. Las copias de respaldado se pueden almacenar en la propia máquina FreedomBox o en un servidor remoto. Cualquier servidor remoto con acceso por SSH se puede emplear como almacenamiento para los backups de la FreedomBox. Las copias remotas se pueden cifrar para que el servidor remoto no pueda leer los datos que alberga.
Estados de la Funcionalidad de Backups App/Funcionalidad Soporte en Versión Notas Avahi - no precisa backup Backups - no precisa backup Bind 0.41 Cockpit - no precisa backup Coquelicot 0.40 incluye ficheros subidos Datetime 0.41 Deluge 0.41 no incluye archivos descargados ni semillas Diagnostics - no precisa backup Dynamic DNS 0.39 ejabberd 0.39 incluye todos los datos y configuración Firewall - no precisa backup ikiwiki 0.39 incluye todos los wikis/blogs y sus contenidos infinoted 0.39 incluye todos los datos y claves JSXC - no precisa backup Let's Encrypt 0.42 Matrix Synapse 0.39 incluye media y cargas MediaWiki 0.39 incluye páginas de wiki y archivos adjuntos Minetest 0.39 MLDonkey 19.0 Monkeysphere 0.42 Mumble 0.40 Names - no precisa backup Networks No sin planes para implementar backup, de momento OpenVPN 0.48 incluye a todos los usuarios y claves de servidor Pagekite 0.40 Power - no precisa backup Privoxy - no precisa backup Quassel 0.40 incluye usuarios y registros de ejeución (logs) Radicale 0.39 incluye calendario y datos de tarjetas de todos los usuarios repro 0.39 incluye a todos los usuarios, datos y claves Roundcube - no precisa backup SearX - no precisa backup Secure Shell (SSH) Server 0.41 incluye las claves del servidor Security 0.41 Shadowsocks 0.40 solo secretos Sharing 0.40 no incluye datos de las carpetas compartidas Snapshot 0.41 solo configuración, no incluye datos de capturas (snapshots) Storage - no precisa backup Syncthing 0.48 no incluye datos de las carpetas compartidas Tahoe-LAFS 0.42 incluye todos los datos y configuración Tiny Tiny RSS 19.2 incluye base de datos con feeds, historias, etc. Tor 0.42 includes configuración y secretos como las claves de servicios Tor Onion Transmission 0.40 no incluye archivos descargados ni semillas Upgrades 0.42 Users No sin planes para implementar backup, de momento
Cómo instalar y usar BackupsPaso 1: Ir a la página de Copias de Seguridad Backups: Paso 1 Paso 2: Pulsar el botón Instalar Backups: Paso 2 Paso 3: Esperar a que se instalen todos los componentes de la aplicación Backups: Paso 3 Paso 4: Pulsar el botón de Crear Copia de Seguridad Backups: Paso 4 Paso 5: Seleccionar las aplicaciones a respaldar y pulsar Enviar Backups: Paso 5 Paso 6: Pulsar en el botón Descargar Backups: Paso 6 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Backups82020-04-11 10:33:24fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_15425872020-04-04 13:32:23fioddorCorrección menor62020-04-04 13:31:45fioddorImágenes indicativas52020-04-04 13:10:54fioddorCorrección.42020-04-04 13:09:42fioddorSe usan imágenes traducidas y más actuales.32020-04-04 13:06:11fioddorCorrección. Descripción de pasos como texto en los títulos en vez de como imágenes (mejor accesibilidad)22019-11-14 18:14:48fioddorSe alinea con la versión 31 en inglés del 11 de noviembre de 201912019-06-18 15:14:43fioddorSe crea la versión española.
Copias de respaldo (backups)FreedomBox incluye la posibilidad de copiar y restaurar datos, preferencias, configuración y secretos de la mayoría de las aplicaciones. La funcionalidad de Backups se resuelve con el software de backup Borg. Borg es un programa de backup con deduplicación y compresión. Está diseñado para hacer backups eficientes y seguros. Esta funcionalidad de backups se puede emplear para respaldar y recuperar datos aplicación por aplicación. Las copias de respaldado se pueden almacenar en la propia máquina FreedomBox o en un servidor remoto. Cualquier servidor remoto con acceso por SSH se puede emplear como almacenamiento para los backups de la FreedomBox. Las copias remotas se pueden cifrar para que el servidor remoto no pueda leer los datos que alberga.
Estados de la Funcionalidad de Backups App/Funcionalidad Soporte en Versión Notas Avahi - no precisa backup Backups - no precisa backup Bind 0.41 Cockpit - no precisa backup Coquelicot 0.40 incluye ficheros subidos Datetime 0.41 Deluge 0.41 no incluye archivos descargados ni semillas Diagnostics - no precisa backup Dynamic DNS 0.39 ejabberd 0.39 incluye todos los datos y configuración Firewall - no precisa backup ikiwiki 0.39 incluye todos los wikis/blogs y sus contenidos infinoted 0.39 incluye todos los datos y claves JSXC - no precisa backup Let's Encrypt 0.42 Matrix Synapse 0.39 incluye media y cargas MediaWiki 0.39 incluye páginas de wiki y archivos adjuntos Minetest 0.39 MLDonkey 19.0 Monkeysphere 0.42 Mumble 0.40 Names - no precisa backup Networks No sin planes para implementar backup, de momento OpenVPN 0.48 incluye a todos los usuarios y claves de servidor Pagekite 0.40 Power - no precisa backup Privoxy - no precisa backup Quassel 0.40 incluye usuarios y registros de ejeución (logs) Radicale 0.39 incluye calendario y datos de tarjetas de todos los usuarios repro 0.39 incluye a todos los usuarios, datos y claves Roundcube - no precisa backup SearX - no precisa backup Secure Shell (SSH) Server 0.41 incluye las claves del servidor Security 0.41 Shadowsocks 0.40 solo secretos Sharing 0.40 no incluye datos de las carpetas compartidas Snapshot 0.41 solo configuración, no incluye datos de capturas (snapshots) Storage - no precisa backup Syncthing 0.48 no incluye datos de las carpetas compartidas Tahoe-LAFS 0.42 incluye todos los datos y configuración Tiny Tiny RSS 19.2 incluye base de datos con feeds, historias, etc. Tor 0.42 includes configuración y secretos como las claves de servicios Tor Onion Transmission 0.40 no incluye archivos descargados ni semillas Upgrades 0.42 Users No sin planes para implementar backup, de momento
Cómo instalar y usar BackupsPaso 1: Ir a la página de Copias de Seguridad Backups: Paso 1 Paso 2: Pulsar el botón Instalar Backups: Paso 2 Paso 3: Esperar a que se instalen todos los componentes de la aplicación Backups: Paso 3 Paso 4: Pulsar el botón de Crear Copia de Seguridad Backups: Paso 4 Paso 5: Seleccionar las aplicaciones a respaldar y pulsar Enviar Backups: Paso 5 Paso 6: Pulsar en el botón Descargar Backups: Paso 6 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Cockpit.raw.xml b/doc/manual/es/Cockpit.raw.xml index cb4ec0b74..b298ceaa8 100644 --- a/doc/manual/es/Cockpit.raw.xml +++ b/doc/manual/es/Cockpit.raw.xml @@ -1,3 +1,3 @@
es/FreedomBox/Manual/Cockpit72019-11-14 18:06:47fioddorSe alinea con la versión 06 en inglés del 14 de noviembre de 201962019-11-14 18:01:18fioddorSe alinea con la versión 05 en inglés del 11 de noviembre de 201952019-08-28 07:46:04fioddorTítulo explicativo y el nombre de la app entre paréntesis como aclaración adicional42019-08-22 11:10:28fioddorSe actualiza a la versión inglesa 4 del 20 de agosto de 2019.32019-07-22 17:57:58fioddorSe incorpora la traducción de una sección nueva.22019-07-01 12:32:35fioddorClaridad.12019-07-01 09:47:44fioddorSe crea la versión española.
Administración de Servidor (Cockpit)Cockpit es una aplicación que facilita administrar servidores GNU/Linux desde el navegador web. En una FreedomBox, hay disponibles controles para muchas funciones avanzadas que normalmente no se necesitan. También hay disponible un terminal web para operaciones de consola. Cualquier usuario del grupo de administradores de to FreedomBox puede acceder a Cockpit. Cockpit solo se puede usar si tienes una configuración de nombre de dominio apropiada para tu FreedomBox y usas ese nombre de dominio para acceder a Cockpit. Para más información mira la sección de Resolución de Problemas. Usa cockpit sólo si eres un administrador de sistemas GNU/Linux con habilidades avanzadas. FreedomBox intenta coexistir con los cambios al sistema que efectúan los administradores y sus herramientas, como Cockpit. Sin embargo, los cambios al sistema inadecuados pueden causar fallos en las funciones de FreedomBox.
Usar CockpitInstala Cockpit como cualquier otra aplicación de FreedomBox. Y a continuación asegúrate de que Cockpit está habilitado. cockpit-enable.png Asegúrate de que la cuenta de usuario de FreedomBox que se empleará con Cockpit es parte del grupo de administradores. cockpit-admin-user.png Arranca el interfaz web de Cockpit. Ingresa con la cuenta de usuario configurada. cockpit-login.png Empieza a usar cockpit. cockpit-system.png Cockpit también funciona con interfaces mobiles. cockpit-mobile.png
FuncionalidadesLas siguientes funcionalidades de Cockpit pueden ser útiles para usuarios avanzados de FreedomBox.
Cuadro de Mando del SistemaCockpit tiene un cuadro de mando del sistema que Muestra información detallada del hardware. Muestra métricas básicas de rendimiento del sistema. Permite cambiar la hora y el huso del sistema. Permite cambiar el hostname. Por favor usa el interfaz de usuario de FreedomBox UI para hacer esto. Muestra las huellas del servidor SSH. cockpit-system.png
Visualización de los Registros de Ejecución (logs) del SistemaCockpit permite consultar los registros de ejecución (logs) del sistema y examinarlos a todo detalle. cockpit-logs.png
Administración de AlmacenamientoCockpit permite las siguientes funciones avanzadas de almacenamiento: Visualización de llenado de discos. Edición de particiones de disco. Administración de RAID. cockpit-storage1.png cockpit-storage2.png
RedesTanto Cockpit como FreedomBox se apoyan en NetworkManager para configurar la red. No obstante, Cockpit ofrece alguna configuración avanzada no disponible en FreedomBox: Configuración de rutas. Configuración de enlaces, puentes y VLANs. cockpit-network1.png cockpit-network2.png cockpit-network3.png
ServiciosCockpit permite agendar servicios y tareas periódicas (como cron). cockpit-services1.png cockpit-services2.png
Terminal WebCockpit ofrece un terminal web que se puede usar para ejecutar tareas manuales de administración del sistema. cockpit-terminal.png
Resolución de ProblemasCockpit require un nombre de dominio adecuadamente configurado en tu FreedomBox y solo funcionará cuando accedas a él mediante una URL con ese nombre de dominio. Cockpit no funcionará con una dirección IP en la URL. Tampoco con freedombox.local como nombre de dominio. Por ejemplo, las URLs siguientes no funcionarán: A partir de la versión 19.15 funciona el dominio .local. Puedes acceder a Cockpit mediante la URL . El dominio .local se basa en tu hostname. Si tu hostname es mifb tu nombre de dominio .local será mifb.local y la URL de Cockpit será . Para acceder apropiadamente a Cockpit, usa el nombre de dominio configurado en tu FreedomBox. Cockpit también funcionará cuando se use un Servicio Tor Onion. Las siguientes URLs funcionarán: La razón para este comportamiento es que Cockpit emplea WebSockets para conectar con el servidor de backend. Por seguridad se deben evitar las peticiones a WebSockets con servidores cruzados. Para implementar esto Cockpit maintiene una lista de todos los dominios desde los que se admiten peticiones. FreedomBox configura automaticamente esta lista cuando añades o borras un dominio. Sin embargo, como no podemos fiarnos de las direcciones IP, FreedomBox no las añade a esta lista. Puedes mirar la lista actual de dominios aceptados administrada por FreedomBox en /etc/cockpit/cockpit.conf. Puedes editarla pero hazlo solo si comprendes sus consecuencias para la seguridad web. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +https://exampletorhs.onion/cockpit/]]>La razón para este comportamiento es que Cockpit emplea WebSockets para conectar con el servidor de backend. Por seguridad se deben evitar las peticiones a WebSockets con servidores cruzados. Para implementar esto Cockpit maintiene una lista de todos los dominios desde los que se admiten peticiones. FreedomBox configura automaticamente esta lista cuando añades o borras un dominio. Sin embargo, como no podemos fiarnos de las direcciones IP, FreedomBox no las añade a esta lista. Puedes mirar la lista actual de dominios aceptados administrada por FreedomBox en /etc/cockpit/cockpit.conf. Puedes editarla pero hazlo solo si comprendes sus consecuencias para la seguridad web. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Configure.raw.xml b/doc/manual/es/Configure.raw.xml index b0f1a342d..ab656b1d3 100644 --- a/doc/manual/es/Configure.raw.xml +++ b/doc/manual/es/Configure.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Configure22019-06-18 15:50:11fioddorCorrección menor12019-06-18 15:46:38fioddorSe crea la versión española.
ConfigurarConfigurar tiene algunas opciones generales de configuración:
HostnameHostname es el nombre local por el que otros dispositivos pueden alcanzar tu FreedomBox desde la red local. El hostname por defecto es freedombox.
Nombre de DominioEl Nombre de Dominio es el nombre global por el que otros dispositivos pueden alcanzar tu FreedomBox desde la Internet. El valor que se asigne aquí es el que usarán Chat Server (XMPP), Matrix Synapse, Certificates (Let's Encrypt), y Monkeysphere.
Página Principal (home) del Servidor WebEsta es una opción avanzada que te permite establecer como home algo diferente al servicio FreedomBox (Plinth) para que se sirva a quien acceda con el navegador al nombre de dominio de FreedomBox. Por ejemplo, si el nombre de dominio de tu FreedomBox es y estableces a MediaWiki como home, al visitar te llevará a en vez de a . Puedes asignar la home a cualquier aplicación web, los wikis y blogs de Ikiwiki o la página index.html por defecto de Apache. Una vez asignada como home otra aplicación, ya solo puedes navegar al servicio FreedomBox (Plinth) tecleando en el navegador . /freedombox también se puede usar como alias para /plinth Consejo: Guarda la URL del servicio FreedomBox (Plinth) antes de asignar la home a otra app. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Configure22019-06-18 15:50:11fioddorCorrección menor12019-06-18 15:46:38fioddorSe crea la versión española.
ConfigurarConfigurar tiene algunas opciones generales de configuración:
HostnameHostname es el nombre local por el que otros dispositivos pueden alcanzar tu FreedomBox desde la red local. El hostname por defecto es freedombox.
Nombre de DominioEl Nombre de Dominio es el nombre global por el que otros dispositivos pueden alcanzar tu FreedomBox desde la Internet. El valor que se asigne aquí es el que usarán Chat Server (XMPP), Matrix Synapse, Certificates (Let's Encrypt), y Monkeysphere.
Página Principal (home) del Servidor WebEsta es una opción avanzada que te permite establecer como home algo diferente al servicio FreedomBox (Plinth) para que se sirva a quien acceda con el navegador al nombre de dominio de FreedomBox. Por ejemplo, si el nombre de dominio de tu FreedomBox es y estableces a MediaWiki como home, al visitar te llevará a en vez de a . Puedes asignar la home a cualquier aplicación web, los wikis y blogs de Ikiwiki o la página index.html por defecto de Apache. Una vez asignada como home otra aplicación, ya solo puedes navegar al servicio FreedomBox (Plinth) tecleando en el navegador . /freedombox también se puede usar como alias para /plinth Consejo: Guarda la URL del servicio FreedomBox (Plinth) antes de asignar la home a otra app. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Coquelicot.raw.xml b/doc/manual/es/Coquelicot.raw.xml index bef7b4933..c84e7d402 100644 --- a/doc/manual/es/Coquelicot.raw.xml +++ b/doc/manual/es/Coquelicot.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Coquelicot32020-04-13 16:17:26fioddorSe alinea con la versión 08 en inglés del 12 de abril de 202022019-09-11 10:34:42fioddorCorrecciones menores.12019-09-11 10:27:55fioddorSe crea la versión española.
Compartición de Archivos (Coquelicot)
Acerca de CoquelicotCoquelicot es aplicación web para compartir archivos enfocada a proteger la privacidad de sus usuarios. El principio básico es simple: los usuarios pueden subir un archivo al servidor y a cambio reciben una URL única para descargarlo que se puede compartir con terceros. Además se puede establecer una contraseña para reforzar el acceso. Más información acerca de Coquelicot en su LEEME Disponible desde: versión 0.24.0
Cuando usar CoquelicotEl mejor uso de Coquelicot es para compartir rápidamente un archivo suelto. Si quieres compartir una carpeta... ...para usar y tirar, comprime la carpeta y compartela como archivo con Coquelicot ...que deba mantenerse sincronizada entre ordenadores usa mejor Syncthing Coquelicot también puede proporcionar un grado de privacidad razonable. Si se necesita anonimato mejor sopesas emplear la aplicación de escritorio Onionshare. Como Coquelicot carga todo el archivo al servidor tu FreedomBox consumirá ancho de banda tanto para la subida como para la descarga. Para archivos muy grandes sopesa compartirlos creando un fichero BitTorrent privado. Si se necesita anonimato usa Onionshare. Es P2P y no necesita servidor.
Coquelicot en FreedomBoxCon Coquelicot instalado puedes subir archivos a tu servidor FreedomBox y compartirlos en privado. Tras la instalación la página de Coquelicot ofrece 2 preferencias. Contraseña de Subida: Actualmente y por facilidad de uso Coquelicot está configurado en FreedomBox para usar autenticación simple por contraseña. Recuerda que se trata de una contraseña global para esta instancia de Coquelicot y no tu contraseña de usuario para FreedomBox. Tienes que acordarte de esta contraseña. Puedes establecer otra en cualquier momento desde el interfaz Plinth. Tamaño Máximo de Archivo: Puedes alterar el tamaño máximo de los archivos a transferir mediante Coquelicot usando esta preferencia. El tamaño se expresa en Mebibytes y el máximo solo está limitado por el espacio en disco de tu FreedomBox.
PrivacidadAlguien que monitorice tu tráfico de red podría averiguar que se está transfiriendo un archivo en tu FreedomBox y posiblemente también su tamaño pero no sabrá su nombre. Coquelicot cifra los archivos en el servidor y sobrescribe los contenidos con 0s al borrarlos, eliminando el riesgo de que se desvelen los contenidos del fichero si tu FreedomBox resultara confiscada o robada. El riesgo real que hay que mitigar es que además del destinatario legítimo un tercero también descargue tu fichero.
Compartir mediante mensajería instantáneaAlgunas aplicaciones de mensajería instantánea con vista previa de sitios web podrían descargar tu fichero para mostrarla (su vista previa) en la conversación. Si configuras la opción de descarga única para un archivo podrías notar que la aplicación de mensajería consume la única descarga. Si compartes mediante estas aplicaciones usa una contraseña de descarga en combinación con la opción de descarga única.
Compartir en privado enlaces de descargaSe recomienda compartir las contraseñas y los enlaces de descarga de tus archivos por canales cifrados. Puedes evitar todos los problemas anteriores con las vistas previas de la mensajería instantánea símplemente empleando aplicaciones de mensajería que soporten conversaciones cifradas como Riot con Matrix Synapse o XMPP (servidor ejabberd en FreedomBox) con clientes que soporten cifrado punto a punto. Envía la contraseña y el enlace de descarga separados en 2 mensajes distintos (ayuda que tu aplicación de mensajería soporte perfect forward secrecy como XMPP con OTR). También puedes compartir tus enlaces por correo electrónico cifrado con PGP usando Thunderbird. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Coquelicot32020-04-13 16:17:26fioddorSe alinea con la versión 08 en inglés del 12 de abril de 202022019-09-11 10:34:42fioddorCorrecciones menores.12019-09-11 10:27:55fioddorSe crea la versión española.
Compartición de Archivos (Coquelicot)
Acerca de CoquelicotCoquelicot es aplicación web para compartir archivos enfocada a proteger la privacidad de sus usuarios. El principio básico es simple: los usuarios pueden subir un archivo al servidor y a cambio reciben una URL única para descargarlo que se puede compartir con terceros. Además se puede establecer una contraseña para reforzar el acceso. Más información acerca de Coquelicot en su LEEME Disponible desde: versión 0.24.0
Cuando usar CoquelicotEl mejor uso de Coquelicot es para compartir rápidamente un archivo suelto. Si quieres compartir una carpeta... ...para usar y tirar, comprime la carpeta y compartela como archivo con Coquelicot ...que deba mantenerse sincronizada entre ordenadores usa mejor Syncthing Coquelicot también puede proporcionar un grado de privacidad razonable. Si se necesita anonimato mejor sopesas emplear la aplicación de escritorio Onionshare. Como Coquelicot carga todo el archivo al servidor tu FreedomBox consumirá ancho de banda tanto para la subida como para la descarga. Para archivos muy grandes sopesa compartirlos creando un fichero BitTorrent privado. Si se necesita anonimato usa Onionshare. Es P2P y no necesita servidor.
Coquelicot en FreedomBoxCon Coquelicot instalado puedes subir archivos a tu servidor FreedomBox y compartirlos en privado. Tras la instalación la página de Coquelicot ofrece 2 preferencias. Contraseña de Subida: Actualmente y por facilidad de uso Coquelicot está configurado en FreedomBox para usar autenticación simple por contraseña. Recuerda que se trata de una contraseña global para esta instancia de Coquelicot y no tu contraseña de usuario para FreedomBox. Tienes que acordarte de esta contraseña. Puedes establecer otra en cualquier momento desde el interfaz Plinth. Tamaño Máximo de Archivo: Puedes alterar el tamaño máximo de los archivos a transferir mediante Coquelicot usando esta preferencia. El tamaño se expresa en Mebibytes y el máximo solo está limitado por el espacio en disco de tu FreedomBox.
PrivacidadAlguien que monitorice tu tráfico de red podría averiguar que se está transfiriendo un archivo en tu FreedomBox y posiblemente también su tamaño pero no sabrá su nombre. Coquelicot cifra los archivos en el servidor y sobrescribe los contenidos con 0s al borrarlos, eliminando el riesgo de que se desvelen los contenidos del fichero si tu FreedomBox resultara confiscada o robada. El riesgo real que hay que mitigar es que además del destinatario legítimo un tercero también descargue tu fichero.
Compartir mediante mensajería instantáneaAlgunas aplicaciones de mensajería instantánea con vista previa de sitios web podrían descargar tu fichero para mostrarla (su vista previa) en la conversación. Si configuras la opción de descarga única para un archivo podrías notar que la aplicación de mensajería consume la única descarga. Si compartes mediante estas aplicaciones usa una contraseña de descarga en combinación con la opción de descarga única.
Compartir en privado enlaces de descargaSe recomienda compartir las contraseñas y los enlaces de descarga de tus archivos por canales cifrados. Puedes evitar todos los problemas anteriores con las vistas previas de la mensajería instantánea símplemente empleando aplicaciones de mensajería que soporten conversaciones cifradas como Riot con Matrix Synapse o XMPP (servidor ejabberd en FreedomBox) con clientes que soporten cifrado punto a punto. Envía la contraseña y el enlace de descarga separados en 2 mensajes distintos (ayuda que tu aplicación de mensajería soporte perfect forward secrecy como XMPP con OTR). También puedes compartir tus enlaces por correo electrónico cifrado con PGP usando Thunderbird. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Coturn.raw.xml b/doc/manual/es/Coturn.raw.xml new file mode 100644 index 000000000..64e57742f --- /dev/null +++ b/doc/manual/es/Coturn.raw.xml @@ -0,0 +1,4 @@ +
es/FreedomBox/Manual/Coturn32020-05-10 10:31:28fioddorImprovement22020-05-10 10:30:35fioddorCorrection12020-05-10 10:10:39fioddorNueva página traducida
Asistente para VoIP (Coturn)Coturn es un servidor para facilitar llamadas y conferencias de audio/video proporcionando una implementación de los protocolos TURN y STUN. Los servidores de comunicación por WebRTC, SIP y otros pueden usarlo para establecer una llamada entre partes que de otro modo no podrían conectarse entre si. No está pensado para que lo usen diréctamente los usuarios. Los servidores como Matrix Synapse necesitan configurarse con los datos proporcionados en la página de app de Coturn. Además de Matrix Synapse, Jitsi, Ejabberd, Nexcloud Talk, etc. pueden usar el servidor Coturn para llamadas y conferencias de audio/video. No hace falta que los servidores se ejecuten en la misma máquina que FreedomBox. Los servidores externos pueden usar un Coturn ejecutado en FreedomBox. Coturn está disponible en FreedomBox desde la version 20.8 como app avanzada. Esto implica que para ver el icono de Coturn en la sección "Apps" necesitas marcar en "Mostrar apps y funcionalidades avanzadas" en "Configuración General".
Cómo funcionaAl hacer una llamada de audio/video lo mejor es enrutar los flujos multimedia directamente entre los pares porque minimiza la latencia (mejor calidad de señal) y evita depender de un servidor centralizado (privacidad). Esto escala bien porque un servidor de chat simple puede albergar miles de llamadas sin involucrarse de ningún otro modo que para establecer la llamada. Sin embargo este enfoque no suele funcionar la mayoría de las veces por cómo se configuran las redes. La mayoría de los pares de la red carecen de una dirección IP propia reservada para ellos y suelen operar detrás de un dispositivo de red que les traduce las direcciones de red (NAT: "Network Address Translation"). Esto significa que en realidad estos pares no tienen modo de alcanzarse entre sí directamente. Para abordar este problema se introdujo una técnica simple conocida como STUN. Con ayuda de un servidor STUN los pares pueden prescindir de los dispositivos NAT para transmitir entre ellos. Desafortunadamente este truco solo funciona un 80% de las ocasiones. Así que si STUN falla, los pares no tienen más opción que enrutar su comunicación a través de un intermediario llamado servidor TURN. Todo el mecanismo de intentar primero con STUN y recaer en TURN se describe en un protocolo llamado ICE. En FreedomBox, Coturn proporciona servidores STUN y TURN. Ambos servicios se proporcionan tanto sobre TCP como sobre UDP y tanto en canales cifrados (que tienen mayor probabilidad de éxito) como sin cifrar. Como los servidores STUN son baratos y no consumen muchos recursos no se necesita autenticación para usarlos. Por otra parte los servidores TURN sí la necesitan. Esta autenticación está altamente simplificada y no requiere mantener una base de datos de usuarios. Un servidor como matrix-synapse que vaya a establecer una llamada de audio/video entre dos pares generará un nombre de usuario y contraseña empleando un secreto compartido. Cuando los pares usen el servidor TURN se les validará usando estas credenciales porque el servidor TURN conoce este secreto. En resumen, un servidor de comunicaciones necesita saber las URLs de los servidores STUN/TURN junto con el secreto de autenticación para TURN. Después, durante el establecimiento de la llamada de audio/video guiarán a los pares a usar los servidores STUN/TURN. La app Coturn de FreedomBox proporciona exactamente ésta información, que se puede usar para configurar un servidor de comunicaciones independientemente de que se ejecute en la misma máquina que FreedomBox o en otro servidor.
Configurar Matrix SynapseEl servidor de Matrix Synapse de FreedomBox se puede configurar para que use el servidor de TURN/STUN Coturn. En el futuro, cuando instales Matrix Synapse FreedomBox instalará Coturn automáticamente y configurará sus parámetros en Matrix Synapse. Para configurar Matrix Synapse, edita el fichero /etc/matrix-synapse/homeserver.yaml con las siguientes líneas: Y luego reinicia el servidor matrix-synapse deshabilitando y rehabilitando la app de matrix-synapse. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/DateTime.raw.xml b/doc/manual/es/DateTime.raw.xml index f270fe6f1..86af2e521 100644 --- a/doc/manual/es/DateTime.raw.xml +++ b/doc/manual/es/DateTime.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/DateTime42020-04-11 10:24:24fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_15425832020-04-03 18:15:29fioddorSe usa imagen traducida y más actual.22020-04-03 17:08:45fioddorSe alinea con la versión 03 en inglés del 30 de marzo de 202012019-06-19 10:26:32fioddorSe crea la versión española.
Fecha y horaEste servidor de hora de red es un programa que mantiene el tiempo del sistema sincronizado con servidores de Internet. Puedes seleccionar el huso horario escogiendo una capital cercana (están ordenadas por Continente/Ciudad) o seleccionando directamente el huso en relación a GMT (Greenwich Mean Time). DateTime_es_v01.png Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/DateTime42020-04-11 10:24:24fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_15425832020-04-03 18:15:29fioddorSe usa imagen traducida y más actual.22020-04-03 17:08:45fioddorSe alinea con la versión 03 en inglés del 30 de marzo de 202012019-06-19 10:26:32fioddorSe crea la versión española.
Fecha y horaEste servidor de hora de red es un programa que mantiene el tiempo del sistema sincronizado con servidores de Internet. Puedes seleccionar el huso horario escogiendo una capital cercana (están ordenadas por Continente/Ciudad) o seleccionando directamente el huso en relación a GMT (Greenwich Mean Time). DateTime_es_v01.png Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Deluge.raw.xml b/doc/manual/es/Deluge.raw.xml index 13e5b95b4..fa5b449f7 100644 --- a/doc/manual/es/Deluge.raw.xml +++ b/doc/manual/es/Deluge.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Deluge22019-09-04 09:35:32fioddorCorrección menor12019-09-04 09:33:21fioddorSe crea la versión española.
BitTorrent (Deluge)
¿Qué es Deluge?BitTorrent es un protocolo de comunicaciones para compartir ficheros entre pares (P2P = peer-to-peer). No es anónimo; debes asumir que otros puedan ver qué ficheros estás comprtiendo. Hay 2 clientes web para BitTorrent disponibles en FreedomBox: Transmission y Deluge. Tienen funcionalidades similares pero quizá prefieras uno sobre otro. Deluge es un cliente BitTorrent altamente configurable. Se puede añadir funcionalidad adicional instalando extensiones (plugins).
Captura de pantallaDeluge Web UI
Configuración InicialTras instalar Deluge se puede acceder apuntando tu navegador a https://<tu freedombox>/deluge. Necesitarás introducir una contraseña para ingresar: Deluge Login La contraseña inicial es deluge. La primera vez que ingreses Deluge te preguntará si quieres cambiarla. Debes cambiarla por algo más dificil de adivinar. A continuación se te mostrará el administrador de conexiones. Haz clic sobre la primera entrada (Offline - 127.0.0.1:58846). Luego pulsa "Arrancar el Demonio" para que arranque el servicio Deluge service que se ejecutará en segundo plano. Deluge Connection Manager (Offline) Ahora debería poner "Online". Haz clic en "Conectar" para completar la configuración. Deluge Connection Manager (Online) En este punto ya estás usando Deluge. Puedes hacer más cambios en las Preferencias o añadir un fichero o una URL de torrent. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Deluge22019-09-04 09:35:32fioddorCorrección menor12019-09-04 09:33:21fioddorSe crea la versión española.
BitTorrent (Deluge)
¿Qué es Deluge?BitTorrent es un protocolo de comunicaciones para compartir ficheros entre pares (P2P = peer-to-peer). No es anónimo; debes asumir que otros puedan ver qué ficheros estás comprtiendo. Hay 2 clientes web para BitTorrent disponibles en FreedomBox: Transmission y Deluge. Tienen funcionalidades similares pero quizá prefieras uno sobre otro. Deluge es un cliente BitTorrent altamente configurable. Se puede añadir funcionalidad adicional instalando extensiones (plugins).
Captura de pantallaDeluge Web UI
Configuración InicialTras instalar Deluge se puede acceder apuntando tu navegador a https://<tu freedombox>/deluge. Necesitarás introducir una contraseña para ingresar: Deluge Login La contraseña inicial es deluge. La primera vez que ingreses Deluge te preguntará si quieres cambiarla. Debes cambiarla por algo más dificil de adivinar. A continuación se te mostrará el administrador de conexiones. Haz clic sobre la primera entrada (Offline - 127.0.0.1:58846). Luego pulsa "Arrancar el Demonio" para que arranque el servicio Deluge service que se ejecutará en segundo plano. Deluge Connection Manager (Offline) Ahora debería poner "Online". Haz clic en "Conectar" para completar la configuración. Deluge Connection Manager (Online) En este punto ya estás usando Deluge. Puedes hacer más cambios en las Preferencias o añadir un fichero o una URL de torrent. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Diagnostics.raw.xml b/doc/manual/es/Diagnostics.raw.xml index 25c34d6ad..92296528d 100644 --- a/doc/manual/es/Diagnostics.raw.xml +++ b/doc/manual/es/Diagnostics.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Diagnostics12019-06-19 10:39:40fioddorSe crea la versión española.
DiagnósticosLa prueba de diagnóstico del sistema ejecutará varias verificaciones sobre tu sistema para confirmar que las aplicaciones y servicios están funcionando como se espera. Sólo haz clic Ejecutar Diagnósticos. Esto puede llevar varios minutos. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Diagnostics12019-06-19 10:39:40fioddorSe crea la versión española.
DiagnósticosLa prueba de diagnóstico del sistema ejecutará varias verificaciones sobre tu sistema para confirmar que las aplicaciones y servicios están funcionando como se espera. Sólo haz clic Ejecutar Diagnósticos. Esto puede llevar varios minutos. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/DynamicDNS.raw.xml b/doc/manual/es/DynamicDNS.raw.xml index 530270e29..fb2892290 100644 --- a/doc/manual/es/DynamicDNS.raw.xml +++ b/doc/manual/es/DynamicDNS.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/DynamicDNS52019-08-20 10:59:21fioddorSe incorpora la traducción de una sección nueva.42019-08-20 10:52:54fioddorSe incorpora la traducción de una sección nueva.32019-08-20 10:35:42fioddorSe incorpora la traducción de una sección nueva.22019-08-20 10:26:28fioddorSe incorpora la traducción de una sección nueva.12019-08-20 10:15:28fioddorSe crea la versión española (traducción incompleta).
Cliente de DNS Dinamico
¿Qué es DNS Dinamico?Para que se pueda llegar a un servidor desde Internet este necesita tener una dirección pública permanente, también conocida como dirección IP estática o fija. Muchos proveedores de servicio de Internet no otorgan IP fija a sus usuarios normales o la cobran. En su lugar les otorgan una IP temporal diferente cada vez que el usuario se conecta a internet. O una que cambia de vez en cuando. Si es tu caso los clientes que quieran contactar con tu servidor tendrán dificultades. Los proveedores de servicio de DNS Dinamico ayudan a solventar este problema. Primero te dan un nombre de dominio, como 'miservidor.ejemplo.org' y te permiten asociar tu dirección IP temporal a este nombre de dominio cada vez que esta cambia. De este modo quien quiera llegar a tu servidor empleará el nombre de dominio 'miservidor.ejemplo.org' que siempre apuntará a la última dirección IP de tu servidor. Para que esto funcione cada vez que te conectes a Internet tendrás que decirle a tu proveedor de servicio de DNS Dinamico cual es tu dirección IP provisional actual. Por esto necesitas tener un software especial en tu servidor que haga esto. La funcionalidad DNS Dinamico de tu FreedomBox permite a los usuarios sin dirección IP pública fija mantener su dirección IP pública temporal actualizada en el servicio de DNS Dinamico. Esto te permite exponer servicios de tu FreedomBox, como ownCloud, a Internet.
GnuDIP vs. Update URLEisten 2 mecanismos principales para notificar al the servicio de DNS Dinamico cual es tu dirección IP provisional actual: empleando el protocolo GnuDIP o empleando el mecanismo URL de actualización. Si un servicio expuesto usando URL de actualización no se securiza apropiadamente mediante HTTPS, tus credenciales podrían quedar expuestas. Una vez que un atacante accede a tus credenciales podrá reproducir tus comunicaciones con el servicio de DNS Dinamico y suplantar tu dominio. Por otra parte el protocolo GnuDIP solo transportará un valor MD5 salpimentado de tu contraseña de tal forma que es seguro contra ataques de este tipo.
Emplear el protocolo GnuDIPRegistra una cuenta en cualquier proveedor de servicio de DNS Dinamico. Hay un servicio gratuito provisto por la comunidad FreedomBox disponible en . Habilita el Servicio de DNS Dinamico en el interfaz de usuario de FreedomBox. Selecciona GnuDIP como tipo de servicio, introduce la dirección de tu proveedor de servicio de DNS Dinamico (por ejemplo, gnudip.datasystems24.net) en el campo Dirección del servidor GnuDIP. Dynamic DNS Settings Completa la información que te ha dado tu proveedor en los campos correspondientes Nombre de Dominio, Usuario y Contraseña.
Emplear URL de actualizaciónSe implementa esta funcionalidad porque los proveedores de servicio de DNS Dinamico más populares están empleando el mecanismo URL de actualización. Registra una cuenta en el proveedor de servicio de DNS Dinamico que emplea el mecanismo Update URL. Se listan algunos proveedores de ejemplo en la propia página de configuración. Habilita el Servicio de DNS Dinamico en el interfaz de usuario de FreedomBox. Selecciona URL de actualización como tipo de servicio, introduce la URL de actualización que te ha dado tu proveedor de servicio de DNS Dinamico en el campo URL de actualización. Si vas a la URL de actualización con tu navegador de Internet y te muestra un aviso acerca de un certificado no confiable, activa aceptar todos los certificados SSL. AVISO: ¡Tus credenciales podrían quedar expuestas en este punto a un ataque MIM (man-in-the-middle)! Valora la posibilidad de elegir otro proveedor de servicio mejor. Si vas a la URL de actualización con tu navegador de Internet y te muestra la caja de usuario/contraseña, selecciona usar autenticación HTTP basica e introduce el usuario y la contraseña. Si la URL de actualización contiene tu dirección IP temporal actual reemplaza la dirección IP por la cadena de texto <Ip>.
Comprobar si funcionaAsegúrate de que los servicios externos que has habilitado como /jwchat, /roundcube o /ikiwiki están disponibles en tu dirección de dominio. Ve a la página Estado y asegúrate de que el tipo de NAT se detecta correctamente. Si tu FreedomBox está detrás de un dispositivo NAT debería detectarse en este punto (Texto: Detrás de NAT). Si tu FreedomBox tiene una dirección IP pública asignada el texto debería ser "Conexión directa a Internet". Comprueba que el último estado de actualización no sea fallida.
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) Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/DynamicDNS52019-08-20 10:59:21fioddorSe incorpora la traducción de una sección nueva.42019-08-20 10:52:54fioddorSe incorpora la traducción de una sección nueva.32019-08-20 10:35:42fioddorSe incorpora la traducción de una sección nueva.22019-08-20 10:26:28fioddorSe incorpora la traducción de una sección nueva.12019-08-20 10:15:28fioddorSe crea la versión española (traducción incompleta).
Cliente de DNS Dinamico
¿Qué es DNS Dinamico?Para que se pueda llegar a un servidor desde Internet este necesita tener una dirección pública permanente, también conocida como dirección IP estática o fija. Muchos proveedores de servicio de Internet no otorgan IP fija a sus usuarios normales o la cobran. En su lugar les otorgan una IP temporal diferente cada vez que el usuario se conecta a internet. O una que cambia de vez en cuando. Si es tu caso los clientes que quieran contactar con tu servidor tendrán dificultades. Los proveedores de servicio de DNS Dinamico ayudan a solventar este problema. Primero te dan un nombre de dominio, como 'miservidor.ejemplo.org' y te permiten asociar tu dirección IP temporal a este nombre de dominio cada vez que esta cambia. De este modo quien quiera llegar a tu servidor empleará el nombre de dominio 'miservidor.ejemplo.org' que siempre apuntará a la última dirección IP de tu servidor. Para que esto funcione cada vez que te conectes a Internet tendrás que decirle a tu proveedor de servicio de DNS Dinamico cual es tu dirección IP provisional actual. Por esto necesitas tener un software especial en tu servidor que haga esto. La funcionalidad DNS Dinamico de tu FreedomBox permite a los usuarios sin dirección IP pública fija mantener su dirección IP pública temporal actualizada en el servicio de DNS Dinamico. Esto te permite exponer servicios de tu FreedomBox, como ownCloud, a Internet.
GnuDIP vs. Update URLEisten 2 mecanismos principales para notificar al the servicio de DNS Dinamico cual es tu dirección IP provisional actual: empleando el protocolo GnuDIP o empleando el mecanismo URL de actualización. Si un servicio expuesto usando URL de actualización no se securiza apropiadamente mediante HTTPS, tus credenciales podrían quedar expuestas. Una vez que un atacante accede a tus credenciales podrá reproducir tus comunicaciones con el servicio de DNS Dinamico y suplantar tu dominio. Por otra parte el protocolo GnuDIP solo transportará un valor MD5 salpimentado de tu contraseña de tal forma que es seguro contra ataques de este tipo.
Emplear el protocolo GnuDIPRegistra una cuenta en cualquier proveedor de servicio de DNS Dinamico. Hay un servicio gratuito provisto por la comunidad FreedomBox disponible en . Habilita el Servicio de DNS Dinamico en el interfaz de usuario de FreedomBox. Selecciona GnuDIP como tipo de servicio, introduce la dirección de tu proveedor de servicio de DNS Dinamico (por ejemplo, gnudip.datasystems24.net) en el campo Dirección del servidor GnuDIP. Dynamic DNS Settings Completa la información que te ha dado tu proveedor en los campos correspondientes Nombre de Dominio, Usuario y Contraseña.
Emplear URL de actualizaciónSe implementa esta funcionalidad porque los proveedores de servicio de DNS Dinamico más populares están empleando el mecanismo URL de actualización. Registra una cuenta en el proveedor de servicio de DNS Dinamico que emplea el mecanismo Update URL. Se listan algunos proveedores de ejemplo en la propia página de configuración. Habilita el Servicio de DNS Dinamico en el interfaz de usuario de FreedomBox. Selecciona URL de actualización como tipo de servicio, introduce la URL de actualización que te ha dado tu proveedor de servicio de DNS Dinamico en el campo URL de actualización. Si vas a la URL de actualización con tu navegador de Internet y te muestra un aviso acerca de un certificado no confiable, activa aceptar todos los certificados SSL. AVISO: ¡Tus credenciales podrían quedar expuestas en este punto a un ataque MIM (man-in-the-middle)! Valora la posibilidad de elegir otro proveedor de servicio mejor. Si vas a la URL de actualización con tu navegador de Internet y te muestra la caja de usuario/contraseña, selecciona usar autenticación HTTP basica e introduce el usuario y la contraseña. Si la URL de actualización contiene tu dirección IP temporal actual reemplaza la dirección IP por la cadena de texto <Ip>.
Comprobar si funcionaAsegúrate de que los servicios externos que has habilitado como /jwchat, /roundcube o /ikiwiki están disponibles en tu dirección de dominio. Ve a la página Estado y asegúrate de que el tipo de NAT se detecta correctamente. Si tu FreedomBox está detrás de un dispositivo NAT debería detectarse en este punto (Texto: Detrás de NAT). Si tu FreedomBox tiene una dirección IP pública asignada el texto debería ser "Conexión directa a Internet". Comprueba que el último estado de actualización no sea fallida.
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) Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Firewall.raw.xml b/doc/manual/es/Firewall.raw.xml index 2dab9224a..6a4d889d1 100644 --- a/doc/manual/es/Firewall.raw.xml +++ b/doc/manual/es/Firewall.raw.xml @@ -1,4 +1,4 @@ -
es/FreedomBox/Manual/Firewall122020-04-13 16:15:55fioddorSe alinea con la versión 27 en inglés del 12 de abril de 2020112020-04-11 10:25:56fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_154258102020-04-04 16:56:41fioddorMejora menor. Algo más claro.92020-04-04 16:52:56fioddorEnlace a página traducida.82020-04-04 16:49:56fioddorSe usan imágenes traducidas y más actuales.72019-10-21 15:03:44fioddorCorrección menor62019-10-21 14:58:42fioddorCorrección menor52019-08-20 12:16:19fioddorS42019-08-20 12:07:57fioddorSe incorpora la traducción de una sección nueva.32019-08-20 11:59:19fioddorSe incorpora la traducción de una sección nueva.22019-08-20 11:54:54fioddorSe incorpora la traducción de una sección nueva.12019-08-20 11:39:24fioddorSe crea la versión española (traducción incompleta).
CortafuegosUn cortafuegos es un sistema de seguridad de red que controla el tráfico de entrada y salida desde/a la red. Mantener un cortafuegos habilitado y apropiadamente configurado reduce el riesgo de amenazas a la seguridad desde Internet. La operación del cortafuegos desde el interfaz web Plinth de FreedomBox es automática. Cuando habilitas un servicio se le abre automáticamente el cortafuegos y cuando lo deshabilitas se le cierra también automáticamente. Para servicios habilitados por defecto en FreedomBox los puertos se abren en el cortafuegos por defecto durante el proceso de la primera ejecución. Firewall La administración del cortafuegos en FreedomBox se hace empleando FirewallD.
InterfacesCada interfaz de red necesita asignarse a 1 (y sólo 1) zona. Las reglas que tenga activas la zona se aplicarán al interfaz. Por ejemplo, si se permite el trafico HTTP en una zona en particular las peticiones web se acceptarán en todas las direcciones configuradas para todos los interfaces asignados a esa zona. Principalmente se emplean 2 zonas de cortafuegos. La zona interna está pensada para servicios ofrecidos a todas las máquinas de la red local. Esto podría incluir servicios como streaming multimedia o compartición simple de archivos. La zona externa está pensada para servicios públicamente expuestos a Internet. Esto podría incluir servicios como blog, sitio web, cliente web de correo electrónico etc. Para más detalles acerca de como se configuran por defecto los interfaces de red mira la sección Redes.
Puertos/ServiciosLa siguiente tabla trata de documentar los puertos, servicios y sus estados por defecto en FreedomBox. Si encuentras esta página desactualizada mira lib/freedombox/first-run.d/90_firewall en el código fuente de Plinth y la página de estado del cortafuegos en Plinth. ServicioPuerto ExternoHabilitado por defectoEstado mostrado en PlinthAdministrado por Plinth Minetest 30000/udp {*} {X} (./) (./) XMPP Client 5222/tcp {*} {X} (./) (./) XMPP Server 5269/tcp {*} {X} (./) (./) XMPP Bosh 5280/tcp {*} {X} (./) (./) NTP 123/udp {o} (./) (./) (./) Plinth 443/tcp {*} (./) (./) {X} Quassel 4242/tcp {*} {X} (./) (./) SIP 5060/tcp {*} {X} (./) (./) SIP 5060/udp {*} {X} (./) (./) SIP-TLS 5061/tcp {*} {X} (./) (./) SIP-TLS 5061/udp {*} {X} (./) (./) RTP 1024-65535/udp {*} {X} (./) (./) SSH 22/tcp {*} (./) (./) {X} mDNS 5353/udp {o} (./) (./) (./) Tor (Socks) 9050/tcp {o} {X} (./) (./) Obfsproxy <random>/tcp {*} {X} (./) (./) OpenVPN 1194/udp {*} {X} (./) (./) Mumble 64378/tcp {*} {X} (./) (./) Mumble 64378/udp {*} {X} (./) (./) Privoxy 8118/tcp {o} {X} (./) (./) JSXC 80/tcp {*} {X} {X} {X} JSXC 443/tcp {*} {X} {X} {X} DNS 53/tcp {o} {X} {X} {X} DNS 53/udp {o} {X} {X} {X} DHCP 67/udp {o} (./) {X} {X} Bootp 67/tcp {o} {X} {X} {X} Bootp 67/udp {o} {X} {X} {X} Bootp 68/tcp {o} {X} {X} {X} Bootp 68/udp {o} {X} {X} {X} LDAP 389/tcp {o} {X} {X} {X} LDAPS 636/tcp {o} {X} {X} {X}
Operación ManualPara completar información acerca de los conceptos basicos o más allá, mira la documentación de FirewallD.
Habilitar/deshabilitar el cortafuegosPara deshabilitar el cortafuegos o con systemd Para vover a habilitar el cortafuegos o con systemd
Modificar servicios/puertosPuedes añadir o eliminar un servicio de una zona manualmente. Para ver la lista de servicios habilitados: --list-services]]>Ejemplo: Para ver la lista de puertos habilitados: --list-ports]]>Ejemplo: Para eliminar un servicio de una zona: --remove-service= +
es/FreedomBox/Manual/Firewall132020-05-10 00:57:07fioddorSe alinea con la versión 29 en inglés del 03 de mayo de 2020122020-04-13 16:15:55fioddorSe alinea con la versión 27 en inglés del 12 de abril de 2020112020-04-11 10:25:56fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_154258102020-04-04 16:56:41fioddorMejora menor. Algo más claro.92020-04-04 16:52:56fioddorEnlace a página traducida.82020-04-04 16:49:56fioddorSe usan imágenes traducidas y más actuales.72019-10-21 15:03:44fioddorCorrección menor62019-10-21 14:58:42fioddorCorrección menor52019-08-20 12:16:19fioddorS42019-08-20 12:07:57fioddorSe incorpora la traducción de una sección nueva.32019-08-20 11:59:19fioddorSe incorpora la traducción de una sección nueva.22019-08-20 11:54:54fioddorSe incorpora la traducción de una sección nueva.12019-08-20 11:39:24fioddorSe crea la versión española (traducción incompleta).
CortafuegosUn cortafuegos es un sistema de seguridad de red que controla el tráfico de entrada y salida desde/a la red. Mantener un cortafuegos habilitado y apropiadamente configurado reduce el riesgo de amenazas a la seguridad desde Internet. La operación del cortafuegos desde el interfaz web de FreedomBox es automática. Cuando habilitas un servicio se le abre automáticamente el cortafuegos y cuando lo deshabilitas se le cierra también automáticamente. Para servicios habilitados por defecto en FreedomBox los puertos se abren en el cortafuegos por defecto durante el proceso de la primera ejecución. Firewall La administración del cortafuegos en FreedomBox se hace empleando FirewallD.
InterfacesCada interfaz de red necesita asignarse a 1 (y sólo 1) zona. Las reglas que tenga activas la zona se aplicarán al interfaz. Por ejemplo, si se permite el trafico HTTP en una zona en particular las peticiones web se acceptarán en todas las direcciones configuradas para todos los interfaces asignados a esa zona. Principalmente se emplean 2 zonas de cortafuegos. La zona interna está pensada para servicios ofrecidos a todas las máquinas de la red local. Esto podría incluir servicios como streaming multimedia o compartición simple de archivos. La zona externa está pensada para servicios públicamente expuestos a Internet. Esto podría incluir servicios como blog, sitio web, cliente web de correo electrónico etc. Para más detalles acerca de como se configuran por defecto los interfaces de red mira la sección Redes.
Puertos/ServiciosLa siguiente tabla trata de documentar los puertos, servicios y sus estados por defecto en FreedomBox. Si encuentras esta página desactualizada mira la página de estado del cortafuegos en el interfaz web de FreedomBox. ServicioPuerto ExternoHabilitado por defectoEstado mostrado en FreedomBoxAdministrado por FreedomBox Minetest 30000/udp {*} {X} (./) (./) XMPP Client 5222/tcp {*} {X} (./) (./) XMPP Server 5269/tcp {*} {X} (./) (./) XMPP Bosh 5280/tcp {*} {X} (./) (./) NTP 123/udp {o} (./) (./) (./) Interfaz web de FreedomBox 443/tcp {*} (./) (./) {X} Quassel 4242/tcp {*} {X} (./) (./) SIP 5060/tcp {*} {X} (./) (./) SIP 5060/udp {*} {X} (./) (./) SIP-TLS 5061/tcp {*} {X} (./) (./) SIP-TLS 5061/udp {*} {X} (./) (./) RTP 1024-65535/udp {*} {X} (./) (./) SSH 22/tcp {*} (./) (./) {X} mDNS 5353/udp {o} (./) (./) (./) Tor (Socks) 9050/tcp {o} {X} (./) (./) Obfsproxy <random>/tcp {*} {X} (./) (./) OpenVPN 1194/udp {*} {X} (./) (./) Mumble 64378/tcp {*} {X} (./) (./) Mumble 64378/udp {*} {X} (./) (./) Privoxy 8118/tcp {o} {X} (./) (./) JSXC 80/tcp {*} {X} {X} {X} JSXC 443/tcp {*} {X} {X} {X} DNS 53/tcp {o} {X} {X} {X} DNS 53/udp {o} {X} {X} {X} DHCP 67/udp {o} (./) {X} {X} Bootp 67/tcp {o} {X} {X} {X} Bootp 67/udp {o} {X} {X} {X} Bootp 68/tcp {o} {X} {X} {X} Bootp 68/udp {o} {X} {X} {X} LDAP 389/tcp {o} {X} {X} {X} LDAPS 636/tcp {o} {X} {X} {X}
Operación ManualPara completar información acerca de los conceptos basicos o más allá, mira la documentación de FirewallD.
Habilitar/deshabilitar el cortafuegosPara deshabilitar el cortafuegos o con systemd Para vover a habilitar el cortafuegos o con systemd
Modificar servicios/puertosPuedes añadir o eliminar un servicio de una zona manualmente. Para ver la lista de servicios habilitados: --list-services]]>Ejemplo: Para ver la lista de puertos habilitados: --list-ports]]>Ejemplo: Para eliminar un servicio de una zona: --remove-service= firewall-cmd --permanent --zone= --remove-service=]]>Ejemplo: Para eliminar un puerto de una zona: / firewall-cmd --permanent --zone=internal --remove-port=/]]>Ejemplo: --remove-interface=]]>Ejemplo: Para añadir un interfaz a una zona: --add-interface= firewall-cmd --permanent --zone= --add-interface=]]>Ejemplo: Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +firewall-cmd --permanent --zone=internal --add-interface=eth0]]>
Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/GitWeb.raw.xml b/doc/manual/es/GitWeb.raw.xml index 57ea9e49c..07d78122e 100644 --- a/doc/manual/es/GitWeb.raw.xml +++ b/doc/manual/es/GitWeb.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/GitWeb32020-01-29 06:49:24fioddorSe alinea con la versión 7 en inglés del 29 de enero de 202022019-12-17 21:25:32fioddorSe alinea con la versión 04 en inglés del 17 de diciembre de 201912019-12-15 19:00:01fioddorSe traduce una página nueva
Alojamiento Git Simple (GitWeb)GitWeb proporciona alojamiento Git en FreedomBox. Proporciona un interfaz web simple para realizar acciones comunes como ver archivos, diferencias, descripciones de cambio, etc. Disponible desde versión: 19.19
Autenticación básica HTTPActualmente el GitWeb de FreedomBox solo soporta remotos HTTP. Para evitar tener que introducir la contraseña cada vez que haces pull/push al repositorio puedes editar tu remoto para incluír credenciales. Ejemplo: Tu nombre de usuario y contraseña se cifrarán. Quien monitorize el tráfico de la red solo apreciará el nombre de dominio. Nota: Al usar este método tu contraseña se almacenará en claro en el fichero .git/config del repositorio local. Por este motivo debes crear un usuario FreedomBox que solo tenga acceso a gitweb y no usar nunca una cuenta de administrador.
Réplicas EspejoAunque tus repositorios se albergan principalmente en tu propia FreedomBox puedes configurar un repositorio en otro servicio de alojamiento Git como GitLab a modo de copia espejo. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/GitWeb32020-01-29 06:49:24fioddorSe alinea con la versión 7 en inglés del 29 de enero de 202022019-12-17 21:25:32fioddorSe alinea con la versión 04 en inglés del 17 de diciembre de 201912019-12-15 19:00:01fioddorSe traduce una página nueva
Alojamiento Git Simple (GitWeb)GitWeb proporciona alojamiento Git en FreedomBox. Proporciona un interfaz web simple para realizar acciones comunes como ver archivos, diferencias, descripciones de cambio, etc. Disponible desde versión: 19.19
Autenticación básica HTTPActualmente el GitWeb de FreedomBox solo soporta remotos HTTP. Para evitar tener que introducir la contraseña cada vez que haces pull/push al repositorio puedes editar tu remoto para incluír credenciales. Ejemplo: Tu nombre de usuario y contraseña se cifrarán. Quien monitorize el tráfico de la red solo apreciará el nombre de dominio. Nota: Al usar este método tu contraseña se almacenará en claro en el fichero .git/config del repositorio local. Por este motivo debes crear un usuario FreedomBox que solo tenga acceso a gitweb y no usar nunca una cuenta de administrador.
Réplicas EspejoAunque tus repositorios se albergan principalmente en tu propia FreedomBox puedes configurar un repositorio en otro servicio de alojamiento Git como GitLab a modo de copia espejo. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/I2P.raw.xml b/doc/manual/es/I2P.raw.xml index f64bc54d2..172a69db3 100644 --- a/doc/manual/es/I2P.raw.xml +++ b/doc/manual/es/I2P.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/I2P62019-09-17 13:59:23fioddorCorrección52019-09-17 13:58:00fioddorCorrecciones menores.42019-09-17 13:56:45fioddorCorrección32019-09-17 13:55:36fioddorMejora menor22019-09-17 13:54:52fioddorSe crea la versión española.12019-09-17 12:37:09fioddorSe crea la versión española (traducción incompleta).
Red de Anonimato (I2P)
Acerca de I2PEl Proyecto Internet Invisible (I2P) es una capa anonimizadora de red concebida para protejer las comunicaciones de la censura y la vigilancia. I2P proporciona anonimato enviando tráfico cifrado a través de una red distribuída alrededor del mundo gestionada por voluntarios. Más información acerca de I2P en la página principal del proyecto.
Servicios OfrecidosLos siguientes servicios se ofrecen en FreedomBox a través de I2P de serie. Se pueden habilitar más servicios desde la consola de enrutado I2P que se puede abrir desde el interfaz web de FreedomBox. Navegación web anónima: I2P se puede usar para navegar por la web de forma anónima. Para ello configura tu navegador (preferíblemente un navegador Tor) para conectar al proxy I2P. Esto se puede hacer estableciendo los proxies HTTP y HTTPS a freedombox.local (o la IP local de tu FreedomBox) con sus respectivos puertos a 4444 y 4445. Este servicio está disponible sólo cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de navegación web anónima a través de I2P. Acceso a eepsites: La red I2P puede albergar sitios web anónimos llamados eepsites cuyo nombre de dominio acaba en .i2p. Por ejemplo, http://i2p-projekt.i2p/ es el sitio web del proyecto I2P en la red I2P. Los eepsites son inaccesibles a un navegador normal a través de una conexión Internet normal. Para navegar a los eepsites tu navegador necesita configurarse para usar los proxies HTTP y HTTPS como se describió antes. Este servicio solo está disponible cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de acceso a eepsites a través de I2P. Descargas anónima de torrentes: I2PSnark, una aplicación para descargar y compartir archivos anónimamente mediante la red BitTorrent está disponible y habilitada por defecto en FreedomBox. Esta aplicación se controla mediante un interfaz web que se puede abrir desde la sección Torrentes Anonimos de la app I2P en el interfaz web de FreedomBox o de la consola de enrutado I2P. Solo los usuarios ingresados pertenecientes al grupo Manage I2P application pueden usar este servicio. Red IRC: La red I2P contiene una red IRC llamada Irc2P. Esta red alberga el canal IRC oficial del proyecto I2P, entre otros. Este servicio viene habilitdo de serie en FreedomBox. Para usarlo abre tu cliente IRC favorito y configuralo para conectar con freedombox.local (o la IP local de tu FreedomBox) en el puerto 6668. Este servicio solo está disponible cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de IRC a través de I2P. Consola de enrutado I2P: Este es el interfaz central de administración de I2P. Muestra el estado actual de I2P, estadísticas de ancho de banda y permite modificar varias preferencias de configuración. Puedes adecuar tu participación en la red I2P y usar/editar una lista con tus sitios I2P (eepsites) favoritos. Solo los usuarios ingresados pertenecientes al grupo Manage I2P application pueden usar este servicio. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0).
\ No newline at end of file +
es/FreedomBox/Manual/I2P62019-09-17 13:59:23fioddorCorrección52019-09-17 13:58:00fioddorCorrecciones menores.42019-09-17 13:56:45fioddorCorrección32019-09-17 13:55:36fioddorMejora menor22019-09-17 13:54:52fioddorSe crea la versión española.12019-09-17 12:37:09fioddorSe crea la versión española (traducción incompleta).
Red de Anonimato (I2P)
Acerca de I2PEl Proyecto Internet Invisible (I2P) es una capa anonimizadora de red concebida para protejer las comunicaciones de la censura y la vigilancia. I2P proporciona anonimato enviando tráfico cifrado a través de una red distribuída alrededor del mundo gestionada por voluntarios. Más información acerca de I2P en la página principal del proyecto.
Servicios OfrecidosLos siguientes servicios se ofrecen en FreedomBox a través de I2P de serie. Se pueden habilitar más servicios desde la consola de enrutado I2P que se puede abrir desde el interfaz web de FreedomBox. Navegación web anónima: I2P se puede usar para navegar por la web de forma anónima. Para ello configura tu navegador (preferíblemente un navegador Tor) para conectar al proxy I2P. Esto se puede hacer estableciendo los proxies HTTP y HTTPS a freedombox.local (o la IP local de tu FreedomBox) con sus respectivos puertos a 4444 y 4445. Este servicio está disponible sólo cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de navegación web anónima a través de I2P. Acceso a eepsites: La red I2P puede albergar sitios web anónimos llamados eepsites cuyo nombre de dominio acaba en .i2p. Por ejemplo, http://i2p-projekt.i2p/ es el sitio web del proyecto I2P en la red I2P. Los eepsites son inaccesibles a un navegador normal a través de una conexión Internet normal. Para navegar a los eepsites tu navegador necesita configurarse para usar los proxies HTTP y HTTPS como se describió antes. Este servicio solo está disponible cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de acceso a eepsites a través de I2P. Descargas anónima de torrentes: I2PSnark, una aplicación para descargar y compartir archivos anónimamente mediante la red BitTorrent está disponible y habilitada por defecto en FreedomBox. Esta aplicación se controla mediante un interfaz web que se puede abrir desde la sección Torrentes Anonimos de la app I2P en el interfaz web de FreedomBox o de la consola de enrutado I2P. Solo los usuarios ingresados pertenecientes al grupo Manage I2P application pueden usar este servicio. Red IRC: La red I2P contiene una red IRC llamada Irc2P. Esta red alberga el canal IRC oficial del proyecto I2P, entre otros. Este servicio viene habilitdo de serie en FreedomBox. Para usarlo abre tu cliente IRC favorito y configuralo para conectar con freedombox.local (o la IP local de tu FreedomBox) en el puerto 6668. Este servicio solo está disponible cuando accedes a la FreedomBox usando la red local (redes de la zona interna del cortaguegos) y no cuando llegas a la FreedomBox desde Internet. Una excepción a esto es cuando te conectas al servicio VPN de la FreedomBox desde Internet, en cuyo caso sí puedes usar el servicio de IRC a través de I2P. Consola de enrutado I2P: Este es el interfaz central de administración de I2P. Muestra el estado actual de I2P, estadísticas de ancho de banda y permite modificar varias preferencias de configuración. Puedes adecuar tu participación en la red I2P y usar/editar una lista con tus sitios I2P (eepsites) favoritos. Solo los usuarios ingresados pertenecientes al grupo Manage I2P application pueden usar este servicio. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0).
\ No newline at end of file diff --git a/doc/manual/es/Ikiwiki.raw.xml b/doc/manual/es/Ikiwiki.raw.xml index 9a6ff4dc4..9833ebbc9 100644 --- a/doc/manual/es/Ikiwiki.raw.xml +++ b/doc/manual/es/Ikiwiki.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Ikiwiki32019-09-17 12:09:26fioddorMejora menor22019-09-17 12:07:08fioddorMejora menor12019-09-17 12:05:55fioddorSe crea la versión española.
Wiki y Blog (Ikiwiki)
¿Qué es Ikiwiki?Ikiwiki convierte páginas wiki a páginas HTML listas para publicar en un sitio web. En particular, proporciona blogs, podcasts, calendarios y una amplia selección de extensiones (plugins).
Inicio rápidoTras instalar la app en el interfaz de administración de tu FreedomBox: Ve a la sección Crear y crea un wiki o un blog. Vuelve a la sección Configurar y haz clic en el enlace /ikiwiki. Haz clic en el nombre de tu nuevo wiki o blog bajo Directorio Padre. Disfruta de tu nueva página de publicación.
Crear un wiki o blogPuedes crear un wiki o blog para albergarlo en tu FreedomBox mediante la página Wiki y Blog (Ikiwiki) de Plinth. La primera vez que visites esta página te pedirá instalar paquetes requiridos por Ikiwiki. Tras completar la instalación de paquetes selecciona la solapa Crear. Puedes elegir el tipo: Wiki o Blog. Teclea también un nombre para el wiki o blog, y el usuario y contraseña para su cuenta de administrador. Al hacer clic en Actualizar configuración verás el wiki/blog añadido a tu lista. Observa que cada wiki/blog tiene su propia cuenta de administrador. ikiwiki: Create
Acceder a tu wiki o blogDesde la página de Wiki y Blog (Ikiwiki) selecciona la solapa Administrar y verás una lista de tus wikis y blogs. Haz clic en un nombre para navegar a ese wiki o blog. ikiwiki: Manage Desde aquí, si le das a Editar o a Preferencias se te llevará a una página de ingreso. Para ingresar con la cuenta de administrador que creaste antes selecciona la solapa Otros, introduce el usuario y la contraseña y haz clic en Ingresar.
Ingreso único de usuarios (SSO)Se puede dar permiso para editar a otros usuarios de FreedomBox además de al administrador del wiki/blog. Sin embargo no tendrán todos los permisos del administrador. Podrán añadir o editar páginas pero no podrán cambiar la configuración del wiki. Para añadir a un usuario al wiki ve a la página Usuarios y Grupos de Plinth (bajo Configuración del Sistema, el icono del engranaje de la esquina superior derecha de la página). Crea o modifica un usuario y añádele al grupo wiki. (Los usuarios del grupo admin tendrán también acceso al wiki.) Para ingresar como usuario FreedomBox ve a la página de ingreso del wiki/blog y selecciona la solapa Otros. Luego haz clic en el botón Ingresar con autenticación HTTP. El navegador mostrá un diálogo emergente en el que podrás introducir el usuario y la contraseña del usuario de FreedomBox.
Añadir usuarios FreedomBox como admnistradores de wikiIngresa al wiki con su cuenta de administrador. Haz clic en Preferencias y luego en Configurar. Debajo de Principal, en usuarios administradores de algún wiki, añade el nombre de un usuario de FreedomBox. (Opcional) Desmarca la opción habilitar autenticación mediante contraseña de extensión de autenticación: autenticación mediante contraseña. (Nota: Esto deshabilitará el ingreso con la cuenta de administrador anterior. Solo se podrá ingresar mediante ingreso único usando autenticación HTTP.) Haz clic en Grabar Configuración. Pulsa Preferencias y a continuación Salir. Ingresa como el nuevo usuario administrador usando Ingresar con autenticación HTTP. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Ikiwiki32019-09-17 12:09:26fioddorMejora menor22019-09-17 12:07:08fioddorMejora menor12019-09-17 12:05:55fioddorSe crea la versión española.
Wiki y Blog (Ikiwiki)
¿Qué es Ikiwiki?Ikiwiki convierte páginas wiki a páginas HTML listas para publicar en un sitio web. En particular, proporciona blogs, podcasts, calendarios y una amplia selección de extensiones (plugins).
Inicio rápidoTras instalar la app en el interfaz de administración de tu FreedomBox: Ve a la sección Crear y crea un wiki o un blog. Vuelve a la sección Configurar y haz clic en el enlace /ikiwiki. Haz clic en el nombre de tu nuevo wiki o blog bajo Directorio Padre. Disfruta de tu nueva página de publicación.
Crear un wiki o blogPuedes crear un wiki o blog para albergarlo en tu FreedomBox mediante la página Wiki y Blog (Ikiwiki) de Plinth. La primera vez que visites esta página te pedirá instalar paquetes requiridos por Ikiwiki. Tras completar la instalación de paquetes selecciona la solapa Crear. Puedes elegir el tipo: Wiki o Blog. Teclea también un nombre para el wiki o blog, y el usuario y contraseña para su cuenta de administrador. Al hacer clic en Actualizar configuración verás el wiki/blog añadido a tu lista. Observa que cada wiki/blog tiene su propia cuenta de administrador. ikiwiki: Create
Acceder a tu wiki o blogDesde la página de Wiki y Blog (Ikiwiki) selecciona la solapa Administrar y verás una lista de tus wikis y blogs. Haz clic en un nombre para navegar a ese wiki o blog. ikiwiki: Manage Desde aquí, si le das a Editar o a Preferencias se te llevará a una página de ingreso. Para ingresar con la cuenta de administrador que creaste antes selecciona la solapa Otros, introduce el usuario y la contraseña y haz clic en Ingresar.
Ingreso único de usuarios (SSO)Se puede dar permiso para editar a otros usuarios de FreedomBox además de al administrador del wiki/blog. Sin embargo no tendrán todos los permisos del administrador. Podrán añadir o editar páginas pero no podrán cambiar la configuración del wiki. Para añadir a un usuario al wiki ve a la página Usuarios y Grupos de Plinth (bajo Configuración del Sistema, el icono del engranaje de la esquina superior derecha de la página). Crea o modifica un usuario y añádele al grupo wiki. (Los usuarios del grupo admin tendrán también acceso al wiki.) Para ingresar como usuario FreedomBox ve a la página de ingreso del wiki/blog y selecciona la solapa Otros. Luego haz clic en el botón Ingresar con autenticación HTTP. El navegador mostrá un diálogo emergente en el que podrás introducir el usuario y la contraseña del usuario de FreedomBox.
Añadir usuarios FreedomBox como admnistradores de wikiIngresa al wiki con su cuenta de administrador. Haz clic en Preferencias y luego en Configurar. Debajo de Principal, en usuarios administradores de algún wiki, añade el nombre de un usuario de FreedomBox. (Opcional) Desmarca la opción habilitar autenticación mediante contraseña de extensión de autenticación: autenticación mediante contraseña. (Nota: Esto deshabilitará el ingreso con la cuenta de administrador anterior. Solo se podrá ingresar mediante ingreso único usando autenticación HTTP.) Haz clic en Grabar Configuración. Pulsa Preferencias y a continuación Salir. Ingresa como el nuevo usuario administrador usando Ingresar con autenticación HTTP. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Infinoted.raw.xml b/doc/manual/es/Infinoted.raw.xml index 4107261a4..abe8ca2bc 100644 --- a/doc/manual/es/Infinoted.raw.xml +++ b/doc/manual/es/Infinoted.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Infinoted22019-09-12 11:09:53fioddorMejora menor12019-09-12 11:08:05fioddorSe crea la versión española.
Servidor Gobby (infinoted)Infinoted es un servidor de edición colaborativa de textos para Gobby. Para usarlo descarga el cliente Gobby para escritorio e instalalo. Inicialo, selecciona "Conectar a un Servidor" e introduce el nombre de dominio de tu FreedomBox.
Redirección de PuertosSi tu FreedomBox está detras de un router necesitarás configurar la redirección de puertos en tu router. Redirije los siguientes puertos de infinoted: TCP 6523 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Infinoted22019-09-12 11:09:53fioddorMejora menor12019-09-12 11:08:05fioddorSe crea la versión española.
Servidor Gobby (infinoted)Infinoted es un servidor de edición colaborativa de textos para Gobby. Para usarlo descarga el cliente Gobby para escritorio e instalalo. Inicialo, selecciona "Conectar a un Servidor" e introduce el nombre de dominio de tu FreedomBox.
Redirección de PuertosSi tu FreedomBox está detras de un router necesitarás configurar la redirección de puertos en tu router. Redirije los siguientes puertos de infinoted: TCP 6523 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/LetsEncrypt.raw.xml b/doc/manual/es/LetsEncrypt.raw.xml index 98b8106e6..b02f9ee94 100644 --- a/doc/manual/es/LetsEncrypt.raw.xml +++ b/doc/manual/es/LetsEncrypt.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/LetsEncrypt32020-04-04 17:19:32fioddorCorrección.22019-08-20 12:56:47fioddorSe incorpora la traducción de una sección nueva.12019-08-20 12:48:05fioddorSe incorpora la traducción de una sección nueva.
Certificados (Let's Encrypt)Un certificado digital permite a los usuarios de un servicio web verificar la identidad del servicio y comunicar con él de modo seguro. FreedomBox puede obtener y configurar automaticamente certificados digitales para cada dominio disponible. Lo hace probando a Let's Encrypt, una authoridad de certificación (CA) ser el dueño de un dominio. Let's Encrypt es una autoridad de certificación abierta, automatizada, libre y gratuita administrada para beneficio público por el Internet Security Research Group (ISRG). Por favor, lee y acepta los términos del Acuerdo de Suscripción de Let's Encrypt antes de usar este servicio.
Por Qué Usar CertificadosLa comunicación con tu FreedomBox se puede asegurar de modo que se imposibilite interceptar los contenidos que tus servicios intercambian con sus usuarios.
Cómo configurarSi tu FreedomBox está detrás de un router, necesitarás configurar la redirección de puertos en tu router. Debes redirigir los siguientes puertos: TCP 80 (http) TCP 443 (https) Publica tu nombre de dominio: En Configurar inserta tu nombre de dominio, p.ej. MiWeb.com Let's Encrypt Verifica que se aceptó tu nombre de dominio Comprueba que está habilitado en Servicio de Nombres Let's Encrypt Name Services Ve a la página de los Certificados (Let's Encrypt) y completa la instalación del modulo si hace falta. Entonces haz clic en el botón "Obtain" de tu nombre de dominio. Tras algunos minutos estará disponible un certificado válido Let's Encrypt Verifica en tu navegador comprobando https://MiWeb.com Let's Encrypt Certificate Screencast: Let's Encrypt
UsarEl certificado es válido por 3 meses. Se renueva automáticamente y también se puede volcer a obtener o revocar manualmente. Ejecutando diagnostics se puede también verificar el certificado. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/LetsEncrypt32020-04-04 17:19:32fioddorCorrección.22019-08-20 12:56:47fioddorSe incorpora la traducción de una sección nueva.12019-08-20 12:48:05fioddorSe incorpora la traducción de una sección nueva.
Certificados (Let's Encrypt)Un certificado digital permite a los usuarios de un servicio web verificar la identidad del servicio y comunicar con él de modo seguro. FreedomBox puede obtener y configurar automaticamente certificados digitales para cada dominio disponible. Lo hace probando a Let's Encrypt, una authoridad de certificación (CA) ser el dueño de un dominio. Let's Encrypt es una autoridad de certificación abierta, automatizada, libre y gratuita administrada para beneficio público por el Internet Security Research Group (ISRG). Por favor, lee y acepta los términos del Acuerdo de Suscripción de Let's Encrypt antes de usar este servicio.
Por Qué Usar CertificadosLa comunicación con tu FreedomBox se puede asegurar de modo que se imposibilite interceptar los contenidos que tus servicios intercambian con sus usuarios.
Cómo configurarSi tu FreedomBox está detrás de un router, necesitarás configurar la redirección de puertos en tu router. Debes redirigir los siguientes puertos: TCP 80 (http) TCP 443 (https) Publica tu nombre de dominio: En Configurar inserta tu nombre de dominio, p.ej. MiWeb.com Let's Encrypt Verifica que se aceptó tu nombre de dominio Comprueba que está habilitado en Servicio de Nombres Let's Encrypt Name Services Ve a la página de los Certificados (Let's Encrypt) y completa la instalación del modulo si hace falta. Entonces haz clic en el botón "Obtain" de tu nombre de dominio. Tras algunos minutos estará disponible un certificado válido Let's Encrypt Verifica en tu navegador comprobando https://MiWeb.com Let's Encrypt Certificate Screencast: Let's Encrypt
UsarEl certificado es válido por 3 meses. Se renueva automáticamente y también se puede volcer a obtener o revocar manualmente. Ejecutando diagnostics se puede también verificar el certificado. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/MLDonkey.raw.xml b/doc/manual/es/MLDonkey.raw.xml index 597a8c1da..44399cf6a 100644 --- a/doc/manual/es/MLDonkey.raw.xml +++ b/doc/manual/es/MLDonkey.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/MLDonkey22019-09-11 14:51:57fioddorCorrecciones menores.12019-09-11 14:46:33fioddorSe crea la versión española.
Compartición de Archivos (MLDonkey)
¿Qué es MLDonkey?MLDonkey es una aplicación libre y multiprotocolo para compartir archivos entre pares (P2P) que ejecuta un servidor back-end sobre muchas plataformas. Se puede controlar mediante algún interfaz front-end, ya sea web, telnet o cualquier otro de entre una docena de programas cliente nativos. Originalmente era un cliente Linux para el protocolo eDonkey pero ahora se ejecuta en multiples sabores de Unix y derivados, OS X, Microsoft Windows y MorphOS. Y soporta muchos protocolos P2P, incluyendo ED2K (y Kademlia sobre Overnet), BitTorrent, DC++ y más. Más información acerca de MLDonkey en el Wiki del Proyecto MLDonkey Disponible desde: versión 0.48.0
Captura de PantallaMLDonkey Web Interface
Usar el Interfaz Web MLDonkeyTras instalar MLDonkey su interfaz web está accesible a los usuarios de los grupos ed2k y admin en https://<tu_freedombox>/mldonkey.
Usar el Interfaz para Escritorio/MóvilSe pueden usar muchas aplicaciones de escritorio y móviles para controlar a MLDonkey. El servidor MLDonkey estará ejecutándose siempre en la FreedomBox y (cargará o) descargará archivos y los mantendrá almacenados incluso cuando tu máquina local esté apagada o desconectada del MLDonkey de FreedomBox. Por restricciones de acceso via SSH a la FreedomBox solo los usuarios del grupo admin pueden acceder a su MLDonkey. Crea un usuario nuevo en el grupo admin o usa uno que ya esté allí. En tu máquina de escritorio abre una terminal y ejecuta el siguiente comando. Para este paso se recomienda que configures y uses claves SSH en vez de contraseñas. Arranca la aplicación gráfica y conéctala a MLDonkey como si MLDonkey se estuviera ejecutando en la máquina local de escritorio. Cuando hayas terminado mata el proceso SSH pulsando Control-C. Para más información lee acerca de los túneles SSH en la documentación MLDonkey. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/MLDonkey22019-09-11 14:51:57fioddorCorrecciones menores.12019-09-11 14:46:33fioddorSe crea la versión española.
Compartición de Archivos (MLDonkey)
¿Qué es MLDonkey?MLDonkey es una aplicación libre y multiprotocolo para compartir archivos entre pares (P2P) que ejecuta un servidor back-end sobre muchas plataformas. Se puede controlar mediante algún interfaz front-end, ya sea web, telnet o cualquier otro de entre una docena de programas cliente nativos. Originalmente era un cliente Linux para el protocolo eDonkey pero ahora se ejecuta en multiples sabores de Unix y derivados, OS X, Microsoft Windows y MorphOS. Y soporta muchos protocolos P2P, incluyendo ED2K (y Kademlia sobre Overnet), BitTorrent, DC++ y más. Más información acerca de MLDonkey en el Wiki del Proyecto MLDonkey Disponible desde: versión 0.48.0
Captura de PantallaMLDonkey Web Interface
Usar el Interfaz Web MLDonkeyTras instalar MLDonkey su interfaz web está accesible a los usuarios de los grupos ed2k y admin en https://<tu_freedombox>/mldonkey.
Usar el Interfaz para Escritorio/MóvilSe pueden usar muchas aplicaciones de escritorio y móviles para controlar a MLDonkey. El servidor MLDonkey estará ejecutándose siempre en la FreedomBox y (cargará o) descargará archivos y los mantendrá almacenados incluso cuando tu máquina local esté apagada o desconectada del MLDonkey de FreedomBox. Por restricciones de acceso via SSH a la FreedomBox solo los usuarios del grupo admin pueden acceder a su MLDonkey. Crea un usuario nuevo en el grupo admin o usa uno que ya esté allí. En tu máquina de escritorio abre una terminal y ejecuta el siguiente comando. Para este paso se recomienda que configures y uses claves SSH en vez de contraseñas. Arranca la aplicación gráfica y conéctala a MLDonkey como si MLDonkey se estuviera ejecutando en la máquina local de escritorio. Cuando hayas terminado mata el proceso SSH pulsando Control-C. Para más información lee acerca de los túneles SSH en la documentación MLDonkey. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/MatrixSynapse.raw.xml b/doc/manual/es/MatrixSynapse.raw.xml index 611aa3bbf..ad19de38f 100644 --- a/doc/manual/es/MatrixSynapse.raw.xml +++ b/doc/manual/es/MatrixSynapse.raw.xml @@ -4,4 +4,4 @@ chown matrix-synapse:nogroup /etc/matrix-synapse/conf.d/registration_shared_secr systemctl restart matrix-synapse register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml]]>Si quieres ver la lista de usuarios registrados en Matrix Syanpse haz lo siguiente como usuario root: Para crear una comunidad en Matrix Synapse se necesita un usuario Matrix con privilegios de admin en el servidor. Para dárselos a miusuario ejecuta los siguientes comandos como usuario root: Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 /var/lib/matrix-synapse/homeserver.db ]]>Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox \ No newline at end of file diff --git a/doc/manual/es/MediaWiki.raw.xml b/doc/manual/es/MediaWiki.raw.xml index 097932f5b..2ae71f0ef 100644 --- a/doc/manual/es/MediaWiki.raw.xml +++ b/doc/manual/es/MediaWiki.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/MediaWiki102020-04-13 16:22:33fioddorSe alinea con la versión 14 en inglés del 12 de abril de 202092020-01-29 06:38:07fioddorSe alinea con la versión 13 en inglés del 24 de enero de 202082020-01-21 08:10:38fioddorSe alinea con la versión 11 en inglés del 21 de enero de 202072020-01-21 08:07:02fioddorSe alinea con la versión 10 en inglés del 18 de enero de 202062019-10-14 08:01:12fioddorEnlace a nueva página traducida.52019-10-11 00:38:07SunilMohanAdapaRemove formatting on link to MediaWiki page that is causing issues with PDF conversion42019-09-17 11:26:11fioddorMejora menor32019-09-17 11:24:09fioddorCorrección menor22019-09-17 11:22:32fioddorMejora menor12019-09-17 11:21:21fioddorSe crea la versión española.
Wiki (MediaWiki)
Acerca de MediaWikiMediaWiki es el software de base de la gama de wikis Wikimedia. Lee más acerca de MediaWiki en Wikipedia Disponible desde: versión 0.20.0
MediaWiki en FreedomBoxMediaWiki viene configurado en FreedomBox para ser públicamente legible y editable en privado. Sólo los usuarios ingresados pueden editar el wiki. Esta configuración evita publicidad indeseada (spam) y otros vandalismos en tu wiki.
Administración de UsuariosSolo el administrador de MediaWiki (usuario "admin") puede crear los usuarios. El usuario "admin" puede usarse también para restablecer contraseñas de usuarios MediaWiki. Si se olvida la contraseña del administrador se puede restablecer desde la página de MediaWiki del interfaz web de FreedomBox.
Casos de usoMediaWiki es muy versátil y se puede emplear para muchos usos creativos. También es áltamente adaptable y viene con un montón de extensiones (plugins) y estilos estéticos.
Repositorio Personal de ConocimientoEl MediaWiki de FreedomBox puede ser tu propio repositorio de conocimiento personal. Como MediaWiki tiene buen soporte multimedia puedes escribir notas, almacenar imágenes, crear listas de comprobación, guardar referencias y enlaces, etc. de manera organizada. Puedes almacenar el conocimiento de una vida en tu instancia de MediaWiki.
Wiki ComunitarioUna comunidad de usuarios podría usar MediaWiki como su repositorio común de conocimiento y material de referencia. Se puede emplear como un tablón de anunciós de universidad, como un servidor de documentación para una pequeña empresa, como un bloc de notas para grupos de estudio o como un wiki de fans al estilo de wikia.
Sitio Web Personal implementado mediante un WikiVarios sitios web de internet son sólo instancias de MediaWiki. El MediaWiki de FreedomBox es de solo lectura para visitantes. Se puede por tanto adaptar para servir como tu sitio web y/o blog personal. El contenido de MediaWiki es fácil de exportar y puede moverse después a otro motor de blogs.
Editar Contenido del WikiFreedomBox monta MediaWiki con un editor básico con una barra de herramientas con opciones de uso habitual como negrita, cursiva etc. Haz clic en la sección Avanzadas para acceder a más opciones como cabaceras, listas con viñetas, etc. mediawiki-toolbar.png
Editor VisualComo su nombre indica, el nuevo Editor Visual de MediaWiki ofrece un interfaz de usuario visual (WYSIWYG) para crear páginas del wiki. Pero esta funcionalidad está todavía en pruebas y MediaWiki no la trae de serie. Una solución temporal posible sería escribir tu contenido con el Editor Visual del borrador de Wikipedia, cambiar el modo de edición a texto y copiarlo a tu wiki.
Otros FormatosNo es imprescindible que aprendas el lenguaje de formateo de MediaWiki. Puedes escribir en tu formato favorito (Markdown, Org-mode, LaTeX etc.) y convertirlo al formato de MediaWiki usando Pandoc.
Cargar ImágenesSe puede habilitar la carga de imágenes desde FreedomBox versión 0.36.0. También puedes usar directamente imágenes de Wikimedia Commons mediante una funcionalidad llamada Instant Commons.
Personalización
Temas de estiloEl tema por defecto de MediaWiki suele ser Vector. El de FreedomBox es Timeless. Vector es un tema optimizado para visualizarlo en pantallas grandes pero no se adecúa bien a los tamaños de pantalla de los móviles. Wikimedia usa otro sitio específico para móviles. Para instalaciones pequeñas como las de FreedomBox no merece la pena un segundo sitio dedicado. Usar un tema de estilo más polivalente como Timeless es una solución más eficiente al problema. Los administradores pueden elegir el tema por defecto desde la configuración de la app. Los usuarios del sitio tienen también la opción de visualizarlo con temas diferentes. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/MediaWiki102020-04-13 16:22:33fioddorSe alinea con la versión 14 en inglés del 12 de abril de 202092020-01-29 06:38:07fioddorSe alinea con la versión 13 en inglés del 24 de enero de 202082020-01-21 08:10:38fioddorSe alinea con la versión 11 en inglés del 21 de enero de 202072020-01-21 08:07:02fioddorSe alinea con la versión 10 en inglés del 18 de enero de 202062019-10-14 08:01:12fioddorEnlace a nueva página traducida.52019-10-11 00:38:07SunilMohanAdapaRemove formatting on link to MediaWiki page that is causing issues with PDF conversion42019-09-17 11:26:11fioddorMejora menor32019-09-17 11:24:09fioddorCorrección menor22019-09-17 11:22:32fioddorMejora menor12019-09-17 11:21:21fioddorSe crea la versión española.
Wiki (MediaWiki)
Acerca de MediaWikiMediaWiki es el software de base de la gama de wikis Wikimedia. Lee más acerca de MediaWiki en Wikipedia Disponible desde: versión 0.20.0
MediaWiki en FreedomBoxMediaWiki viene configurado en FreedomBox para ser públicamente legible y editable en privado. Sólo los usuarios ingresados pueden editar el wiki. Esta configuración evita publicidad indeseada (spam) y otros vandalismos en tu wiki.
Administración de UsuariosSolo el administrador de MediaWiki (usuario "admin") puede crear los usuarios. El usuario "admin" puede usarse también para restablecer contraseñas de usuarios MediaWiki. Si se olvida la contraseña del administrador se puede restablecer desde la página de MediaWiki del interfaz web de FreedomBox.
Casos de usoMediaWiki es muy versátil y se puede emplear para muchos usos creativos. También es áltamente adaptable y viene con un montón de extensiones (plugins) y estilos estéticos.
Repositorio Personal de ConocimientoEl MediaWiki de FreedomBox puede ser tu propio repositorio de conocimiento personal. Como MediaWiki tiene buen soporte multimedia puedes escribir notas, almacenar imágenes, crear listas de comprobación, guardar referencias y enlaces, etc. de manera organizada. Puedes almacenar el conocimiento de una vida en tu instancia de MediaWiki.
Wiki ComunitarioUna comunidad de usuarios podría usar MediaWiki como su repositorio común de conocimiento y material de referencia. Se puede emplear como un tablón de anunciós de universidad, como un servidor de documentación para una pequeña empresa, como un bloc de notas para grupos de estudio o como un wiki de fans al estilo de wikia.
Sitio Web Personal implementado mediante un WikiVarios sitios web de internet son sólo instancias de MediaWiki. El MediaWiki de FreedomBox es de solo lectura para visitantes. Se puede por tanto adaptar para servir como tu sitio web y/o blog personal. El contenido de MediaWiki es fácil de exportar y puede moverse después a otro motor de blogs.
Editar Contenido del WikiFreedomBox monta MediaWiki con un editor básico con una barra de herramientas con opciones de uso habitual como negrita, cursiva etc. Haz clic en la sección Avanzadas para acceder a más opciones como cabaceras, listas con viñetas, etc. mediawiki-toolbar.png
Editor VisualComo su nombre indica, el nuevo Editor Visual de MediaWiki ofrece un interfaz de usuario visual (WYSIWYG) para crear páginas del wiki. Pero esta funcionalidad está todavía en pruebas y MediaWiki no la trae de serie. Una solución temporal posible sería escribir tu contenido con el Editor Visual del borrador de Wikipedia, cambiar el modo de edición a texto y copiarlo a tu wiki.
Otros FormatosNo es imprescindible que aprendas el lenguaje de formateo de MediaWiki. Puedes escribir en tu formato favorito (Markdown, Org-mode, LaTeX etc.) y convertirlo al formato de MediaWiki usando Pandoc.
Cargar ImágenesSe puede habilitar la carga de imágenes desde FreedomBox versión 0.36.0. También puedes usar directamente imágenes de Wikimedia Commons mediante una funcionalidad llamada Instant Commons.
Personalización
Temas de estiloEl tema por defecto de MediaWiki suele ser Vector. El de FreedomBox es Timeless. Vector es un tema optimizado para visualizarlo en pantallas grandes pero no se adecúa bien a los tamaños de pantalla de los móviles. Wikimedia usa otro sitio específico para móviles. Para instalaciones pequeñas como las de FreedomBox no merece la pena un segundo sitio dedicado. Usar un tema de estilo más polivalente como Timeless es una solución más eficiente al problema. Los administradores pueden elegir el tema por defecto desde la configuración de la app. Los usuarios del sitio tienen también la opción de visualizarlo con temas diferentes. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Minetest.raw.xml b/doc/manual/es/Minetest.raw.xml index 7997339cc..46e2257c0 100644 --- a/doc/manual/es/Minetest.raw.xml +++ b/doc/manual/es/Minetest.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Minetest22019-09-04 09:50:46fioddorCorrección menor12019-09-04 09:50:27fioddorSe crea la versión española.
Block Sandbox (Minetest)Minetest es un Block Sandbox multijugador para mundos infinitos. Este módulo permite ejecutar el servidor Minetest en esta FreedomBox, en su puerto por defecto (30000). Para conectar al servidor se necesita un cliente de Minetest.
Enrutado de PuertosSi tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos en tu router para los siguientes puertos de Minetest: UDP 30000 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Minetest32020-05-10 00:36:41fioddorSe alinea con la versión 04 en inglés del 03 de mayo de 202022019-09-04 09:50:46fioddorCorrección menor12019-09-04 09:50:27fioddorSe crea la versión española.
Block Sandbox (Minetest)Minetest es un Block Sandbox multijugador para mundos infinitos. Este módulo permite ejecutar el servidor Minetest en esta FreedomBox, en su puerto por defecto (30000). Para conectar al servidor se necesita un cliente de Minetest.
Enrutado de PuertosSi tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos en tu router para los siguientes puertos de Minetest: UDP 30000 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/MiniDLNA.raw.xml b/doc/manual/es/MiniDLNA.raw.xml index 6b03d9987..2c7784071 100644 --- a/doc/manual/es/MiniDLNA.raw.xml +++ b/doc/manual/es/MiniDLNA.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/MiniDLNA12019-12-25 21:05:55fioddorSe traduce una página nueva
MiniDLNAMiniDLNA es un servidor multimedia que intenta ser compatible con clientes DLNA/UPnP.
¿Qué es UPnP/DLNA?UPnP (Universal plug & play) es un conjunto de protocolos de red que permite a los dispositivos de una red, como PCs, TVs, impresoras etc, reconocerse entre sí y establecer comunicación para compartir datos. Es un protocolo con cero configuración y require solo un servidor multimedia y un reproductor multimedia compatibles con el protocolo. DLNA se deriva de UPnP como una forma de estandarizar interoperabilidad entre medios. Conforma un estándar/certificación que cumplen muchos dispositivos electrónicos de consumo.
Desplegando MiniDLNA en tu FreedomBox.Para instalar/habilitar el servidor multimedia necesitas navegar a la página MiniDLNA y habilitarlo. Se intenta que la aplicación esté disponible en la red interna y por ello requiere asignarle un interfaz de red configurado para tráfico interno. Tras la instalación queda disponible una página web en . Incluye información de cuántos ficheros detecta el servidor, cuántas conexiones existen etc. Esto resulta muy útil cuando conectas discos externos con contenido para para verificar que detecta los nuevos archivos como debe. Si no ocurre así, desconectar y activar el servidor lo arreglará.
Sistemas de archivo para discos externos.Al usar un disco externo que se usa también desde sistemas Windows el mejor formato para el sistema de archivos es NTFS. NTFS conservará los permisos de acceso de Linux y la codificación UTF-8 para los nombres de fichero. Esto es útil si los nombres de archivos tienen tildes, eñes u otros signos raros.
Enlaces externos (en) Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/MiniDLNA12019-12-25 21:05:55fioddorSe traduce una página nueva
MiniDLNAMiniDLNA es un servidor multimedia que intenta ser compatible con clientes DLNA/UPnP.
¿Qué es UPnP/DLNA?UPnP (Universal plug & play) es un conjunto de protocolos de red que permite a los dispositivos de una red, como PCs, TVs, impresoras etc, reconocerse entre sí y establecer comunicación para compartir datos. Es un protocolo con cero configuración y require solo un servidor multimedia y un reproductor multimedia compatibles con el protocolo. DLNA se deriva de UPnP como una forma de estandarizar interoperabilidad entre medios. Conforma un estándar/certificación que cumplen muchos dispositivos electrónicos de consumo.
Desplegando MiniDLNA en tu FreedomBox.Para instalar/habilitar el servidor multimedia necesitas navegar a la página MiniDLNA y habilitarlo. Se intenta que la aplicación esté disponible en la red interna y por ello requiere asignarle un interfaz de red configurado para tráfico interno. Tras la instalación queda disponible una página web en . Incluye información de cuántos ficheros detecta el servidor, cuántas conexiones existen etc. Esto resulta muy útil cuando conectas discos externos con contenido para para verificar que detecta los nuevos archivos como debe. Si no ocurre así, desconectar y activar el servidor lo arreglará.
Sistemas de archivo para discos externos.Al usar un disco externo que se usa también desde sistemas Windows el mejor formato para el sistema de archivos es NTFS. NTFS conservará los permisos de acceso de Linux y la codificación UTF-8 para los nombres de fichero. Esto es útil si los nombres de archivos tienen tildes, eñes u otros signos raros.
Enlaces externos (en) Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Monkeysphere.raw.xml b/doc/manual/es/Monkeysphere.raw.xml index eb2c75f53..683787221 100644 --- a/doc/manual/es/Monkeysphere.raw.xml +++ b/doc/manual/es/Monkeysphere.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Monkeysphere22020-04-04 17:28:08fioddorCorrección.12019-08-23 10:48:17fioddorSe crea la versión española.
MonkeysphereCon Monkeysphere se puede generar una clave OpenPGP para cada dominio configurado para servir SSH. La clave pública OpenPGP se puede subir entonces a los servidores de claves OpenPGP. Los usuarios que se conecten mediante SSH podrán verificar que se están conectando a la máquina correcta. Para que los usuarios puedan confiar en la clave alguien (generalmente el dueño de la máquina) tiene que firmarla siguiendo el proceso normal de firmado de claves OpenPGP. Para más detalles, ver la documentación de Monkeysphere SSH. Monkeysphere también puede generar una clave OpenPGP para cada certificado de servidor web seguro (HTTPS) instalado en esta máquina. La clave pública OpenPGP se puede subir entonces a los servidores de claves OpenPGP. Los usuarios que se conecten mediante HTTPS podrán verificar que se están conectando a la máquina correcta. Para validar el certificado el usuario deberá instalar cierto software disponible en el sitio web de Monkeysphere. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Monkeysphere22020-04-04 17:28:08fioddorCorrección.12019-08-23 10:48:17fioddorSe crea la versión española.
MonkeysphereCon Monkeysphere se puede generar una clave OpenPGP para cada dominio configurado para servir SSH. La clave pública OpenPGP se puede subir entonces a los servidores de claves OpenPGP. Los usuarios que se conecten mediante SSH podrán verificar que se están conectando a la máquina correcta. Para que los usuarios puedan confiar en la clave alguien (generalmente el dueño de la máquina) tiene que firmarla siguiendo el proceso normal de firmado de claves OpenPGP. Para más detalles, ver la documentación de Monkeysphere SSH. Monkeysphere también puede generar una clave OpenPGP para cada certificado de servidor web seguro (HTTPS) instalado en esta máquina. La clave pública OpenPGP se puede subir entonces a los servidores de claves OpenPGP. Los usuarios que se conecten mediante HTTPS podrán verificar que se están conectando a la máquina correcta. Para validar el certificado el usuario deberá instalar cierto software disponible en el sitio web de Monkeysphere. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Mumble.raw.xml b/doc/manual/es/Mumble.raw.xml index cdb339831..27666e5d0 100644 --- a/doc/manual/es/Mumble.raw.xml +++ b/doc/manual/es/Mumble.raw.xml @@ -1,2 +1,2 @@
es/FreedomBox/Manual/Mumble32019-11-14 16:30:35fioddorCorrecciones menores22019-11-14 16:29:09fioddorSe alinea con la versión 09 del 07 de noviembre de 201912019-09-16 10:58:59fioddorSe crea la versión española.
Conversaciones de Voz (Mumble)
¿Qué es Mumble?Mumble es un software de conversaciones de voz. Principalmente diseñado para uso con juegos multijugador por red, sirve para hablar con alta calidad de audio, cancelación de ruido, comunicación cifrada, autenticación de interlocutores por defecto mediante par de claves pública/privada, y "asistentes" para configurar tu micrófono, por ejemplo. Se puede marcar a un usuario dentro de un canal como "interlocutor prioritario".
Usar MumbleFreedomBox incluye el servidor Mumble. Para conectar con el servidor los usuarios pueden descargar algún cliente de entre los disponibles para plataformas de escritorio y móviles.
Redirección de PuertosSi tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos de tu router. Deberías redirigir los siguientes puertos para Mumble: TCP 64738 UDP 64738
Administrar PermisosEn Mumble un supeusuario puede crear cuentas de administrador que a su vez pueden administrar permisos a grupos y canales. Esto se puede hacer tras ingresar con el usuario "SuperUser" y la contraseña de superusuario. Ver la Guía de Mumble para obtener información respecto a cómo hacer esto. Actualmente FreedomBox no ofrece una interfaz gráfica para obtener o establecer la contraseña de superusuario en Mumble. Se genera una contraseña de superusuario automáticamente durante la instalación de Mumble. Para obtenerla ingresa en el terminal como admin usando Cockpit , la Shell Segura o la consola. Y ejecuta el siguiente comando: Deberás ver una salida como esta: 2019-11-06 02:47:41.313 1 => Password for 'SuperUser' set to 'noo8Dahwiesh']]>O puedes establecer una contraseña nueva así: Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +echo "nuevacontraseña" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini /etc/mumble-server.ini --readsupw"]]>Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox \ No newline at end of file diff --git a/doc/manual/es/NameServices.raw.xml b/doc/manual/es/NameServices.raw.xml index 50ea942f1..83941f704 100644 --- a/doc/manual/es/NameServices.raw.xml +++ b/doc/manual/es/NameServices.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/NameServices22019-11-14 18:09:00fioddorSe alinea con la versión 04 en inglés del 11 de noviembre de 201912019-06-20 15:23:22fioddorSe crea la versión española.
Servicios de NombreLos Servicios de Nombre proporcionan una vista general a las formas de acceder desde la Internet pública a tu !Freedombox: nombre de dominio, servicio Tor Onion y cometa (Pagekite). Para cada tipo de nombre se indica si los servicios HTTP, HTTPS, y SSH están habilitados o deshabilitados para conexiones entrantes. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/NameServices22019-11-14 18:09:00fioddorSe alinea con la versión 04 en inglés del 11 de noviembre de 201912019-06-20 15:23:22fioddorSe crea la versión española.
Servicios de NombreLos Servicios de Nombre proporcionan una vista general a las formas de acceder desde la Internet pública a tu !Freedombox: nombre de dominio, servicio Tor Onion y cometa (Pagekite). Para cada tipo de nombre se indica si los servicios HTTP, HTTPS, y SSH están habilitados o deshabilitados para conexiones entrantes. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Networks.raw.xml b/doc/manual/es/Networks.raw.xml index 83205286b..0ae282832 100644 --- a/doc/manual/es/Networks.raw.xml +++ b/doc/manual/es/Networks.raw.xml @@ -2,4 +2,4 @@ wifi.scan-rand-mac-address=no]]>Luego reinicia la FreedomBox.
Añadir un nuevo dispositivo de redAl añadir un nuevo dispositivo de red network manager lo configurará automáticamente. En la mayoría de los casos esto no funcionará. Borra la configuración creada automáticamente en el interfaz y crea una conexión de red nueva. Selecciona tu interfaz recién creado en la página "añadir conexión". Configura la zona del cortafuegos como corresponda. Puedes configurar los interfaces para conectar a la red o proporcionar configuración de red a cualquier máquina que se le conecte. De modo similar, si es un interfaz Wi-Fi puedes configurarlo para ser un punto de acceso Wi-FI o para conectarse a puntos de acceso existentes en la red.
Configurar una red MeshFreedomBox tiene un soporte rudimentario para participar en redes mesh basadas en BATMAN-Adv. Es posible unirse a una red existe en tu zona o crear una red mesh nueva y compartir tu conexión a Internet con el resto de nodos que se unan a tu red. Tanto para unirte a una red mesh como para crear otra, actualmente hay que crear 2 conexiones y activarlas manualmente.
Unirse a una red MeshPara unirse a una red mesh existente en tu zona primero consulta a sus organizadores y obtén información acerca de la red. Crea una conexión nueva y selecciona el tipo de conexión Wi-Fi. En el siguiente diálogo rellena los valores como se indica: Nombre del campoValor de ejemploExplicación Nombre de la Conexión Mesh Join - BATMAN El nombre tiene que acabar en BATMAN (con mayúsculas). Interfaz físico wlan0 El dispositivo Wi-Fi que quieres usar para conectar a la red mesh. Zona del cortafuegos Externa Ya que no quieres que los participantes en la red mesh usen dispositivos internos de tu FreedomBox. SSID ch1.freifunk.net Tal como te lo hayan dado los operadores de la red mesh. Esta red debería mostrarse en Redes Wi-Fi accesibles. Modo Ad-hoc Porque esta red es una red de pares (peer-to-peer). Banda de Frecuencia 2.4Ghz Tal como te lo hayan dado los operadores de la red mesh. Canal 1 Tal como te lo hayan dado los operadores de la red mesh. BSSID 12:CA:FF:EE:BA:BE Tal como te lo hayan dado los operadores de la red mesh. Autenticación Abierta Déjala abierta salvo que sepas que tu red mesh necesite otro valor. Contraseña Déjala en blanco salvo que sepas el valor que necesite tu red mesh. Método de direccionamiento IPv4 Deshabilitado Todavía no queremos pedir una configuración IP. Graba la conexión y únete a la red mesh activándola. Crea una segunda conexión nueva y selecciona el tipo Genérica. En el siguiente diálogo rellena los valores como se indica: Nombre del campoValor de ejemploExplicación Nombre de la Conexión Mesh Connect Cualquier nombre para identificar ésta conexión. Interfaz físico bat0 Este interfaz solo aparecerá tras activar con éxito la conexión del paso anterior. Zona del cortafuegos Externa Ya que no quieres que los participantes en la red mesh usen dispositivos internos de tu FreedomBox. Método de direccionamiento IPv4 Auto Generalmente las redes mesh tienen un servidor DHCP en algún sitio que le proporciona una configuración IP a tu máquina. Si no, consulta al operador y configura la dirección IP como te diga por el método manual. Graba la conexión. Configura tu maquina para participar en la red activando esta conexión. Actualmente hay que activarla manualmente cada vez que quieras unirte a la red. En el futuro FreedomBox lo hará automáticamente. Ahora debieras poder llegar a otros nodos de la red. También podrás conectar a Internet a través de la red mesh si los operadores han instalado algúna puerta de enlace.
Crear una red MeshPara crear tu propia red mesh y compartir tu conexión a Internet con el resto de los nodos de la red: Sigue las instrucciones del paso 1 de Unirse a una red Mesh empleando los valores válidos para tu red en SSID (un nombre para tu red Mesh), Banda de Frecuencia (generalmente 2.4Ghz), Canal (entre 1 y 11 para la banda de 2.4Ghz) y BSSID (una secuencia hexadecimal como 12:CA:DE:AD:BE:EF). Crea esta conexión y actívala. Sigue las instrucciones del paso 2 de Unirse a una red Mesh seleccionando Compartido para Método de direccionamiento IPv4d. Esto proporcionará automáticamente una configuración IP a otros nodos de la red y compartirá la conexión a Internet de tu maquina (ya sea mediante un segudo interfaz Wi-Fi, Ethernet, etc.) con el otros nodos de la red mesh. Corre la voz entre tus vecinos acerca de tu red mesh y pásales los parámetros que has empleado al crearla. Cuando otros nodos se conecten a esta red mesh tendrán que seguir las instrucciones del paso 1 de Unirse a una red Mesh empleando en SSID, Banda de Frecuencia y Canal los valores que has elegido para tu red mesh al crearla.
Operación de Red ManualFreedomBox configura redes automáticamente por defecto y proporciona un interfaz simplificado para personalizar la configuración a necesidades específicas. En la mayoría de los casos la operación manual no es necesaria. Los siguientes pasos describen cómo operar la configuración de red a mano en caso de que el interfaz de FreedomBox le resulte insuficiente a un usuario para realizar una tarea o para diagnosticar un problema que FreedomBox no identifique. En el interfaz de línea de comandos: Para acceder a un interfaz de configuración de conexiones de red basado en texto: Para ver la lista de dispositivos de red disponibles: Para ver la lista de conexiones configuradas: Para ver el estado actual de una conexión: ']]>Para ver la zona asignada actualmente en el cortafuegos a un interfaz de red: ' | grep zone]]>o Para crear una conexión nueva: " ifname "" type ethernet nmcli con modify "" connection.autoconnect TRUE -nmcli con modify "" connection.zone internal]]>Para cambiarle la zona a una conexión en el cortafuegos: " connection.zone ""]]>Para más información acerca del uso del comando nmcli mira su página man. Para obtener una lista completa de configuraciones y tipos de conexión que acepta Network Manager mira: Para ver el estado actual del cortafuegos y operarlo manualmente lee la sección Cortafuegos. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +nmcli con modify "" connection.zone internal]]>Para cambiarle la zona a una conexión en el cortafuegos: " connection.zone ""]]>Para más información acerca del uso del comando nmcli mira su página man. Para obtener una lista completa de configuraciones y tipos de conexión que acepta Network Manager mira: Para ver el estado actual del cortafuegos y operarlo manualmente lee la sección Cortafuegos. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox \ No newline at end of file diff --git a/doc/manual/es/OpenVPN.raw.xml b/doc/manual/es/OpenVPN.raw.xml index 0e0d49c1b..367ee59aa 100644 --- a/doc/manual/es/OpenVPN.raw.xml +++ b/doc/manual/es/OpenVPN.raw.xml @@ -1,4 +1,4 @@
es/FreedomBox/Manual/OpenVPN52019-11-20 11:00:10fioddorSe alinea con la versión 16 en inglés del 18 de noviembre de 201942019-10-10 19:50:32JosephNuthalapatiFix FreedomBox Portal include in the footer32019-09-16 09:36:03fioddorCorrección menor22019-09-16 09:34:40fioddorCorrección menor12019-09-16 09:32:56fioddorSe crea la versión española.
Red Privada Virtual (OpenVPN)
¿Qué es OpenVPN?OpenVPN proporciona un servicio de red privada virtual a tu FreedomBox. Puedes usar este software para acceso remoto, VPNs punto-a-punto y seguridad Wi-Fi. OpenVPN incluye soporte para direcciones IP dinámicas y NAT.
Redirección de puertosSi tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos en tu router. Debes redirigir los siguientes puertos para OpenVPN: UDP 1194
ConfigurarEn el menú de apps de Plinth selecciona Red Privada Virtual (OpenVPN) y haz clic en Instalar. Tras instalar el módulo todavía queda un paso de configuración que puede llevar largo tiempo completar. Haz clic en "Iniciar configuración" para empezar. OpenVPN service page Espera a que termine la configuración. Puede tardar un rato. Una vez completada la configuración del servidor OpenVPN puedes descargar tu perfil. Esto descargará un archivo llamado <usuario>.ovpn, siendo <usuario> un usuario de FreedomBox. Todos los usuarios de FreedomBox podrán descargar un perfil propio y diferente. Los usuarios que no sean administradores pueden descargar el perfil desde la portada después de ingresar. El archivo ovpn contiene toda la información que necesita un cliente vpn para conectar con un servidor. El perfil descargado contiene el nombre de dominio de FreedomBox al que debe conectarse el cliente. Este se obtiene del dominio configurado en la sección 'Configuración' de la página de 'Sistema'. En caso de que tu dominio no esté configurado adecuadamente quizá necesites cambiar este valor después de descargar el perfil. Si tu cliente OpenVPN lo permite puedes hacer esto después de importar el perfil OpenVPN. De lo contrario puedes editar el perfil .ovpn con un editor de texto y cambiar la línea 'remote' para que contenga la dirección IP WAN o el hostname de tu FreedomBox como se indica aquí.
Navegar por Internet tras conectar a una VPNTras conectar a la VPN el dispositivo cliente podrá navegar por Internet sin más configuración adicional. No obstante una pre-condición para que esto funcione es que necesitas tener al menos 1 interfaz (tarjeta) de red conectado a Internet en la zona Externa del cortafuegos. Usa la página de configuración de redes para editar la zona del cortafuegos con los interfaces (tarjetas) de red del dispositivo.
Uso
En Android/LineageOSVisita la página principal de FreedomBox. Ingresa con tu cuenta de usuario. Desde la página principal descarga el perfil OpenVPN. El archivo se llamará <usuario>.ovpn. OpenVPN Download Profile Descarga un cliente OpenVPN como OpenVPN for Android. Se recomienda el repositorio F-Droid. En la app, selecciona Importar perfil. OpenVPN App En el diálogo Seleccionar perfil elige el archivo <usuario>.opvn que acabas de descargar. Pon un nombre a la conexión y graba el perfil. OpenVPN import profile El perfil recién creado aparecera. Si hace falta edita el perfil y pon el nombre de dominio de tu FreedomBox como dirección de servidor. OpenVPN profile created OpenVPN edit domain name Conecta haciendo clic sobre el perfil. OpenVPN connect OpenVPN connected Cuando esté desconecta haciendo clic sobre el perfil. OpenVPN disconnect
En DebianInstala un cliente OpenVPN para tu sistema Abre el archivo ovpn con el cliente OpenVPN. .ovpn]]>
Comprobar si estás conectado
En DebianTrata de hacer ping a tu FreedomBox u otros dispositivos de tu red. El comando ip addr debe mostrar una conexión tun0. El comando traceroute freedombox.org debiera mostrar la dirección IP del servidor VPN como primer salto. Si usas Network Manager puedes crear una conexión nueva importando el fichero: .ovpn]]>
Enlaces Externos Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +$ sudo nmcli connection import type openvpn file /ruta/a/.ovpn]]>
Enlaces Externos Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/PageKite.raw.xml b/doc/manual/es/PageKite.raw.xml index 6163cf6ec..2c5d402ac 100644 --- a/doc/manual/es/PageKite.raw.xml +++ b/doc/manual/es/PageKite.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/PageKite22020-04-04 19:54:42fioddorEnlace a página traducida.12019-06-20 15:13:14fioddorSe crea la versión española.
Visibilidad Publica (PageKite)
¿Qué es PageKite?PageKite hace inmediata y públicamente accesibles desde internet a los sitios web y servicios locales sin tener que crear tu mismo una dirección IP pública. Lo hace tunelando protocolos como HTTPS o SSH a través de cortafuegos y NAT. Usar PageKite require ana cuenta en un servicio de repetidor de PageKite. es uno de de estos servicios. Un servicio de repetidor de PageKite te permitirá crear cometas (kites). Las cometas son similares a los nombres de dominio pero con ventajas y desventajas diferentes. Una cometa puede tener varios servicios configurados. Se sabe que PageKite funciona con HTTP, HTTPS, y SSH, y muchas funcionan con otros servicios, pero no todas.
Usar PageKiteCréate una cuenta en un servicio de repetidor de PageKite. Añade una cometa a tu cuenta. Anota el nombre y el sectreo de tu cometa. En Plinth, vé a la solapa "Configurar PageKite" de la página Visibilidad Publica (PageKite). Marca la caja "Habilitar PageKite" e introduce el nombre y el secreto de tu cometa. Haz clic en "Grabar propiedades". En la solapa "Servicios Estándar" puedes habilitar HTTP y HTTPS (recomendado) y SSH (opcional). HTTP se necesita para obtener el certificado Let's Encrypt. Puedes deshabilitarlo (HTTPS) más tarde. En la página Certificados (Let's Encrypt) puedes obtener un certificado Let's Encrypt para el nombre de tu cometa. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/PageKite22020-04-04 19:54:42fioddorEnlace a página traducida.12019-06-20 15:13:14fioddorSe crea la versión española.
Visibilidad Publica (PageKite)
¿Qué es PageKite?PageKite hace inmediata y públicamente accesibles desde internet a los sitios web y servicios locales sin tener que crear tu mismo una dirección IP pública. Lo hace tunelando protocolos como HTTPS o SSH a través de cortafuegos y NAT. Usar PageKite require ana cuenta en un servicio de repetidor de PageKite. es uno de de estos servicios. Un servicio de repetidor de PageKite te permitirá crear cometas (kites). Las cometas son similares a los nombres de dominio pero con ventajas y desventajas diferentes. Una cometa puede tener varios servicios configurados. Se sabe que PageKite funciona con HTTP, HTTPS, y SSH, y muchas funcionan con otros servicios, pero no todas.
Usar PageKiteCréate una cuenta en un servicio de repetidor de PageKite. Añade una cometa a tu cuenta. Anota el nombre y el sectreo de tu cometa. En Plinth, vé a la solapa "Configurar PageKite" de la página Visibilidad Publica (PageKite). Marca la caja "Habilitar PageKite" e introduce el nombre y el secreto de tu cometa. Haz clic en "Grabar propiedades". En la solapa "Servicios Estándar" puedes habilitar HTTP y HTTPS (recomendado) y SSH (opcional). HTTP se necesita para obtener el certificado Let's Encrypt. Puedes deshabilitarlo (HTTPS) más tarde. En la página Certificados (Let's Encrypt) puedes obtener un certificado Let's Encrypt para el nombre de tu cometa. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Power.raw.xml b/doc/manual/es/Power.raw.xml index 827068416..f0b9f0230 100644 --- a/doc/manual/es/Power.raw.xml +++ b/doc/manual/es/Power.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Power12019-06-18 15:25:34fioddorSe crea la versión española.
ApagadoPower proporciona un modo fácil de reiniciar o apagar tu FreedomBox. Después de seleccionar "Reiniciar" o "Apagar", se te pedirá confirmación. Se puede llegar también a las opciones "Reiniciar" y "Apagar" desde el menú desplegable del usuario en la esquina superior derecha. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Power12019-06-18 15:25:34fioddorSe crea la versión española.
ApagadoPower proporciona un modo fácil de reiniciar o apagar tu FreedomBox. Después de seleccionar "Reiniciar" o "Apagar", se te pedirá confirmación. Se puede llegar también a las opciones "Reiniciar" y "Apagar" desde el menú desplegable del usuario en la esquina superior derecha. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Privoxy.raw.xml b/doc/manual/es/Privoxy.raw.xml index 462e13f78..6c891429d 100644 --- a/doc/manual/es/Privoxy.raw.xml +++ b/doc/manual/es/Privoxy.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Privoxy22019-09-16 11:36:07fioddor12019-09-16 11:33:00fioddorSe crea la versión española.
Proxy Web (Privoxy)Un proxy web actúa como filtro para tráfico web entrante y saliente. Por tanto, puedes ofrecer a los ordenadores de tu red pasar su tráfico internet a través del proxy para eliminar anuncios y mecanismos de rastreo indeseados. Privoxy es un software para la seguridad, privacidad, y control certero sobre la web. Proporciona una navegación web mucho más controlada (y anónima) que la que te puede ofrecer tu navegador. Privoxy "es un proxy enfocado principalmente al aumento de la privacidad, eliminación de anuncios y morralla, y a liberar al usuario de las restricciones impuestas sobre sus propias actividades" (fuente: Preguntas frecuentes acerca de Privoxy).
VídeoMira el vídeo acerca de como configurar y usar Privoxy en FreedomBox.
ConfigurarInstala Proxy Web (Privoxy) desde Plinth Privoxy Installation Adapta las preferencias de proxy de tu navegador al hostname (o dirección IP) de tu FreedomBox con el puerto 8118. Observa por favor que Privoxy sólo puede tratar tráfico HTTP y HTTPS. No funciona con FTP u otros protocolos. Privoxy Browser Settings Vé a la página o . Si Privoxy está instalado adecuadamente podrás configurarlo en detalle y si no verás un mensaje de fallo. Si usas un portátil que tenga a veces que conectarse con FreedomBox y Privoxy pasando por routers de terceros quizá quieras instalar una extensión proxy switch que te permite activar y desactivar el proxy más fácilmente.
Usuarios AvanzadosLa instalación de serie debería proporcionar un punto de partida razonable para la mayoría de los usuarios. Indudablemente habrá ocasiones en las que quieras ajustar la configuración. Eso se puede afrontar cuando surja la necesidad. Con Privoxy activado puedes ver su documentación y los detalles de su configuración en http://config.privoxy.org/ o en http://p.p. Para habilitar los cambios en estas configuraciones primero tienes que cambiar el valor de habilitar-acciones-de-edición en /etc/privoxy/config a 1. Antes de hacerlo lee el manual con atención, especialmente: No se puede controlar por separado el accesso al editor por "ACLs" o authenticación HTTP, así que cualquiera con acceso a Privoxy puede modificar la configuración de todos los usuarios. Esta opción no se recomienda para entornos con usuarios no confiables. Nota que un código de cliente malicioso (p.ej. Java) también puede usar el editor de acciones y no deberías habilitar estas opciones a no ser que entiendas las consecuencias y estés seguro de que los navegadores están correctamente configurados. Ahora encontrarás un botón EDITAR en la pantalla de configuración de http://config.privoxy.org/. La Guía rápida es un buen punto de partida para leer acerca de cómo definir reglas de bloqueo y filtrado propias. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Privoxy32020-05-10 00:49:54fioddorSe alinea con la versión 13 en inglés del 03 de mayo de 202022019-09-16 11:36:07fioddor12019-09-16 11:33:00fioddorSe crea la versión española.
Proxy Web (Privoxy)Un proxy web actúa como filtro para tráfico web entrante y saliente. Por tanto, puedes ofrecer a los ordenadores de tu red pasar su tráfico internet a través del proxy para eliminar anuncios y mecanismos de rastreo indeseados. Privoxy es un software para la seguridad, privacidad, y control certero sobre la web. Proporciona una navegación web mucho más controlada (y anónima) que la que te puede ofrecer tu navegador. Privoxy "es un proxy enfocado principalmente al aumento de la privacidad, eliminación de anuncios y morralla, y a liberar al usuario de las restricciones impuestas sobre sus propias actividades" (fuente: Preguntas frecuentes acerca de Privoxy).
VídeoMira el vídeo acerca de como configurar y usar Privoxy en FreedomBox.
ConfigurarInstala Proxy Web (Privoxy) desde Plinth Privoxy Installation Adapta las preferencias de proxy de tu navegador al hostname (o dirección IP) de tu FreedomBox con el puerto 8118. Observa por favor que Privoxy sólo puede tratar tráfico HTTP y HTTPS. No funciona con FTP u otros protocolos. Privoxy Browser Settings Vé a la página o . Si Privoxy está instalado adecuadamente podrás configurarlo en detalle y si no verás un mensaje de fallo. Si usas un portátil que tenga a veces que conectarse con FreedomBox y Privoxy pasando por routers de terceros quizá quieras instalar una extensión proxy switch que te permite activar y desactivar el proxy más fácilmente.
Usuarios AvanzadosLa instalación de serie debería proporcionar un punto de partida razonable para la mayoría de los usuarios. Indudablemente habrá ocasiones en las que quieras ajustar la configuración. Eso se puede afrontar cuando surja la necesidad. Con Privoxy activado puedes ver su documentación y los detalles de su configuración en http://config.privoxy.org/ o en http://p.p. Para habilitar los cambios en estas configuraciones primero tienes que cambiar el valor de habilitar-acciones-de-edición en /etc/privoxy/config a 1. Antes de hacerlo lee el manual con atención, especialmente: No se puede controlar por separado el accesso al editor por "ACLs" o authenticación HTTP, así que cualquiera con acceso a Privoxy puede modificar la configuración de todos los usuarios. Esta opción no se recomienda para entornos con usuarios no confiables. Nota que un código de cliente malicioso (p.ej. Java) también puede usar el editor de acciones y no deberías habilitar estas opciones a no ser que entiendas las consecuencias y estés seguro de que los navegadores están correctamente configurados. Ahora encontrarás un botón EDITAR en la pantalla de configuración de http://config.privoxy.org/. La Guía rápida es un buen punto de partida para leer acerca de cómo definir reglas de bloqueo y filtrado propias. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Quassel.raw.xml b/doc/manual/es/Quassel.raw.xml index 7a319e39d..382d62094 100644 --- a/doc/manual/es/Quassel.raw.xml +++ b/doc/manual/es/Quassel.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Quassel22019-09-12 12:18:51fioddorSe crea la versión española.12019-09-12 12:11:29fioddorSe crea la versión española.
Cliente IRC (Quassel)Quassel es una aplicación IRC separada en 2 partes: un "núcleo" y un "cliente". Esto permite que el núcleo permanezca conectado a los servidores IRC recibiendo mensajes aunque el cliente esté desconectado. Ejecutando el servicio nucleo de Quassel FreedomBox puede mantenerte siempre en línea. Se pueden usar uno o varios clentes Quassel para conectarse intermitentemente desde escritorios o dispositivos móviles.
¿Para qué ejecutar Quassel?Muchos debates acerca de FreedomBox tienen lugar en el canal IRC irc://irc.debian.org/freedombox. Si tu FreedomBox ejecuta Quassel recolectará todos ellos mientras estás ausente, capturando las respuestas a tus preguntas. Recuerda que el proyecto FreedomBox es mundial y participa gente de casi todos los husos horarios. Usarás tu cliente para conectar al núcleo de Quassel y leer y/o responder cuando tengas tiempo y disponibilidad.
¿Cómo activar Quassel?En Plinth selecciona Aplicaciones ve a Cliente IRC (Quassel) e instala la aplicación y asegúrate de que está habilitada Quassel Installation tu núcleo de Quassel se está ejecutando
Redirección de PuertosSi tu FreedomBox está detras de un router necesitarás configurar la redirección de puertos en tu router. Redirije los siguientes puertos de Quassel: TCP 4242 Ejemplo de configuración en el router: Quassel_PortForwarding.png
ClientesHay disponibles clientes para escritorio y dispositivos móviles para conectar a Quassel.
EscritorioEn un sistema Debian puedes, p. ej. usar quassel-client. Los siguientes pasos describen cómo conectar el Cliente Quassel con el Núcleo de Quassel de tu FreedomBox. La primera vez que te conectes el Núcleo de Quassel se inicializará también. Abre el Cliente Quassel. Te guiará paso a paso para Conectar con el Núcleo. Connect to Core Haz clic en el botón Añadir para abrir el diálogo Añadir Cuenta al Núcleo. Add Core Account Rellena cualquier cosa en el campo Nombre de Cuenta. Introduce el hostname DNS de tu FreedomBox en el campo Hostname. El campo Puerto debe tener el valor 4242. Pon el usuario y la contraseña de la cuenta que quieres crear para conectar con el Núcleo de Quassel en los campos Usuario y Contraseña. Si no quieres que se te pida la contraseña cada vez que arranques el cliente de Quassel marca la opción Recordarme. Tras pulsar OK en el diálogo Añadir Cuenta al Núcleo deberías ver la cuenta en el diálogo Conectar con el Núcleo. Connect to Core Selecciona la cuenta del núcleo recién creada y dale a OK para conectar con él. Si es la primera vez que te conectas a este núcleo verás un aviso de Certificado de Seguridad Desconocido y necesitarás aceptar el certificado del servidor. Untrusted Security Certificate Selecciona Continuar. Se te preguntará si quieres aceptar el certificado permanentemente. Selecciona Para siempre. Untrusted Security Certificate Si nadie se ha conectado nunca antes a este Núcleo Quassel antes verás un diálogo por pasos Asistente de Configuración del Núcleo. Selecciona Siguiente. Core Configuration Wizard En la página Crear Usuario Administrador introduce el usuario y la contraseña que has usado antes para crear la conexión al núcleo. Selecciona Recordar contraseña para que recuerde la contraseña para futuras sesiones. Haz clic en Siguiente. Create Admin User Page En la página Seleccionar Backend de Almacenamiento selecciona SQLite y haz clic en Confirmar. Select Storage Backend La configuración del núcleo está completa y verás un asistente Quassel IRC para configurar tus conexiones IRC. Haz clic en Siguiente. Welcome Wizard A continuación en la página de Configuración de Identidad pon un nombre y múltiples pseudónimos. Te presentarás con estos a otros usuarios de IRC. No es necesario dar tu nombre real. Los pseudónimos múltipes son útiles como suplentes cuando el primero no se pueda usar por cualquier motivo. Tras aportar la información haz clic en Siguiente. Setup Identity A continuación en la página de Configuración de Conexión de Red pon el nombre de red que quieras y una lista de servidores a los que se deba conectar el Núcleo de Quassel para unirte a esa red IRC (por ejemplo irc.debian.org:6667). Setup Network Connection Selecciona un servidor de la lista y dale a Editar. En el diálogo Información del Servidor pon el puerto 6697 (consulta la lista real de servidores y sus puertos seguros en la documentación de tu red) y haz clic en Usar SSL. Clic en OK. Esto es para asegurar que la comunicación entre tu FreedomBox y el servidor de la red IRC va cifrada. Server Info Server Info SSL Ya de vuelta en el diálogo Configuración de Conexión de Red proporciona una lista de canales IRC (como #freedombox) a los que unirte al conectarte a la red. Dale a Grabar y Conectar. Setup Network Connection Deberías conectar con la red y ver la lista de canales a los que te has unido en el panel Todas las conversaciones de la izquierda de la ventana principal del Cliente Quassel. Quassel Main Window Selecciona un canal y empieza a recibir mensajes de otros participantes del canal y a enviar los tuyos.
AndroidPara dispositivos Android puedes usar p.ej. Quasseldroid obtenido desde F-Droid introduce el núcleo, usuario, etc. Quasseldroid.png Por cierto el verbo alemán quasseln significa hablar mucho, rajar. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Quassel112020-05-11 23:17:26fioddorSe alinea con la versión 09 en inglés del 12 de mayo de 2020102020-05-11 18:51:37fioddorImagen traducida92020-05-11 18:44:58fioddorLiteral alineado con la imágen (pero traducido)82020-05-11 18:42:24fioddorErrata72020-05-11 18:40:56fioddorLiterales alineados con las imágenes62020-05-11 18:16:52fioddorMás imágenes traducidas52020-05-11 17:36:30fioddorAlgunas imágenes traducidas42020-05-10 00:47:37fioddorenlace a la página en español32020-05-10 00:45:37fioddorSe alinea con la versión 08 en inglés del 03 de mayo de 202022019-09-12 12:18:51fioddorSe crea la versión española.12019-09-12 12:11:29fioddorSe crea la versión española.
Cliente IRC (Quassel)Quassel es una aplicación IRC separada en 2 partes: un "núcleo" y un "cliente". Esto permite que el núcleo permanezca conectado a los servidores IRC recibiendo mensajes aunque el cliente esté desconectado. Ejecutando el servicio nucleo de Quassel FreedomBox puede mantenerte siempre en línea. Se pueden usar uno o varios clentes Quassel para conectarse intermitentemente desde escritorios o dispositivos móviles.
¿Para qué ejecutar Quassel?Muchos debates acerca de FreedomBox tienen lugar en el canal IRC irc://irc.debian.org/freedombox. Si tu FreedomBox ejecuta Quassel recolectará todos ellos mientras estás ausente, capturando las respuestas a tus preguntas. Recuerda que el proyecto FreedomBox es mundial y participa gente de casi todos los husos horarios. Usarás tu cliente para conectar al núcleo de Quassel y leer y/o responder cuando tengas tiempo y disponibilidad.
¿Cómo activar Quassel?En el interfaz web de FreedomBox selecciona Aplicaciones ve a Cliente IRC (Quassel) e instala la aplicación y asegúrate de que está habilitada Quassel Installation tu núcleo de Quassel se está ejecutando
Redirección de PuertosSi tu FreedomBox está detras de un router necesitarás configurar la redirección de puertos en tu router. Redirije los siguientes puertos de Quassel: TCP 4242 Ejemplo de configuración en el router: Quassel_PortForwarding_es_v01.png
ClientesHay disponibles clientes para escritorio y dispositivos móviles para conectar a Quassel.
EscritorioEn un sistema Debian puedes, p. ej. usar quassel-client. Los siguientes pasos describen cómo conectar el Cliente Quassel con el Núcleo de Quassel de tu FreedomBox. La primera vez que te conectes el Núcleo de Quassel se inicializará también. Abre el Cliente Quassel. Te guiará paso a paso para Conectarse al núcleo. Connect to Core Haz clic en el botón Añadir para abrir el diálogo Añadir cuenta de núcleo. Add Core Account Rellena cualquier cosa en el campo Nombre de la cuenta. Introduce el hostname DNS de tu FreedomBox en el campo Servidor. El campo Puerto debe tener el valor 4242. Pon el usuario y la contraseña de la cuenta que quieres crear para conectar con el Núcleo de Quassel en los campos Usuario y Contraseña. Si no quieres que se te pida la contraseña cada vez que arranques el cliente de Quassel marca la opción Recordar. Tras pulsar OK en el diálogo Añadir cuenta de núcleo deberías ver la cuenta en el diálogo Conectarse al núcleo. Connect to Core Selecciona la cuenta del núcleo recién creada y dale a OK para conectar con él. Si es la primera vez que te conectas a este núcleo verás un aviso de Certificado de seguridad no confiable y necesitarás aceptar el certificado del servidor. Untrusted Security Certificate Selecciona Continuar. Se te preguntará si quieres aceptar el certificado permanentemente. Selecciona Para siempre. Untrusted Security Certificate Si nadie se ha conectado nunca antes a este Núcleo Quassel antes verás un diálogo por pasos Asistente de configuración del núcleo. Selecciona Siguiente. {{attachment:quassel-client-6-core-configuration-wizard_es_v01.png|Core Configuration Wizard|width=504}n En la página Crear usuario administrador introduce el usuario y la contraseña que has usado antes para crear la conexión al núcleo. Selecciona Recordar la contraseña para que recuerde la contraseña para futuras sesiones. Haz clic en Siguiente. Create Admin User Page En la página Seleccionar un motor de almacenamiento selecciona SQLite y haz clic en Enviar. Select Storage Backend La configuración del núcleo está completa y verás un asistente Quassel IRC para configurar tus conexiones IRC. Haz clic en Siguiente. Welcome Wizard A continuación en la página de Configurar identidad pon un nombre y múltiples pseudónimos. Te presentarás con estos a otros usuarios de IRC. No es necesario dar tu nombre real. Los pseudónimos múltipes son útiles como suplentes cuando el primero no se pueda usar por cualquier motivo. Tras aportar la información haz clic en Siguiente. Setup Identity A continuación en la página de Configurar conexión de red pon el nombre de red que quieras y una lista de servidores a los que se deba conectar el Núcleo de Quassel para unirte a esa red IRC (por ejemplo irc.debian.org:6667). Setup Network Connection Selecciona un servidor de la lista y dale a Editar. En el diálogo Información del servidor pon el puerto 6697 (consulta la lista real de servidores y sus puertos seguros en la documentación de tu red) y haz clic en Usar conexión cifrada. Clic en OK. Esto es para asegurar que la comunicación entre tu FreedomBox y el servidor de la red IRC va cifrada. Server Info Server Info SSL Ya de vuelta en el diálogo Configuración de Conexión de Red proporciona una lista de canales IRC (como #freedombox) a los que unirte al conectarte a la red. Dale a Grabar y Conectar. Setup Network Connection Deberías conectar con la red y ver la lista de canales a los que te has unido en el panel Todas las conversaciones de la izquierda de la ventana principal del Cliente Quassel. Quassel Main Window Selecciona un canal y empieza a recibir mensajes de otros participantes del canal y a enviar los tuyos.
AndroidPara dispositivos Android puedes usar p.ej. Quasseldroid obtenido desde F-Droid introduce el núcleo, usuario, etc. Quasseldroid.png Por cierto el verbo alemán quasseln significa hablar mucho, rajar. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Radicale.raw.xml b/doc/manual/es/Radicale.raw.xml index f300c93d3..ecf5a6a48 100644 --- a/doc/manual/es/Radicale.raw.xml +++ b/doc/manual/es/Radicale.raw.xml @@ -1,4 +1,4 @@ -
es/FreedomBox/Manual/Radicale82019-09-06 08:16:54fioddorSe mejoran las referencias a Debian Testing en línea con la nomenclatura de https://www.debian.org/releases/72019-09-04 13:36:27fioddorSe completa la traducción.62019-09-04 13:26:30fioddorSe incorpora la traducción de una sección nueva.52019-09-04 12:55:18fioddorSe incorpora la traducción de una sección nueva.42019-09-04 12:52:32fioddorSe incorpora la traducción de una sección nueva.32019-09-04 12:40:55fioddorSe incorpora la traducción de una sección nueva.22019-09-04 12:23:33fioddorSe incorpora la traducción de una sección nueva.12019-09-04 12:00:49fioddorSe crea la versión española (traducción incompleta).
Agenda (Radicale)Con Radicale puedes sincronizar tus calendarios, listas de tareas y agendas de contactos personales entre varios ordendores, tabletas, y/o teléfonos inteligentes y compartirlos con tus amistades. Todo sin tener que permitir a terceros que accedan a tu información privada.
¿Porque debería usar Radicale?Usando Radicale puedes evitar servicios centralizados como Google Calendar o Apple Calendar (iCloud) que explotan los datos de tus eventos y conexiones sociales.
¿Cómo configurar Radicale?Primero el servidor Radicale necesita estar activado en tu FreedomBox. En el servicio FreedomBox (Plinth) selecciona Apps ve a Radicale (Calendario y Libreta de contactos) e instala la aplicación. Tras completar la instalación asegúrate de que la aplicación está marcada como "habilitada" en el interfaz de FreedomBox. Habilitar la aplicación arranca el servidor CalDAV/CardDAV Radicale. define los permisos de acceso: Solo el dueño de un calendario/libreta de contactos puede ver o hacer cambios Cualquier usuario puede ver cualquier calendario/libreta de contactos pero solo el dueño puede hacer cambios Cualquier usuario puede ver o hacer cambios en cualquier calendario/libreta Nota: Solo los usuarios dados de alta en FreedomBox pueden acceder a Radicale. Radicale-Plinth.png Si quieres compartir un calendario solo con algunos usuarios determinados la manera más simple es crear un nuevo usuario común para ellos y compartir con ellos el nombre del usuario común y su contraseña. Radicale proporciona un interfaz web básico que solo soporta crear calendarios y libretas nuevos. Para añadir eventos o contactos se necesita una aplicación cliente soportada externa. radicale_web.png Crear calendarios y/o libretas usando el interfaz web Visita https://<dirección_IP_o_dominio_de_tu_servidor>/radicale/ Ingresa con tu cuenta de FreedomBox Selecciona "Crear nuevo calendario o libreta" Proporciona un título y selecciona el tipo Opcionalmente, proporciona una descripción o selecciona un color Haz clic en "Crear" La página mostrará la URL de tu created nuevo calendario o libreta Ahora abre tu aplicación cliente para crear calendarios y/o libretas nuevos que usarán tu FreedomBox y servidor Radicale. El sitio web de Radicale proporciona una lista de clientes soportados pero no uses las URLs que se mencionan allí; sigue este manual porque FreedomBox usa otra configuración. A continuación se muestran los pasos para 2 ejemplos: Ejemplo de configuración con el cliente Evolution: Calendario Crea un calendario nuevo Selecciona el "Tipo" "CalDAV" Con "CalDAV" seleccionado aparecerán más opciones en el cuadro de diálogo. URL: https://<dirección_IP_o_dominio_de_tu_servidor>/radicale/<usuario>/<nombre_del_calendario>.ics/ cambiando los elementos marcados entre <> de acuerdo a tu configuración. nota: la / inicial de la ruta es importante. Habilita "Usar una conexión segura." Nombre del calendario Radicale-Evolution-Docu.png Lista de tareas: Añadir una lista de tareas es prácticamente igual que con un calendario. Contactos Sigue los mismos pasos anteriores reemplazando CalDAV por WebDAV y la extensión de la libreta por .vcf.
Sincronizar via TorConfigurar un calendario en Plinth con Radicale sobre Tor es lo mismo que sobre la red en claro, en resumen: Cuando hayas ingresado a Plinth desde Tor haz clic en Radicale e introduce un usuario de tu FreedomBox y su contraseña. Ingresa en el interfaz web de Radicale usando el usuario de tu FreedomBox y su contraseña. Haz clic en "Crear libreta o calendario nuevo", proporciona un título, selecciona un tipo y haz clic en "Crear". Anota la URL, p.ej. https://<direccion_onion_de_tu_servidor>.onion/radicale/<usuario>/<código_del_calendario>/ cambiando los elementos marcados entre <> de acuerdo a tu configuración. Estas instrucciones son para Thunderbird/Lightning. Nota: necesitarás estar conectado a Tor con el Tor Browser Bundle. Abre Thunderbird, la extensión (add-on) Torbirdy y reinicia Thunderbird. (Quizá no haga falta.) En el interfaz Lightning, en el panel izquierdo bajo Calendario haz clic con el botón derecho del ratón y selecciona "Nuevo calendario". Selecciona "En la red" como localización de tu calendario. Selecciona "CalDAV" copia la URL, p.ej., https://<direccion_onion_de_tu_servidor>.onion/radicale/<usuario>/<código_del_calendario>/. como localización cambiando los elementos marcados entre <> de acuerdo a tu configuración. Proporciona un nombre, etc. Haz clic en "Siguiente". Tu calendario está ahora sincronizando con tu FreedomBox a través de Tor. Si no has generado un certificado con "Let's Encrypt" para tu FreedomBox quizá necesites seleccionar "Confirmar Excepción de Seguridad" cuando se te indique.
Sincronizar con tu teléfono AndroidHay varias Apps que admiten integración con el servidor Radicale. Este ejemplo usa DAVx5, que está disponible p.ej. en F-Droid. Si también quieres usar listas de tareas hay que instalar primero la app compatible OpenTasks. Sigue estos pasos para configurar tu cuanta con el servidor Radicale de tu FreedomBox. Instala DAVx5. Crea una cuenta nueva en DAVx5 haciendo clic en el botón flotante [+]. Selecciona la 2ª opción como se muestra en la primera imagen más abajo e introduce la URL base (no olvides la / del final). DAVx5 averiguará las cuentas CalDAV y WebDAV del usuario. Sigue este video del FAQ de DAVx5 para aprender cómo importar tus contactos existentes a Radicale. Sincronizar contactos Haz clic en los menús de hamburguesa de CalDAV y CardDAV y selecciona "Refrescar ..." en caso de cuentas existentes o "Crear ..." en caso de cuentas nuevas (ver la 2ª captura de pantalla más abajo). Marca las cajas de las libretas y/o contactos que quieras sincronizar y haz clic en el botón de sincronización de la cabecera. (ver la 3ª captura de pantalla más abajo) DAVx5 account setup DAVx5 refresh DAVx5 account sync
Usuarios Avanzados
Compartir recursosArriba se mostrá una manera fácil de crear un recurso para un grupo de gente creando una cuenta dedicada común. Aquí de describe un método alternativo con el que se otorga acceso a un calendario a 2 usuarios Usuario1 y Usuario2. Esto requiere acceso por SSH a la FreedomBox. crea un archivo /etc/radicale/rights
es/FreedomBox/Manual/Radicale102020-05-15 17:00:38fioddorSe alinea con la versión 54 en inglés del 15 de mayo de 202092020-05-10 00:39:59fioddorSe alinea con la versión 52 en inglés del 03 de mayo de 202082019-09-06 08:16:54fioddorSe mejoran las referencias a Debian Testing en línea con la nomenclatura de https://www.debian.org/releases/72019-09-04 13:36:27fioddorSe completa la traducción.62019-09-04 13:26:30fioddorSe incorpora la traducción de una sección nueva.52019-09-04 12:55:18fioddorSe incorpora la traducción de una sección nueva.42019-09-04 12:52:32fioddorSe incorpora la traducción de una sección nueva.32019-09-04 12:40:55fioddorSe incorpora la traducción de una sección nueva.22019-09-04 12:23:33fioddorSe incorpora la traducción de una sección nueva.12019-09-04 12:00:49fioddorSe crea la versión española (traducción incompleta).
Agenda (Radicale)Con Radicale puedes sincronizar tus calendarios, listas de tareas y agendas de contactos personales entre varios ordendores, tabletas, y/o teléfonos inteligentes y compartirlos con tus amistades. Todo sin tener que permitir a terceros que accedan a tu información privada.
¿Porque debería usar Radicale?Usando Radicale puedes evitar servicios centralizados como Google Calendar o Apple Calendar (iCloud) que explotan los datos de tus eventos y conexiones sociales.
¿Cómo configurar Radicale?Primero el servidor Radicale necesita estar activado en tu FreedomBox. En el servicio FreedomBox (Plinth) selecciona Apps ve a Radicale (Calendario y Libreta de contactos) e instala la aplicación. Tras completar la instalación asegúrate de que la aplicación está marcada como "habilitada" en el interfaz de FreedomBox. Habilitar la aplicación arranca el servidor CalDAV/CardDAV Radicale. define los permisos de acceso: Solo el dueño de un calendario/libreta de contactos puede ver o hacer cambios Cualquier usuario puede ver cualquier calendario/libreta de contactos pero solo el dueño puede hacer cambios Cualquier usuario puede ver o hacer cambios en cualquier calendario/libreta Nota: Solo los usuarios dados de alta en FreedomBox pueden acceder a Radicale. Radicale-Plinth.png Si quieres compartir un calendario solo con algunos usuarios determinados la manera más simple es crear un nuevo usuario común para ellos y compartir con ellos el nombre del usuario común y su contraseña. Radicale proporciona un interfaz web básico que solo soporta crear calendarios y libretas nuevos. Para añadir eventos o contactos se necesita una aplicación cliente soportada externa. radicale_web.png Crear calendarios y/o libretas usando el interfaz web Visita https://<dirección_IP_o_dominio_de_tu_servidor>/radicale/ Ingresa con tu cuenta de FreedomBox Selecciona "Crear nuevo calendario o libreta" Proporciona un título y selecciona el tipo Opcionalmente, proporciona una descripción o selecciona un color Haz clic en "Crear" La página mostrará la URL de tu created nuevo calendario o libreta Ahora abre tu aplicación cliente para crear calendarios y/o libretas nuevos que usarán tu FreedomBox y servidor Radicale. El sitio web de Radicale proporciona una lista de clientes soportados pero no uses las URLs que se mencionan allí; sigue este manual porque FreedomBox usa otra configuración. A continuación se muestran los pasos para 2 ejemplos: Ejemplo de configuración con el cliente Evolution: Calendario Crea un calendario nuevo Selecciona el "Tipo" "CalDAV" Con "CalDAV" seleccionado aparecerán más opciones en el cuadro de diálogo. URL: https://<dirección_IP_o_dominio_de_tu_servidor>/radicale/<usuario>/<nombre_del_calendario>.ics/ cambiando los elementos marcados entre <> de acuerdo a tu configuración. nota: la / inicial de la ruta es importante. Habilita "Usar una conexión segura." Nombre del calendario Radicale-Evolution-Docu.png Lista de tareas: Añadir una lista de tareas es prácticamente igual que con un calendario. Contactos Sigue los mismos pasos anteriores reemplazando CalDAV por WebDAV y la extensión de la libreta por .vcf.
Sincronizar via TorConfigurar un calendario en FreedomBox con Radicale sobre Tor es lo mismo que sobre la red en claro, en resumen: Cuando hayas ingresado al interfaz web de FreedomBox desde Tor haz clic en Radicale e introduce un usuario de tu FreedomBox y su contraseña. Ingresa en el interfaz web de Radicale usando el usuario de tu FreedomBox y su contraseña. Haz clic en "Crear libreta o calendario nuevo", proporciona un título, selecciona un tipo y haz clic en "Crear". Anota la URL, p.ej. https://<direccion_onion_de_tu_servidor>.onion/radicale/<usuario>/<código_del_calendario>/ cambiando los elementos marcados entre <> de acuerdo a tu configuración. Estas instrucciones son para Thunderbird/Lightning. Nota: necesitarás estar conectado a Tor con el Tor Browser Bundle. Abre Thunderbird, la extensión (add-on) Torbirdy y reinicia Thunderbird. (Quizá no haga falta.) En el interfaz Lightning, en el panel izquierdo bajo Calendario haz clic con el botón derecho del ratón y selecciona "Nuevo calendario". Selecciona "En la red" como localización de tu calendario. Selecciona "CalDAV" copia la URL, p.ej., https://<direccion_onion_de_tu_servidor>.onion/radicale/<usuario>/<código_del_calendario>/. como localización cambiando los elementos marcados entre <> de acuerdo a tu configuración. Proporciona un nombre, etc. Haz clic en "Siguiente". Tu calendario está ahora sincronizando con tu FreedomBox a través de Tor. Si no has generado un certificado con "Let's Encrypt" para tu FreedomBox quizá necesites seleccionar "Confirmar Excepción de Seguridad" cuando se te indique.
Sincronizar con tu teléfono AndroidHay varias Apps que admiten integración con el servidor Radicale. Este ejemplo usa DAVx5, que está disponible p.ej. en F-Droid. Si también quieres usar listas de tareas hay que instalar primero la app compatible OpenTasks. Sigue estos pasos para configurar tu cuanta con el servidor Radicale de tu FreedomBox. Instala DAVx5. Crea una cuenta nueva en DAVx5 haciendo clic en el botón flotante [+]. Selecciona la 2ª opción como se muestra en la primera imagen más abajo e introduce la URL base (no olvides la / del final). DAVx5 averiguará las cuentas CalDAV y WebDAV del usuario. Sigue este video del FAQ de DAVx5 para aprender cómo importar tus contactos existentes a Radicale. Sincronizar contactos Haz clic en los menús de hamburguesa de CalDAV y CardDAV y selecciona "Refrescar ..." en caso de cuentas existentes o "Crear ..." en caso de cuentas nuevas (ver la 2ª captura de pantalla más abajo). Marca las cajas de las libretas y/o contactos que quieras sincronizar y haz clic en el botón de sincronización de la cabecera. (ver la 3ª captura de pantalla más abajo) DAVx5 account setup DAVx5 refresh DAVx5 account sync
Usuarios Avanzados
Compartir recursosArriba se mostrá una manera fácil de crear un recurso para un grupo de gente creando una cuenta dedicada común. Aquí de describe un método alternativo con el que se otorga acceso a un calendario a 2 usuarios Usuario1 y Usuario2. Esto requiere acceso por SSH a la FreedomBox. crea un archivo /etc/radicale/rights Notas: python-radicale es un paquete antigüo de la versión 1.x de Radicale que sigue disponible en las versiones "en pruebas" (testing) de Debian. Esto es un hack alternativo para emplear la funcionalidad --export-storage que es responsable de la migración de datos. Por desgracia esta funcionalidad ya no está disponible en Radicale 2.x. Los ficheros que acaban en .dpkg-dist solo existirán si has elegido "Conservar tu versión actualmente instalada" cuando se te preguntó durante la actualización a Radicale 2.x. El procedimiento anterior sobrescribirá la configuración antigüa con una nueva. No se necesitan cambios a los 2 ficheros de configuración salvo que hayas cambiado la preferencia de compartición de calendario. Nota: Durante la migración tus datos permanecen a salvo en el directorio /var/lib/radicale/collections. Los datos nuevos se crearán y usarán en el directorio /var/lib/radicale/collections/collections-root/. El comando tar hace una copia de seguridad de tu configuración y tus datos en /root/radicale_backup.tgz por si haces o algo va mal y quieres deshacer los cambios.
Resolución de Problemas1. Si estás usando FreedomBox Pioneer Edition o instalando FreedomBox sobre Debian Buster Radicale podría no estar operativo inmediatamente después de la instalación. Esto se debe a un defecto ya corregido posteriormente. Para superar el problema actualiza FreedomBox haciendo clic en 'Actualización Manual' desde la app 'Actualizaciones'. Otra opción es simplemente esperar un par de días y dejar que FreedomBox se actualice solo. Después instala Radicale. Si Radicale ya está instalado deshabilitalo y rehabilitalo después de que se complete la actualización. Esto arreglará el problema y dejará a Radicale trabajando correctamente. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +(Cuando FreedomBox 19.1 está disponble ve al interfaz web de FreedomBox y vuelve a configurar tu preferencia de compartición de calendario si no se muestra bien porque se habrá perdido durante la operación.)]]>
Notas: python-radicale es un paquete antigüo de la versión 1.x de Radicale que sigue disponible en las versiones "en pruebas" (testing) de Debian. Esto es un hack alternativo para emplear la funcionalidad --export-storage que es responsable de la migración de datos. Por desgracia esta funcionalidad ya no está disponible en Radicale 2.x. Los ficheros que acaban en .dpkg-dist solo existirán si has elegido "Conservar tu versión actualmente instalada" cuando se te preguntó durante la actualización a Radicale 2.x. El procedimiento anterior sobrescribirá la configuración antigüa con una nueva. No se necesitan cambios a los 2 ficheros de configuración salvo que hayas cambiado la preferencia de compartición de calendario. Nota: Durante la migración tus datos permanecen a salvo en el directorio /var/lib/radicale/collections. Los datos nuevos se crearán y usarán en el directorio /var/lib/radicale/collections/collections-root/. El comando tar hace una copia de seguridad de tu configuración y tus datos en /root/radicale_backup.tgz por si haces o algo va mal y quieres deshacer los cambios.
Resolución de Problemas1. Si estás usando FreedomBox Pioneer Edition o instalando FreedomBox sobre Debian Buster Radicale podría no estar operativo inmediatamente después de la instalación. Esto se debe a un defecto ya corregido posteriormente. Para superar el problema actualiza FreedomBox haciendo clic en 'Actualización Manual' desde la app 'Actualizaciones'. Otra opción es simplemente esperar un par de días y dejar que FreedomBox se actualice solo. Después instala Radicale. Si Radicale ya está instalado deshabilitalo y rehabilitalo después de que se complete la actualización. Esto arreglará el problema y dejará a Radicale trabajando correctamente. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Repro.raw.xml b/doc/manual/es/Repro.raw.xml index 57bf89523..d7555a42b 100644 --- a/doc/manual/es/Repro.raw.xml +++ b/doc/manual/es/Repro.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Repro12019-09-14 08:59:56fioddorSe crea la versión española (traducción incompleta).
Servidor SIP (Repro)App eliminada Repro ha sido eliminada de Debian 10 (Buster) y por tanto ya no está disponible en FreedomBox. Repro es un servidor de SIP, un estándar para llamadas de voz sobre IP (VoIP). Se requiere un cliente SIP de escritorio o móvil para usar Repro.
Cómo configurar el servidor SIPConfigura el dominio en la página /repro/domains.html de la FreedomBox. Repro Domains Añade usuarios en /repro/addUser.html. Repro Users Deshabilita y vuelve a habilitar la aplicaión Repro en Plinth.
Redirección de PuertosSi tu FreedomBox estrá detrás de un router necesitarás configurar la redirección de puertos de tu router. Deberías redirigir los siguientes puertos para Repro: TCP 5060 TCP 5061 UDP 5060 UDP 5061 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Repro12019-09-14 08:59:56fioddorSe crea la versión española (traducción incompleta).
Servidor SIP (Repro)App eliminada Repro ha sido eliminada de Debian 10 (Buster) y por tanto ya no está disponible en FreedomBox. Repro es un servidor de SIP, un estándar para llamadas de voz sobre IP (VoIP). Se requiere un cliente SIP de escritorio o móvil para usar Repro.
Cómo configurar el servidor SIPConfigura el dominio en la página /repro/domains.html de la FreedomBox. Repro Domains Añade usuarios en /repro/addUser.html. Repro Users Deshabilita y vuelve a habilitar la aplicaión Repro en Plinth.
Redirección de PuertosSi tu FreedomBox estrá detrás de un router necesitarás configurar la redirección de puertos de tu router. Deberías redirigir los siguientes puertos para Repro: TCP 5060 TCP 5061 UDP 5060 UDP 5061 Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Roundcube.raw.xml b/doc/manual/es/Roundcube.raw.xml index 8a7dc9385..32977e80a 100644 --- a/doc/manual/es/Roundcube.raw.xml +++ b/doc/manual/es/Roundcube.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Roundcube52019-09-11 09:40:48fioddorCorrección menor42019-09-11 09:40:18fioddorCorrección menor32019-09-11 09:39:03fioddorCorrección menor22019-09-11 09:37:31fioddor12019-09-11 09:35:26fioddorSe crea la versión española.
Cliente de Correo Electrónico (Email) (Roundcube)
¿Qué es Roundcube?Roundcube es un cliente de correo electrónico (email) para navegador con un interfaz de usuario parecido a una aplicación de escritorio. Admite varios lenguajes. Roundcube usa el protocolo de acceso a mensajes de Internet (IMAP = Internet Message Access Protocol) para acceder a los correos en un servidor remoto. Soporta MIME para enviar archivos adjuntos y en particular proporciona libreta de contactos, gestión de carpetas, búsquedas de mensajes y verificación ortográfica.
Usar RoundcubeTras instalar Roundcube se puede acceder a él en https://<tu_freedombox>/roundcube. Introduce tu usuario y contraseña. El usuario de muchos servicios de correo electrónico suele ser la propia dirección completa, como usuario_de_ejemplo@servicio_de_ejemplo.org, no solo el usuario usuario_de_ejemplo. Introduce la dirección del servidor IMAP de tu servicio de correo electrónico en el campo Servidor. Puedes probar a poner aquí tu nombre de dominio como servicio_de_ejemplo.org si la dirección es usuario_de_ejemplo@servicio_de_ejemplo.org y si esto no funciona consulta la dirección del servidor IMAP en la documentación de tu proveedor de correo electrónico. Se recomienda encarecidamente usar una conexión cifrada a tu servidor IMAP. Para ello inserta el prefijo "imaps://" al principio de la dirección del servidor IMAP. Por ejemplo, imaps://imap.servicio_de_ejemplo.org. Logging into your IMAP server
Usar Gmail con RoundcubeSi quieres usar Roundcube con tu cuenta Gmail necesitas habilitar primero el ingreso con contraseña en las preferencias de tu cuenta Google porque Gmail no va a permitir por defecto que ingresen aplicaciones mediante contraseña. Para hacerlo visita las preferencias de la Cuenta Google y habilita Apps Menos seguras. A continuación ingresa en Roundcube introduciendo tu dirección de Gmail como Usuario y tu contraseña. En el campo servidor pon imaps://imap.gmail.com. Logging into Gmail Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Roundcube52019-09-11 09:40:48fioddorCorrección menor42019-09-11 09:40:18fioddorCorrección menor32019-09-11 09:39:03fioddorCorrección menor22019-09-11 09:37:31fioddor12019-09-11 09:35:26fioddorSe crea la versión española.
Cliente de Correo Electrónico (Email) (Roundcube)
¿Qué es Roundcube?Roundcube es un cliente de correo electrónico (email) para navegador con un interfaz de usuario parecido a una aplicación de escritorio. Admite varios lenguajes. Roundcube usa el protocolo de acceso a mensajes de Internet (IMAP = Internet Message Access Protocol) para acceder a los correos en un servidor remoto. Soporta MIME para enviar archivos adjuntos y en particular proporciona libreta de contactos, gestión de carpetas, búsquedas de mensajes y verificación ortográfica.
Usar RoundcubeTras instalar Roundcube se puede acceder a él en https://<tu_freedombox>/roundcube. Introduce tu usuario y contraseña. El usuario de muchos servicios de correo electrónico suele ser la propia dirección completa, como usuario_de_ejemplo@servicio_de_ejemplo.org, no solo el usuario usuario_de_ejemplo. Introduce la dirección del servidor IMAP de tu servicio de correo electrónico en el campo Servidor. Puedes probar a poner aquí tu nombre de dominio como servicio_de_ejemplo.org si la dirección es usuario_de_ejemplo@servicio_de_ejemplo.org y si esto no funciona consulta la dirección del servidor IMAP en la documentación de tu proveedor de correo electrónico. Se recomienda encarecidamente usar una conexión cifrada a tu servidor IMAP. Para ello inserta el prefijo "imaps://" al principio de la dirección del servidor IMAP. Por ejemplo, imaps://imap.servicio_de_ejemplo.org. Logging into your IMAP server
Usar Gmail con RoundcubeSi quieres usar Roundcube con tu cuenta Gmail necesitas habilitar primero el ingreso con contraseña en las preferencias de tu cuenta Google porque Gmail no va a permitir por defecto que ingresen aplicaciones mediante contraseña. Para hacerlo visita las preferencias de la Cuenta Google y habilita Apps Menos seguras. A continuación ingresa en Roundcube introduciendo tu dirección de Gmail como Usuario y tu contraseña. En el campo servidor pon imaps://imap.gmail.com. Logging into Gmail Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Samba.raw.xml b/doc/manual/es/Samba.raw.xml index 2b4121c0d..6dc427e66 100644 --- a/doc/manual/es/Samba.raw.xml +++ b/doc/manual/es/Samba.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Samba42020-04-25 14:47:22fioddorSe alinea con la versión 6 en inglés del 23 de abril de 202032020-02-23 11:59:11fioddornomenclatura normalizada22020-02-11 21:56:57fioddorMinor corrections12020-02-11 21:55:07fioddorSe traduce una página nueva
Sincronización de Archivos (Samba)Samba te permite tener una carpeta compartida en la red local que se puede usar desde multiples ordenadores con sistemas operativos diferentes. De ahora en adelante nos referiremos a estas carpetas como "shares". Puedes tener una carpeta personal compartida por tus propios dispositivos (share casero), una compartida con un grupo de confianza (share de grupo) o una compartida con todo dispositivo de la red (share abierto). Samba te permite tratar un share como si fuera una carpeta local de tu ordenador. No obstante los shares solo están disponibles en la red local. Para aprender más acerca de Samba, mira la documentación de usuario de su wiki. Disponible desde la versión: 19.22
Usar SambaTras la instalación, puedes elegir qué discos compartir. Los shares habilitados están accesibles en el administrador de archivos de tu ordenador en la ruta \\freedombox (en Windows) o smb://freedombox.local (en Linux y Mac). Hay 3 tipos de share para elegir: Share abierto - accesible a cualquiera en tu red local. Share de grupo - accesible solo a usuarios FreedomBox que estén en el grupo freedombox-share. Share casero - cada usuario del grupo freedombox-share puede tener su propio espacio privado.
En AndroidPara acceder a shares Samba desde un dispositivo Android instala el "Cliente Samba para Android" desde F-Droid o Google Play. Introduce smb://freedombox.local/<disco> como ruta del share en la app. Tus carpetas compartidas deberían estar visibles en la app de administración de archivos.
Integración con otras appsLa app Transmission de FreedomBox proporciona una configuración para permitir que las descargas se graben directamente en un share Samba. Si quieres dejar disponibles en Samba ficheros sincronizados con Syncthing tienes que asegurarte de sincronizar en la carpeta compartida de Samba. Además, para dejar las carpetas de Syncthing disponibles en carpetas abiertas o de grupo de Samba necesitas asegurarte de pulsar el botón "Permisos > Ignorar" bajo la pestaña "Avanzado" de la carpeta en el interfaz web de usuario de Syncthing. Esto permitirá escribir los ficheros mediante Samba.
Comparación con otras apps
SyncthingSyncthing mantiene una copia de la carpeta compartida en cada dispositivo con el que se comparte. Samba mantiene solo una copy en tu dispositivo FreedomBox. Syncthing puede sincronizar tus carpetas compartidas entre dispositivos por Internet. Los shares Samba solo están disponibles en tu red local. Como Syncthing es primordialmente una solución de sincronización, tiene funcionalidades como resolución de conflictos y versionado. Samba solo tiene una copia del fichero, así que no necesita tales funcionalidades. Por ejemplo, si dos personas están editando una hoja de cálculo almacenada en un share Samba el último que grabe el fichero gana. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Samba62020-05-12 08:53:09fioddorMejora menor. Algo más exacto.52020-05-12 08:49:07fioddorSe alinea con la versión 07 en inglés del 12 de abril de 202042020-04-25 14:47:22fioddorSe alinea con la versión 6 en inglés del 23 de abril de 202032020-02-23 11:59:11fioddornomenclatura normalizada22020-02-11 21:56:57fioddorMinor corrections12020-02-11 21:55:07fioddorSe traduce una página nueva
Almacenamiento de Ficheros en Red (Samba)Samba te permite tener una carpeta compartida en la red local que se puede usar desde multiples ordenadores con sistemas operativos diferentes. De ahora en adelante nos referiremos a estas carpetas como "shares". Puedes tener una carpeta personal compartida por tus propios dispositivos (share casero), una compartida con un grupo de confianza (share de grupo) o una compartida con todo dispositivo de la red (share abierto). Samba te permite tratar un share como si fueran carpetas locales de tu ordenador. No obstante los shares solo están disponibles en la red local. Para aprender más acerca de Samba, mira la documentación de usuario de su wiki. Disponible desde la versión: 19.22
Usar SambaTras la instalación, puedes elegir qué discos compartir. Los shares habilitados están accesibles en el administrador de archivos de tu ordenador en la ruta \\freedombox (en Windows) o smb://freedombox.local (en Linux y Mac). Hay 3 tipos de share para elegir: Share abierto - accesible a cualquiera en tu red local. Share de grupo - accesible solo a usuarios FreedomBox que estén en el grupo freedombox-share. Share casero - cada usuario del grupo freedombox-share puede tener su propio espacio privado.
En AndroidPara acceder a shares Samba desde un dispositivo Android instala el "Cliente Samba para Android" desde F-Droid o Google Play. Introduce smb://freedombox.local/<disco> como ruta del share en la app. Tus carpetas compartidas deberían estar visibles en la app de administración de archivos.
Integración con otras appsLa app Transmission de FreedomBox proporciona una configuración para permitir que las descargas se graben directamente en un share Samba. Si quieres dejar disponibles en Samba ficheros sincronizados con Syncthing tienes que asegurarte de sincronizar en la carpeta compartida de Samba. Además, para dejar las carpetas de Syncthing disponibles en carpetas abiertas o de grupo de Samba necesitas asegurarte de pulsar el botón "Permisos > Ignorar" bajo la pestaña "Avanzado" de la carpeta en el interfaz web de usuario de Syncthing. Esto permitirá escribir los ficheros mediante Samba.
Comparación con otras apps
SyncthingSyncthing mantiene una copia de la carpeta compartida en cada dispositivo con el que se comparte. Samba mantiene solo una copy en tu dispositivo FreedomBox. Syncthing puede sincronizar tus carpetas compartidas entre dispositivos por Internet. Los shares Samba solo están disponibles en tu red local. Como Syncthing es primordialmente una solución de sincronización, tiene funcionalidades como resolución de conflictos y versionado. Samba solo tiene una copia del fichero, así que no necesita tales funcionalidades. Por ejemplo, si dos personas están editando una hoja de cálculo almacenada en un share Samba el último que grabe el fichero gana. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Searx.raw.xml b/doc/manual/es/Searx.raw.xml index 343e1c557..2c6ed1138 100644 --- a/doc/manual/es/Searx.raw.xml +++ b/doc/manual/es/Searx.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Searx42020-04-13 16:25:42fioddorSe alinea con la versión 09 en inglés del 12 de abril de 202032019-09-16 12:06:12fioddorCorrección menor22019-09-16 12:04:34fioddorSe crea la versión española.12019-09-16 11:39:36fioddor
Búsqueda Web (Searx)
Acerca de SearxSearx es un metabuscador. Un metabuscador agrega los resultados de varios buscadores y los presenta en un interfaz unificado. Lee más acerca de Searx en su sitio web oficial. Disponible desde: versión 0.24.0
Captura de pantallaSearx Screenshot
VídeoSearx installation and first steps (14 MB)
¿Por qué usar Searx?
Personalización y Burbujas por FiltradoLos buscadores tienen la capacidad de perfilar a sus usuarios y les sirven los resultados más relevantes para ellos, encerrandoles en burbujas por filtrado y distorsionando la visión que la gente tiene del mundo. Los buscadores tienen un incentivo financiero para servir publicidad interesante a sus usuarios, ya que incrementa la probabilidad de que hagan clic en los anuncios. Un metabuscador es una solución posible a este problema, ya que agrega resultados de multiples buscadores puenteando así los intentos de personalización de los buscadores. Searx evita almacenar cookies de buscadores para eludir traceos y perfilados de buscadores.
Filtrado de publicidadSearx filtra anuncios de los resultados de búsqueda antes de servirlos al usuario, con lo que mejora la relevancia de tus resultados y te evita distracciones.
PrivacidadSearx usa por defecto HTTP POST en vez de GET para enviar tus consultas de búsqueda a los buscadores, así que si alguien espía tu tráfico no podrá leerlas. Tampoco se almacenarán las consultas en el histórico de tu navegador. Nota: Searx usado desde la barra (omnibar) del navegador Chrome hará peticiones GET en vez de POST.
Searx en FreedomBoxEn FreedomBox Searx usa las credenciales únicas de Single Sign On. Esto implica que tienes que haber ingresado en tu FreedomBox con el navegador en el que estás usando Searx. Se puede acceder fácilmente a SearX a través de Tor. Se puede añadir a Searx a la barra de buscadores del navegador Firefox. Mira la Ayuda de Firefox acerca de este asunto. Una vez esté Searx añadido también podrás establecerlo como tu buscador por defecto. Searx también ofrece resultados de búsqueda en formatos csv, json y rss, que se pueden usar desde scripts para automatizar algunas tareas. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Searx42020-04-13 16:25:42fioddorSe alinea con la versión 09 en inglés del 12 de abril de 202032019-09-16 12:06:12fioddorCorrección menor22019-09-16 12:04:34fioddorSe crea la versión española.12019-09-16 11:39:36fioddor
Búsqueda Web (Searx)
Acerca de SearxSearx es un metabuscador. Un metabuscador agrega los resultados de varios buscadores y los presenta en un interfaz unificado. Lee más acerca de Searx en su sitio web oficial. Disponible desde: versión 0.24.0
Captura de pantallaSearx Screenshot
VídeoSearx installation and first steps (14 MB)
¿Por qué usar Searx?
Personalización y Burbujas por FiltradoLos buscadores tienen la capacidad de perfilar a sus usuarios y les sirven los resultados más relevantes para ellos, encerrandoles en burbujas por filtrado y distorsionando la visión que la gente tiene del mundo. Los buscadores tienen un incentivo financiero para servir publicidad interesante a sus usuarios, ya que incrementa la probabilidad de que hagan clic en los anuncios. Un metabuscador es una solución posible a este problema, ya que agrega resultados de multiples buscadores puenteando así los intentos de personalización de los buscadores. Searx evita almacenar cookies de buscadores para eludir traceos y perfilados de buscadores.
Filtrado de publicidadSearx filtra anuncios de los resultados de búsqueda antes de servirlos al usuario, con lo que mejora la relevancia de tus resultados y te evita distracciones.
PrivacidadSearx usa por defecto HTTP POST en vez de GET para enviar tus consultas de búsqueda a los buscadores, así que si alguien espía tu tráfico no podrá leerlas. Tampoco se almacenarán las consultas en el histórico de tu navegador. Nota: Searx usado desde la barra (omnibar) del navegador Chrome hará peticiones GET en vez de POST.
Searx en FreedomBoxEn FreedomBox Searx usa las credenciales únicas de Single Sign On. Esto implica que tienes que haber ingresado en tu FreedomBox con el navegador en el que estás usando Searx. Se puede acceder fácilmente a SearX a través de Tor. Se puede añadir a Searx a la barra de buscadores del navegador Firefox. Mira la Ayuda de Firefox acerca de este asunto. Una vez esté Searx añadido también podrás establecerlo como tu buscador por defecto. Searx también ofrece resultados de búsqueda en formatos csv, json y rss, que se pueden usar desde scripts para automatizar algunas tareas. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/SecureShell.raw.xml b/doc/manual/es/SecureShell.raw.xml index 4bf3d94d7..c86f7a352 100644 --- a/doc/manual/es/SecureShell.raw.xml +++ b/doc/manual/es/SecureShell.raw.xml @@ -1,4 +1,4 @@
es/FreedomBox/Manual/SecureShell92020-04-13 16:26:38fioddorSe alinea con la versión 16 en inglés del 12 de abril de 202082020-04-04 20:24:38fioddorSe alinea con la versión 15 inglés del 04 de abril de 202072020-04-04 20:18:47fioddorCorrección menor62020-04-04 20:05:06fioddorSe alinea con la versión 14 inglés del 04 de abril de 202052020-04-04 20:00:07fioddorCorrección menor42019-11-14 18:13:56fioddorSe alinea con la versión 13 en inglés del 11 de noviembre de 201932019-08-20 08:32:32fioddorSe incorpora la traducción de una sección nueva.22019-08-20 07:08:46fioddorSe incorpora la traducción de una sección nueva.12019-08-20 07:02:24fioddorSe crea la versión española.
Shell Segura
¿Qué es Shell Segura?FreedomBox ejecuta el servidor openssh-server por defecto permitiendo así accesos remotos desde todos los interfaces. Si tu dispositivo hardware está conectado a un monitor y un teclado, también puedes ingresar directamente. Para la operación habitual de FreedomBox no necesitas usar la shell. No obstante, algunas tareas o identificación de algún problema podrían requerirlo.
Configurando una Cuenta de Usuario
Primer ingreso a Plinth: Cuenta de AdminAl crear una cuenta en Plinth por primera vez, el usuario tendrá automaticamente privilegios de administrador. Los usuarios Admin pueden ingresar mediante ssh (abajo se explica cómo) y escalar sus privilegios a superusuario mediante sudo.
Cuenta de Usuario por DefectoNota: Si puedes acceder al interfaz web de FreedomBox es que no necesitas hacer esto. Puedes usar la cuenta de usuario del interfaz web de FreedomBox para conectar por SSH. Las imagenes precompiladas FreedomBox tienen una cuenta de usuario llamada fbx pero no tiene contraseña establecida, así que no se puede ingresar con esta cuenta. Hay un script incluído en el programa freedom-maker que permite establecer la contraseña de esta cuenta si fuera necesario: Descomprime la imagen. Obtén una copia de freedom-maker en . Ejecuta sudo ./bin/passwd-in-image <archivo_de_imagen> fbx. Copia el archivo de la imagen a la tarjeta SD e inicia el dispositivo. El usuario "fbx" también tiene privilegios de superusuario mediante sudo.
Ingresando
LocalPara ingresar mediante SSH a tu FreedomBox: Reemplaza fbx por el usuario con el que quieres ingresar. Hay que reemplazar freedombox por el hostname o dirección IP de tu dispositivo FreedomBox como se indica en el proceso de Inicio rápido. fbx es el usuario de FreedomBox con privilegios de superusuario por defecto. Cualquier otro usuario creado con Plinth que pertenezca al grupo admin podrá ingresar. La cuenta root no tiene contraseña configurada y no podrá ingresar. A todos los demás usuarios se les denegará el acceso. fbx y los otros usuarios del grupo admin podrán ingresar directamente por el terminal. A todos los demás usuarios se les denegará el acceso. Si fallas repetidamente intentando ingresar se te bloqueará el acceso por algún tiempo. Esto se debe al paquete libpam-abl que FreedomBox instala por defecto. Para controlar este comportamiento consulta la documentación de libpam-abl.
SSH via TorSi tienes habilitados en Plinth los servicios Tor Onion puedes acceder a tu FreedomBox mediante ssh sobre Tor. Instala netcat-openbsd. Edita ~/.ssh/config para habilitar conexiones sobre Tor. Añade lo siguiente: Reemplaza USUARIO por un usuario del grupo admin (ver arriba). En algunos casos podrías necesitar reemplazar 9050 por 9150. Ahora, para conectar a la FreedomBox abre un terminal y teclea: Reemplaza USUARIO por un usuario del grupo admin y DIRECCION por la dirección del servicio Tor Onion para SSH de tu FreedomBox.
Escalar a SuperusuarioSi después de ingresar quieres volverte superusuario para realizar actividades administrativas: Habitúate a ingresar como root solo cuando sea estrictamente necesario. Si no ingresas como root no puedes romperlo todo accidentalmente.
Cambiar ContraseñasPara cambiar la contraseña de un usuario administrado en el interfaz web de FreedomBox usa la página Cambiar clave de acceso. El usuario por debecto fbx no se administra en el interfaz web de FreedomBox y su contraseña no se puede cambiar desde él. Para cambiar la contraseña en el terminal ingresa a tu FreedomBox con el usuario cuya contraseña quieres cambiar y ejecuta el siguiente comando: Esto te preguntará tu contraseña actual antes de darte la oportunidad de establecer la nueva. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file + ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %p]]>Reemplaza USUARIO por un usuario del grupo admin (ver arriba). En algunos casos podrías necesitar reemplazar 9050 por 9150. Ahora, para conectar a la FreedomBox abre un terminal y teclea: Reemplaza USUARIO por un usuario del grupo admin y DIRECCION por la dirección del servicio Tor Onion para SSH de tu FreedomBox.
Escalar a SuperusuarioSi después de ingresar quieres volverte superusuario para realizar actividades administrativas: Habitúate a ingresar como root solo cuando sea estrictamente necesario. Si no ingresas como root no puedes romperlo todo accidentalmente.
Cambiar ContraseñasPara cambiar la contraseña de un usuario administrado en el interfaz web de FreedomBox usa la página Cambiar clave de acceso. El usuario por debecto fbx no se administra en el interfaz web de FreedomBox y su contraseña no se puede cambiar desde él. Para cambiar la contraseña en el terminal ingresa a tu FreedomBox con el usuario cuya contraseña quieres cambiar y ejecuta el siguiente comando: Esto te preguntará tu contraseña actual antes de darte la oportunidad de establecer la nueva. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Security.raw.xml b/doc/manual/es/Security.raw.xml index 8d5c5b9bb..60eef090b 100644 --- a/doc/manual/es/Security.raw.xml +++ b/doc/manual/es/Security.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Security62020-04-11 10:27:12fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_15425852020-04-04 20:36:39fioddorSe alinea la traducción del literal con el interfaz web.42020-04-04 20:34:34fioddorSe usa imagen traducida y más actual.32020-04-04 20:32:39fioddorSe alinea la traducción del nombre de la página con el interfaz web.22019-10-14 07:25:52fioddorSe actualiza a la versión inglesa 03 del 12 de octubre de 2019.12019-06-19 12:14:30fioddorSe crea la versión española.
ProtecciónCuando se habilita esta opción sólo los usuarios del grupo "admin" podrán entrar a la consola o mediante SSH. Los usuarios de consola podrán acceder a algunos servicios sin más autorización. La sección Usuarios explica cómo definir grupos de usuarios. Cuando la opción Acceso a consola restringido está habilitada, sólo los usuarios del grupo admin podrán ingresar via consola, shell segura (SSH) o interfaz gráfico. Al desactivar esta funcionalidad cualquier usuario con cuenta en FreedomBox podrá ingresar y quizá tener acceso a ciertos servicios sin más autorización. Esta opción solo debería desactivarse si se confía plenamente en todos los usuarios del sistema. Si quieres usar tu máquina FreedomBox también como escritorio y admitir que usuarios no-admin ingresen mediante interfáz gráfica esta opción debe estar desactivada. Puedes determinar la lista de usuarios admin en la sección Users. Security_es_v01.png Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Security62020-04-11 10:27:12fioddorhttps://salsa.debian.org/freedombox-team/plinth/-/issues/1831#note_15425852020-04-04 20:36:39fioddorSe alinea la traducción del literal con el interfaz web.42020-04-04 20:34:34fioddorSe usa imagen traducida y más actual.32020-04-04 20:32:39fioddorSe alinea la traducción del nombre de la página con el interfaz web.22019-10-14 07:25:52fioddorSe actualiza a la versión inglesa 03 del 12 de octubre de 2019.12019-06-19 12:14:30fioddorSe crea la versión española.
ProtecciónCuando se habilita esta opción sólo los usuarios del grupo "admin" podrán entrar a la consola o mediante SSH. Los usuarios de consola podrán acceder a algunos servicios sin más autorización. La sección Usuarios explica cómo definir grupos de usuarios. Cuando la opción Acceso a consola restringido está habilitada, sólo los usuarios del grupo admin podrán ingresar via consola, shell segura (SSH) o interfaz gráfico. Al desactivar esta funcionalidad cualquier usuario con cuenta en FreedomBox podrá ingresar y quizá tener acceso a ciertos servicios sin más autorización. Esta opción solo debería desactivarse si se confía plenamente en todos los usuarios del sistema. Si quieres usar tu máquina FreedomBox también como escritorio y admitir que usuarios no-admin ingresen mediante interfáz gráfica esta opción debe estar desactivada. Puedes determinar la lista de usuarios admin en la sección Users. Security_es_v01.png Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/ServiceDiscovery.raw.xml b/doc/manual/es/ServiceDiscovery.raw.xml index d235f6283..43ba85a97 100644 --- a/doc/manual/es/ServiceDiscovery.raw.xml +++ b/doc/manual/es/ServiceDiscovery.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/ServiceDiscovery12019-06-19 12:36:54fioddorSe crea la versión española.
Detección de ServiciosLa Detección de Servicios permite a otros dispositivos de la red detectar a tu FreedomBox y a los servicios que expone. Si un cliente de la red local soporta mDNS, puede encontrar tu FreedomBox en <hostname>.local (por ejemplo: freedombox.local). También permite a FreedomBox detectar otros dispositivos y servicios que están funcionando en tu red local. La Detección de Servicios no es esencial y solo funciona en redes internas. Se puede deshabilitar para mejorar la seguridad especialmente cuando la conectas a una red local hostil. Volver a la descripción de Funcionalidades o a las páginas del manual. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Saturday, May 9th 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 +
es/FreedomBox/Manual/ServiceDiscovery12019-06-19 12:36:54fioddorSe crea la versión española.
Detección de ServiciosLa Detección de Servicios permite a otros dispositivos de la red detectar a tu FreedomBox y a los servicios que expone. Si un cliente de la red local soporta mDNS, puede encontrar tu FreedomBox en <hostname>.local (por ejemplo: freedombox.local). También permite a FreedomBox detectar otros dispositivos y servicios que están funcionando en tu red local. La Detección de Servicios no es esencial y solo funciona en redes internas. Se puede deshabilitar para mejorar la seguridad especialmente cuando la conectas a una red local hostil. Volver a la descripción de Funcionalidades o a las páginas del manual. InformationSupportContributeReportsPromoteOverview Hardware Live Help Where To Start Translate Calls Talks Features Vision Q&A Design To Do Releases Press Download Manual Code Contributors Blog FreedomBox for Communities FreedomBox Developer Manual HELP & DISCUSSIONS: Discussion Forum - Mailing List - #freedombox irc.debian.org | CONTACT Foundation | JOIN Project Next call: Sunday, May 24th 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 diff --git a/doc/manual/es/Shadowsocks.raw.xml b/doc/manual/es/Shadowsocks.raw.xml index 63d722da6..74cbd8fd7 100644 --- a/doc/manual/es/Shadowsocks.raw.xml +++ b/doc/manual/es/Shadowsocks.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Shadowsocks22019-09-14 09:52:23fioddorCorrección menor12019-09-14 09:45:29fioddorSe crea la versión española.
Proxy SOCKS5 (Shadowsocks)
¿Qué es Shadowsocks?Shadowsocks es un proxy SOCKS5 ligero y seguro, diseñado para proteger tu tráfico Internet. Se puede usar para eludir la censura y los filtros de Internet. Tu FreedomBox puede ejecutar un cliente Shadowsocks que puede conectar con un servidor Shadowsocks. También ejecutará un proxy SOCKS5. Los dispositivos locales pueden conectar con este proxy y sus datos serán cifrados y retransmitidos a través del sevidor Shadowsocks. Nota: Shadowsocks está disponible en FreedomBox a partir de la versión 0.18 de Plinth.
Usar el cliente ShadowsocksLa implementación actual de Shadowsocks en FreedomBox solo soporta configurar FreedomBox como cliente Shadowsocks. Este caso de uso sería así: El client de Shadowsocks (FreedomBox) está en una región en la que partes de Internet están bloqueadas o censuradas. El servidor de Shadowsocks está en una región diferente que no tiene esos bloqueos. FreedomBox proporciona un servicio de proxy SOCKS en la red local para que otros dispositivos hagan uso de la conexión Shadowsocks. En el futuro será posible configurar FreedomBox como servidor Shadowsocks.
Configurar tu FreedomBox para el cliente ShadowsocksPara habilitar Shadowsocks primero navega a la página Proxy Socks5 (Shadowsocks) e instalalo. Servidor: el servidor Shadowsocks no es la IP o la URL de FreedomBox, sino que será otro servidor o VPS configurado como tal (servidor Shadowsocks). También hay algunos servidores Shadowsocks públicos listados en la web, pero sé consciente de que quienquiera que opere el servidor puede ver a dónde van las peticiones y cualquier dato no cifrado que se transmita. Para usar Shadowsocks una vez instalado configura la URL del proxy SOCKS5 en tu dispositivo, navegador o aplicación como http://<tu_freedombox>:1080/. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Shadowsocks22019-09-14 09:52:23fioddorCorrección menor12019-09-14 09:45:29fioddorSe crea la versión española.
Proxy SOCKS5 (Shadowsocks)
¿Qué es Shadowsocks?Shadowsocks es un proxy SOCKS5 ligero y seguro, diseñado para proteger tu tráfico Internet. Se puede usar para eludir la censura y los filtros de Internet. Tu FreedomBox puede ejecutar un cliente Shadowsocks que puede conectar con un servidor Shadowsocks. También ejecutará un proxy SOCKS5. Los dispositivos locales pueden conectar con este proxy y sus datos serán cifrados y retransmitidos a través del sevidor Shadowsocks. Nota: Shadowsocks está disponible en FreedomBox a partir de la versión 0.18 de Plinth.
Usar el cliente ShadowsocksLa implementación actual de Shadowsocks en FreedomBox solo soporta configurar FreedomBox como cliente Shadowsocks. Este caso de uso sería así: El client de Shadowsocks (FreedomBox) está en una región en la que partes de Internet están bloqueadas o censuradas. El servidor de Shadowsocks está en una región diferente que no tiene esos bloqueos. FreedomBox proporciona un servicio de proxy SOCKS en la red local para que otros dispositivos hagan uso de la conexión Shadowsocks. En el futuro será posible configurar FreedomBox como servidor Shadowsocks.
Configurar tu FreedomBox para el cliente ShadowsocksPara habilitar Shadowsocks primero navega a la página Proxy Socks5 (Shadowsocks) e instalalo. Servidor: el servidor Shadowsocks no es la IP o la URL de FreedomBox, sino que será otro servidor o VPS configurado como tal (servidor Shadowsocks). También hay algunos servidores Shadowsocks públicos listados en la web, pero sé consciente de que quienquiera que opere el servidor puede ver a dónde van las peticiones y cualquier dato no cifrado que se transmita. Para usar Shadowsocks una vez instalado configura la URL del proxy SOCKS5 en tu dispositivo, navegador o aplicación como http://<tu_freedombox>:1080/. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Snapshots.raw.xml b/doc/manual/es/Snapshots.raw.xml index cb823b056..622187d02 100644 --- a/doc/manual/es/Snapshots.raw.xml +++ b/doc/manual/es/Snapshots.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Snapshots22020-04-04 21:17:11fioddorCorrección menor12019-06-20 14:29:35fioddorSe crea la versión española.
InstantáneasLas Instantáneas te permiten crear instantáneas del sistema de archivos y devolver al sistema a un estado anterior. Nota: Esta funcionalidad requiere un sistema de archivos Btrfs. Todas las imágenes de disco de FreedomBox estables usan Btrfs. Instantáneas Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Snapshots22020-04-04 21:17:11fioddorCorrección menor12019-06-20 14:29:35fioddorSe crea la versión española.
InstantáneasLas Instantáneas te permiten crear instantáneas del sistema de archivos y devolver al sistema a un estado anterior. Nota: Esta funcionalidad requiere un sistema de archivos Btrfs. Todas las imágenes de disco de FreedomBox estables usan Btrfs. Instantáneas Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Storage.raw.xml b/doc/manual/es/Storage.raw.xml index 034491485..ce493e536 100644 --- a/doc/manual/es/Storage.raw.xml +++ b/doc/manual/es/Storage.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Storage12019-06-20 14:42:39fioddorSe crea la versión española.
AlmacenamientoAlmacenamiento te permite ver los dispositivos de almacenamiento conectados a tu FreedomBox y el uso de su espacio. FreedomBox puede detectar y montar automáticamente medios extraíbles como unidades flash USB. Se muestran listados bajo la sección Dispositivos extraíbles junto con una opción para expulsarlos. Si queda espacio libre detrás de la partición de root, se mostrará también la opción para expandirla. Normalmente no se muestra ya que en el primer arranque de la FreedomBox se produce automáticamente una expansión total de la partición de root. Storage.png Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Storage12019-06-20 14:42:39fioddorSe crea la versión española.
AlmacenamientoAlmacenamiento te permite ver los dispositivos de almacenamiento conectados a tu FreedomBox y el uso de su espacio. FreedomBox puede detectar y montar automáticamente medios extraíbles como unidades flash USB. Se muestran listados bajo la sección Dispositivos extraíbles junto con una opción para expulsarlos. Si queda espacio libre detrás de la partición de root, se mostrará también la opción para expandirla. Normalmente no se muestra ya que en el primer arranque de la FreedomBox se produce automáticamente una expansión total de la partición de root. Storage.png Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Syncthing.raw.xml b/doc/manual/es/Syncthing.raw.xml index 265feb176..1e835f28d 100644 --- a/doc/manual/es/Syncthing.raw.xml +++ b/doc/manual/es/Syncthing.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Syncthing52019-11-14 18:11:07fioddorSe alinea con la versión 18 en inglés del 11 de noviembre de 201942019-11-04 11:25:50fioddorSe alinea con la versión 14 del 01 de noviembre de 201932019-10-28 09:30:15fioddorSe alinea con la versión 14 del 27 de octubre de 201922019-09-11 15:32:18fioddorSe crea la versión española.12019-09-11 15:25:11fioddorSe crea la versión española.
Sincronización de Archivos (Syncthing)Con Syncthing instalado en tu FreedomBox puedes sincronizar contenido desde otros dispositivos a tu FreedomBox y vice-versa. Por ejemplo puedes mantener sincronizadas las fotos tomadas desde tu teléfono móvil con tu FreedomBox. Disponible desde versión: 0.14. Syncthing es una solución de sincronización entre pares, no una de tipo cliente-servidor. Esto implica que FreedomBox no es realmente el servidor y tus otros dispositivos no son sus clientes. Desde la perspectiva de Syncthing todos son dispositivos equivalentes. Puedes emplear Syncthing para sincronizar tus archivos entre cualquiera de tus dispositivos. La ventaja que aporta FreedomBox consiste en que como es un servidor está encendida (casi) siempre. Supón que quieres sincronizar las fotos de tu teléfono con tu portátil. Si sincronizas tu teléfono con FreedomBox el portátil podrá obtenerlas desde la FreedomBox cuando vuelva a conectarse. No necesitas preocuparte de cuando se conectan los otros dispositivos. Si tu FreedomBox es uno de los dispositivos configurados con la carpeta compartida de Syncthing puedes estár tranquilo que tus otros dispositivos se sincronizarán en cuanto se conecten. Tras instalarlo sigue estas instrucciones del proyecto Syncthing: Arrancando. Syncthing permite compartir selectivamente carpetas individuales. Antes de compartir los dispositivos tienen que estar emparejados leyendo códigos QR o introduciendo manualmente identificadores de dispositivo. Syncthing tiene un servicio de autodescubrimiento para identicar fácilmente a los otros dispositivos de la misma subred que tengan Syncthing instalado. Para acceder al cliente web de la instancia Syncthing que se ejecuta en tu FreedomBox, usa la ruta /syncthing. Actualmente este cliente web está accesible solo a los usuarios de FreedomBox que tengan privilegios de administrador aunque en alguna futura versión podría estarlo a todos los usuarios de FreedomBox. Syncthing web interface Syncthing tiene apps Android disponibles en F-Droid y Google Play. También hay disponibles aplicaciones de escritorio multiplataforma. Para más información acerca de Syncthing visita su sitio web oficial y su documentación.
Sincronizar via TorSyncthing debe sincronizar automáticamente con tu FreedomBox incluso cuando esta solo sea accesible como servicio Tor Onion. Si quieres enrutar tu cliente Syncthing via Tor configura la variable de entorno all_proxy: Para más información mira la documentación de Syncthing acerca de el uso de proxies.
Evitar repetidores de SyncthingSyncthing emplea por defecto conexiones dinámicas para conectar con otros pares. Esto significa que si estás sincronizando a través de Internet, los datos quizá tengan que atravesar repetidores de Syncthing públicos para alcanzar tus dispositivos. Esto desaprovecha que tu FreedomBox tenga una dirección IP pública. Al añadir tu FreedomBox como dispositivo en otros clientes de Syncthing establece tu dirección como "tcp://<mi.dominio.freedombox>" en vez de "dinámica". Esto permite a tus pares Syncthing conectarse diréctamente a tu FreedomBox eludiendo la necesidad de repetidores. También permite sincronización rápida bajo demanda si no quieres mantener a Syncthing ejecuándose todo el tiempo en tus dispositivos móviles. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Syncthing52019-11-14 18:11:07fioddorSe alinea con la versión 18 en inglés del 11 de noviembre de 201942019-11-04 11:25:50fioddorSe alinea con la versión 14 del 01 de noviembre de 201932019-10-28 09:30:15fioddorSe alinea con la versión 14 del 27 de octubre de 201922019-09-11 15:32:18fioddorSe crea la versión española.12019-09-11 15:25:11fioddorSe crea la versión española.
Sincronización de Archivos (Syncthing)Con Syncthing instalado en tu FreedomBox puedes sincronizar contenido desde otros dispositivos a tu FreedomBox y vice-versa. Por ejemplo puedes mantener sincronizadas las fotos tomadas desde tu teléfono móvil con tu FreedomBox. Disponible desde versión: 0.14. Syncthing es una solución de sincronización entre pares, no una de tipo cliente-servidor. Esto implica que FreedomBox no es realmente el servidor y tus otros dispositivos no son sus clientes. Desde la perspectiva de Syncthing todos son dispositivos equivalentes. Puedes emplear Syncthing para sincronizar tus archivos entre cualquiera de tus dispositivos. La ventaja que aporta FreedomBox consiste en que como es un servidor está encendida (casi) siempre. Supón que quieres sincronizar las fotos de tu teléfono con tu portátil. Si sincronizas tu teléfono con FreedomBox el portátil podrá obtenerlas desde la FreedomBox cuando vuelva a conectarse. No necesitas preocuparte de cuando se conectan los otros dispositivos. Si tu FreedomBox es uno de los dispositivos configurados con la carpeta compartida de Syncthing puedes estár tranquilo que tus otros dispositivos se sincronizarán en cuanto se conecten. Tras instalarlo sigue estas instrucciones del proyecto Syncthing: Arrancando. Syncthing permite compartir selectivamente carpetas individuales. Antes de compartir los dispositivos tienen que estar emparejados leyendo códigos QR o introduciendo manualmente identificadores de dispositivo. Syncthing tiene un servicio de autodescubrimiento para identicar fácilmente a los otros dispositivos de la misma subred que tengan Syncthing instalado. Para acceder al cliente web de la instancia Syncthing que se ejecuta en tu FreedomBox, usa la ruta /syncthing. Actualmente este cliente web está accesible solo a los usuarios de FreedomBox que tengan privilegios de administrador aunque en alguna futura versión podría estarlo a todos los usuarios de FreedomBox. Syncthing web interface Syncthing tiene apps Android disponibles en F-Droid y Google Play. También hay disponibles aplicaciones de escritorio multiplataforma. Para más información acerca de Syncthing visita su sitio web oficial y su documentación.
Sincronizar via TorSyncthing debe sincronizar automáticamente con tu FreedomBox incluso cuando esta solo sea accesible como servicio Tor Onion. Si quieres enrutar tu cliente Syncthing via Tor configura la variable de entorno all_proxy: Para más información mira la documentación de Syncthing acerca de el uso de proxies.
Evitar repetidores de SyncthingSyncthing emplea por defecto conexiones dinámicas para conectar con otros pares. Esto significa que si estás sincronizando a través de Internet, los datos quizá tengan que atravesar repetidores de Syncthing públicos para alcanzar tus dispositivos. Esto desaprovecha que tu FreedomBox tenga una dirección IP pública. Al añadir tu FreedomBox como dispositivo en otros clientes de Syncthing establece tu dirección como "tcp://<mi.dominio.freedombox>" en vez de "dinámica". Esto permite a tus pares Syncthing conectarse diréctamente a tu FreedomBox eludiendo la necesidad de repetidores. También permite sincronización rápida bajo demanda si no quieres mantener a Syncthing ejecuándose todo el tiempo en tus dispositivos móviles. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/TinyTinyRSS.raw.xml b/doc/manual/es/TinyTinyRSS.raw.xml index 7fde8468f..4c6ed5d28 100644 --- a/doc/manual/es/TinyTinyRSS.raw.xml +++ b/doc/manual/es/TinyTinyRSS.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/TinyTinyRSS12019-09-13 17:05:05fioddorSe crea la versión española.
Lector de Feeds de Noticias (Tiny Tiny RSS)Tiny Tiny RSS es un lector y agregador de feeds de noticias (RSS/Atom) diseñado para leer noticias desde cualquier lugar con una experiencia lo más parecida posible a una aplicación de escritorio. Cualquier usuario creado mediante el interfaz web de FreedomBox podrá ingresar y usar esta app. Cada usuario tiene sus propios feeds, estado y preferencias.
Usar el interfaz webCuando esté habilitado Tiny Tiny RSS estará disponible en la ruta /tt-rss del servidor web. Cualquier usuario creado mediante el interfaz web de FreedomBox podrá ingresar y usar esta app. Tiny Tiny RSS
Añadir un nuevo feed1. Ve a la página cuyo feed quieras y copia su enlace RSS/Atom feed. Selecting feeds 2. Selecciona "Subscribirse al feed.." en el desplegable Acciones. Subscribe to feed 3. Pega la URL que has copiado en el diálogo que aparece y pulsa el botón Subscribirse. Subscription dialog box Dale un minuto a la aplicación para obtener los feeds. En algunos sitios web el botón de feeds RSS no está claramente visible. En tal caso simplemente pega la URL del sitio web en el diálogo Subscribirse y deja que TT-RSS detecte automáticamente los feeds RSS que haya en la página. Puedes probarlo ahora con la página principal de WikiNews Como puedes ver en la imagen seguiente TT-RSS ha detectado y añadido el feed Atom de WikiNews a nuestra lista de feeds. WikiNews feed added Si no quieres conservar este feed haz clic con el botón derecho del ratón en el feed de la imagen anterior, selecciona Editar feed y dale a Desubscribir en el diálogo que aparece. Unsubscribe from a feed
Importar tus feeds desde otro lectorEncuentra en tu lector de feeds previo una opción para Exportar tus feeds a un fichero. Si tiene que elegir entre varios formatos elige OPML. Pongamos que tu fichero de feeds exportados se llama Subscriptions.opml Haz click en la esquina superior izquierda el menú Acciones y selecciona Preferencias. Se te llevará a otra página. En la cabecera superior selecciona la 2ª solapa llamada Feeds. Tiene varias secciones y la 2ª se llama OPML. Selecciónala. OPML feeds page Para importar tu fichero Subscriptions.opml a TT-RSS, Haz clic en Examinar... y selecciona el fichero en tu sistema de archivos. Haz clic en Importar mi OPML Tras importar se te llevará a la sección Feeds que está en la página encima de la de OPML. Puedes ver que los feeds del lector previo figuran ahora importados en Tiny Tiny RSS. Ahora puedes empezar a usar Tiny Tiny RSS como tu lector principal.
Usar la app móvilLa app oficial para Android del proyecto Tiny Tiny RSS funciona con el servidor Tiny Tiny RSS de FreedomBox. Se sabe que la aplicación anterior TTRSS-Reader no funciona. Desafortunadamente la app oficial para Android solo está disponible en la Play Store de Google y no en F-Droid. Todavía puedes obtener el código fuente y compilar el fichero apk por tu cuenta. Para configurarla, primero instálala y entonces en la página de configuración pon como URL. Pon tu usuario y contraseña en los detalles del Login así como los detalles de Autenticación HTTP. Si tu FreedomBox no tiene un certificado HTTPS válido configuralo para que admita cualquier certificado SSL y cualquier servidor. Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/TinyTinyRSS12019-09-13 17:05:05fioddorSe crea la versión española.
Lector de Feeds de Noticias (Tiny Tiny RSS)Tiny Tiny RSS es un lector y agregador de feeds de noticias (RSS/Atom) diseñado para leer noticias desde cualquier lugar con una experiencia lo más parecida posible a una aplicación de escritorio. Cualquier usuario creado mediante el interfaz web de FreedomBox podrá ingresar y usar esta app. Cada usuario tiene sus propios feeds, estado y preferencias.
Usar el interfaz webCuando esté habilitado Tiny Tiny RSS estará disponible en la ruta /tt-rss del servidor web. Cualquier usuario creado mediante el interfaz web de FreedomBox podrá ingresar y usar esta app. Tiny Tiny RSS
Añadir un nuevo feed1. Ve a la página cuyo feed quieras y copia su enlace RSS/Atom feed. Selecting feeds 2. Selecciona "Subscribirse al feed.." en el desplegable Acciones. Subscribe to feed 3. Pega la URL que has copiado en el diálogo que aparece y pulsa el botón Subscribirse. Subscription dialog box Dale un minuto a la aplicación para obtener los feeds. En algunos sitios web el botón de feeds RSS no está claramente visible. En tal caso simplemente pega la URL del sitio web en el diálogo Subscribirse y deja que TT-RSS detecte automáticamente los feeds RSS que haya en la página. Puedes probarlo ahora con la página principal de WikiNews Como puedes ver en la imagen seguiente TT-RSS ha detectado y añadido el feed Atom de WikiNews a nuestra lista de feeds. WikiNews feed added Si no quieres conservar este feed haz clic con el botón derecho del ratón en el feed de la imagen anterior, selecciona Editar feed y dale a Desubscribir en el diálogo que aparece. Unsubscribe from a feed
Importar tus feeds desde otro lectorEncuentra en tu lector de feeds previo una opción para Exportar tus feeds a un fichero. Si tiene que elegir entre varios formatos elige OPML. Pongamos que tu fichero de feeds exportados se llama Subscriptions.opml Haz click en la esquina superior izquierda el menú Acciones y selecciona Preferencias. Se te llevará a otra página. En la cabecera superior selecciona la 2ª solapa llamada Feeds. Tiene varias secciones y la 2ª se llama OPML. Selecciónala. OPML feeds page Para importar tu fichero Subscriptions.opml a TT-RSS, Haz clic en Examinar... y selecciona el fichero en tu sistema de archivos. Haz clic en Importar mi OPML Tras importar se te llevará a la sección Feeds que está en la página encima de la de OPML. Puedes ver que los feeds del lector previo figuran ahora importados en Tiny Tiny RSS. Ahora puedes empezar a usar Tiny Tiny RSS como tu lector principal.
Usar la app móvilLa app oficial para Android del proyecto Tiny Tiny RSS funciona con el servidor Tiny Tiny RSS de FreedomBox. Se sabe que la aplicación anterior TTRSS-Reader no funciona. Desafortunadamente la app oficial para Android solo está disponible en la Play Store de Google y no en F-Droid. Todavía puedes obtener el código fuente y compilar el fichero apk por tu cuenta. Para configurarla, primero instálala y entonces en la página de configuración pon como URL. Pon tu usuario y contraseña en los detalles del Login así como los detalles de Autenticación HTTP. Si tu FreedomBox no tiene un certificado HTTPS válido configuralo para que admita cualquier certificado SSL y cualquier servidor. Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Tiny Tiny RSS Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Tor.raw.xml b/doc/manual/es/Tor.raw.xml index 3a8160889..273e5320c 100644 --- a/doc/manual/es/Tor.raw.xml +++ b/doc/manual/es/Tor.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Tor102019-11-30 18:08:09fioddorSe alinea con la versión 23 en inglés del 28 de noviembre de 201992019-11-14 17:59:44fioddorSe alinea con la versión 22 en inglés del 11 de noviembre de 201982019-10-28 09:44:53fioddorSe alinea con la versión 21 del 27 de octubre de 201972019-10-21 13:54:58fioddorCorrección menor62019-09-03 15:18:40fioddorMejora menor52019-09-03 15:17:22fioddortraducción de la sección TOR finalizada.42019-09-03 15:11:56fioddorSe incorpora la traducción de una sección nueva.32019-09-03 15:04:38fioddorSe incorpora la traducción de una sección nueva.22019-09-03 14:49:23fioddorSe incorpora la traducción de una sección nueva.12019-09-03 14:32:43fioddorSe crea la versión española (traducción incompleta).
Red para el anonimato (Tor)
¿Qué es Tor?Tor es una red de servidores operada por voluntarios. Permite a los usuarios de esos servidores mejorar su privacidad y seguridad cuando navegan por Internet. Tu y tus amigos podéis acceder a tu FreedomBox a través de la red Tor sin revelar su dirección IP. Activando la aplicación Tor en tu FreedomBox podrás ofrecer servicios remotos (chat, wiki, file sharing, etc...) sin mostrar tu localización. Esta aplicación te dará una protección mejor que un servidor web público porque estarás menos expuesto a gente intrusiva.
Usar Tor para navegación anónimaTor Browser es la manera recomendada para navegar la web a través de Tor. Puedes descargar Tor Browser desde y seguir sus instrucciones para instalarlo y ejecutarlo.
Usar Servicio Tor Onion para acceder a tu FreedomBoxEl Servicio Tor Onion proporciona una manera de acceder a tu FreedomBox incluso aunque esté detrás de un router, cortafuegos, o redirector NAT (p.ej. si tu proveedor de Internet no proporciona una dirección pública IPv4 para tu router). Para habilitar el Servicio Tor Onion primero navega a la página Red para el anónimato (Tor). (Si no la ves haz clic en el logo de FreedomBox de arriba a la izquierda de la página y ve a la página principal de Apps.) En la página Red para el anónimato (Tor), bajo Configuración, habilita la caja Habilitar los Servicios Tor Onion y pulsa el botón de Actualizar configuración. Tor se reconfigurará y se reiniciará. Transcurrido un rato la página se refrescará bajo Estado verás la tabla que lista la dirección .onion del servicio. Copia toda la dirección (que termina en .onion) y pégala en el campo dirección de Tor Browser. Deberías poder acceder a tu FreedomBox. (Quizá veas un aviso de certificado porque FreedomBox tiene un certificado autofirmado.) Tor Browser - Plinth Onion Actualmente solo HTTP (puerto 80), HTTPS (puerto 443) y SSH (puerto 22) están accesibles a través del Servicio Tor Onion configurado en la FreedomBox.
Apps accesibles via TorLas siguientes apps se pueden acceder a través de Tor. Esta lista puede ser incompleta. Calendario y Libreta de direcciones (Radicale) Sincronización de ficheros (Syncthing) Búsqueda Web (Searx) Wiki (MediaWiki) Wiki y Blog (Ikiwiki)
Ejecutar un nodo TorCuando se instala Tor se configura por defecto para ejecutarse como puente a la red (bridge relay). Esta opción se puede deshabilitar en la página de configuración de Tor de Plinth. En la parte inferior de página de Tor de Plinth hay una lista de puertos que usa el puente a la red Tor. Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos de tu router para que estos puertos sean accesibles desde Internet. Los requisitos para ejecutar un puente a la red se listan en la Tor Relay Guide. En resúmen, se recomienda que un puente tenga disponibles para Tor al menos 16 Mbit/s (Mbps) de ancho de banda para subida y bajada. Mejor más. requiere que a se le permita al puente usar un mínimo de 100 GByte de tráfico mensual de salida y de entrada. recomienda que un nodo sin salida (mero reenrutador) de <40 Mbit/s tenga al menos 512 MB de RAM disponible; Uno más rápido de 40 Mbit/s debería tener al menos 1 GB de RAM.
Usar el puerto Tor SOCKS (avanzado)FreedomBox proporciona un puerto Tor SOCKS al que pueden conectar otras aplicaciones para enrutar su tráfico a través de la red Tor. Este puerto es accesible a cualquier interfaz (de red) configurado en la zona interna del cortafuegos. Para configurar la aplicación apunta el Host SOCKS a la dirección IP interna de la conexión y pon el Puerto SOCKS a 9050.
Exjemplo con FirefoxTu navegador web se puede configurar para emplear la red Tor para toda tu actividad de navegación. Esto permite eludir la censura y oculta tu dirección IP a los sitios web durante la navegación normal. Para anonimato se recomienda usar el Navegador Tor. Configura tu dirección IP local de FreedomBox y el puerto 9050 como un proxy SOCKS en Firefox. Hay extensiones para facilitar la activación y desactivación del proxy. Configuring Firefox with Tor SOCKS proxy Con en proxy SOCKS configurado puedes acceder cualquier URL de tipo onion diréctamente desde Firefox. FreedomBox tiene una dirección onion v3 propia a la que puedes conectarte por la red Tor (guárdala en tus favoritos para usarla en situaciones de emergencia).
Eludiendo la censura de TorSi tu proveedor de Internet (ISP) está tratando de bloquear el tráfico Tor puedes usar puentes (a la red Tor) para conectar (a la red Tor). 1. Obtén la configuración de los puentes de Tor BridgeDB Tor BridgeDB 2. Añade las líneas a la configuración de Tor de tu FreedomBox como se muestra. Tor Configuration Page Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Tor102019-11-30 18:08:09fioddorSe alinea con la versión 23 en inglés del 28 de noviembre de 201992019-11-14 17:59:44fioddorSe alinea con la versión 22 en inglés del 11 de noviembre de 201982019-10-28 09:44:53fioddorSe alinea con la versión 21 del 27 de octubre de 201972019-10-21 13:54:58fioddorCorrección menor62019-09-03 15:18:40fioddorMejora menor52019-09-03 15:17:22fioddortraducción de la sección TOR finalizada.42019-09-03 15:11:56fioddorSe incorpora la traducción de una sección nueva.32019-09-03 15:04:38fioddorSe incorpora la traducción de una sección nueva.22019-09-03 14:49:23fioddorSe incorpora la traducción de una sección nueva.12019-09-03 14:32:43fioddorSe crea la versión española (traducción incompleta).
Red para el anonimato (Tor)
¿Qué es Tor?Tor es una red de servidores operada por voluntarios. Permite a los usuarios de esos servidores mejorar su privacidad y seguridad cuando navegan por Internet. Tu y tus amigos podéis acceder a tu FreedomBox a través de la red Tor sin revelar su dirección IP. Activando la aplicación Tor en tu FreedomBox podrás ofrecer servicios remotos (chat, wiki, file sharing, etc...) sin mostrar tu localización. Esta aplicación te dará una protección mejor que un servidor web público porque estarás menos expuesto a gente intrusiva.
Usar Tor para navegación anónimaTor Browser es la manera recomendada para navegar la web a través de Tor. Puedes descargar Tor Browser desde y seguir sus instrucciones para instalarlo y ejecutarlo.
Usar Servicio Tor Onion para acceder a tu FreedomBoxEl Servicio Tor Onion proporciona una manera de acceder a tu FreedomBox incluso aunque esté detrás de un router, cortafuegos, o redirector NAT (p.ej. si tu proveedor de Internet no proporciona una dirección pública IPv4 para tu router). Para habilitar el Servicio Tor Onion primero navega a la página Red para el anónimato (Tor). (Si no la ves haz clic en el logo de FreedomBox de arriba a la izquierda de la página y ve a la página principal de Apps.) En la página Red para el anónimato (Tor), bajo Configuración, habilita la caja Habilitar los Servicios Tor Onion y pulsa el botón de Actualizar configuración. Tor se reconfigurará y se reiniciará. Transcurrido un rato la página se refrescará bajo Estado verás la tabla que lista la dirección .onion del servicio. Copia toda la dirección (que termina en .onion) y pégala en el campo dirección de Tor Browser. Deberías poder acceder a tu FreedomBox. (Quizá veas un aviso de certificado porque FreedomBox tiene un certificado autofirmado.) Tor Browser - Plinth Onion Actualmente solo HTTP (puerto 80), HTTPS (puerto 443) y SSH (puerto 22) están accesibles a través del Servicio Tor Onion configurado en la FreedomBox.
Apps accesibles via TorLas siguientes apps se pueden acceder a través de Tor. Esta lista puede ser incompleta. Calendario y Libreta de direcciones (Radicale) Sincronización de ficheros (Syncthing) Búsqueda Web (Searx) Wiki (MediaWiki) Wiki y Blog (Ikiwiki)
Ejecutar un nodo TorCuando se instala Tor se configura por defecto para ejecutarse como puente a la red (bridge relay). Esta opción se puede deshabilitar en la página de configuración de Tor de Plinth. En la parte inferior de página de Tor de Plinth hay una lista de puertos que usa el puente a la red Tor. Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos de tu router para que estos puertos sean accesibles desde Internet. Los requisitos para ejecutar un puente a la red se listan en la Tor Relay Guide. En resúmen, se recomienda que un puente tenga disponibles para Tor al menos 16 Mbit/s (Mbps) de ancho de banda para subida y bajada. Mejor más. requiere que a se le permita al puente usar un mínimo de 100 GByte de tráfico mensual de salida y de entrada. recomienda que un nodo sin salida (mero reenrutador) de <40 Mbit/s tenga al menos 512 MB de RAM disponible; Uno más rápido de 40 Mbit/s debería tener al menos 1 GB de RAM.
Usar el puerto Tor SOCKS (avanzado)FreedomBox proporciona un puerto Tor SOCKS al que pueden conectar otras aplicaciones para enrutar su tráfico a través de la red Tor. Este puerto es accesible a cualquier interfaz (de red) configurado en la zona interna del cortafuegos. Para configurar la aplicación apunta el Host SOCKS a la dirección IP interna de la conexión y pon el Puerto SOCKS a 9050.
Exjemplo con FirefoxTu navegador web se puede configurar para emplear la red Tor para toda tu actividad de navegación. Esto permite eludir la censura y oculta tu dirección IP a los sitios web durante la navegación normal. Para anonimato se recomienda usar el Navegador Tor. Configura tu dirección IP local de FreedomBox y el puerto 9050 como un proxy SOCKS en Firefox. Hay extensiones para facilitar la activación y desactivación del proxy. Configuring Firefox with Tor SOCKS proxy Con en proxy SOCKS configurado puedes acceder cualquier URL de tipo onion diréctamente desde Firefox. FreedomBox tiene una dirección onion v3 propia a la que puedes conectarte por la red Tor (guárdala en tus favoritos para usarla en situaciones de emergencia).
Eludiendo la censura de TorSi tu proveedor de Internet (ISP) está tratando de bloquear el tráfico Tor puedes usar puentes (a la red Tor) para conectar (a la red Tor). 1. Obtén la configuración de los puentes de Tor BridgeDB Tor BridgeDB 2. Añade las líneas a la configuración de Tor de tu FreedomBox como se muestra. Tor Configuration Page Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Transmission.raw.xml b/doc/manual/es/Transmission.raw.xml index dadf44b75..464d5bfed 100644 --- a/doc/manual/es/Transmission.raw.xml +++ b/doc/manual/es/Transmission.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Transmission62019-10-28 09:16:06fioddorSe alinea con la versión 14 del 27 de octubre de 201952019-09-04 09:38:37fioddorCorrección menor42019-09-04 09:33:40fioddorEnlace a nueva página traducida.32019-09-04 09:19:10fioddorRecomendación de seguridad.22019-09-04 09:17:24fioddorCorrección menor12019-09-04 06:58:07fioddorSe crea la versión española.
BitTorrent (Transmission)
¿Qué es Transmission ?BitTorrent es un protocolo de comunicaciones para compartir ficheros entre pares (P2P = peer-to-peer). No es anónimo; debes asumir que otros puedan ver qué ficheros estás comprtiendo. Hay 2 clientes web para BitTorrent disponibles en FreedomBox: Transmission y Deluge. Tienen funcionalidades similares pero quizá prefieras uno sobre otro. Transmission es un cliente BitTorrent ligero, famoso por su simplicidad y una configuración por defecto que "símplemente funciona".
Captura de pantallaTransmission Web Interface
Usar TransmissionTras instalar Transmission está accesible en https://<tu freedombox>/transmission. Transmission emplea el ingreso único de FreedomBox lo que significa que si has ingresado en tu FreedomBox puedes acceder diréctamente a Transmission sin tener que volver a introducir las credenciales. Si no, se te pedirá que ingreses primero y luego se te redirigirá a la app Transmission.
Consejos
Transferir Descargas desde la FreedomBoxSe puede añadir el directorio de descargas de Transmission como directorio compartido en la app "Compartir" y así acceder a tus descargas en este directorio compartido empleando un navegador web. (Avanzado) Si tienes acceso SSH a tu FreedomBox puedes usar sftp para ver el directorio de descargas usando un gestor de archivos o un navegador apropiados (p.ej. dolphin o Konqueror). Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Transmission62019-10-28 09:16:06fioddorSe alinea con la versión 14 del 27 de octubre de 201952019-09-04 09:38:37fioddorCorrección menor42019-09-04 09:33:40fioddorEnlace a nueva página traducida.32019-09-04 09:19:10fioddorRecomendación de seguridad.22019-09-04 09:17:24fioddorCorrección menor12019-09-04 06:58:07fioddorSe crea la versión española.
BitTorrent (Transmission)
¿Qué es Transmission ?BitTorrent es un protocolo de comunicaciones para compartir ficheros entre pares (P2P = peer-to-peer). No es anónimo; debes asumir que otros puedan ver qué ficheros estás comprtiendo. Hay 2 clientes web para BitTorrent disponibles en FreedomBox: Transmission y Deluge. Tienen funcionalidades similares pero quizá prefieras uno sobre otro. Transmission es un cliente BitTorrent ligero, famoso por su simplicidad y una configuración por defecto que "símplemente funciona".
Captura de pantallaTransmission Web Interface
Usar TransmissionTras instalar Transmission está accesible en https://<tu freedombox>/transmission. Transmission emplea el ingreso único de FreedomBox lo que significa que si has ingresado en tu FreedomBox puedes acceder diréctamente a Transmission sin tener que volver a introducir las credenciales. Si no, se te pedirá que ingreses primero y luego se te redirigirá a la app Transmission.
Consejos
Transferir Descargas desde la FreedomBoxSe puede añadir el directorio de descargas de Transmission como directorio compartido en la app "Compartir" y así acceder a tus descargas en este directorio compartido empleando un navegador web. (Avanzado) Si tienes acceso SSH a tu FreedomBox puedes usar sftp para ver el directorio de descargas usando un gestor de archivos o un navegador apropiados (p.ej. dolphin o Konqueror). Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/Upgrades.raw.xml b/doc/manual/es/Upgrades.raw.xml index 66765deb9..924b1fa40 100644 --- a/doc/manual/es/Upgrades.raw.xml +++ b/doc/manual/es/Upgrades.raw.xml @@ -5,4 +5,4 @@ Password: # apt -f install # unattended-upgrade --debug # apt install freedombox -# apt update]]>Si apt-get update te pide confirmación para algo responde que . Si durante la actualización del paquete freedombox te pregunta acerca de los archivos de configuración responde que instale los archivos de configuración nuevos que vienen con la última versión del paquete. Este proceso solo actualizará los paquetes que no necesitan preguntar (excepto el paquete freedombox). Después, deja que FreedomBox se encargue de la actualización de los demás paquetes. Sé paciente mientras se crean nuevas versiones de FreedomBox para tratar los paquetes que necesitan intervención manual. Si quieres ir más allá de la recomendación e instalar todos los paquetes en tu FreedomBox y realmente estás muy seguro de poder tratar los cambios de configuración de paquetes por tí mismo, ejecuta el siguiente comando: Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox \ No newline at end of file +# apt update]]>Si apt-get update te pide confirmación para algo responde que . Si durante la actualización del paquete freedombox te pregunta acerca de los archivos de configuración responde que instale los archivos de configuración nuevos que vienen con la última versión del paquete. Este proceso solo actualizará los paquetes que no necesitan preguntar (excepto el paquete freedombox). Después, deja que FreedomBox se encargue de la actualización de los demás paquetes. Sé paciente mientras se crean nuevas versiones de FreedomBox para tratar los paquetes que necesitan intervención manual. Si quieres ir más allá de la recomendación e instalar todos los paquetes en tu FreedomBox y realmente estás muy seguro de poder tratar los cambios de configuración de paquetes por tí mismo, ejecuta el siguiente comando: Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox \ No newline at end of file diff --git a/doc/manual/es/Users.raw.xml b/doc/manual/es/Users.raw.xml index 19ebb9594..4321595d8 100644 --- a/doc/manual/es/Users.raw.xml +++ b/doc/manual/es/Users.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/Users12019-06-18 13:55:35fioddorSe crea la versión española.
Usuarios y GruposPuedes otorgar acceso a tu FreedomBox a otros usuarios. Proporciona el nombre del usuario y su contraseña y asignale un grupo. Actualmente se soportan los grupos admin wiki El usuario podrá ingresar a los servicios que soporten ingreso único (single-sign-on) mediante LDAP si figuran en el grupo apropriado. Los usuarios del grupo admin podrán ingresar en todos los servicios. También pueden ingresar al sistema por SSH y escalar a privilegios administrativos (sudo). Estas características se pueden cambiar más tarde. Asimismo es posible establecer una clave pública SSH que permitirá al usuario ingresar al sistema de modo seguro sin emplear su contraseña. Pueder dar de alta varias claves, una en cada línea. Las líneas en blanco o que comiencen por # se ignoran. Se pueden desactivar temporalmente las cuentas de usuarios.
Reparos ConocidosActualmente Plinth not distingue entre usuarios y administradores. Todo usuario añadido mediante Plinth tendrá accesso completo al interfaz de Plinth. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/Users12019-06-18 13:55:35fioddorSe crea la versión española.
Usuarios y GruposPuedes otorgar acceso a tu FreedomBox a otros usuarios. Proporciona el nombre del usuario y su contraseña y asignale un grupo. Actualmente se soportan los grupos admin wiki El usuario podrá ingresar a los servicios que soporten ingreso único (single-sign-on) mediante LDAP si figuran en el grupo apropriado. Los usuarios del grupo admin podrán ingresar en todos los servicios. También pueden ingresar al sistema por SSH y escalar a privilegios administrativos (sudo). Estas características se pueden cambiar más tarde. Asimismo es posible establecer una clave pública SSH que permitirá al usuario ingresar al sistema de modo seguro sin emplear su contraseña. Pueder dar de alta varias claves, una en cada línea. Las líneas en blanco o que comiencen por # se ignoran. Se pueden desactivar temporalmente las cuentas de usuarios.
Reparos ConocidosActualmente Plinth not distingue entre usuarios y administradores. Todo usuario añadido mediante Plinth tendrá accesso completo al interfaz de Plinth. Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/ejabberd.raw.xml b/doc/manual/es/ejabberd.raw.xml index 6abbf8f9a..dab22e393 100644 --- a/doc/manual/es/ejabberd.raw.xml +++ b/doc/manual/es/ejabberd.raw.xml @@ -1 +1 @@ -
es/FreedomBox/Manual/ejabberd22019-09-05 12:44:11fioddorCorrección menor12019-09-05 11:59:04fioddorSe crea la versión española.
Servidor de Mensajería Instantánea (chat) (ejabberd)
¿Qué es XMPP?XMPP es un protocolo federatedo para Mensajería Instantánea. Esto significa que los usuarios que tengan cuenta en un servidor XMPP pueden conversar con los usuarios que estén en el mismo u otros servidores XMPP. XMPP se puede usar también para llamadas de voz y vídeo si los clientes las soportan. Con XMPP las conversaciones se pueden securizar de 2 maneras: TLS: Esto securiza la conexión entre el cliente y el servidor o entre 2 servidores. Esto está áltamente recomendado y ya debería estar soportado por todos los clientes. Punto a punto: Esto securiza los mensajes enviados entre los clientes de modo que ni siquiera el servidor pueda ver los contenidos. El último protocolo y también el más cómodo se llama OMEMO pero solo lo soportan algunos clientes. Algunos clientes que no soportan OMEMO podrían soportar otro protocolo llamado OTR. Para que funcione ambos clientes tienen que ser compatibles con el mismo protocolo.
Estableciendo un Nombre de DominioPara que funcione XMPP tu FreedomBox necesita tener Nombre de Dominio accesible desde Internet. Puedes leer acerca de la obtención de un Nombre de Dominio en la sección DNS Dinámico de este manual. Una vez tengas ya tu Nombre de Dominio puedes decirle a tu FreedomBox que lo use dándolo de alta en la configuración del sistema. Nota: Tras cambiar tu Nombre de Dominio la página del servidor (XMPP) de mensajería instantánea podría mostrar que el servicio no está funcionando. En un minuto más o menos se actualizará y lo volverá a mostrar operativo. Ten en cuenta que de momento PageKite no soporta el protocolo XMPP.
Registrando los usuarios XMPP mediante SSOActualmente todos los usuarios creados con Plinth podrán ingresar al servidor XMPP. Puedes añadir usuarios nuevos con el módulo de "Usuarios y Grupos del Sistema". Los grupos seleccionados para el usuario nuevo no importan.
Usar el cliente webTras completar la instalación del módulo XMPP el cliente web JSXC para XMPP está accesible en https://<tu_freedombox>/plinth/apps/xmpp/jsxc/. Automáticamente comprobará la conexión del servidor BOSH al nombre de dominio configurado.
Usar un cliente móvil o de escritorioHay disponibles clientes XMPP para varias platformas móviles y de escritorio.
Enrutado de PuertosSi tu FreedomBox está detrás de un router tendrás que configurar en él la redirección de puertos. Redirije los siguientes puertos de XMPP: TCP 5222 (cliente-a-servidor) TCP 5269 (servidor-a-servidor) Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Saturday, May 9th at 14:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file +
es/FreedomBox/Manual/ejabberd22019-09-05 12:44:11fioddorCorrección menor12019-09-05 11:59:04fioddorSe crea la versión española.
Servidor de Mensajería Instantánea (chat) (ejabberd)
¿Qué es XMPP?XMPP es un protocolo federatedo para Mensajería Instantánea. Esto significa que los usuarios que tengan cuenta en un servidor XMPP pueden conversar con los usuarios que estén en el mismo u otros servidores XMPP. XMPP se puede usar también para llamadas de voz y vídeo si los clientes las soportan. Con XMPP las conversaciones se pueden securizar de 2 maneras: TLS: Esto securiza la conexión entre el cliente y el servidor o entre 2 servidores. Esto está áltamente recomendado y ya debería estar soportado por todos los clientes. Punto a punto: Esto securiza los mensajes enviados entre los clientes de modo que ni siquiera el servidor pueda ver los contenidos. El último protocolo y también el más cómodo se llama OMEMO pero solo lo soportan algunos clientes. Algunos clientes que no soportan OMEMO podrían soportar otro protocolo llamado OTR. Para que funcione ambos clientes tienen que ser compatibles con el mismo protocolo.
Estableciendo un Nombre de DominioPara que funcione XMPP tu FreedomBox necesita tener Nombre de Dominio accesible desde Internet. Puedes leer acerca de la obtención de un Nombre de Dominio en la sección DNS Dinámico de este manual. Una vez tengas ya tu Nombre de Dominio puedes decirle a tu FreedomBox que lo use dándolo de alta en la configuración del sistema. Nota: Tras cambiar tu Nombre de Dominio la página del servidor (XMPP) de mensajería instantánea podría mostrar que el servicio no está funcionando. En un minuto más o menos se actualizará y lo volverá a mostrar operativo. Ten en cuenta que de momento PageKite no soporta el protocolo XMPP.
Registrando los usuarios XMPP mediante SSOActualmente todos los usuarios creados con Plinth podrán ingresar al servidor XMPP. Puedes añadir usuarios nuevos con el módulo de "Usuarios y Grupos del Sistema". Los grupos seleccionados para el usuario nuevo no importan.
Usar el cliente webTras completar la instalación del módulo XMPP el cliente web JSXC para XMPP está accesible en https://<tu_freedombox>/plinth/apps/xmpp/jsxc/. Automáticamente comprobará la conexión del servidor BOSH al nombre de dominio configurado.
Usar un cliente móvil o de escritorioHay disponibles clientes XMPP para varias platformas móviles y de escritorio.
Enrutado de PuertosSi tu FreedomBox está detrás de un router tendrás que configurar en él la redirección de puertos. Redirije los siguientes puertos de XMPP: TCP 5222 (cliente-a-servidor) TCP 5269 (servidor-a-servidor) Volver a la descripción de Funcionalidades o a las páginas del manual. InformaciónSoporteContribuyeInformesPromueveIntroducción Hardware Ayuda en línea Dónde empezar Traduce Reuniones Charlas Funcionalidades Visión Preguntas y Respuestas Diseño Por hacer Releases Prensa Descargas Manual Codigo Fuente Contribuyentes Blog FreedomBox para Comunidades Manual del Desarrolador de FreedomBox AYUDA y DEBATES: Foro de Debate - Lista de Correo - #freedombox irc.debian.org | CONTACTO Fundación | PARTICIPA Proyecto Next call: Sunday, May 24th at 17:00 UTC Latest news: Announcing Pioneer FreedomBox Kits - 2019-03-26 Esta página está sujeta a copyright y sus autores la publican bajo la licencia pública Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC BY-SA 4.0). CategoryFreedomBox
\ No newline at end of file diff --git a/doc/manual/es/freedombox-manual.raw.xml b/doc/manual/es/freedombox-manual.raw.xml index 63cd03cb0..866dd498b 100644 --- a/doc/manual/es/freedombox-manual.raw.xml +++ b/doc/manual/es/freedombox-manual.raw.xml @@ -4,6 +4,18 @@ es/FreedomBox/Manual + + 64 + 2020-05-10 10:11:38 + fioddor + Se alinea con la versión 84 en inglés del 06 de mayo de 2020 + + + 63 + 2020-05-10 00:33:47 + fioddor + Enlace a página traducida. + 62 2020-05-03 17:17:44 @@ -466,6 +478,8 @@ Guía de Inicio Rápido
Lo que necesitas para empezar + La forma fácil es comprar un kit FreedomBox. + Alternativamente podrías optar por montarlo tu mismo reuniendo todas las piezas: Un dispositivo soportado (incluyendo cualquier dispositivo que pueda funcionar con Debian). En el resto de este manual lo llamaremos la FreedomBox. @@ -586,7 +600,7 @@ La siguiente página te pide un nombre de usuario y contraseña. Rellena el formulario y haz clic en "Crear Cuenta." - Nota: El usuario que creas aquí tendrá privilegios de Admin y también podrá entrar por SSH. Por seguridad y para prevenir meteduras de pata no deberías introducir tu cuenta de uso habitual, sino una especial. Luego puedes añadir más usuarios, entre ellos el tuyo de uso habitual. + Nota: El usuario que creas aquí tendrá privilegios de Admin y también podrá entrar por SSH. Por seguridad y para prevenir meteduras de pata no deberías introducir tu cuenta de uso habitual, sino una especial. Luego puedes añadir más usuarios, entre ellos el tuyo de uso habitual. @@ -761,7 +775,13 @@
Descarga e Instalación - Bienvenido a la página de descargas de FreedomBox. Puedes instalar FreedomBox sobre alguno de los baratos dispositivos hardware soportados, sobre cualquier sistema operativo Debian Linux, o sobre una máquina virtual. + Bienvenido a la página de descargas de FreedomBox. + + + Nota: Si has comprado un kit FreedomBox esta sección no está pensada para tí, así que puedes simplemente saltártela entera. (A no ser que quieras específicamente compilarte una imagen alternativa del software). + + + Puedes instalar FreedomBox sobre alguno de los baratos dispositivos hardware soportados, sobre cualquier sistema operativo Debian Linux, o sobre una máquina virtual. Instalar en una máquina que lleve el sistema Debian es fácil porque FreedomBox está disponble como paquete. Recomendamos instalar FreedomBox sobre una placa SBC soportada. La placa estaría dedicada al uso de FreedomBox en el hogar. Esto evitará un montón de riesgos, como configuraciones accidentalmente incorectas por el usuario. En caso de duda decidiendo qué hardware es el más apropiado para tí o durante la instalación, usa por favor la página de soporte o lee la página de Preguntas y Respuestas basada en los archivos de la lista de correo Freedombox-discuss.
Descargando en Debian @@ -1291,7 +1311,7 @@ dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of=
Block Sandbox (Minetest) - Minetest es un Block Sandbox multijugador para mundos infinitos. Este módulo permite ejecutar el servidor Minetest en esta FreedomBox, en su puerto por defecto (30000). Para conectar al servidor se necesita un cliente de Minetest. + Minetest es un Block Sandbox multijugador para mundos infinitos. Este módulo permite ejecutar el servidor Minetest en esta FreedomBox, en su puerto por defecto (30000). Para conectar al servidor se necesita un cliente de Minetest.
Enrutado de Puertos Si tu FreedomBox está detrás de un router necesitarás configurar la redirección de puertos en tu router para los siguientes puertos de Minetest: @@ -1354,7 +1374,7 @@ dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of= Si quieres compartir un calendario solo con algunos usuarios determinados la manera más simple es crear un nuevo usuario común para ellos y compartir con ellos el nombre del usuario común y su contraseña. - Radicale proporciona un interfaz web básico que solo soporta crear calendarios y libretas nuevos. Para añadir eventos o contactos se necesita una aplicación cliente soportada externa. + Radicale proporciona un interfaz web básico que solo soporta crear calendarios y libretas nuevos. Para añadir eventos o contactos se necesita una aplicación cliente soportada externa. @@ -1453,10 +1473,10 @@ dd if=temp/usr/lib/u-boot/A20-OLinuXino-Lime2/u-boot-sunxi-with-spl.bin of=
Sincronizar via Tor - Configurar un calendario en Plinth con Radicale sobre Tor es lo mismo que sobre la red en claro, en resumen: + Configurar un calendario en FreedomBox con Radicale sobre Tor es lo mismo que sobre la red en claro, en resumen: - Cuando hayas ingresado a Plinth desde Tor haz clic en Radicale e introduce un usuario de tu FreedomBox y su contraseña. + Cuando hayas ingresado al interfaz web de FreedomBox desde Tor haz clic en Radicale e introduce un usuario de tu FreedomBox y su contraseña. Ingresa en el interfaz web de Radicale usando el usuario de tu FreedomBox y su contraseña. @@ -1910,9 +1930,9 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 /
- Sincronización de Archivos (Samba) + Almacenamiento de Ficheros en Red (Samba) Samba te permite tener una carpeta compartida en la red local que se puede usar desde multiples ordenadores con sistemas operativos diferentes. De ahora en adelante nos referiremos a estas carpetas como "shares". Puedes tener una carpeta personal compartida por tus propios dispositivos (share casero), una compartida con un grupo de confianza (share de grupo) o una compartida con todo dispositivo de la red (share abierto). - Samba te permite tratar un share como si fuera una carpeta local de tu ordenador. No obstante los shares solo están disponibles en la red local. + Samba te permite tratar un share como si fueran carpetas locales de tu ordenador. No obstante los shares solo están disponibles en la red local. Para aprender más acerca de Samba, mira la documentación de usuario de su wiki. Disponible desde la versión: 19.22
@@ -1974,7 +1994,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / ¿Cómo activar Quassel? - En Plinth + En el interfaz web de FreedomBox selecciona Aplicaciones @@ -1987,7 +2007,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + Quassel Installation @@ -2016,10 +2036,10 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + - Quassel_PortForwarding.png + Quassel_PortForwarding_es_v01.png @@ -2030,19 +2050,19 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 /
Clientes - Hay disponibles clientes para escritorio y dispositivos móviles para conectar a Quassel. + Hay disponibles clientes para escritorio y dispositivos móviles para conectar a Quassel.
Escritorio En un sistema Debian puedes, p. ej. usar quassel-client. Los siguientes pasos describen cómo conectar el Cliente Quassel con el Núcleo de Quassel de tu FreedomBox. La primera vez que te conectes el Núcleo de Quassel se inicializará también. - Abre el Cliente Quassel. Te guiará paso a paso para Conectar con el Núcleo. + Abre el Cliente Quassel. Te guiará paso a paso para Conectarse al núcleo. - + Connect to Core @@ -2053,13 +2073,13 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - Haz clic en el botón Añadir para abrir el diálogo Añadir Cuenta al Núcleo. + Haz clic en el botón Añadir para abrir el diálogo Añadir cuenta de núcleo. - + Add Core Account @@ -2070,16 +2090,16 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - Rellena cualquier cosa en el campo Nombre de Cuenta. Introduce el hostname DNS de tu FreedomBox en el campo Hostname. El campo Puerto debe tener el valor 4242. Pon el usuario y la contraseña de la cuenta que quieres crear para conectar con el Núcleo de Quassel en los campos Usuario y Contraseña. Si no quieres que se te pida la contraseña cada vez que arranques el cliente de Quassel marca la opción Recordarme. + Rellena cualquier cosa en el campo Nombre de la cuenta. Introduce el hostname DNS de tu FreedomBox en el campo Servidor. El campo Puerto debe tener el valor 4242. Pon el usuario y la contraseña de la cuenta que quieres crear para conectar con el Núcleo de Quassel en los campos Usuario y Contraseña. Si no quieres que se te pida la contraseña cada vez que arranques el cliente de Quassel marca la opción Recordar. - Tras pulsar OK en el diálogo Añadir Cuenta al Núcleo deberías ver la cuenta en el diálogo Conectar con el Núcleo. + Tras pulsar OK en el diálogo Añadir cuenta de núcleo deberías ver la cuenta en el diálogo Conectarse al núcleo. - + Connect to Core @@ -2093,13 +2113,13 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / Selecciona la cuenta del núcleo recién creada y dale a OK para conectar con él. - Si es la primera vez que te conectas a este núcleo verás un aviso de Certificado de Seguridad Desconocido y necesitarás aceptar el certificado del servidor. + Si es la primera vez que te conectas a este núcleo verás un aviso de Certificado de seguridad no confiable y necesitarás aceptar el certificado del servidor. - + Untrusted Security Certificate @@ -2116,7 +2136,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + Untrusted Security Certificate @@ -2127,30 +2147,21 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - Si nadie se ha conectado nunca antes a este Núcleo Quassel antes verás un diálogo por pasos Asistente de Configuración del Núcleo. Selecciona Siguiente. + Si nadie se ha conectado nunca antes a este Núcleo Quassel antes verás un diálogo por pasos Asistente de configuración del núcleo. Selecciona Siguiente. - - - - - - - Core Configuration Wizard - - - + {{attachment:quassel-client-6-core-configuration-wizard_es_v01.png|Core Configuration Wizard|width=504}n - En la página Crear Usuario Administrador introduce el usuario y la contraseña que has usado antes para crear la conexión al núcleo. Selecciona Recordar contraseña para que recuerde la contraseña para futuras sesiones. Haz clic en Siguiente. + En la página Crear usuario administrador introduce el usuario y la contraseña que has usado antes para crear la conexión al núcleo. Selecciona Recordar la contraseña para que recuerde la contraseña para futuras sesiones. Haz clic en Siguiente. - + Create Admin User Page @@ -2161,13 +2172,13 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - En la página Seleccionar Backend de Almacenamiento selecciona SQLite y haz clic en Confirmar. + En la página Seleccionar un motor de almacenamiento selecciona SQLite y haz clic en Enviar. - + Select Storage Backend @@ -2184,7 +2195,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + Welcome Wizard @@ -2195,13 +2206,13 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - A continuación en la página de Configuración de Identidad pon un nombre y múltiples pseudónimos. Te presentarás con estos a otros usuarios de IRC. No es necesario dar tu nombre real. Los pseudónimos múltipes son útiles como suplentes cuando el primero no se pueda usar por cualquier motivo. Tras aportar la información haz clic en Siguiente. + A continuación en la página de Configurar identidad pon un nombre y múltiples pseudónimos. Te presentarás con estos a otros usuarios de IRC. No es necesario dar tu nombre real. Los pseudónimos múltipes son útiles como suplentes cuando el primero no se pueda usar por cualquier motivo. Tras aportar la información haz clic en Siguiente. - + Setup Identity @@ -2212,13 +2223,13 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - A continuación en la página de Configuración de Conexión de Red pon el nombre de red que quieras y una lista de servidores a los que se deba conectar el Núcleo de Quassel para unirte a esa red IRC (por ejemplo irc.debian.org:6667). + A continuación en la página de Configurar conexión de red pon el nombre de red que quieras y una lista de servidores a los que se deba conectar el Núcleo de Quassel para unirte a esa red IRC (por ejemplo irc.debian.org:6667). - + Setup Network Connection @@ -2229,13 +2240,13 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - Selecciona un servidor de la lista y dale a Editar. En el diálogo Información del Servidor pon el puerto 6697 (consulta la lista real de servidores y sus puertos seguros en la documentación de tu red) y haz clic en Usar SSL. Clic en OK. Esto es para asegurar que la comunicación entre tu FreedomBox y el servidor de la red IRC va cifrada. + Selecciona un servidor de la lista y dale a Editar. En el diálogo Información del servidor pon el puerto 6697 (consulta la lista real de servidores y sus puertos seguros en la documentación de tu red) y haz clic en Usar conexión cifrada. Clic en OK. Esto es para asegurar que la comunicación entre tu FreedomBox y el servidor de la red IRC va cifrada. - + Server Info @@ -2243,7 +2254,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + Server Info SSL @@ -2260,7 +2271,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + Setup Network Connection @@ -2277,7 +2288,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 / - + Quassel Main Window @@ -2294,7 +2305,7 @@ echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 /
Android - Para dispositivos Android puedes usar p.ej. Quasseldroid obtenido desde F-Droid + Para dispositivos Android puedes usar p.ej. Quasseldroid obtenido desde F-Droid introduce el núcleo, usuario, etc. @@ -2813,10 +2824,32 @@ $ sudo nmcli connection import type openvpn file /ruta/a/.ovpn]]>
+
+ Asistente para VoIP (Coturn) + Coturn es un servidor para facilitar llamadas y conferencias de audio/video proporcionando una implementación de los protocolos TURN y STUN. Los servidores de comunicación por WebRTC, SIP y otros pueden usarlo para establecer una llamada entre partes que de otro modo no podrían conectarse entre si. + No está pensado para que lo usen diréctamente los usuarios. Los servidores como Matrix Synapse necesitan configurarse con los datos proporcionados en la página de app de Coturn. Además de Matrix Synapse, Jitsi, Ejabberd, Nexcloud Talk, etc. pueden usar el servidor Coturn para llamadas y conferencias de audio/video. No hace falta que los servidores se ejecuten en la misma máquina que FreedomBox. Los servidores externos pueden usar un Coturn ejecutado en FreedomBox. + Coturn está disponible en FreedomBox desde la version 20.8 como app avanzada. Esto implica que para ver el icono de Coturn en la sección "Apps" necesitas marcar en "Mostrar apps y funcionalidades avanzadas" en "Configuración General". +
+ Cómo funciona + Al hacer una llamada de audio/video lo mejor es enrutar los flujos multimedia directamente entre los pares porque minimiza la latencia (mejor calidad de señal) y evita depender de un servidor centralizado (privacidad). Esto escala bien porque un servidor de chat simple puede albergar miles de llamadas sin involucrarse de ningún otro modo que para establecer la llamada. Sin embargo este enfoque no suele funcionar la mayoría de las veces por cómo se configuran las redes. La mayoría de los pares de la red carecen de una dirección IP propia reservada para ellos y suelen operar detrás de un dispositivo de red que les traduce las direcciones de red (NAT: "Network Address Translation"). Esto significa que en realidad estos pares no tienen modo de alcanzarse entre sí directamente. + Para abordar este problema se introdujo una técnica simple conocida como STUN. Con ayuda de un servidor STUN los pares pueden prescindir de los dispositivos NAT para transmitir entre ellos. Desafortunadamente este truco solo funciona un 80% de las ocasiones. Así que si STUN falla, los pares no tienen más opción que enrutar su comunicación a través de un intermediario llamado servidor TURN. Todo el mecanismo de intentar primero con STUN y recaer en TURN se describe en un protocolo llamado ICE. + En FreedomBox, Coturn proporciona servidores STUN y TURN. Ambos servicios se proporcionan tanto sobre TCP como sobre UDP y tanto en canales cifrados (que tienen mayor probabilidad de éxito) como sin cifrar. Como los servidores STUN son baratos y no consumen muchos recursos no se necesita autenticación para usarlos. Por otra parte los servidores TURN sí la necesitan. Esta autenticación está altamente simplificada y no requiere mantener una base de datos de usuarios. Un servidor como matrix-synapse que vaya a establecer una llamada de audio/video entre dos pares generará un nombre de usuario y contraseña empleando un secreto compartido. Cuando los pares usen el servidor TURN se les validará usando estas credenciales porque el servidor TURN conoce este secreto. + En resumen, un servidor de comunicaciones necesita saber las URLs de los servidores STUN/TURN junto con el secreto de autenticación para TURN. Después, durante el establecimiento de la llamada de audio/video guiarán a los pares a usar los servidores STUN/TURN. La app Coturn de FreedomBox proporciona exactamente ésta información, que se puede usar para configurar un servidor de comunicaciones independientemente de que se ejecute en la misma máquina que FreedomBox o en otro servidor. +
+
+ Configurar Matrix Synapse + El servidor de Matrix Synapse de FreedomBox se puede configurar para que use el servidor de TURN/STUN Coturn. En el futuro, cuando instales Matrix Synapse FreedomBox instalará Coturn automáticamente y configurará sus parámetros en Matrix Synapse. Para configurar Matrix Synapse, edita el fichero /etc/matrix-synapse/homeserver.yaml con las siguientes líneas: + + Y luego reinicia el servidor matrix-synapse deshabilitando y rehabilitando la app de matrix-synapse. +
+
Proxy Web (Privoxy) Un proxy web actúa como filtro para tráfico web entrante y saliente. Por tanto, puedes ofrecer a los ordenadores de tu red pasar su tráfico internet a través del proxy para eliminar anuncios y mecanismos de rastreo indeseados. - Privoxy es un software para la seguridad, privacidad, y control certero sobre la web. Proporciona una navegación web mucho más controlada (y anónima) que la que te puede ofrecer tu navegador. Privoxy "es un proxy enfocado principalmente al aumento de la privacidad, eliminación de anuncios y morralla, y a liberar al usuario de las restricciones impuestas sobre sus propias actividades" (fuente: Preguntas frecuentes acerca de Privoxy). + Privoxy es un software para la seguridad, privacidad, y control certero sobre la web. Proporciona una navegación web mucho más controlada (y anónima) que la que te puede ofrecer tu navegador. Privoxy "es un proxy enfocado principalmente al aumento de la privacidad, eliminación de anuncios y morralla, y a liberar al usuario de las restricciones impuestas sobre sus propias actividades" (fuente: Preguntas frecuentes acerca de Privoxy).
Vídeo Mira el vídeo acerca de como configurar y usar Privoxy en FreedomBox. @@ -2881,7 +2914,7 @@ echo "nuevacontraseña" | su mumble-server -s /bin/sh -c "/usr/sbin/murmurd -ini Ahora encontrarás un botón EDITAR en la pantalla de configuración de http://config.privoxy.org/. - La Guía rápida es un buen punto de partida para leer acerca de cómo definir reglas de bloqueo y filtrado propias. + La Guía rápida es un buen punto de partida para leer acerca de cómo definir reglas de bloqueo y filtrado propias.
@@ -4163,7 +4196,7 @@ https://exampletorhs.onion/cockpit/]]>
Cortafuegos Un cortafuegos es un sistema de seguridad de red que controla el tráfico de entrada y salida desde/a la red. Mantener un cortafuegos habilitado y apropiadamente configurado reduce el riesgo de amenazas a la seguridad desde Internet. - La operación del cortafuegos desde el interfaz web Plinth de FreedomBox es automática. Cuando habilitas un servicio se le abre automáticamente el cortafuegos y cuando lo deshabilitas se le cierra también automáticamente. Para servicios habilitados por defecto en FreedomBox los puertos se abren en el cortafuegos por defecto durante el proceso de la primera ejecución. + La operación del cortafuegos desde el interfaz web de FreedomBox es automática. Cuando habilitas un servicio se le abre automáticamente el cortafuegos y cuando lo deshabilitas se le cierra también automáticamente. Para servicios habilitados por defecto en FreedomBox los puertos se abren en el cortafuegos por defecto durante el proceso de la primera ejecución. @@ -4183,7 +4216,7 @@ https://exampletorhs.onion/cockpit/]]>
Puertos/Servicios - La siguiente tabla trata de documentar los puertos, servicios y sus estados por defecto en FreedomBox. Si encuentras esta página desactualizada mira lib/freedombox/first-run.d/90_firewall en el código fuente de Plinth y la página de estado del cortafuegos en Plinth. + La siguiente tabla trata de documentar los puertos, servicios y sus estados por defecto en FreedomBox. Si encuentras esta página desactualizada mira la página de estado del cortafuegos en el interfaz web de FreedomBox. @@ -4216,12 +4249,12 @@ https://exampletorhs.onion/cockpit/]]> - Estado mostrado en Plinth + Estado mostrado en FreedomBox - Administrado por Plinth + Administrado por FreedomBox @@ -4507,7 +4540,7 @@ https://exampletorhs.onion/cockpit/]]> - Plinth + Interfaz web de FreedomBox 443/tcp @@ -7892,7 +7925,7 @@ Password:
FreedomBox Pioneer Edition - Los servidores caseros FreedomBox Pioneer Edition los fabrica y vende Olimex, una compañía epecializada en hardware de fuentes abiertas. El Kit incluye hardware de servidor tamaño bolsillo, una tarjeta SD con el sistema operativo preinstalado, y una batería de respaldo que puede alimentar el hardware durante 4-5 horas en casos de indisponibilidad de la red eléctrica. Se vende por 82 €. Al comprar este producto contribuyes a los esfuerzos de la FreedomBox Foundation's para crear y promover su software de servidor libre. + Los servidores caseros FreedomBox Pioneer Edition los fabrica y vende Olimex, una compañía epecializada en hardware de fuentes abiertas. El Kit incluye hardware de servidor tamaño bolsillo, una tarjeta SD con el sistema operativo preinstalado, y una batería de respaldo que puede alimentar el hardware durante 4-5 horas en casos de indisponibilidad de la red eléctrica. Se vende por 82 €. Olimex ofrece una extensión opcional para almacenamiento de alta capacidad en disco duro o de estado sólido. Al comprar este producto contribuyes a los esfuerzos de la FreedomBox Foundation's para crear y promover su software de servidor libre. @@ -7929,10 +7962,13 @@ Password: una batería de respaldo, - un transformador, y + un transformador, - un cable Ethernet. + un cable Ethernet, y + + + una extensión para almacenamiento de alta capacidad en disco duro o de estado sólido.
@@ -7952,6 +7988,7 @@ Password:
Especificaciones del Hardware + El servidor casero FreedomBox Pioneer Edition se basa en la A20-OLinuXino-LIME2 Rev.G Hardware de fuentes abiertas (OSHW): @@ -7965,6 +8002,12 @@ Password: Almacenamiento: tarjeta microSD de 32GB de clase 10+ precargada con FreedomBox + + SATA: 1 puerto SATA compatible 2.6 a 3Gb/s + + + USB: 2 puertos host de alta velocidad USB 2.0 + Batería: Li-Po, 3.3V y 1400mAh (4-5 horas de respaldo si no hay dispositivos adicionales conectados al puerto USB) @@ -7974,11 +8017,69 @@ Password: Transformador: Entrada a 110-220V, salida a 5V, estilo UE (enchufes opcionales para el Reino Unido o EE.UU) + + Consumo eléctrico: 1.5W o 5W dependiendo de la carga (corriente entre 0.3A 1 1A) + Carcasa: Metálica con la marca FreedomBox Los kits ejecutan sólo Software Libre. Funcionan con núcleo (kernel) y u-boot de los repositorios Debian. Incluso el firmware de arranque de la ROM, llamado BROM es software libre (GPLV2+). + Más información: + + + + Guía de inicio rápido. + + + + + Ficheros fuente del hardware + + + + + Esquéma de la A20-OLinuXino-LIME2 rev.G + + + + + Especificaciones técnicas del SoC A20 + + + +
+
+ Extensión para Almacenamiento + Junto con tu servidor casero FreedomBox Pioneer Edition puedes encargar una extensión para almacenamiento consistente en una carcasa para disco SATA, opcionalmente con un disco duro o de estado sólido de entre 128 y 2000 GB de capacidad. Si ya has comprado tu servidor casero sin la extensión puedes encargarla aparte. + + + + Tienda Olimex + + + + Precio: 9 EUR (carcasa suelta sin disco duro, para albergar un disco tuyo) + + + Precio: 42 EUR (con disco de estado sólido de 128 GB) + + + Precio: 69 EUR (con disco de estado sólido de 512 GB) + + + Precio: 42 EUR (con disco duro de 320 GB) + + + Precio: 53 EUR (con disco duro de 500 GB) + + + Precio: 64 EUR (con disco duro de 1000 GB) + + + Precio: 86 EUR (con disco duro de 2000 GB) + +
Descarga @@ -10010,6 +10111,78 @@ 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 20.9 (2020-05-18) +
+ Top Highlights + + + performance: Add app for system monitoring + + + upgrades: Restart services and system when needed after upgrades + + + System restart will happen at 02:00 local time + + + + +
+
+ Other Changes + + + bind: Add service alias for bind9 -> named + + + firewall: Reload firewalld so it works with newly installed services + + + first_setup: Fix regression with logo not showing + + + locale: Update translations for Norwegian Bokmål, German, Swedish, Spanish, and Russian + + + mediawiki: Stop jobrunner during backup/restore + + + minidlna: Stop service during backup/restore + + + mumble: Stop service during backup/restore + + + package: Fix error log when checking if package manager is busy + + + performance: Launch the Cockpit graphs directly if possible + + + quassel: Fix stopping service during backup/restore + + + quassel: Use systemd sandboxing features + + + samba: Change description to Network File Storage + + + snapshot: Fix issues with restore and delete + + + snapshot: Set as essential module + + + storage: Auto-mount disks, notify of failing disks + + + tor: Fix stopping service during backup/restore + + +
+
FreedomBox 20.8 (2020-05-04) @@ -13222,7 +13395,7 @@ wget https://www.thinkpenguin.com/files/ath9k_firmware_free-version/htc_7010.fw]
Guía del Desarrollador - The FreedomBox Developer Manual provides a step by step tutorial for writing apps for FreedomBox and an API reference. It is available from docs.freedombox.org. + El Manual del Desarrollador de FreedomBox proporciona un tutorial paso a paso para escribir apps para FreedomBox y una referencia para la API. Está disponible en docs.freedombox.org.
Cacharreo diff --git a/doc/manual/es/images/Quassel_Installation_es_v01.png b/doc/manual/es/images/Quassel_Installation_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..14a703ec2c9c9b2db305fcb08651bdb72e1d76e3 GIT binary patch literal 74560 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 literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/Quassel_PortForwarding_es_v01.png b/doc/manual/es/images/Quassel_PortForwarding_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1c06772cf31bc70544af3d016f6432670cd298 GIT binary patch literal 45458 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⪻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%0Av0I_W^$+{ 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 $( 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%0DQGsqXzs`6Vj_?dyX=RIvoaWP8w`11e;y$m0JdB+ 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

5Uou5 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 Oi)U5OB%i)<_kRF`*lmCS literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/quassel-client-13-server-info-ssl_es_v01.png b/doc/manual/es/images/quassel-client-13-server-info-ssl_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..89bf43508bafb1b9814d8b49a0d2886c3fa25fac GIT binary patch literal 61612 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 R}{g`{TQJ+R>rprD}Kl$Lt>90ldd4*a(k^D6v= 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

UtD)|kstcaV32PJ%uFxuT1OK- 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®Ewg~rjjx8ws<^p@jD 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

FSS?G+%JgW|RXL{Z!~g`p-oPO#MPnpYg+p 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 literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/quassel-client-4-untrusted-security-certficate_es_v01.png b/doc/manual/es/images/quassel-client-4-untrusted-security-certficate_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..c19ff7ac62830da08e3634897452a3b7a5b4f7e8 GIT binary patch literal 98602 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 ?N`}B!djLycQCTNQr*Faza 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


$NFsw+IcE-^xMrV7ggKNY2X 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 UV#&20_&E_HeY4}mN1dYn3z`QHGynhq literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/quassel-client-5-untrusted-security-certificate_es_v01.png b/doc/manual/es/images/quassel-client-5-untrusted-security-certificate_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0199d2a8bf6aa31bf069bf2a68af917fcf8a95 GIT binary patch literal 47963 zcmcG$c{tSX`#wwyC0j_6C`pne`>w1h`%d@i8Q6GF%yVl2rr*%K0DY!hSO z8N1)*_x*mp&-451IiBNqp7+sFz0J&P?$>>v*L9ued0np})KnBG$Qa3ph=?c@AIoYG z5uHwjzn7dNf!|}l_Nl@jXFQ}8wa&qR{^u;i;s39A%ISG(x>$R9o4H#N**Lp6S>5xn zaJRB@_ONyFTshq+Nknv=NKy8Y79w>Ks~g8O{Csvl$XdtR#|3khpD{WVtw(vMRwhEU zR#eyj7i#C?ruHV6#H^z3MIq@-wbWmk+zND921<0(X>9a%acy16mx8W3Dt+z##3olB zw(I1f3zuK2xejPo_AhoB)(jaxtMORK4W^bpcjGnuw)WnKNPK?7IrP7O5MC1Zl7hyb z?0>&_<28bvZG!GUZ&iBy{m#i};I*lww=XpR>k2no_-+vA{paI0Ke9QCu{`&&d zQwy@{--EMWoJsxf%iKt3KPxW$Vx#UE>whlh&`OMyP5GbK&)#8V`_D`N$M;P7j8RZe z$(dsW)0`7@P|DfEpRminR;Wsyt`cE!O+4gNWeoY2OxoJ&gEq&;=yEQS4{}Aud4~Bk zWF!&tKM)kBjfUp7_B=(eJ&7ml*16zdIw?S&)pw54G+9ENnMyJvL5=4j2ZR5N6SEzE zik8Fk-p0!#I0*u}CMP4bEtUUuQXOh`hw557Yc|MM>Xci6L(dH!I zJI&R}%IJp7v)e9pyjn7JeS$zsM)H9C@IvE|7n5&2bCFKUf#S<1(}(P7tTdF9TfTkF z9x=i(GDG}!)nas!w?whr!%E3|{Ec!su(EN<7!TaJn1T^Y%vBUkoBF+bi3>Bsk#U=b zGOp87PqgCuFkh5v_Mqy&iP=P?^O&`TM^svUz|mgG(L0tSyGR{`>!4&B$MNeS8(qCU?(cj1 z?JL`@dAoX)%IZ8rUtiq+u~O-nVo={S^M~>n-+laP%yvC*d|&W#Z^>K5yfq1S#Mf(| zwHzE*me(pw4kClIEspS1N2Eg~#;md7xS*G(R4`R#B&Q>DSQn_O|BhfS{JeVung$)G z2)pMT)x6sEO&5s&3xyT!zGZDYYZQ0D00na*+%Z?A~fT@j6lGsY!NO_LXI zhp^Tz-=L4?VIWWUjx#w|>6=FCaCOwg1m9Cn$`RQiE7-ia$v>&~7FL#HVCB8?!jJ0D z@YwM5=sHb;PA{KGtlwC7kXbA1MRs?6_~l+hUZit^x#c5b?`4UPgUha39IGQwhY~Z= z&WLlE8Vd@6hM;$FQZqyef8+ClAv+QXSEegdbW`55 zgniFib^`O4wI;L>abjBf%#RLUzJAR!2Z8*`&E;HNojQ^imGM?i%`bk zemQ&VVGuu?`X1!knKOvC>yelAK4oK?`W>>-f_ng8o1_(~#t|;SpvL*(X9nG4c3fAt zlAGI>IPEZbXeKS?Sw(hp+vG4cp2wU?2vMga8jRqP_g-Uw(MjA1@6?kdX}uFN_KSad zxhGCJN3q2ML2y(OmpEU)|ebNWId zLoKP=sx9Z`o{XCe=cuFQ&z(K3S|x=>?`Q@rxCJb`9UrS6-Nbp!oE46#a_V0oh=|-- zT`M|CdKXtoVIL=_=E=%z&t&u}RAX|6?L8KjC78cRSsu?OTBDTtX>Kr4P7-|A5Dhap zVpZR|G*u%$$-`mIpasJIPwW0viHh$v6;H`SlcZc436e`*DfX2eO-(n7;yv_&i4U7z zG-ux&+n$lHtQz1VOEu1-!WQ?Zw+b5k6R#N`AYRg#b{LzQs6MHzy@y)3c(>##H z{=tg)y3lH-Dez_k6yEF zcav1D(a7mv3ba0^;EM7>$#@8lmt*Hl_2~-=08VALo(!`L454d(Emr*wmrWnm!=2iy zL2>X>=EBGiJwK4Vzoz%zQamQt4oCNGZB)KOAzvfc*yXoC_gbI_o@f`lTOYB5kV1~= zxP0??bq^!2tqq@vbxpKnjp<#G)7BnIqwJQC8*zQcgeI12!f$2eb7GCDGKNg8?a4BF zpQ5n2hWQ#CAHwCbl~n$PZum;jMOt+Xa@HGDDfcHP|GY?f7VA-9fSVOY=GwKGt1DF~ zWDkGGZ^0g)50gPqT*GFYAw2n!p#^pvk+1BM`ID9Hx7fFQuQ>=e`W#QZb7%#IM~f z%B~6N)`^1i!xk$FGo2#!cHUUkle>A5CW4{qp{aOvPn8qFkSQkl>xdIcFmb_r&r0O$ zX11vZ{*o-A#Zq2@30C@FCGq}$o~LQ?s&L0$>ACHJ|McgoGD-7A`sQEfNlvp(xk08t8UMBzM(TFQ!Xqw2j8 z0d5B`?Z%xFL+x++N)(&abj|O2eBrtujc0o0C+QRFA>uOH(0SB!1K|8SpRMTyOaG!e z2i^HI2TC*S=g#=g)~Wyo^*H+%wp?H2M{t$dE=KIDb1_~aZG+IUFOnZxj4p|)U2a+- zpoYH5p3+t?bxLv1neQ1ERQ9cxoG@NEO?mk|=hiwb~hzv zmIHd*?G;soH4;w_+vv2}og_3i_qCrt2KGTszLNxLbACF?umIjsdQ1NsR94rQ~jQjyJ&xHN$qrCJimWr%p}Kd!5|SUh};_ z)m5{eqRyo={u(@%E%)dqf7w?Kj|`hxc%*EFrKHkDdMeWz4V@=Bl`7@^q42V9yA|Ij z%{vouSy!{oX-&4h?{#MN*}4ZgrNO$Zya{11^)tS&K3W8xRp)-l80#AT@VnHJV;*K& z*kq!fAZ58U$zEx2tzuk8TN^4@Tn&>hcM%QJxY>;f!UyW9xL(lDo+C;0F0JpOBy+cn zIK9UY0Aecp;VUsU@G?(cbaV)AA&` zeNqMg)ive7wLcic8qe6{g)ph>X-XgM9xay?Z8Sxvyzjhp5Xf@8(0lx*!iGLy$HCu! zLGT!#C)LbD&TS&BT4`Y6;Ei--@80~!_B3jv#p1ycA*imsZH9jQsBOWp;akV%z!{J# zz#jC+N6jrf9Q4@a&W4%IS4Z^XuWiQ>$J?hZVI?GMeWL0QPlF)&-~=>2$ulxP;(W1j z?f1&g%fz!=zF%CN*G+LZuBKq#cU1wr zS(qs`t*-sZysmrS*z~zoQpm1|O61w24c$iT0E@UMMWIfZR64TJ8Uj&?*{aR>F}Lo0 zqlx4F;oh3+s-A;Iau2?KuCDGr`^p_4^fBwVLDw*$10n=tJ9+s8+F`@=MNs_QpGbb$ z3e@bIMw4Ep0?qihDtNh1&selM{%K*CiYlK#Dw1HA9jH+v^o?Me)}3|@5NTT}y15sS z6?+cYv2L-^ZpQz*_&qU9wOYSQs}~=lFR~55UWTR?BpTR z`3*jkv)~m_Y~BRi;?$`U!^X(oh1PPe7*(>-pi;?n)O^ERCTe8sPpjW`{)c2y8y@6) zszP!Y#y|SD{Li!s1}C4Uhyn+OD<;j|$z{I{VY}%Y0OTjcJ)+p|onoGzzGUY=+2xx0 zQg8~CPO02zc!=iD*TTkLkyCGT83@vK3j?-&^yxclCFnb<@$kh4{=;sMP~*#>M3v{b zZ6oF{CBZlzF$p?_fw8pG=5`Jpzf2VBEK@!MUPae$s$5vXPO_CaFBD-Ng%H6`wz@NcOGqM zJ|uMzu4?TXV1ue8+3-9i<8XaQ_NF@h4F2aQjWfZ4g4JGsrNn=TUlNz10OP=qO7N#u zf89~XQ#M++cWc6vYPRC;BEJ_1ciwj_E-!6>eogku<4eb|X zC+Vl{w=Pt7x{dx21dfz%$eyC;aky^9Imk&>T{SErJTd$4HH$w1)77m48BJJHWHP~} zzVop1Iqw{Q=hLUal?;~X9Tuo+{DPv3(u|D#c145suqzW=jJOy5%=CT3Sg8q{M*k>m zeZaejGj}^}e&%Y<);4`Ff6Pt;d2{S|m821|e+{m-QNh=ObJNl`gN(C;HChj$?YVz{ zBX}jyPds_{ue1Ea`o4)zYL=W3T|Z7yRaduX(CtjLDRXX#_SwERWbe!f#EY?6xCQQR ziycdbkP#|%5=zM)bj*}%F#Ns|ayV-{fMk00^7^1}nsiyqk{?0j4t;G z3cZ75IFlv@6N)MJi<`PJ-hcm&$oA85#&fnK4)T|e{WBlt=-`5{3av4=?c`+V+Ogr> zij57Y=W{MV@$522`c_O@GwahcBgM)c7(%r&E=^qlOEdibMBi7pJ3;8OInUa!2KUHi z(EB2GsUX|Cm#)RcsD2*2y12O9@9h2Sd0Jp&uev1C3B#0;N=;5O>Jul^Zkal`(Ft}A zcq<`h3=Fj~1srEi1-?2Ws#Unn9K{>k>27Vt+}Imsx6N!9oW%j*;AwQ5@w~;XXsm4_ zI3>T6&Xy;EI|T_XV@OQp>;~z<=K^VAhAe|Z zH-C+f#xCEUYVtFJkMuykv$lN_s6$psGqr+BEWgt5N2fjYRl2^2~7Xaygap_uM&G)yRht4l9;-B=mXrkoW zt@^u^l%tOuG>Xc~DrF>1K5FEbSJunak3A$HW<60j^Lq-rv=1{e0wUs~nFbE7%ZvI) z|E`u?jDC$qm$*;}_hcMA!tdp^W~uA++$-Y|>I57L8+`>6HUAIuF2;FC*=JNrJlC-3 zU8m*FABPgyYMSWK^E&~X`}7LC;`M{}mJdWL(&{LTJBC21MTNeJ^k&t_=NuKXyG{%RK6c=d4x0Pi_mM{79Mb*sw7@ zHr~MV|6=x1S6w?Pj_BmTYY^#4*Jq=Tp1RUQT%uLz=)6)I)wQN$AKr_9>>B9Pe(hqE{MtTNtE>J{hAf0NO@*{1lTRWE zOiSC;`Lri(NhwLzR=ZrGX20gX-88<*tbCL19N-I9_hgzZL?gntUJ*Ri*8~%04*r-}KXib=S@yvUr&z3)9whlp)t=>F5 zcL&_8@AWgjp4X7ekF>QMJKOj{STPefX5i}lD8aZ5;<=upV!tHxa0rX2OCFeoxhmT<&06{0#vfT3!ZpgKREQOPNkx)+#{ zVafZ5^WyEK$0sCf=8qsa>{_gk1k>2#-Sg5n_fC6ajRcj{-%r;3{^TGJIHU0-TYIng z{Z7l}b32EhXwIJsWcgs_rr~*-#%M^&dx_tB>?7*KkgXO!6Im9OOI-wFbHF$4{HCS@ z2BbSZ9-oww&Zx`f87dcSA5D_1AftZCQwA-Snv%VczE+pqFHaQ*){7mZG4}h4hZHRn zw@D@kQgReLf!b?vUa07qHJ;e+@;XlvnIZIs0dxc^eS>lSFVnCRBp*UDQD?(}VZx8( zE94r-^RUiHeDXGF!0)CrCv2#<8_fK#Blk4WKGjqCR|(MyuK^j>CHPz#m6^nh47c%z zg&nSzIZD0!bIDjY`>Aj%eP^PBTY*DvOtnUFI)%{!uH(L>2S;mV7s7&-R4gN2H@8@n zt<^~rY4<;7pZdEE@t5H!deW}xUvfvJ0@yT)2j&Q*P-(p-hIFEg8<7PCJN^x8E3&L+ zzw^(4Z6(VUn#D1|NCB0YC<5^&r`3mW_66>(a>h4e_vsA6R9xj!<0@x;4( z)#c{kga@uh_Z}>n{>sxS)GRqM!D1gL@IY8GRC*mLa$cljnGUVPLQ-9`5Ppm|ZXtBSN5`UKRNJS0ttnLD1q5y3I zG7{%S`9<~j*?X8=SRH2q2$`mbFKUvme4w9s@J9928*5azVwr5kpt}jfEsIqBL=b*T z{Yx^y(IKw8iX(;vu59ijKiSLQG!uI6%BsLmlc`apkzeECj`hSfA$mUd;u{`sAVweF zranh~9;JC!sUmD$(T8p?n7C3t4r${PctRzz5y$1N60 zmKDq89L6lxL!Z<*QFd>Q;;aide%i=8c4qZ2|C;kGy9Q~6mh4REkbt+!!jDn%2)$HK zQGs+m%8b+vY;lUg?py*}&^a(o#Ye7`44(U#eF5A7)b5r$1Bl zhw>8KjGKHwrpcAChTvz76cttjX{%6?a-R*`d#Aa-E419Il(pQP~U3UfbJlp?5wl2N&-P zUJZSDgOYRQT_wj9+Jtp4jk(Rv)fUP|l6z z*`OI}|ByJ^E6Tbs1Sgzm-D{*VGtiuSilZQsca*!6@!MGsgL|hwOvf;i@BNM8Gn6$# z^StT(ByzVSVc$qweU;Szb+a=y3sMgJorN#OTybw&SIO~a(e!ju5;U2V7xH#;{gwWe zdx{x>E)nzFAN8B)!PP&imoUHs4CzR7L4!PWh;u(P>Z+Mr6` ziV;{oa(0w1v2V$H90<*n+Qxa}0q!K`|WZGw>PC!Q!Fq~~MEh+9$E{dc3= zZ8U+qh`q^+$d$)$`El=@)+qD^LC=8n0O{={-E@6?_m2>q7%Lt5s)LbD050yUjhwpL zCACyD;&hcT`NEJTa)o!Ht*U|J8f*o*nG3aI_Wr(|bXKEiFoUpjF;V2tySbr`psRlI zUos+?&SpqlR;{>}a`X{7yn^HC*!f0D@@F+wqYZDHJ@~^#e{=tE@~A>h`z#V2?96}= zXC^_O9|#R=ITS-4k@h}y@D}|dHTp@9bEB{O85qPnpv|CGU8JlT`WoF`gmx)$LWR7o zHR_r?nx`Q78xvi?X`4)HG=vVg5b7c1bb*wRV{&~$K~p=IoqcD_yP+MFRD_=6fvWkn z2mhG`sLnn@h(2}=PNlZ#O}!DZFT@j&$VyP)4Jl*yF149fzkH$JxzTVy;n*qDl0mJE1xGX(LcSg0fg1O?4&c> zG5GW{)^k)N!jJGr4>LNIol*^o&(fS#hBNj$-8${L9komGyTezG7Wc<*#Hn0F%A@bA zXlv(;v$$$-#hAPki9xk(elIT#3nExusa0WPx{>0h*{56)W~D#c;GGd&bZ-W4-ERHc z^7nG;4isK!eKS$^*;ai6HC&MOPKmAU=BzVjbiX!>16hZ-BrPs7Cm`+rvM(AxI?VS~ z%&E%DYj@|*J?OUfYsNwA;@sI_;VPV@?6z+U>qX#jt_Z|y+}}|X%*UY>53^||O`v2j`1F&#RNa6xfUZMLf>bno1k5 z>jlyTUkJ%Vf86u(2y-8QG>Cox!7~hsuG0$ILpNhKz_q5kef#Y4sP~X|r{(WY@6H1+ zyGb=zTO8MI$?<{HWXf9t>e$CBtMN=z)8paw80W(*`&-j1p@W?v)~SJ6r8B@ z#z2A*aJ%w3eyTsr?yd;()ue)~Mrf`)y`GSR5qRJkoQ<;x-2EeV;$K5=IeyneVBH;^;Ay%aSN^``vJ4_3JfHyt#xC-GiSf;&YyB(6SrkM zsv@O1V@(6Clhf)YPFm~OI^`UVTX9d+UHHERtVqH@h8~wZXA&E8)P#igH~D`4-*<%0 zdU*IH03CR?a`Yh^M>}Jk%i|f47-(C;Bi7vK#@t!{4GcgK^S9${3p$qe2_Q+@vKK7* zmNocaz6cUGKLGht^{l2=ioukEYwwU51UJYfjhgkE45uoCQInv@L;Oi;>A70PU`;>+ zo)-$ethh8cZn;xs=-#{lgPsSpXdiNdZ$;M#)si51qmf#>m)fc6x) zN}#e}@Ye&XWXnz=Rr4|j2~D|p;RY1ca9$Vd?osO|Nvcp+Dn{iEV zAk93>kLQi5u_Xt`Yw1Vy_!+PqM}M!B!R1q=jxQDBKZpb^a}}9YJ>{okyzIpopfI%P zror(Jx;UXSwyK#Ut6;LdeE7n>vJJ*5sQw74T|%6+9Kc(np`^HAWHfcuMuNehmLKD{ zDdCpk+;Ki1txLj&99)kUhwpz;x&L~H>%4Ht&Z+Fpiuj7BKo$N7GM86)KP>7q_47-> z)}Q9reja7N6W~lua}K5^zPZnxN?y*?zY`5_=TD0cR{6u4_<4;rl+S)bo~(TD3#8~Fo${NJ}W677qi2!@#^aLN;Od*klY{T*?ywh?lFVKvMa zcRso34-2A=JgC>^t;(%6M$u@UxaMqe3~HY#gYI0IAkaQ2Ngte$QCEE^(m|xWH1JXlsFhZ8kEpRhpz4VH`DbCmpx8&FXB~MLAmX710~z3Gxj%T0fnxUcc@i$ ze$*SfT1?FjzZ@%}BJwjTJ7ep^(An7>rq2W~cvNt4cez;yF30lgyW*v0cbGqG;H zc>Bt>FqZL&vEVH?gZZfgCctZr`=mG-blt%Cb4rX{={etJ&6}E(Vc}-hlXiQKNPK@l zDx(*z#jPMrmj$guTS1=%ECEUj&Pva`Z1(0QbM#H=Wcl93vTE<2GuzzIF797^An>5+ zYDryJ$GW~yyt=w8Q({Uw^s1rl25sh|W#s&Ij;rx$FF zsF^i!8rM@uE|X2JJCVGpychA63B|FUpK2N#9_1TOuFfU~H{Vnnb&LvZT+sJ(s7T`9;N!#f=_=M-nrc6h-Lz_SAzHkT_!)07M)QdADL1Hn zGAQa>O8y)3?EL*%0&RqB;!jIBDz1Cn@50f;V#5D+cFuStYRqn2X~|aqF-hI@@!1uZ zK(A!*92w`d-g)xQ(cA63e=*(*UeKEDdn|O#?p2?Y7iMCmCI@xb>D{0N|d z(_84-t?rVS&(X!zEF$#DUO+j&J5-Y8=LtOsKFv5N-rPmSZ^O~pSK@<=ADk!@$X;3Y z+d<_~Y{Bh>Irw?i8c8=1!5EMyXM~fOCEpeIBxr)T3!f_F0jZI3|JMSck3asWtA21_ zIgw^_`DUgm5%P9a)_2%dNKkD&(S2#OSFL^RUxf@`IS4$qaXw1Uy+{_4n4aoCHU1or z@l|A}Icd%s3N}MeJl_7A$2a4gUI%KH7_PKHb?7fQy#U8UrDXi-{Z+|=cZpBf;G+!m z4!^@3A{bLmB%g{VS*}dH_0N`tFYneKUG+Mb?-5qH*wN0Rr18X z^c2K(T8B9e3g4lh^YUBfy)k*cMkzF>^(^$fYdn*cIOX_hW;$9gz-3}KZi8#2rG1lO zHSRI{tQQLACLyh=NnNu1+$`|4Kc8)g+vrpO9Ip_c92*m(j@cHUKrD4kl{%rI0Lq{^GX;MB7Q6ef83v=b zJ?l>yt8yy>Z2^-B7o+4vM0+&3;;-l}uhTD&f6_}#VZVaJZTZd-_Fumu?&10t5ESU; zTgUu4w{}qE^5xMb*Zvj@+yGvEoZwUckJpYSZ-(t^^FrwU6stUYJZnNH@9>=YtZ4j` z_!zq>0xDhyZsV>^!cS{nOASS6e8RjQ^yIs`yWaFWJ8Y3eW=(APB&DaCngxD%EG(Xm zX42K>Hr9iACJhJvRYvE&WLth|!IVrjt}<`e$1nrqu-&HJY|(cvu#pOhA13`^(t_XM zl@Nfb6ZY8fAPu_w{v3zxU(c_V6w^kb&+P;(F0uT!N8RVs(r#WMJP;6Ra=33~;{`)w zdL*q9>`>`VzpGXZ|ERk5yIozX13btK46=uOUtKVbdF5usP&1Dw7+1kfM7^%YIOuc3 zS-u!Y;=Z*uvzISF&2p}OI>f(biQQf5kBf8OnnZNnb0q~=8PEd^%^J|@Jk+wdHTqom zG;vlR4*=SgCwzzpF*jnx&R#ySKryw(Q0pwN@$8{G9hfd)KPk=dLauq^Kuxq`VR^4QR$Oi16nIov{p~qHQcw`m!ND-0 zq4P(+eHy%py|Wy83W*YNYS)Fi|FJndBD>MRO;Yv7mFz~#1>8=HQMwEPu}XPa--SQr zi<2X;;4+wUTio2#G;w}-Zq4y?!4pqm7ftOP-U4W#DnbMGHR2I}iZUe?GJn8+U?JLU zOEz>twAgibiqmEW4+FiusC?=0+Y`BgPu|{nz2h5qGRJL94Z~5x!*)Lgskdsyf^;>t zry_)52yb{!ajGow6Yl)U$oE~D8CcbS4Q3^Z)mK_&>e??;`}*m~vyn#~v4P zba>cD{O`Tq;qkdvHtJek6Sx%YyC7z{`HXdd!`zd%gI&bmCh z9JBP>x%vV5>5`$STswsLx-(&6rVtSjIF|m;cSe}224Kf_eHF_AX&v;{d}VDOAeTYGK)5FwskGU_H=U*ByFub&TV#_iAO<`m_Xm}CbO zfE`|$AW?oFc(&3+en~fDMmNamuK~4!s_E79OcF6yUj!aP z5g-dW<CtQ}b7v*ywW_Urp>wO4u!hrEd-i#=ADj2jM zt@lefJPfd}WV~?ULfz3G(64i@?!>q>cB=-i z)AnRY^=>T;C8ejcCv-}z%tYil!uuDt+K&C`&K*9udiF)t5~VQQWAA7MS7(+QM`>kc zD||TGF4_Nhf855$C+RU8?^xKNeZ0S9Z}e56ogEy~j-L^ZfZMq4=hPHylj&QS;9tU2 zN1$;Bt6@@>_V#2(LyZ~)*3NQ{_$Q+%Z)DJ3UJy(~t>RdY6BA4VcVm|hIboK~d(0;c zDY+N!D%{o5a%QO5$imus#z$x=gpYxoN14`j|79J*f1cRpLXpRdyo!*#3Ic!QognF6fw_=j7u9Au?7nKyf5DB}_?J8Mm>p2sSQ(k+gsF zgN5$FLB!GJqA)GC>z^JGaUKLraMOg3kh1t`Di+Cq%UIOregMpw>y{W#cO~)lqV#*U zGu0+~(!}0(TJ0T5+VrMRk5oD!#ch%46!76`_arDI(EmZg=&J<$V5M$@^7v@wScQ$| zMoKrYghcfC%I%bH8p^OMFrT;Z9KiA&@pZG%7S3(X^Cx~|z+PZvX&d3!Xg{(fn4@tX z?FPVcKirdWa&lVh&p4t}?$^`THwz3*PfALXnkR3}yXq>+KL0UvLqd($5~EAqTAPPcoEd|Xk`i@6vD{FL@9GwduL~6v(2$d~PrDnUyrSU=6Ty^gd5JNn(oxu@vg8+W1_CkAy*ZqYo1BIa6;921jTw|m}$8fAdovI7Zhc%FEu7;`yT>Q2X!kK24MXTlCk$@0II!{fG2^mrN}cfvLUQ=CMD`(O z$!qSU)$nqBCCIX;Yu37WK{QkCT**-9!GXAO$>qlJ<0Ksa6RJw5tC%WymI61~=|A((V(^m*(To>fjSK*pVEZq`}0ab(c>P0&FI)yl)O;S=)oQNds9aAaz z)e74iv-=8m-?9Y*eVH}$`ZN1%-<;0s^NJan-PmOw&OpNBCANYoIJz43TEgdR8InE8 zxzW`dn}%Qd(fw{rbaGcR2-$~zdzpRw%C*?#oy3?1k4=f}@vU8d z!hmf?O0Htb5O8BA^py;m?865m)*y<1|E9^;ihOvTXIU&mvQae%&ynWq>F+N&jzGz0 zhy+|?>P};hCW)4RqEan4w6*4qEIvOWxrp3uo*nV2?S)92-x6&yb@ji;;3TyAv(j=P zK?-|WK3gz*g}Ksaz~%JI?}%e$mBXgXKukY=<8$L-@k8^?le!$pRx|eR#=$=nAfd*!`BglK$+YfjLhQ3Ok2^&$Wl1bHB!DP!h?BmNb^li#87u0vq^K%`Ldl2+Qek< z|F8{;>FMvQ=!h~tJ$>aCUE{Z=fgt2%zwtNB@5cQ%l%2=w+V7Us{h01dNJ>s-WkyO> zj^__8FflW`uZ&4J!<5?Oj3tkCW@jKW-OSSQk!}P%MD%J7##-oMC^^>A=@){R6_q!)K zLwhVy@iqup`Z<+f9@jC&wxmq^ZXWcEO}CX0s_*Y(gPYHM?yO7 zNfl}C=pakZg*dbe^7`zXk?gH%}tWTW-fc zDFZ&Uvm>mjsR`#$US2NEMK6=rKe>jmb#ltd&OTv@@Ya?IrM!Mw){7)0Bn;QCSvfn$ z6cyd0lgq5FWo#T*wXwO4#bVuMQk2*uWLe8yx_Wzou9aez`1$#N_4PqkMlX4FhS)ng zzJapE%;T()PY0~R(b4f^{~R>$zgAZEjgBf=SY-3ZgocKGd%i%=5_IsOzP|qZnEYDC z@ot723hU|Z?Xf&6V(c@0i3k9gn4An@1 zs3=D#Cv|OYx$D#)D=OkbLrGFq^6GjK@Kgn(mAUz=wKcclZBNl?;B_m6{?Sn`kB~R= z+5G-_d3kdS3peAR#CBUxvs-w2z8@Ua_Q87Kdopzjr{$lUnZ1ONS$B-`2EO;0nn?`>ip5MF>3(g(NQ2fJ39=8DCB6I+=GL|-L$kcfY5{& z>SaB}F_Zxy1LWl7rS0$9Y5sf-+>rQQX(lCx{Cp}afOA&#@+oLMEZ|Oo)Br` z!oiLR+S|4c4%s<5XDf!^WN|DmFPB$TG$Vr!ECSc#GFE3&T->)8_1oIo64TPG0s^kd zsedjh$*Zi4PfuqqC@g%y80~(Vt?d<$^qD0$*q82ZWhTm#yRX|GaS&#r1S$f=0O+I0 zZT2`tpmfpE(fmR}9($X1{*oE|vq+ zSTXExDpOli(>^kioO&PN@y|_LTl*WJ^wKrkvO zD43m}p9;BbJQ1&J96PYHwB)3tqXPh+K04h0^5siuRn>OopK>Mk=Iw1k!ZOyv((*NI zN>(37WY$lSg@5gFo12@a{EX8~)lg}If}~Ee6Yxs7yG1WCz!WSkxvfoJoEhn;0MK!B zi%k)7`HjJJ?rz}ioSaU+MoC$@{kim)G$H5FxBNqd@t}<3qw!<0Je9O86e{Iu0(al= za65pqxw-k^-)$)~8=J7>gN$Q7$bFy-K)Uz<%+G~L!-=d{WE{RRIo=zBCz@K#CrPDt zi0{{L(nQFf05)(f$^;Ow>vFu*2*Kt*amC5Sg*ICL3Il_wt!;Qn$XUo#4^p}TD8I(W zRGvP)KtVzAsozcn4G}|276QHsI@uzG)((IHl$B3Jq`j+)ywrwkc*)DXh6z$4Lv)+W zcwXY|u+UHjCMHXO;$t?}==r$YssJenQ|&qfdB?{6d-uw|etnH~&a16W zUS4({!C>->izTb9!(9JTQBv}Xi+62q@-HkbeAePjRk;mSu(DEMn6&Zua79yFJEYI{ zUq!DZ4&(>SrT_#la~mRFj|DFLxpy?la`ZAenGs~$V~Ck1Q?-Uhh`vmc9fznl~L&n!SOWi=+?pCLdNeG(JSqu-ifcaoGs$Ht83z8q~= zH+HAEG$?9n(grrN{N>Zo)zLW#6j#@`H8mm-WB~ex{o-QoFFFezMK9O2D0+g+P{vQ+4&_lx}%tw6U)O##b%#71N0;1FfW>+{{C z0YEIwWbNm-|AOb$4l0qSd6Fk3CFM8Dn2SCsCB*_xzM(<#!-o%_i;8mc^6(ES73Ad3 zT3K0v9RH$o7a$9)fscphJEWKdZlf%y9z@j`<>$`@KpJ|Ab^|qluZD9u^^z#CF~gAi zcG~Hc#$(B9XY5qB(D=X2xqdj5n#aXOMQ(&;BWoKQeIuh*^D?z(&z_d)eX6Tt%IlAi z&yEc>_3^3cs=4^2MS3Fh%a=E%JRA~UtQkvqsbdiV0fD-$KhGeUE3V*iWAU@6F&GRS z+M*Y#ZV2|~*Dva7m+_f{-HnsC@v?FVZVr{0*dP#kzTv>sphe**81*FQUAoB{3b>)< z&ctb;KGEIQ&DIr)GJ*-67o%Et`jCOL5FnrgNtlsgkchmzy%pJLAgA(3NvZnzq4=dC zp#j<6+IoI8ZE_R>Il$O&Nq~`&@pFED)3m$W{J@=IT?m`$>1n`>riqCv>{4ZAC73sV zhKBU@^h_NbF4P;VT3Fl!Ao}{_PsR^ZES#L8x3^CKSUT+ZeXPwB)FL3W*a#(WWRxZz z1lb(mmC_xmlIORWNVls~SXj8ZwFT_=Q}CUX?sD*GAa}~h$iOrI4I61I)aTCdBq^<5 zfod1qISm>H{FJ0ZSVn8TA3;w~?_*9*NP@915Fz60`>XIX21drLva(pHNlNT-{7kKW zG`ogC384f*mS&2BtbF2Es7mg>t{(G^x@?SiB;QMUk~{%Mb%Zg$y5pmL-~=G&pgJTR z>c~27E1XynkfP$_FF^vD7QZ1*0AA_8+C&P9*{m7^i35gahFM?-YTR%nfUBvkA(OoF za+)+11@45n&>z74#Kgp4>93kTzKMJ-eIsxqW!!bT<5EXQ2aNY=>FR=k4_(T41v`^r zEGG$q<*<*X@AvOln57TQN06*@^YV5VD|*AxI4DKQDJkdAoC3N8WT6Lan=4nYOb+C0 zo)juQF8TrcO07vI$eGsGp>V3;unDG6fUvN#x&=@uFXz?K)de%j8e*lrU6G6a0@Pk! z8s@0h6Y>hj0a~RNg>tJg{65Kv1ob~RX9rb2F*TKqCgQQogN)wJD#G?QuaJ;}pP!hK zkn?Iy%3Bpk;Bmj~xKB zh(Y5fqlLzWsc{KF}~0|5air_K>rf zD8o`OpG7U6)O#6S-ODGQD6ksja|44S9WXBM_fkv{_8~yN8FB+h1c>uW2{K0WN=fzJ z&hS5p3&@74!fvnr{Lul=3Gz`>)1woO)*5x$2L#HewY|E@I|*`km=F9?z$(I>PnpPNFt35gs-jvv77+kryc}C}2iq(rjWOwRKtZSy$-)UTq=4 z&2*>uZ}us?Pe|w=9*)T3fN~|`Lj`GHL_`sE#l3s?Alqmf8*}H&&3PL9FS@=vp3Am> zztWVVj3lWPAyE>N5!u;0L|IwcGqWT`NJ6srN|GcAku8Mmm7OFZd;N~9`+2_4{m-x0 z{ks1sKI6L1^L-xgW4y21Y&bx{MstaFfBACB$tmA0uW$H52inWx9uCefnOIp>ndK$4Pe>;#??@O*OiaW< z3V1)agQahUjmq56mdg0 zwYykRC2%pr!o=a$Bd^Eg~$8=Esj8X)j&~T#|gFm4%gaPz@^+J+PF_Byn>k zC95|7u;!!pFg$(Hb)FqK2d4?ZK*=918vhEwZ?e662`1+D?c2oH9kE5VKXIBfS{@fh z{OZ+%IAT#IYvo*T-8y}9EVn z$~w!%Rfc;PEOigX#iax|=0u3}1rHqEM*I(PuDUNt+r4NRFE`}ML7!M%y%S6`2Xn~7 zloV!kZD=jHYWcXh?k2EcnFuti@4JJ$Y=FM8q`wiR+>o@cvT{3iv#rI#+#F)ipcj1U zqVC2#mr4FUH8mEZAXGXw+tkq^b@OJbeb3IZtm>9kuI*?{xn??ATba7wzkOQ?>X&#^ ztjh2|I%gFQ-&bX;K-nVDW@3;~0;mGqlL8Ht6;S085)!z?Pi9uR71?PB!shnv=V(XK z4iY>_QPH&&6{ZmB<>h7Cg9mS5{{{!|E08#RAJ`A~qocRi$k~}TOZ|$I6Yoj+sJMcH ztIf4_wY4zoJ_-mp%g0xZVho_%Jb-IrnCGjVZ%Hg63!X!`wjCBc>|tXH_J0<_l(n}i zzM-N%@3TdbJ&y5Iw_5F~jUN;j9))x2jsEP+)y!&>v<)pLEf+hu*LMj*6K)#U6S#zu zs;UjSqzy!zyYYby`UJbh;`G4Axb5mnz@6f@B7sNt z{HG^^{S4jq6?Mdtye$z74GqQTsjaJ1%52rlQWs!oJia8$A03D3ttUvsyO{usEq(I+-ZVdJT1 zs!5277m9lXqVWvQv*wcpZ$THJtfFFfH1_L&^_RA`O7rZZN+-bY%XYmevBXl8#$Wa$HxcCe0J}6wuSMC4Vrr_WL!KK^n>K|=Af)qjL}Fave+Me zzC&u;4+wuGv5hCARSI+hu_J(4y}iA;+T|a4ZbrYQn?2Uuzs{5WVW#$uQ)rDL04Id6 z-|H(=c7x@+8e#;msHugz?XA$?m)cT;ww{15g@uJ&J~uXIX(+ar0;Lhy$f{(G=gy@~ z-lazyuj=Z`<5Hp4{#jT697vizF;i0R#yV;oOvy6ycD|jCgOd{gUpcTFd?d-x{6HRi zwEPug?`roesV&cBnL&4+pgX~Cp%w!TzH?jR!o_%NFY{o=?n}qC+8?wETXLLy1i+ z3p?*7gS9kTu4(bQ9@`5sU6qZg>OSzffo695kUf90w;5JBfy>{KUw*_?*vqk?clY7( z%J+OujKOiBNKn(70CO&1_NFSSHO|F!yB^DYdyAdkx`|Cs$r`MvsLp?XLDkCam@DpA z!2P~#`w#t5r{33N42&1n3G{$Ae5^V7N|c~$7`}1#`JG$W&=Z|O?HnFXk`?vjQ_}tt zj9W>?LJ{fz=_vDg+zvUpJv@<%hYQE#RmQbBm)>p5~aIq zcj@%D17}E`DEs-79Xp$=%F@nG#qx~L(I;`sLSz9Fb|>aWSa$L!#^pVfTf;I2fdm%& z3W=>S^{5T@8y6Q7qkowu^`Ttged&e$Q@XTqz*uyF3b$i&G#{aj+rDE5bdy0qNY~+m z52Pf~tw7rrRK2@lQ^s8On~s4Y>`*Nj&&%dt56=mpYXZ%TqIV9R4B9N5-duy=;+e!5 z_8!_z92Jyn4%T1Yw{O|Z74hiN>&gC)D4^h=B0w8~M>gS>LCXLo1VFBA;MLFLqEV99 zOH5ja`ch$pYivAs{(MDktzS}pl|I2-kqgu%F2_A+kdu`~XIBH9E~cj!`*~#_ReB<$ z(hBO2rk-AS-%n7A3ZBa?lE1_)9D&6y00D;24DTKV)-4~Jz8utQ!mX;Rs)!xTP6M9% zF#iGi?GW717er;1IN`Lkwb9%vL=C-t`xZ=i_*eTI z-+uZ&yCP1-LrccMFLBSSmNzdY?#v%6$XWoBkZP*B!hgmZ+%z_R78x0GAvQ--_GPM8 zR#;%*Ug_Ps+S!j&Q&TwxncU$`1C;G=O{yY-p#5r>0M#{&&XQ;vkMn*p1*I0iu zZH;9>G!p$fP7iU&-UQ@m%hD#;U=-L@4`CF2uAA$oP3Ocjo}96`b8>#nS)c(B;dW6B z#0Kme?)UTkjq8mq2THy7Y|S(RObHTRe+J4$jFd|7 z121(Ml$orcFHx~41-uUqiP+~le-QuKd1-TNOsRAMrP|9&LPhlr>hunlJEFIL%_x#z z(GIew+3iNj_)%}i-63H?!Fu#zfA zg~*SIiJ?#A!sYroUphKiOpm?F?_6y6T+XFfsZ(%QD~p+y3@kY4*lqKb8=$j4VMPZy#ERZf9lmnQ!h*uT z!tmY-+RGV!QTrhq2Dc`U0159-3;dcbj#-f0M@V-6n z%}WgHS3ftEXuH(t!z)w%*Pv4*o3JOwTr^(S|f1-Xmtw`avukuHuWjL%j?$-Q_=GOG>BDBMHGs86`WC3dw^4m(;Wlro5>gndqTYV6BuWHB! zy>(}2r%OUc+Q;x{gNnKNQ_uZw+I8rT4DkHaAVa69Y&7@kt&l)I!(3m*l-T=+?Gq!= zWRC8C__)UKg!rEp1!1PxMmtcZpynU+S_<3lb=_a?Al~0!QhE4%yTDIwkEs0AkGAxd9)S0w0!Dp`qvtol`Z?OTHU%8$~{+A?;~pX^Gs^_tXHaq zwZ~-{4->h#^WF&}H8&NhXs{is47fb2!61>NY3S~LjZN<5%a^tgNBQ~rPgF>t z54q#zd(3b`yj(-fI*@Cp&++RwZ|?9yEdzqJHrW-vCLg@!NtvL!Vzf{(ckc_tHSAlE zt>gg|JNKom?M``I8ygcdN*v2*2yAbdnVJUMt{WH_aP^N}72U~xc=SfSac(mU^7+cL z%v7W{v!ilX$@(T8TUuLvU{O?}N*7vP8jJNz=1Fcbg<|mR*|Y1YW6L`d z4JdYB>DZq7OaZJoWa-!T0gv1>xB$YQm8DsdW z4O6I?%pEY8P!mA5L$LNJ(Hj*ICd+A}gnfIKkYgExAJ?V~5GLEJfMkS^4`MbXL{+xd zJF}#p1_tK7UClCr8N<8u5?iRggM%8|3d8v-KyZ{4aG?;3w6zcQL+l|xt$l3t-CD9s zF?;#BCARG!+wYuN+*+?KMiG?Z$uio3+u7$jC77;Y6LmrTi&upJ^Vb3KLxC;o@Ft=u zy1j*5<-7QyZRVxp_JfXv!@AiH+Ha2ViXxp`^@$vZF+}WJj*Jsv)c9*`S zXfWP2WOW)gh{w8?`vQzQMnP7kZ_;t&{GW&p1tEN8C%l6 zBs6K)WY{MSxss}xh-BU0QQFWS7^j%C*wYooNNxj3>kzM{qPluz9cKx9YgeG3HR)|t zt_T79v%MwN5DT$JpMfC9ZAR(2Dk?H;OS+lr+ofwSszj>G`%!_Rh=F!I5iQ2fqOGls zW^8bJ@lL(BN#v)2kNEbRDN3_6sKh0f_dhH@eh62f8udCtRzkiUMLQ#d4g5V*wkPO$ zsM=5^*mI7V=`VRtcmkHSPHhUw2X`=47Tw2nGd-~>{_h5WN{l< z9W(`A=ir(Om5)9DS~AV1`0XFwzGXhXTXaAXdrM76Dc4FE=7)?7OroqJq!MjyqTX;l zImY-%e~A5_AgHIE+r5>~5P}WxBCCA@i{BqZ|21vJmt*p#>Nt)&vu<}#J40=_e#w#enEu=R1z88lPLuS5umV`Po5-X<$G@FVjfX9!U!b#K8)JG!XV2CXWgZvN4JIE<9hp` z)_*Llag01IhL@KY5;l51ecTXD_WR%i@7JxLR}+}xJXApyX_FH}nzyiaep@WlJrOWt z=$}Oro6ve-b5%gks9#>^|F{KQ7j$$jEv=+4_3IZP`7H!rcneW7yiQzP+=ug}z^#Uvpi0c`#@cY8#W!ro0OOge3!hN>$4`?3AA;zF?} zgQcXDPGRrY7$&@Y8R#YiUPm7b7#-Nk=unhUCl^qzlB^LMX z#)Io0XJ%frw=$A>idY@6cbNWlW9l#*CBT^IuhB6`H}(s2?tVY#!BY`(R5jEm_b5Zq z75)-hJ#aeUd{u&=vYMKk!;w;B!`i(2b?1woQ*M-<+p0==L+)*;#hYAGdwZalJ@;b+ zU2OxY*`+2e#e>)4nxDx1qJG0MZ1?>Q=`t5}oEymri;_+t=S0*bXvDwzOB!R>I%B8X zw5@6?7FckcVHuzs4;miW`CJXEF_stjZ9){qg(PTbaG@vm?@EthGpqCwJq8B|IL!EU zk%GHbd&F+&1O^4ocHWGgF5PhiQq(2r^YW=GZB~WIQxqI2ux84I-9R;@B@M+@^tn8)5gO zNqYb51qcfZJTJ}WcNeFPS>9_{ioSlOf;Oni=2M}6EJBv++_}qER@r}~NFV526;}eC zc@s4gS_|4Zoj4~)N63(%yX(513&oQAS1`tgKB#nba8T0F@I^o3!i=u7O|Lihz?;{v z%RYYGg!_nMvhDDbniI#5A75Q=FR2`xo$j6T2#4%O-{HI~?BmCeUPsRZUVQF+! z$uqX@?nPAfo0A?trI4f8dpBE@8WV|Z_db92?D1VCh&~`Q@aI`X#0?9JpB-b5#2BIB z?hBB>y;Z)TN|er8$a7akrT#2b9jwQR+cerVZh1jll|)f*kE9)j2L37wdZda zDSsa_P4_%<0M)QjXyp++D!T4-YB)e}#2<~2t(In{EtgK0|+R2ck38A1!pc&w!=`oNXwaD-Dm zyTTj-i4U?kpZoF~_Cx2nxyyTc=pit@z7Ky52S^+=`ZG%(sQ&DCd97cxKQDCR$B#3S z_04G>&ZjBMZq*phe92=6SRMULWc-57uY%~pyFl%^@9PUpjg3I4_uZ3F2nMJ5aJ~_K z8)!+O%nb(MN&za0M7S1eA9Vk)B2phwC2SOzWLkhP3 zvr9~D>=^KUTzovnTb^!jcU|};__}02>lJ(%^v_^yU`oJDKDgqHYSKU}5&JpRsv-y8 z1~66TiFyULK7df~-@i{vbcF>1)&Xc;u+(d^<>2f_2aRU=ARV1(va)oF_SLHqRPhr( ze~KkG{SMk#3?dXAIJ(kRQVr{W!B{i?SqRJmG(}%7%9tGjh4c;m;yV>?k`(RsbCLRd z*^$ym(CXC ziTBu$f;~idv6LL%voPCs1uo|D`^pwc3zu1T#t67PsSD>MED5)Z+$Oa9%f{`IWiSf( zOfIx|$uH}{drQ%ZKWTD7y4h6&*44{ib#-+RxnAQMj9dDM4qUpGv^Ggq8vtAmhX1UP zPy-lNxDJtet2wds{yl$KcsLf?j+lqlMHKtEMS}KyeF^d&jS4hXnC;<2G&1#V*Ymt) zSw@)PmU?#|;J}%eX; zXelX`f;K-4rQ4{6s!2nQjT$t{)6mcyn0O&E!&_ivVzM)}MH(oavv`q_s0FAgSxFqw zkZS1O(fDuk{ZxuR0*a@5#?-u!xFp3Q=tf1EjyI_nJ2bYPS z-Vy9!z)37k2zXCpaarIYH<dyouL@%@K zxb(KRHipQz8{Efutf83UGzXU;3eSst>FB62VI~5*YnJDco)-Fyl6W=W7une;>vp)# z2e(le^p4n~)em|!<0qvAZ|x&_IQc?knTZg~v@`vsFfZ6pW(0RtO2b+gA!|FXxkAvob5(<0|*+DekOE)__kPScINso=Gq3f~@LPIA#tdxoQ`3oOcvhW2a9X*qa zZ{}$7p)^0Lg%xR9VdIYi><`df4{+)}_4EvbWEsXziNRG|5yRj}P&-kBKUa`%-GUzj zzXrzZpF2HzM!)iy<+q8#iDm)Uw=Y^5>q^Cjn6 zRg~1nlEZajzB$X!Ukk}`ZEX$vQravF$D2dY0$O3XKVOi0Y^=Kzq*lJ?3NI^<2AG^) z%dx=<|K^A6N2yYXlJN`_P5L)?SX3`??ygFQ2aW8_$ z<8#=&ng%H%8g41cV+wtr)6DJu)9 z=zFc<_y=A0eMJ;QP;VE>HwJ_s%Q7Ev^*H;@T_`q*&TlmxCyr=51=wumUPW3{@bQ<1 z2c(zC%<`UNpTHmmN|ycfY53--kVnJ`~aWMH%<{dV}a&A`?4tDYI2(+w~j~YUxp|&e8KIs>*F5 zyM08tgfCU+z>FK*IEKajop@)a0$Z&F zq$J=SA^}F@U$dv^48NFAn6o;zDk=*Kt`U`jqBEpav~I8EBXwao=r6A?q}b`L32?=Fe57~lv^nH6zii7tZ1lLd&RtQJs}Q- zO%2%uCk$QsB7<#jf7dYgDx_qNaDQCMtGZG>snsVrPM!LM!+1^~r!Kr{fZNK-{U+S- zO0aNp{^Ja16~DH%$*9SQc>ehQ{aeXu_=c#tc_uw)8B0c5+PCtDl(^8a^_&nl zE0=f&J|?r(uYDpk*&F+n#@`2bxOkyx3ipZW+R}g!OM+V2cj2GKXx?)=Ex59O-)Pkj zmGSAH8iS5G6I0F%4j7aMK5l5<%KV{Vxax56Uw8ftF1xA!Df4fNfG}(W6QkX#F;t%4 zP&apPGed9uArzz#N z&vMWlIIzn{6d(_FD=aZODTW})V(27H0X3k&!Gqx-B(Qxm%iY^-GTkhGj8$cs*~NbK z#vzeIpSoCBQW6@n75!+|y5MF(WZ>LJi0~36Iwa(5UsqkAs%apb{)R0e{16V z_f3z_Cms2v2d5xhlGujeuRsIvM2047Y@O2;)AR9jhc)ywlUon{gf*XGqyZq{~QaDz@w>Bva_dx?H;&)@#id-I!f`__2SuI(efwZrl)%+>Lm8L4i~LWfX1~D zLR~{c!yWg_a&q-KS5M+-CLF!q8jsHBcb|@KVQg<7u!gOH6AA({wh51H50GxVx}^fi z(Tus47nB>__g=p*R{EL|8)%v=g8_sLqLfD@LY&{m%#(ak{i$T)z{7IxvKtN8#PwS{ zRMz^On)f}}qryVNLVKv%c-COxgNyuV47j{JbrU=(vmH_RobkW`%{{Y#*Hs)LWkk zCsIaOl2}1BS1pR~^^-qXUEY`$Uf@R0nf>B#Nr&5m6wN01r`UcBRAnTFD(`6^W1Pp!w%nwr?`qr zi=DJKOFZ$h|MNd9(wLW}tltw#PRnG;?9e)HLUxH^=HjbE-I)&Q9Nvs9WKoq&!bmj<$}k`p2NopRHo~( zWCZIL8bf8bZ;%#}6B0yanhSL}uClC{K9zRSqL}$9T5t;~A1JF=BU_AfZ{&6^4v>2i z>veT`Ol{ALe|^sV#k-sx_ciq2FHO(d)Z$&%QDY<}8UI*ta9RAR{$`fAT1ypKpD$^9 zuJ3-_tHoFt{WK!9z|Dp;o6;viMkH&!%z5p$vxhD3HnEsHinj2dKcQc879hMM52qaq z52v=UZbNDSrgWUKxRR*w#H_SXQMA$q1t}>K8NQ(jkxT-+fMSrdf!K*7R*vCf zbgac;6@g#voSaoK67(3nW=oJ6f<}AC0FZPu9cK`hE_lH4N-*&Ne z;~P`6vT;90ZmBOGi@iH}u%q{hQVr*G<;QxSNw-!S!yd*BtC$2hq-AJzFez9%dGELy zOCHFsTz&cFriwD%a+R#n%#nqM^bJpXwf^t5|6aqGp@TCQV(*A2vvr^HR5tECN1rQQ zT|Q6NDEU&ujUvVEIu#qKZ)=I_jA`{v#c_*E+XEW5O7K>EX0GUo>6$!n|0ETu_zX*& zmy8k$jk$9ed;S0R0#|ia7NptIFAF5RQBYS%3^|_kxq$=R5UL2 z9_LW*sUwj)O|tFld(u}t7y+;NxjfLKFJ}5`Phz_exzG74ixO}VBYi(2nc0d`6H{A| z+sO{c$H<5g4rRhuOurXaRmF5w7>Ix^fd#&{x2tGqEU3QJ{?|u2!V~k}L@|d&NI{xg zs_Aam&Jm6;Pe0B7iD`;ZIC5Gx$)xm~2x~u{Y4f@ASi#QD#isTv*&;U%sEKc~KmV#w z`dGM^D2-3iL`_`KYX$Z1BHv!e(H|aP9bBTHn!mF6NrW-@Iv8lMU6_kdg+s8K7;ix( zzN8flWl9RdDspn@6j0|CGh3mn8sv7uT*wqsLohSoSl&5LGXj!=GtkfNj2S!}_OCVW zd;ez0r=>S0iGFnUG+!=UO75$x>FM?Q*%lI{mLAuWlWM%%b&j{i{Bf_)@;jX^$&baG z3NINXXj&#~cKF!aH&*wWcX+>M)f-{Bav_R|J`jWg&;W92-%biIVXi}G(+$y$qGmn`Y4s6u0%@%-j|_GfQpAeaR5sDNr`2W+A19$|8Q)QsPk!%y z(xzV?jJKvg3I`1?o##f=U7+*pQn{R%#WpH&Op33YdN4&z>Uv&wx6c-Y%K#q}SZ177 z@a0u^G@K5kZdalbXW%R@ED==TcNAt23Nnc`Nt8&uU`=@RVjGWig{?J8K^<34-}~mq z#zKW;99C4_2t1rKtFXp_jgL)K&lFE=60nU;C|c?F<|}!p3o6?ynlcBTW)rCeCH)tGPmY=G)mN2Oo|^ovU5>jUxmPl%a64-2FH%u@hu$D z_Uf%K;!BC&E^crsIam4fl&Fx)D$i=n0Nf)4#|IFKhMeFW<{SVM(8VJ{2ePK9C>qco zs*~Yf$UaOEWI+MIYzF!X;PwvaM{q2-O=u@)5v*>3IUY0+$R22&aK9n2!W<#{q{a{( z2rM4x0@Aax1g}5X1wH}(q?19teSP==Wl+#9<0lyU6V+GNJR)-6fp|gIjtD(ozwQO5 zeR|AueQd`Ji%L2bVI9XAs>6Zb7)DqcHawtfVlfeMUPK_qM#A-=9G^vC3WGiH;!t4S z-35tg?#q{Z;r)lIhn|v{dI4Y1`Vk!1XmdQ4Tkx=)uJfDF?|3dac~(tim+W=B5%&^q za`fNud=Y;81&n3*$M289CC5z*5K*$=sYA;}Nl6JDsidv#-)Z6T!#(X^r;aeY+i})B z@ux+%Bk$9( z4B`@z_;GX$1N#HL7U&PO1V~r}F5tW*oW)zWfG9Z_+vr<*{b*$U6Io^?Y{$TA;rb#z zjO?&TcDstYx&%5kIH{F;j3F!FSE!EF|=O9#_BsjPc8A-ebdY4TokJ!B|NFyM|EOmlNaymGKf~6y@o>=X8(g7$o5XsT<&><1t z2Ii;f@E1au@?aJc(O{9G(0oM3X30%g$QxA+kwUnXVDX1ZL>k^r$HKLbMGx$t@>Et; z!639H4l(Dy41D{!NriuHn$`88ak{94^--0yPgmJ#SVnV)of4>8SubtN@MYwvz2mue zeLP-IXf^uNUBTMR8%m1Toes?$eCkHW;-%cP@^hv5^+w0Z-uZLsO3U5iFv~~C5`rR9 z*RUTG;aNyRm`X$F9pQC8GRbAgE*MZg+&W;bxz2$E6v%FHcj#Or>no9H)Oe|bpbpBN zshQazqKa^uAh`xl1UCB_gdX8>$Lpf8gxQCRbb7k#$T_G>Ctq29R>$AVh)^ z(Lpp4gkj$a+u(^Agb*-`&@Mou)Pa+Cxv}SM!xkw^<5VnUeH^WzhE7`R`7gBqs^D!0_*jH{X~ig z%+9%+4TPNZ&0pXn))d-gbem-4-IzlNpXhAxy&V-i`|5!BT z9t3U;g%gw%)+6X)L{;_O+;k+4#cqRAO5~~_MuS^&@!ac6f;1T{aESdKqatS4Kof+n zh1v>Lg2hi1TNFyyj_xER7IvHna=Oi)f>k}g9)e93J+*Z`RWbXhxWIe~s)O9i!w zGRkY!XQ;2g1&ww9tH?Fn!}d$auOWj1$5^KY68e%2)DOiL zVZBBkR_DF_LtGW2GdQoW%)9poB--?E+DvgmL}`b(wBzvQ zw_MZ4yoah99^HI>F+Hm@Bl>xlOzUcnTH!{j*;})qpHD*~q$?f{op3y%5TzOBaJ9`y zI!WyAj!QiOE8i{uxR*?=H}z(3+W&^7?@3J1?xbxA{T|sK(|G3FYE1vhD_TERMq47s z1=u?*R`bD-4_M<0&TX3RvU#jHkMpseG4FY>G|p>tS{j|&+^blXm*k`q znKsuB{&eUU9?lE+rdr6nsVG{m<&A=Q*SiMhV7E4+94)YLHU z1zi|hsGpE{ZS>5<-QG32I|J*c8sIq~)?0}UFRZvA+jWqEp>n{w$NI=&b;gOg+Yn-04Jjzf^TZWNu5}6pC#pNr2xU z_#1Nxz>p!R6D&2Ha?Thv8%{B#{K3n5!NmgW(VrCI0Gp@)PI09_GpaB>qEb_l;-Pz} zDWJPP=w|Ca(dG!R8JksQYmbc$2rTeRc$J?o3D0Y&%;xJkyE>Nc{nrbiiRXWzI1n5vwL7(#;t}T-fAXzro{C4gp20UuGZFy zsr6rkru0X?l=l$X?!TAE=G-rnkLfg&X%Agw9x}Zd?mEpWsr2#3pBs5cgvjHXHu3n2 zCTA$UwDsQkipC_v%*R$pE>DM#V)$D7rtgklLn}-)2nryKQ0qEXB#FNuw3J7Wdj32k#^+V&$LHsVTe%G#BEoXSXdlAO zCB_)9@ac(sDw2!%HXt5gM_A?ur!@m3FBk0S_!r`)a2CCpVp;qzsN0or>1qAF)wY_j&R57uWaoV;Z9uR2DWXZv<`3Ef7}!H zf$s@lRfnU>XZHb|;}{JGixId?A5OPBpm1wzuA2gX1<|BAcy#>Xjk5_38VblP&A;Y{Mhd=L2QVO;=NB*q`o21sDz;arkQ7EM=e z?$4e!%FzT61^Q5Cr|InLYfHTjt{)u**f0=F$SM~pHAW9w^TAOug1|fSe6=H7km5G( z;WN*I zhG zrgcvmTUn6<%E51G!u=yT6R(Q70_dSIF%YNS1XCt>cCeTzi|917+cSB&xgzT^4CeP- zwr4a9P+&nF3$N+%iYoy=pyjZEAq1H+(Dch4S1>`R)of&OdT6URVe7|KsdD4oai)rZ zZ|ED&2?)qy!$GJbRR5eD5dhba8d%350T4Hs)MxM3Du8e(U_fdLf^$^Rtp33sNlEHE ziTco^RNE%6bMDZQxX919Kbl@$=G1J9Ehz~98gdR3+?Bif?;)(71xFU`n*2}H%pW<7nYby}HKix> zI=Z_J;M+jcfnyDRMJpbAh@5buA=cqGenn3o6M`TR9n5F>JD9fo+V4&MMxLuZ#{z6_ zhRQ_P7To)Bxa#}G?RR!jP3?R}fBj95w*xh~U*)@UF~(A8uy9erZH0}6?kP_T-U0%0 zx3-GI_G_HG&3l7^js)*$|Jkk0r(Dc4Uq0rPzYi$)MBT>9s?4fdR{T(dEAop)4+Z)8?lcx#pI_>|7QfReu=^WZ9}DI zJt-1(txjagljbaaH>{n!8IyzmGxK&j&iNHd!)=+|v+B7S>gi8UsovW6CMASreb;XV zuL|<*+P9SdZ-g%Sy&ZhtUWC?{Nd{cc*nX1Q>Ev^(Ey+t{ez}zFx@QDFM*cld@V{6U za*L!C)3~-Ovy2Q;X&Xg{c>@zq8t)C3j^`guiuyDEZ;wc{%6Df^nNuB?@%nb z7#X! z$I4SR`1J+{weBWIb3b%@=$!IVo=YJ|8CRJ3p7X~}cIM{-j$1emZT9u)VHsCg?PoWLxsLq7NFu&cGznEUd99RAw6ps9sCtzh#I^Fi3ey zLoJ2($!81ZUGEP+db5?UsYT4c(WXR0Zs#;>F5MM7OPk2=mVOHd99hFM#a8z|+CEfO z{8p6>Ov4v$Lb5$dfhkY=XR6cA9tjF@gToR{47&2agQ^$Q)mk4I`3?K26?-Iv zQVP~@GI`QLCF&-6YcntYv$}R|%y&wMDdu$FpFBKY04FCd3mRqcrJKGC>z^n;J$t(d zryguluqEP&cHLSre{Z)?j$cMjLAcS4i_-5EB`hcJQRJVB;5?fjapLFegg(QMn(3-I z>YyO);_`X-33mY^opQRpc3m*BqRLOEn9^0)hU%n?imQ!CDD1T9W@}|DP>yImX~K_x z0$w)DV{1Ql?AIBfXjQhfjNAYH&B>-DH@TfQJ9R%F`lumoq4-a&&rF;Rw8e#pEU=%n?4(m$fR`y!Z&u5YET|HRArV zdgZW*My47jcw%e|U>lIg_sK~ZlcB%;>RfiGlQDxE*45P&0y^^8^6`p%zo#%N2HXvX z-%L6V%`PG0up@9`40A5f;e21ILtoL=<%dJuf~S9BR=4Nk-~Ib;&-1>tA>DgXF#p#W zVlberUI7sc#dC#UWM#e1%X^6a4$}qb9wM#X@clb2IG#n4&6qYDUk6({w&1AonDcCa zUIGj0`X#UF=|tz3F7<8mJpC(u3(q2pYLAl(*FFq6dBJg&ulUf`+}Hy?`q;gnb_=hu zf@;{Fsvz7jJS>eEKKM4@;uPg{MUHR+-j&=QyXEE~49Q!TJ~FPo(dY!SnAdLJq`mX55Gps`<7*ck0UBOm}H#)ROmr&RB< z9;lS;?H%#5!(d8+pRGNW{Tsb`ZeAX|$W06I6d%CQ8hZx^!l#~NP(@2i`^9^qF$8{T zu%)mW3{@P^OTq}m{^hLxgxp+suoen-e-sW#GJQ;eN`Mi+X1o*Q+}XveT=;3GP#MtA z55>ALB%$=zt3(#kf7(Q@h$I~jrF8W#Zw}?#_jh&<41T48RXZ)C76|U7d`$V|e9x!T zs}>!eEgLrZthf;b38ZO(QD>FG$0cbG9l=uS32`WDhX@K*wPa~xYL;+Pt@cg1`+Lp@ zY~068;qJ-e{>+m?$NVcqk5YWA4nFR-RHs)tF_&OUm#q8{mTqF~&HB<9F~}KB=;$fE zB~r;i`ce~ak6&D_&4QYLtN37;>DS6@=}s3urJK^Z)||*Zb?U?1ytdBb@5?dHKUgb+ z7?}2(ewvv3ksOIH=O(1U6Ipr$4<5Mxs>^~mN~+H|cb}<0#m?=Ud|=}}N>OgYt-J8N zOD;sc-%@d++aovRtEc)wIc9qKlc|kS@!2J@VQuP!CHNveZx1g=P~^*B0Ie6#&_2T4 z%E7rdnP3X{3^xP~d6IrFi6UDlB3HmCHkgY=*gkb{k2Aq+0}m=Dfj0iU9BK}R z6{r=gB5*d$eIO+G=mQ(CeOYrkNgR_8x|??v{~8rc&oIOAp11jLVVlyoGY=UZr3pMN zjJge~&2tsg%M?`9Q2Ca00-Xgg_z-qP5-=sOh63GVmS~mAsq|Yt^y3SC0k>M`-K}E( zcE?BYtUP!ljdQWN0HqK)@f6H7%D;FfLTFthCqtc;=89qNK^Ugf4MCohcy;Pm-f;S6 z&9`%_H|9(%FSDhYg(~Mr2?QT4$d_abP0-;m;HI-yzF=z^M+Xb;@3UcI%V(6 zGRxsZMau^_wpUhTy!0~dd0vL>1KI7q3ADKAsfeL_@0qmk^k1-Hijo!ciy9?z37c|A{oGxwn`*Pz<--E z>;1YXONXWh=Wbtp7CYo^H})*L$S=k8vu^aj80R`!KJnm8U4M5V;?3IB4e&z+I#?g*)Az2*vQS~fpEn%w z=mH57-K|@DP>dmQgw#BiPhE(1y+C%~yDBYs?WH@9@G?6ZeN;@e>Y$23WiVP2UlMK9 z^|h$;5whqupUh2wP)b#08!xp544@)KAkpf5PyTcP4g`c>Fyjns7`MQE)y!b+P;zC! zXRBmoY~LUK=07uS3uIwqRWH#s<~oQzP(70xw9XmY7kZqNx0hTn;M~dS06G~XwM;d< zFS_Wz14z=M$2bn4NtR_+DTzt0`Fp;@BIVJGqh#56RX-=q>Lxo)OFL7vJe;#&zc%3- zp@+wGup^n>eCjAhpv`5H_h)42gVTwuU*_qu;KBC6Xa>B0o)#8EYxc>!i6<$hIOW`m zwG@bUQA5n_`CZ4q$g(F)f_d1oZ>-hwms&=KU(@ySIF=-3S5W!a)B7LrS{hP`U-)yt zW+){|m2F>8h33_VTn+eMW@KJ zM>Fx*=gLZc)G%TMQ74i6&^{h5O}W>{Wa_)2iSx5Nr6QPVgXy}w?78Ob`HC#B-@dOc zE87yzdCl;KM@(y;8Z@Y(=`UY;NcTO`M3QLFUjc!$a-SX!R9ZUv1fBH9vMHL{*Nkr6qK12zh2B_y zkT!8>2&5EfH!Ek3O~ZJI<2d($R1WKr86((LJ3BOy#)>oj0-;FHQ+Q~I5~O`gYi~fS zS?|Jck>fe}RSokzDk=w_MHGwLUyxzkNAmH=&M)09RbQ%i8c3d89KqP?BOAjTMpm36 zd0Hc_8oC2n`F&+^EcT8L)7k638^Mwc?qqoxGoy#Bes8SRY}9}Gy>nx}fBoX}^2&5u z)ra&97(Lm>gjc;v)=J4cdNjv8SNb=|wX~04nq+pebPOx#%=}#6@VdCTa&&aNgh3Xo zijxz05iWadl%cgXMPYAFHre}WRf&t%mi>h(*Yj7FUG?6(bO@OV(8BxNLh>GG7FWbq zl5A+d1j7e$33CZCr2$7b6abJIAY-fk37SB)6{L8Myawm`ASX+B9oe2en=yo#uv5?l z%v2u_A_kvEX}^qm2PdgvyBNBJdwVU=ZF|YFzr|RD#SQt>+&}PfV)FIu@G10=R(jP4F%v z;&oO~P!2*j#&MEuAOH1h6mNs^Sk3+Y*}_!t+K)`;_qUOlVp3|JmJtYFjNV4<09+9m zAI#H*HgN+s3{);G$*Whd5;@!1B_gAYC=zHL9E@{2wm__bD24T6~E(d8@P-<3{eL?1^)B4H9taL+;qthyg-r_&xB^fzoCH8FyvYc z7bk>4D2lCS)R1hEE`VnoPIct4oWCtJ_nt5y9=s!PX8z>bFH-T+BV=D%y6dXHvw+oT z*L4r*%*>4vm^ZnM(Su3FMY;f3Qb8)PZTe2`zbG1y^4C4MZj z#(Jq)e0{KS;~cEbGvCLn4hr*^e*5;g_>p+5Ieh{vZg*Ej091@9gcE;r%A1P|xsIz3!>WwuaF zEuC-S*(LJ!OtlTaI6fUe4hi`+tObLETlzQp7Wg&>dt2bHL1+1SFzm({mWa7LHGm^=%o%4Yo}2V+NDPXu9JlR# zHIm_cgg(SF8I2?^3t)bL?E-Rp?tIAeU5s&4djcR|+)u;W7GaAk_ z>700?^sf7&_70ANwuREk&F#_ozR~6@8}1wZ1#U3`0S>lH0t2JQ{Dp<+32qzzs12?A zusFEeV#*??pr903ei!fge(O%BwOse=w{A4(AqcA253J!`&W;Y)TQCToh?;SP zUlEodW)2~ig~7A_7!52R#V2y}=GdJPJ&1V3yiRgQq+bw=;|4GU4~fPOrzNg7C{W2D zhF0%9>@f_$-%NP zCt>(J#b&&j3DZNIF`5zdKc;kV6<2}+j)CugCzC;yg4Gmq1S-*&mKH?Vh(`!u#}Xiz z7|}w^!nMZ0C6Ya(fOpP_GNCgA7DE(qsgk!?1pc6C`B`L73Cl4t=Ms4lBA%L9?n4YA-@X7FmdN5 zM)YBn+(h4)2=U-@fb5wj%Jsq(2KCGUYn5|)OF!Dtl4Ter4xW9fQ(RtmjBGE3XeVjW7{Qcm9d%qep==Up|rB&BUv8{N!0nUs~;8wQNV{rZq={6EZB9^riJ_#M zA5<9tpuliY*BWs!W~rUD#t=!X~IR>-8*ss*7q8dgzW5CXGUWD&9oSO z#U>O(ftl}#bGB!X1EoFHx^N@$&s<{Hl{K&N6&T@O;n`}SpD%V_eDmh*O!0c+uq;4{oQ2h-9SKgmhRn)Hb40Ui;6lXRNm2&Nz^9qcYVk=^}_LwL!g>&o_&o{axB= z2kQV*%aSLV;XGV)^LT-vk=eG2#}}TN4li2_Np@Dd8~9C(#UXe3z5Hy^n|A%2>$#m! zh^YLx2{7;;NTn}#G;p(?XP=ymzE>upTkcV~#@d1kue}vdd-fArzPQ-w2U!2q!H^b-jiykS8+ty9a*?1}tB!`m3f0ccCI28K(cIVV-(V`@KbgH9NmJrI;s#Dfvi!#}FLLm&5 zO4M*9N!HR3Leki#u_PgT3}KL+Y}wc0cTat<>;3!nFEeKOEYEXqPv!-1`>i9M0d{C@ zLjL_38oP8?pFj+opT7zA4J7J)G6lpX6lsb^+=xW#2|0_mh+V(>pG;KYaK}>&6_*&P zzNyG4L4|+@2R;T!(pcLXCXA~RNL)lTD-=%PmEl?k6ouS|{70X2YRyW6oG}7G@pX0o zB>WBde@F*FnTF`nqd1Dv7X0uDl|cM}s(@ADB0&w+1gi|6;Ac<3f#m_h8DU1d1hx$I zrbAZ!kXzgZF>N@ghRo_{tX_hb^sWs~>7SKSHCVUP{_NPJfIpz2Va<U3SV?#D zY-+skp_AhIR30AzV3hAJxk%wuo-$B;@CyibuGkVZn@5%P1T_Pf;lMW@tRV1~xMaRy zaxEl#l&~F*O^v`)kt>GI2E4b~(!d(DL-FOOrSmF3E(u`cjyCFjRw*46;#sA{$8MHk zIKH@gX#hj8xe0S3!3qoe%gs5mTPN$(^AmRFi0IP|sbSD)h#Px_rHu+|#NNCUU{*Ta zE1T0M2uD|cjc*}2X(JFf!DBbr{OfOCITxv5Om+|F3a6otCI` zQHb%d4R-sZbJt5zCp6ypCxYU1CjoJC&myBO%*=KMH>qkm32i?c+?lejlypOehm>>0 z(dTDVhn1V<^ZH=r>e`?GIuzJZ-hLSwuhkXbF!E!x(P@)k(N<&4)W0i+>AbkbGuo~I zCb`!3{e%6JR}qz#3dZ7SzH}tdDCzTaKd(%sUbBHNTB+3zkncrYA^n?!FtuW9m^v|Wfb?Dkz;oou&O zZY{!=LQNYNd~VB_CNl2IHZOfWqCT&OPJ_a^nBXA!0M00iKH*r zo>o{u&&0Y$bNgfJGfhc@K798AX9ZTR;>$R9`h-ru1~wTgBoOIf@!lHPo>~P<-H+1! z&`j)xx%vBg84+daUby@(ePQ1)4>Rr8@3(o4k}KWmguA7&+F z3lU;4b*02~VRcF|I!tUKw1isw?S#|y>IiV7xgqwjIJY$6AbHdSm0~uzgTUr7}K7VU#E&-a`*ytSR z{U&4CF+8%mI`}*TOUf(Yu21OKvMi#sn{GY7{;<81tFvujLV_jYww!aXG>rg%Jnv<- zPF3|GxY*i;uP0wAL+em2Ko|LSTnLE`XX+yoc|*ie(dr`!PMd|uTK zxwwsRF6&8 zH?{}SZU2d_2stl&E>ZiN!?fBTq|Y)g-zb-s{YQsdtwztea6W=3fl7_|A=Jub-8dh^-p zqL=xxTO3P^;vNs>yZ=nddbGekSn)bK^BfL0gUgrAU5U}8Ds^lcKy|4jqG&DF`h|?f z2p;JDQq=8Urj+k)Cg(Ip9JRQgX>bTjh~*z*&UQ3a%<*@ZuR}}a(z715RVV22b$_w| zHOUC`RG&wDW^()_Q=Hpa>OjD8%A*}^irzy?kRy#Unu7jL)l0!b#tnfk4YFE5+$HER z;Q)Y42~|Eo_EgydTl2l_(8D4E+XRAG++YyhbgV4TqJ?CIfMPfgeEaB1f!s0kuEjGG zZJx)Nd_a6DbSkU}>y8*Z$Zs(^;H7MJUY#ViPZjVWBLA$_$rx@DaK z3Uv0ov6B7?4VwRN3aBmrgz@Y^%#;?o?0=2;I}b3XE!(ab_k|+~0(V<@Yt==< z-0p($sqiUDF>3J%cPDX#-eo^ixXI>Mck4v1(revKY@(^D)_iiqTaLBJ&(WM#T=Qp! zo!(J$%W)>-z)_1IAmqyDt9&5dJ@+TXHI#QsUTDOXxr zdb2OW3JP1`tSDrV;{d(wBGWTsXxX_Jx>i;q2e_lvy1EFm?12^UrOzW)J__&@WN>6( zFD9hwL4Vr?A^5K;V(7deU>)dQo2qxvGBX14X)&yD4_S&D)(i^6fPFFFu`K`%LZ(#? zWidWWg;|Cx4kySltH--bZ(@87`}I*pwfISRL-#|)p)m8!406r(pH^4IxS?K1IOf&C zPV(O@96FdFU-mnt2I9|aa;)}*m0gCdp!7Z>s_1GV@);W&-DG7t({4%xKSOh(Nn(=8 z?jwq6mu4shcXyN^uc**Gnc3x7SrAcSQKz%xNlT3fO^G2WE^lNMXCn|Tr$Q#X#Dx)M zA}#D(L(h}%bO;rWO%91JPph@&J2XnG7t}$KG{wH@#ePI~SZ-Kz=RKkR+Y5vJ?`RZ+ z62wu{!_!6`4^59I%C`8c#Ba+k^=s=a zsj3R)6<%w;J@IF!4)suYW!38?A}i-spFlTgU~KqtXdE>1RE8euaf^;*`RL4+z?Tg( z)Q(_GyJ#qr9OAqv*fwSVT3o!- z6NSt%8+W<&_df3BaORSH_((`zh3xWEA+Nn?T1!{A=GiFWY<#&6^@Sei0s48`pxXGt zqwZyYMQ@!ixg1wIG5e&{G{a?~k~c_z*W&8ctqCB*F?{S?Ul1f}K9do!p z>DJL{oI13;DZa|`e-oCzHt0ltO*lMVvMlzJ>0Ai zZpE0Rby-6#YJDcHu$QyK&=EL`llV8QhCuVdOEPDYs*ZX)Y*-=95W4yLuOEYM6c`7b zBbX^jy4!fctJKE2MhCNW6wc8!j8S`EFd~CRby~)xi zofsS3s=t^SR^UjG{_HY3cG4(S?;HYoMn|=ibnx!b0MI7qNC$Xkr1(g%sW5NfOR#~A z5V9O(zuYgn(LGz2_*=T+SWL?mp-ZdBW;(iC`Ck@$*g8_@J1^^aGLX!HUL{4U{*bun z)`0hQ^{xKOERODLW1YtCZTs@xm(e3^l$O39D$x$Py6aYkU{qC=vBi&%e}R?`j!{y_ zX(txGF~0on$q}3PMb@ut>Ynb3VAS`!+S!eLuiUQr4(0w(It?&>p}kD!wZ=Rdu8Es3 zD=I#$jC#HLDuUXcNARdi+@s-^$QRngNRDwH+)P&odVk z+z%d1+1o{#D6rK{wFsOgeP;;$*Sd3yr`O`Qho!kLgS+eX#aw5YENL9*GwWm(fM+n- zg9Lw6-)lPY!r$7?Dg6k$4I_sho?G`>iP_7v zZl*HZMM$oF^)D|3VMr{H9Wb7ep3w<53v-%K(PbFC*%|9HfBbl!mU4df<0`ukXGa)f z1Dieg)B`~`{}vn!b=N3Eaj*;8zez`#zM30ywyvuZwM8&&5Q7K-cSF^tCSd-kVXc z32x_6oq0lL$~twwgZg4puB@>3X)biE)oE#laaw5-UN`QuLkch#a4vstDtur_=#zQU zUw2hPBd+bQ1RDZe8kLm28^X5(W`eeWy`Jw1&#&|);#y`>^fOxQUrE{ADUxvW_q)z& z*4enLegAb;-MGC}Q$pH%%|p7|z;cQnSh-D+k^E{`$`wjnoyQL;`%Ihq$iNjrTb*LvQxd(=Sd_HL?>C^a+S z?+-F9w9i1_c~sK#Nowlm1Tl?}^NENGr8~9P_|E--lX`b-MIGa7;Q4NfrGVJJ<>Om* zbunM5*joC9-VuE8Yfi~>YqbS^9;Y&U8EyUqe~VPdKE)kpFj)zMr&%K-;Q>ubN;0IJ zWbz=K34XB(Af32O02eQ{^a{-^16n!0>o~eatQ6MG%_2;)vQRRiaz|;831{`xCLe|y zjD9R)2KXpK+MNzHmOT~2)IY>ZW5Q=jifZihlB*H|dFj&X@wvIYAdS#JLQaCrOBQVa zq6Sh-q=UCC(K2{|`M_-pLWeylapg$q_ga5#*|KYbSw4%tZn)KAF;fx!IJ_2j>#W}p zW2$4V&=>%m0(LYtuj$k$cS7|0rZslzm*j zV~K0$&gl0P_W^Pc+V;^HW1kiIl|XXIUt)+c%#o;Rp6w{Mmjs`K#n2bou}oZ8w{~z$ zNKWEPKx=nros{PHnR%SI1>b1|TJcAQ0K4MSdIGU;$b;ykU@WwP7{E}oeZmp6W5rWp z2lsL~X^Vy1*pO=J^kU_eaNpyaPT~$DJEsR#Hpw#FpzMd6%39*TZ>rY-sGDXOp4tUP zUQQA?tUr9Z2gU1^CGh1*ohRN5j`4}Q{o-#iLX@eGQf^1wjozp$*1w{ z(%D&(@>0d*huk?X^O7u05st;H`_(iF;=#)Edzq{K-en52kb56ef?hy(%0|yU=M?_M; zERN-?zR)TJvkjtGUy~h4dC7c%*dkd!zja$#+uC#%yISRXv&_~S82|0jGsPREAy90Z z@s-|IJhn7jkf=G&qP_{sT}SQ|ZB?JXug2_=33c9!A4yj6%_ps|?Sd&{dN2%91JBOnIk7Z7cs-w*S`yN|Gi&F#A}@GH)xR zXRfE*i{qM)Ag)D3%XQ3GyXUZs0JK@b{+if+j4gcujuCw;HdT$n6$MAYU8T*{b@6AX zCq^{4TiESOiy*m+-Pv(+{dhBX1?OC7xR|rak!m3y=SQV$jV_Ft241X}PNoMM2R=>p zrGKGL=%i4#r0bh@qyPnCTkEa9bH_j_S#c*~1X(J=A)L|{wn5rI^OB~~Jl0WImfyIM`BQr2r zT+3su%j0UdrXK8dp{)@+k*9P9;EznE0Ul8U6CAcg zMtDtssnB|X^$n^eyC)}I0q}0Phw+amJ{Wi0DD_>*r%RJgE1>kXN>@5_dPLzJ{1CR2 z^E+Io`-F|rDmjMplVd0%Txn5M!{wX(}O>E+X%bl78>Zee@)TJ8DVAE`GZ)0cF7xO93@N+G6&viDk* z)r$-!E-skI6a<@A=X{>h77R}GQLJd9%6na-rWf=bkv@N&pPboj@30VOOM$Kx1{C<6 zk&GiWxrO3t3v2;}5|m=-%ke8(hQ>&XF}>+X$iEG$3wCX${5y?_N<#SanzGN`&PaV? zSn)8#&E3SgR zOU}#4`oSDvB)c~x28_?!7TCeJ<}>23rumm-sf8kjIeP)8r{;Ci={bT&63j4V5s)(q zUg*w@XptUf9}+8i7f$yxQV~Ccmkp!J;MiDVO3KjFr!aZ^Qqs=#q-~U2XZX6k>bc?H zpRAsqRQ&$o{g>E$&wzdYf{a@iy_KZ@TvRD!4V#)6TVWO;yu8DOYqGviV{MeS_Ce^y zvlt@@Cs4nQ8w_VX-Nx2*>^^tW{@HG$yg)7JR9;qIX%a1HHysDw#F0a&n$WP!Out$)w*JOii^5g{IP1kMK$~$Zx*0=ElhfMp^~;d3L~?iw`&;R0dEEDR&qZ{ThhI&240EY?dSCZv@NAalc7_oL`bDq;*brcNOH4yx z`6O%SRv7L2Wc85MG|ONE;Zz6l=dIM?pxL|UfA7asQnI#-+-z5Bd04U_)N-Hht{9QG zq16|YU;oc65!w82nZv$;cXd4(^&P_&9~5sDdroF2lKR9DD+;$XC!1&Or2}E3T`e2O zn}5$Q1M!Ai6C8YclUHknZkAiu^ZD(Ys<|N8=aW`HrF*1-xFVXX{`aRU?c+jTHd=*o z`?ICFCR;R`ze@l6z$kk~%7fZF*qbcO%d+!ir!^L76nPZrpI$$no4_!QJ8(B=(fl;! z|5*WkE#F_3l>dJN%dt zeJ}U-b3cB6|Ni+sejaz-IOBa@uh(@wujli5UGE~)ROGJ^(Gi_FbLNV|V;PMzXU?O} zoH-|di2!~>O*|0^|GVHKrJ#8UzI-p4zk;7>U1fD$pE@92JxrV}&RE(zys)_MV&-gN zVeew);JSJqCvoP?%`*xzk2F2gmWF5J8T!3;4_4bkmcXIyt_F>-c(Q2r}Jie&1te|+c=-%@>a@mNp%4c4E{vC)naqd8`Mlq6{<)yh$ z!Tdx5Rd7F{c6i>gGVefmR=5*wS3LTF^U|%5t5TVEbfO7s+EU? zAh>S#HyJ@I%2dvST7v6pSHDmRg>5YqJ9`5;li!@=6#HcJ-lWUiqGZ**y{oG4N z^9GmSDq6C?zb7Mg>zqGRWlzL#v44~N#&Xx{PV3C(6tV1&X`&RQrI*voz|j-8)jv8v zct}LjNu!bRJ+5I=nU72QTkOjzE{Cg8h9WT$S?qI_F{6uht2-v8{-W^)1i@#k{ZUeA z8IJV2>F$USskusu;d$Q)51%869Oq=4Qn~7`hy8AE<0&RbMHd4L25jQ+vv;YK-nCt? zAHUj0Of1Ck=V^dk`Cv|$-P;axVKIqYltg@j;?c#TP9hAJUpnWN-`f`$z8Odz!Wo(VU5f9V|8%k zkMhPS;3OYn3O^Q9kXc^8;O67EO&as9yryn@h0DK$8aEny@|?<-^h&T@W^G*;FVk>E z=SbbHGj)Nn3DXvzw22AjTddrpBXr+2g$h?mtd^I3_JYqlV28$FJ5vQm?(kll{gD&Z zXvUkC{h^zOMkpq79E=Jv|)80BtNKeI&EfS|KWS~ ziHdmkJ=LqGtdB-FcYRG!qr10lXFHK7T>hVBfgt;0*nHr5zk+A4~Pkl;96Hlc5j!|{3W+fOf}{S+-Bcxtm5LY zU^v-J9ev7~Sn=6Arj43=Y{v_Imnh7{@t{Nec7l7r7t}<;;Ks(^^Hkpe zTdT?UNQgo1#>HZY745<%*hj)}d4@ay$CchV)d<;%ll(Aj|Fl5!`^?6>AJ^&d zR7a0a@{f0-0W8@%EB`t}bL{fZFpJi^U zKRrp9w8$`5sdu`5O<=?L2W^L|B(5zuGa3TCd$_AWCta#qnolHuDI hmVapq;J_*Dw(u@86gY-wHB+s+dJv@Ug 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 CGZ^ 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

^cL?Y#rN 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 QKfs@vk)>g&{_m0h1(GBASO5S3 literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/quassel-client-8-select-storage-backend_es_v01.png b/doc/manual/es/images/quassel-client-8-select-storage-backend_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..7e3a9ccb396521a8efe6fa4fd9899d4650716248 GIT binary patch literal 147108 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�xMFy5}uJfWfJfx{@L4hX;Pn0zP03z!5~D$7SS&g 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�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 U@co@+1wWHa%}pZ5F5LRR08Q=5-2eap literal 0 HcmV?d00001 From 10924a1dcae8da8669f0ab940dc6e1834a5fbbf7 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 18 May 2020 19:43:25 -0400 Subject: [PATCH 40/40] Release v20.9 to unstable Signed-off-by: James Valleroy --- debian/changelog | 61 ++++++++++++++++++++++++++++++++++++++++++++++ plinth/__init__.py | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1a232c627..56cd71bd0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,64 @@ +plinth (20.9) unstable; urgency=medium + + [ Petter Reinholdtsen ] + * Translated using Weblate (Norwegian Bokmål) + + [ James Valleroy ] + * snapshot: Set as essential module + * functional_tests: snapshot: Skip delete all when there are no snapshots + * quassel: Use systemd sandboxing features + * minidlna: Move sysctl config to /etc/sysctl.d/50-freedombox.conf + * upgrades: Add needrestart to restart services as needed + * upgrades: Enable Automatic-Reboot option of unattended-upgrades + * locale: Update translation strings + * doc: Fetch latest manual + + [ Michael Breidenbach ] + * Translated using Weblate (German) + * Translated using Weblate (Swedish) + + [ Fioddor Superconcentrado ] + * Folder remained unrenamed. Should have changed along with git links. + + [ Sunil Mohan Adapa ] + * snapshot: Fix issues with restore and delete + * performance: Add basic functional tests + * daemon: Allow using an alias when enabling a daemon + * bind: Add daemon alias for bind9 -> named + * daemon: bind: cosmetic: yapf, isort formatting + * firewall: Reload firewalld so it works with newly installed services + * glib: Allow scheduling non-repeating tasks in separate threads + * notification: Expand and clarify restriction on id property + * storage: Auto-mount disks, notify of failing disks + * package: Fix error log when checking if package manager is busy + * power: cosmetic: Fix flake8 warnings + * first_setup: Fix regression with logo not showing + * minidlna: cosmetic: isort fixes + * mediawiki: Stop jobrunner during backup/restore + * minidlna: Stop daemon during backup/restore + * mumble: Stop server during backup/restore + * quassel: Fix stopping server during backup/restore + * tor: Fix stopping server during backup/restore + * upgrades: Always schedule a reboot at 02:00 local time + * upgrades: Add information about service restart and system reboot + * performance: Launch the Cockpit graphs directly if possible + + [ Joseph Nuthalapati ] + * samba: Change description to Network File Storage + * functional-tests: Skip network setup wizard + * functional-tests: Move Disable tests to the end + + [ fred1m ] + * performance: Add app for system monitoring + + [ Luis A. Arizmendi ] + * Translated using Weblate (Spanish) + + [ Artem ] + * Translated using Weblate (Russian) + + -- James Valleroy Mon, 18 May 2020 19:42:49 -0400 + plinth (20.8) unstable; urgency=medium [ Luis A. Arizmendi ] diff --git a/plinth/__init__.py b/plinth/__init__.py index 670e48598..e4e759f85 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '20.8' +__version__ = '20.9'

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%0AOg(F+L>;fM0WM-R9Tl%KBlg*|Uu=CGUY=2jHWP zws?4GAHiUNH^$3X3<)?WwPPCkT=EL$r+=+)@hee9uhpo@(wrhS>-l`Zmy+fvMR#UH z!;&^X=$QsKlkBSlbsp@vaIF}6xRGV~j$vRfZ(=*=tT^4Tl2?a%`=I3G$>*A1Q?EmP zn|Z<^ClWrVp9xO4_`l<7iT*4vj|!ixhbxT=i#4jUCOy;H3piU|GnlCLDI>b(z5y1X zJKt>z>TispL^}e;^ZYl&9;WvFLR{;`;8p(Qi7j1QjWGh{a5Wc{-qzW-F|THXq& zx6h*=llh?2j^0}p01-OBcz_J!Ng@h0ms-sQI-Xol5IV0jigI+>Hjz%HAAJK%apGy( zNoxY%Kep`@+@bD6)#qNpT~Na3ps*50U^YVFh>B9@dLv!)^N!#N_})ONvzNP$bbyU= zNDr50iDk&6lHZa{x(<$@FH183_c6wM?d~W-nn~9j+ZB59fJ9hDP^SFd3PF{F`$pES zQKF@-KYYr0Lz1IAFz_6`ORgT&;a$u?!0GRl9|9q3gO8K0I&wqx4 z|DC(_W(qqAx6)q|%Zeo$RNu?baTU7z(KZgcLFTx8P{QL?#|WJlok5~nhCP;pkc#Cl}cmXUQKAosB^fjyFkTC7rhBjdpSGNv`+SqCzN;R6D_U%8W>0NH(us#NWvD9xn5 zLfhTe)c^!6#T@6i0_Mb4{S*(YW|2<8!Fok$$r`Q6)1>Y8b{=~&d>x(BoYRPsRud!b zfhI}voUD*VE8wS$oD1-N?ozBC@emFuvuHuQ8B8$ za~9(?xmtHN7quql)LfA5y89`e_h?39y0G}sQ9g}uRq6!kNN`7kD@J#cMJGK6z@>mT zS#KOu2-@>Jb;nEF2?G|bH&e~R@n;+fzUP(0xZ4amo4!iQ+iK)5ACOI>rV>Goa;#H2 zCTxGxCq$_xdMTDNnv^24z@=epD%UD)tTqO|e(m3Skg1SjCUbRlt%q!dQL`}z{q2fD zA$1=>Zjh-HQm;u)OAEBg*2={IRB1rMlj4s@+(zd^aWgr%hoeqs`?l16C}VDEnerCd zgKVdonI@EugVQ56>KQIdyLiO5zow37j#M#E{r2=gU$lYRA@E^pS{uByt{qpU61^YD z)QZYG+X=J7Hi*}3=l8txF%H23N@UlLBrHEW=kezdoAW8ybL`>q2pTN)U*|IfC5`8z zQ28uW{>{LqsWl1rrjohyC3WGuGke7m5e?#Ai`2r&KV;QCm=1cJL`GAGZK)Sbn+nVO zlkVB|Ef18gAJ(5jg~fM0&&%z&_QL``cZmyqibdF$pq291q>TC9GmpK6vNbi)z_PDO@B=u853&;%Dyitrp? zW!P<1U|sb8>SA66{6Hv7lb0q@XALYXAQ1lu*`qT0{4D3(m0HiV{^J#+6xC~Jn}L#@ zj$V@HenTK zH=EXb6;cMOnFKBkBkRW*u}C+NcjE5u8E9J) zkwC>YvOe-5X+bD4;>rfI82mS(>Z~W=rA$s&J022K+|2GOzFxpHr#ip&u-f^U2p< z{xxuXyoK}O08_uVtfWx#7PSzn`Edy_$M|^EQUpPsCyfDvT4V?LtrB$KJ%0>C zO{J~VJrD6PwTa>YhE{rJg3xjH6QX$KlbDcW9Uis z{AWuh|EcE9p;WB@K`PwU35Cl?(}kW$l=vVHB>fj|El*oAmldpel=|PgwYTCjtZgY{ zhjSf4wIH77HX?kvK0zj&DvD}vgl#uZdv5Qo7#WxQ4lJ%T0^h(Pw(Ily%x`=>rJx*K z!1?=joZ_-t%$0{P)ouhz{F$2!K8UcjC|8X1e#z5v_QNB!L@vTxOVJ)U_~ z>Rfaq7QQzmJv8Mw8p%oSwKFe+Y93uBdxJqU@6$~h-anTklT69K-#Eo09ji>gH{`|a zA*KG@a@R}dw6QfTXK$$EM^HIVIjeWb74mcF7AcG0X5%Jv%^WkXJP=OHmCoF`4)bJ9 z?+w}7eYY&n|MtT1lS#2hc76R+mUZOzSIqgHZmD7&5-^ybkXU z=IMg-Z1)NJ+5hVH5`%lTV9S@uiF+l)6JkI2{LbBI@Iaqt=6>tMmk;hrUr6@)<$C#D zPH2DLQ9WNWl>z4}dwpT!1jLZF0FnbQGh1|YMce-6HC#5-2dPc&xLY2ZN%vu-^G&&fX=x3@Pg+{ zbn#y; zqQLnn>x*uR>xy8<2TFy^POc*r72|f#WO$!T@B(5+C2!O#u_v5apkUx;1p=t%K^H6; z3*~?=J_M%OtPeEyL8)$*TB3>-kTJyYp4g;w0vQWT1uWn@-4;Q}JGRgV^1QzU=Fncu zSRZgl8OWN0yDBS`P|;D zMvi8$kgaYc(~_<&Vz#WrXTZ^GF<)-na1C*D0b5tR7yPj{1&;5!2>Z40Psdk``w6x%X8DUt)r)@=HQktla8W$ zhf>VU0w1?MMin}nQczZ)b2unx7urK2Sjkq&@+Y z7fjQZO8eft;gb6+?t(tX5@iex2bjB#rd+~MBFn)dL^BLO9Qk28*l=?7<)G8 z^xsjQyBNV@?YXYsH_G`;=PTcY7uu58gl>=ja$zDFHuH8!GrU(f*1PR8yB{*YcDQ(8 z^+yD8A%X4$#bsn>LR7eK`m9v(_2wbhcMl8d#;1{-l(9fqT~&;(aNPcl|FHz<53mH5 zHFIp-6x3<-YC~+(F7>JP2|^?_dE(m^8;4i>^L+`!+PwCa$$*C74;LoVCj`6|eANxr zDs>1DTV!&|Z*r$ZUtJ!^wDIscZ1JZHl`Alqt*JA)O|J>i13{?efCZok?QKbiM}+KU z+Nv0K&{2sS$Zu$_|1P(-$b@~p?ON%cWfO3`ok$M}>;?Rse-nO=Hsv1?CdxMLCRvpI zwv+4GzBkV(5hIcjqXR?Ms>2Y=e}3{^$hFGsu@`A%vQuczh>-$lhEcP363h7p+}_cN zk~CD`NY8Jjim@LbXm5e*pn$P~I+_p#Kmso}vRVhK*kFBq)7jsnsxN=jKS+!A>H7*+ zB|#Xdg98|vaksmaVdRynexn&z*P_3IHw*JsRAp_#x z*RRO~)qsIzOSe}aX7>fb+{Lw>xyT0SiNCabjn^*pm@|R*S1HU%h;dS{C9r%Qtp5ZR zo586Q7j79qIm#cO0Uh`=%nDe>Rc(ge+DiLT-|2NUQ23AOpW+cGM);lNIldjeIqOE8DvuW)~YuAQ&D&!7hSeY5QI)K@lfQytKB)_66g)D zm+6H-<+Od=9GDkC0y1&jZgB=UQhQ!yoifSTAS*+-^oFo{JD8pLLE!6lJEf8gt|4oO zgklWxyJ`#(D+fM6=eJU@?ro@2)3CLTQ`m8u_wODd<|)^KDk}8VVudFMElz)mh3$Zj zKX31|sCJ2`5}+`{DIGq zqrj7KySi@bH@szh@!@yGn!Om_8svlTI_rLIixg=#iF;Hf+mZ@aMe^*1piItoqE~V7 zQHa$zXPH5o?!l#e6i0e?M=jDVL%glW#U451e9ja2lrT=<(lf;i7ZG&A(KXJC)esK% zxM=~2R>qL;hVA&`fQ@}aAP$I6F4T=y`fg3e_(7MmG{PJ!qO1(Tya5}eAcbFy&Ii@vXLmyGw!|R8aob3tvhjxzr>^JSJnqYvf0wyv*S6JS* zyda57Jb2PdD?2R2gw(PWRJTX!CK8j10Y*!|2{aDa8DKOlqbz~h|JqP}+>IC%yaDV2 znEod?8GxL4IXn*c1+UNafWUt@L$tfXG*4&Ta=#<$YMwr+YpFs);t1KFv4&mcV9VP_ z?JARvewoz&hW~Uf0rd(r-j4^E+(6m4zr0ZRoQkqipwW5v3da&6oB1vVGHJk22g0sGr?-_4@wRBcO-x#!Q(J{KV-H*#@S%WAMVDa zGv#Oi)FBz;;6b5Eg5)oOnyj8s;h}4jlY0d!Uz?wT@G3V;vi`W9xw+%zy55-b^^Ux% z`C2IuK!dw{7Pd3;Ij01333Pj5Q6WI4kwpKvZJH5y|Kp#}RV~%ATfg-)jX9Wz0$%0# zu(dok;uj5cW^x9&h`KGCmxt`}9fVc;+-J_2PkDpj*d2F{t)(%MEZrOVD9JNX|BkYC zFMqky-0mXh|15SwwDUhs&IlN^(CT(CDQ5Ou!mv?!Fo4Wc@;qr^e}lApTXx7h^0>#YgQ6NOeA?hqsafR^P0ik)H+G3Ges7`8V7muP{!fO?`` z^Amt}8MUL>Cm3?awL~7}Uo&?4G6`ljum!56s=!YJbC#e04;XHoTn?tZMHz4o8DbxZ z-;Y3f7X7Xpw@(mQDE?E@r}j%wRN8Z39t6;eYxqZQJ*e&Fq>IV-)kt7U>!gj&T{m%? z!s=na@dn|NJU`#my^kGjB3)w7%)IjunqGBGoU>s2A1mK+JN_?xrf7-#)j(l2X8#4G z#0^&C69se($geAcGHH0=5y3s9xI?O)Ymd2p@1IDo9h|rfoa8UpG&$7Bmg3Kvr8+;Z zDQNHwU?G`uH|Ao9ncF*|qr=1Rn$Z|ICi^V9_JOQduT~L^`KWDGP2Dx;Nzni^62OZR zo%RmW6Y2sSxp6fb*g(Md0gK}9r9YgYyG63Byj~r7y#c;wSnpyR3*kIj@VNoDiZAi^ z7T=qDkV4e7%$cvcYhvaRQH!k6e~}g)RBX1uHxD1koEHO2goxmp$Dya!aYITPLr&u| zI{&?q&Tt9K3qa+#z>3v2bU8v(Oe(@q%Mj>yZ5}P2lvv;HqUWn|8^lg@_(0I#1QxdS zCqmJ}tGPr1QR`rjl*wj&+(C7rnG7yA+ap_SAX6qOxKkNGpV-Ixw;b*wz&3X^NbX(W z4B7)AE$%IiO`t5SEkXgmKq?!HT?L^Xac0x^%g{|o=gA_BEY^L%l0Su@Zp-%p9@Rg) z<2U=CjkjikZ!JdRQj$SPp!mm8Tdnfs@qz8q!v}$vOe#{qmF&i5{#-M{97LFvA+W=L zL=ksi{EUu^eJClcD&kwz28C4)6!fM5q!V~o6R)LfAUF+(SAbLaj3-5mn|UV)c5)eL zH3!R^1FMa2G|r#?;)>qroc|+n$*{@rX5=;CV4z=RI&(+E=W_v)oSVA7>P^sFO}6v8nI1UN{ySauywzaEGB2YywosuZ`5>-#En!W!kOGa5DO~yp_ zcddP67Jta2z@WLy{FtneJAA$DOe7CQrQsVRyfPJJDZL^01;PD6?R6deF4>ylhUT4( zATcoz^G`=@dQcJK6JFcCaTSY`0j?gnEe~X}Z;w;3o9m}O`%lAykMjQU_AJ4zgasmT zUe%gNx+i3pdEWk_e&Z!QJ%9M1$14G7W9MprL~PF=;19F+oehedU7U2c=%t~gvOH;R zU-|6eg+_OW?S<*-@PLs^(+(|;xT_SZ9Im{r-G#+LIlH*R;qwZ&wWOE_5eQ$5? zYS0g|DZu)v`kydI3p~!J8q%j#AoV$Wm(1Yv!Ir}oDGXBocwKAk><3Qz70ff>)^X(~ zi%4?5%n{iHCWvVhyCM$Ux)ulE`F|b#6dD@ZyO{7_PmK^wxOO0cC^x=+lZYa&)S{?~ zxSDx%3dVToBMmr$j|-lusj2x9<tB0llx@iAbsucb~P=q`OEcF zTX31K_O5bUhDJl^K7iK#+Ylce@BgO$pTGQVt{?Yb)!zSU`lE2J{|l^h{r}?gT=^II z{qJK5*|IPF|9Z?mm-Hp@KCn~}J{sP9-@824zeyRRKu^zL?&o&u#Rzw~1lXBOA4s{A zBLTe)=sPe(JjkTC_OoXK=HlW=DoTNaOC6rtzB$Amp-Zw ze|pNh^9#FeX0U{Zp$9tbJ+aO{Xd#mdOjU()>6C@LWzw^TU_;Nn)8_+J*Oh^lu`Bxt zpoUEiQ(;@}z;BO(H+U_vSH0S(g0prk2f3bd^$HcUEZyCn&eI=X?x=<-aftgNYA1>y z4Dj6gYBgI7XA*8b(`U7=TP<50`W>}7Sdzr;XqvAz{e$US1ew5l215=>mn$jjLnvei zTy(|#)#%R!#B}Em^WFWF>%o>@-_N+DziDR8kI@Cmbe63z{6XD*=$^f>LsB)eqYOFr zVgcnWmKpf3X8uUON+(vw?w`lt^1eC{BcGY_*D+4*9p&7T;Y(`6FWo*B&+VY=8S)M- z(wOy$9?*|dZnjzeQ}J}du$?wKfgU1f_wwYq#B|uYP^mVV$5`|6a>s9~KFD51z4Y_| z4!iRak?T|WYoh5qbYV=qOT#besZfL=MruLa0l1(mBBk~2Wb;u2MfNMxgcwW@!v0DQ+|yLnv{+|s9BJ-g8Dj#2n+djlQ!`4BvZ#7oV`2r)3<|t~ z<&aZ&f&&sb-2lW4_^%sV+ZL(#wU+t0T4LOSnYWgrT|*Uko{#Hbkw@jPlSP)nFU${C+%FOLQ?b!82F9VG z>@v*5bb}=hjB}!AEm(t^8#g6qZH(RCe`#KP< zL*$1iN&2Ot1jx@Ch_V8v_nREjlcbU+-Pt3wlxR(^9yO$nyh22NF*(6}>Ke#vXeLqT zzml`%YgJR(|Epj0dRG`>@Vq9+$8AqZZL(UurhO;CHHl0kMs*#$e}A&qCWJ3U=BW=| zKQ~`9idtClzA}3xZ|VZt@C~NaTptCeHG8#oGw>;i<=~w<5BlEP`-S)%U#SAh-cCQb zaWch;6g4TRZ+cXug~!_#!JKWD?ragR>yR_|=T4|~_U-hvwsS-#IXO$*{gvS_)Z+~Y z_$_81HukScwOq~3#nKuN0-*Vw1>WLn8{RQ_@ z#(Fm?;yTl^((l|P8L}5{sB#0Yfh-KQ+%`@e9TS_IYd#LnI+q27Wjfn7uBw05jdvMczyBLa?k^q2h*P>tdCB=PFGQgKve3FKk_KA7P z-UGHrC~6rt_dJ};k{<7gFXIOcVnv8lC01?rQhKlQqFI>Z{DVcDRrcA5Cpz{TBykKN-h34_>@!aANyW5QSSDExdNT1uZ{)Hh&(Uau#%+ zCLUmP<%Fwa@eMc_oaWNCm|acj#kt;}?Sybx$?YO%Y{3AWBBr=!dXw8BTH?s z6t-U)e1*-;817*Yv`fJG#;DOJB6ovaK8+0|J^=_%pN5n)LhoHqmCDz&4gb2qMx%0g zW7(gty#EbsEl~sSWQ%N4Y4c43A^tmXPR`uNjeY|m-!}y$vJz?50Fwwaz2bxJT>K-= z5mvO~zNQ^z$lHwebz>k%RmyqYe`OW@P%ZO>GVn3w=5-W4%2E5(Xq1>oSZ>cX>w%VV zIPIfhp#u|k*cjB>FHlfEk(lG_x%j1N*#%eBpSe_U`Xxy7U8CmIYz~JrDqxPX_dj>g z_U(@gJcQ1P3#DL*hYZ$e<1G#MCHSJDan@yzEA%Y~Z7nkJ7?R%EnT`W<Eo$;=g66Cf{Dxl$MssMj843$)|d7M2jhl!SYbw7zQdZL#rMD5LjpTWRwDx{-BUOvhBf*WYj61UBRud4*_e#JyLJ&SC(>_K}1%8 z=SnTl)%NR4IX>6o1~g&F!e?Vk&H+h2wo!6*kph{V*;!UE58suf9u|9;B(;fjW@Rwh zH}@_S3*2|zN}9)c8oJjyo<^ILMhehbFHODx=9^3kHdP=xZtMdLw9257TZUD7SjN?S z{RfG(bm>MN^JEWJYI~eaiV{odZ89!0Qj3h#f^oy^ZPEJ!fS zMexl1!ClRhR~UZ&3BIHfqh@Ky*^rd;_3Vu0q4%NTOD+L&)wmfkk(l-?om12$A;OLQ zc)a=Yf+9*%lJa(LmrYsKY?q~hDyC-ff>WNYKsbVhL-K%RZvZC(%y5NHKG+KP zoKqaD!-q;|$;c>J(k)*eUYYe;s;5>e`!Fw9r{uEEGdn_;-m6$v8GHZLEE+%J2A`mm zf3kwdoCgdmiKx;2rPbr4HEo)Q?6ypkKAmOznz-B@ox_^hJ@eaWzlkr>_qFzJDcFhc z6Wn@))^cyQ`9(>n$TAUxl>Z?Y17csAF<=9{_o?d_ zSRDyo)*I#dpIvT>ls_A5lw(b>@LJ+6j@QS>@n^g^iw-Ko&`YCj52z;D8Hpn|qtQlm<;)LQ}*7M#Luzi7{ zcY8fntHRqPYdt5_K3o(F6IHX66|a-4sZ?pMSA-c~Vfr4(QH&n`1gCi%_v^ERI>6&B z{#i%mBWwkI=BVumfU=M;iNu|ELoNxox#*0&7y`H>;ia5E4-pm5q{mvCyMjW8oQ8Ou zf(mEjKB>gya6YV+6%zkc{<#pSm?VpT1dfocXM~b172IVfjFLl{wkKMETs=lgH)QW4 z>P{Ur>GVYNt^-WH)Z^{=c3#8eH&T>5=Hz~iOihr3Gn3u1=-n^4ySH6UElx*7yJH9D z$wI*`_@p+{um<6hWA~FOqDBD)4sl?GuH_X|NHIeeC-EgkO|9m4S$<1Rwyx+Nt#0G$ zUh&gL%swRP_fIOjcb+`?GtPxKXtD0h352oQXrn84Cb!>bLDS8|Vl9z?kU;8@Tud#x z@`p?itNsps{h4J{be0!U1tj<^)zgtKh#8a>%^j-q98)(QNcpfTaR~Pej_6ygYQ2j; z+I)@3PcU8jvwj}EFs5jcmZ-h^`rEp=o3YK>qyWW$1_cQU7OD+HrgPvacmbmr|mGi3T#%!Csf9tu$5px|BvV#3JyuDneVQ38CD|!b%fC5ucEH^-#@qYJCAG+8q7cDDrLH+E=HJ-Q6u%(0Bzw?vc-#^SpAX`CI<+V! zl5Ay0k6&9%lP%JJ83zU7q!=rPu{xCN*5E5`((W?T0ZD4lrJ7)$R zN}t^jK0hW@3hYOzJ?iK#PJ?ln$&A!sPs-s>5yj?HZ35nSqK8Y^ zX_pSEYX%@i*_RT0ZX)72z7c))qDKSBO4GH~l929|ZcO?F+1*!$JtwfaWRPLt!t#1B z&!e(!VO4;IU_VPKq&dkGee~|t-;6jEXUr4g@O}3F-0FQJN6}62Q$q+o?^5;|>9nj~ zNWG-$2$5)2H1q5NQ;-RjdeFxkp+lB~4$sBM*y;{tM%(a{gV|TTD_~63bwg}#44-f!HfPEUz@}s$- zKNAVQKO=Hz$e-eOK0eMQ%=!*|!WUI!!ed4^Gv;9AD1d9Z!Ot?=K|XmVZrCGGeYnL! z89hLyK0sbmt*z?2QDI_%`Lq6(5q{t0%jGUvc~=6$u25j7^$H{Iugs5$#1@*9;D2nm zAAPyj>OrO2+M*P;G=<)cF%`#|Jf5djtaWek^HNHx@7jxQwM-?9*J|zhO;4xF{XZ~H z;WMG!BRZvuh#@Bn2LC5brTa)>-aT({>aU-YP=cve8@%*fwfS(EEO>*s8U=de+Zx|# z?#=iS?p(b{rDg?hCvbT4bb5g$t?XmY(oIwPN~j_(%6; z;%(2D9p`bv5aW%9wBH!{PNw*4hdRo2MzM!yShcLPjOadTRaU0G9B3bIP8gV6Fm=d(B8XV6np#kJ^k4@pg$+t1Ql3;5wp&37{G+l~TV!y`6;3~DF} zAU56#rI>qo`(Kj#kXxD?Vox6zyq$d`fS1ISB)+>n(%h#1dD zy4G!VEqct3@vLli`;dnNV=HvIAMG>)J(?C{w%QgwicvMUMwj4Uc@KAeK{^+VBglkjrb_=< zI$XMKDnBfA_a-q&aFeu~*;z!YN$lxW1d-<`mk{72Li%5SD-l;(%I;)QaZNS6laQVF ze2TN~RGzYZ?`mEey!<_m1B4O3Qbp}I!D1cctH1y3JBD>Gj63D|`USI>knL$jfl|Ae z-gQoC?|7xMN9LPA`~nhXl?`7!G~4(6_S*X=(&-^~q>esaCT!`AYo&ise<>ud{(wI} z%GBb`*=sK;=#!>8?k}+30~Xw!+HtO%EaK(gPd}w9g$0#~K90=>xp&d5Vp|m(fW50a`RC}~i4&l+ zJZwXtkAmFRtUMf>f1T|zej}{|ho9L$&1Cir^;FpK>OciDE9$T<&R5YfF^TVAybj;5KJ z=CjA!lut-z$7q5a8K>6aEJr&vhP=Zs12%~a5dm$pzpOL@79pI{E;PoN-;PXk=wrfA z%d3yH9z54{Jt;k>esMMz@MH1NWv%!88jwMm^$LB;t5Pv4>uT$TgFd_c@TmPd*xlQ4 zIz)_4u8X6n+jQy_8nILnrFLqs2R|A&s|ZOe3i@Pkj8{x%Kh`r}EQ6R~yEH*Kb77DJ z)R;9vyHAo>;tjoT^=>@GjMQE4`u$dZPf$}xICKj=J4PB3(`#>ny*{Oz6n|_(m)&qF zJu0aG9+SQC;-7)!LBR+cPUnULGwmX<^vGB6C=MFkd8M0bp~HFv!YDqAjXAe$tvf-6O?0BsdC?MKWYn+ zOiYgr87h5#&tA~`q!(-`F6+!5j;9}jHt!jYdqtTEX$U=p8jVV?{2#8q0w@ZoZP!3S zr9nvnVF?A1?hwh9lJ0J#yHUE4ML|G7K)M8^T~-<-mXI##?uLzf{QmF1bLY-5jtnd7 z?w)hr_dM?tW5qiNc_HpsUR$)of7sw&@k`^)9M~Of+cLplf`YXB;<2I9`QKYtb+C6Z zZ(>d^s3L5TH{Y;3Rb36zo2A_bW1*ATO0gqFK>7PDa!RXFn3XqLtQ8(|R3Ac4Hu(qy;E~ZEQI?+~z&L*)&w}6q-1a{K<&zR!%&b(iyK_ymE zjsh{*(OXFh#aDZ=@B00e5Zrs|`!<$G+LbsY0+H@-FKLA81^`SX%_i}RErmsb&)1~3 z(TbXn9oNAK&FC|`u|>$R*({wTfD_KnUq?Fy-kJHS zV82Bho%8f=D4la^W@JlgXa{6du8>XXvml+UheDT9Y+6$ZQD`U24=?icha)H ztN|L_d?Si5wDsNaqS~$ZHyQ&H%IBU7cnN%Wqye*6qN|I*AeL^H%fWg?s70x^5NB#E zz-WI_{{8#4`4pFPt>hp7jRw%h?9xx}!k4{7z&Hnd`IqCB0gB4h4YN46Zh{d!pEBSc)N4Cc!J7wkOi<5wHF$l*vbviF z8YDMrnyOys6_=potC?h&hE;d29vsI0UVgykyQSB)hP0rXz$-uhUoODy^fAUc?K=dq zQ|>Rw;({`qN?$YbzCXXG<<;m()anwaz^KRoyFtJhjlVfeg&P_@=Q2cjZad$MkUl+$YWNALN?KYhW8hn?#RgsL~GE!@}H zl%5}rN=~kEA=(E=nmHtnf1_`s-wwge)Rz%mvz;d9i<^}T#tcK@j(Q)@CZ6sZ=1k~X zEE-^`@{W=8=U)iJmwf`%yqr-{ZhWo%Q>ne>CV5|Gy69Eh*Ycftn-0qKWky`13gw2x zNxUks|EWE`(qxeC7f1OBw8=72r|Y)JS2OCs7}3{ z74eoBFOkRdN|uMr#_2_gujb8?#c|J)P9y5oTXoB!v$mi#k0qDMECM( zXL8l%J83B)U7TD1s|FPOAwGg`*FAl9DR^CP4)kZs4bC}LMo|?p(F%R29d%Y%;v0_M zi#82=80IXK-Qt)6uN$>9e-Uh_d1kA9Kg^=ozl+=b%<7TJg>rxtf7*whgvH74{>PEv zBWSHdgj#L>=`)!1Lud1foip-M1f@lX7w(6R*M+aSEedf_dh|M@KDWasd_j^QjhuBh zi{G`=M<45t3XH7=3t0N1M{65(2ss8?{~xmMk8%5KH6(qA>IHiz+m7S1FM!q*soOhp z{A(YZy!A!o({g!}@WM=EVIiw~#J3)1=2syphI(cb56W*E%qN~v1be)5y{235M#y?8Jy($>I>$RIt|r}rkh>jU;c-;# zmvtVP)qPJ67P^)W}}Y!7Rm)R%<)Q zKHABsz5DE`Er|;#miGtOxEmVDs$5=6RBN08_hiQo4I|TPkjK;B%xBsQYlELChCL+T zE5M?8O{|Wm&wI<^G3frvWnQJG-Mjv!I)^Ke=&Gk7Rru*a*c;JA<~WS~MyR_$tU^Mw zl}Jv=TK%~d&pB{ExX{=zNAD?VO#X+}<(gY%#*vw;edOnYLj%M%S=dLL(Hd;85fP2+ zzJGn$(i80$|IRlh0@$Gv8-%bc&owtNGA!)ws->^?zsBW|xYUB!-Bdnz-%2y-c8BLJ zHwEuC)ydWeDQuc1&#o!M+DE&sABQJfdaIvGv*PanDwv%Zrnr7^SiSMF(Rv;jt>3mqkS!IV2Oj7GjZU z6L82ViS|ms%jOPV?89NY_v#R%^tc^=u37cjGuVVGy$YBn5?j{KY z`Y(Y`V%8cvNTfy{UkCyPN#hD|CrrH$&9Tkc+oYoOmg|EVJIJpOc0 z7*(cZ_fUse!m1kkqsfLV>1qwuq!s^(55pP@rhCx~79M-90TJ|2SklAQmaYTPO~h|k z4%vGsD2ug57Y4<yMRLYjO8kp`-;1mVki8M=h>h(=xH^sw)Pe z#B+1;`SpA2ek^Y+Tg-?m*TsNE-(O$4f3w*Izf7mXzS%#tWXoh>?Ph-PNP6_t_9;jc zDRZpIDW*Q=JqAT+I0{OZmVf#@8@K6G*u{; z8h35gC7wpT3;I51^ZDX7Q8vRivO4L*s=s6pv!0ZiCb?`N@}(48I%8HEGqJ%}<8qBj zxHK2+YruDv^3N8wR}W-HYIU%!{1iKJoC;@fw@0izIDa;anS;oz>{D|;n zT_QM&NIK==$;(?z#G(SvzOVnV{pim3R(QJhF(-OGxHJBxgA01gEB(io)^sgT@i4dH zM85WHXB~%mdm$GST7T5LKBMG%IPP!N-)>f^F(nVC2uWfo-u_kzdu>I&XLrh+GUH1Z zavI!=7w`_*dhAb|G~N0xLZAB0J=(jyCmu)&SIKDGdj>$}_z_OH*C%_kczxGUVxbNz zki&lb;T-OeMVy%2CEvZMoRZ0$lm_08T)Me+h~6F& zzhOpjbwlD}FpEvQQaVrl>v!)+`=D6u(|5+DN~bROkTtG5oONTX#<@AF!ybHdlz-CC zscxbc$>|*ZcD)dWO2`7ef#G83C8B^dUB6q(f{CP0&rd`gK^@DKOVbYu2lqTgBii2b z≫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 literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/quassel-client-2-add-core-account_es_v01.png b/doc/manual/es/images/quassel-client-2-add-core-account_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..5a11aa3811183804f56fb02e1a093b5f32c8279c GIT binary patch literal 120295 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 literal 0 HcmV?d00001 diff --git a/doc/manual/es/images/quassel-client-3-connect-to-core_es_v01.png b/doc/manual/es/images/quassel-client-3-connect-to-core_es_v01.png new file mode 100644 index 0000000000000000000000000000000000000000..66d550510e711c14f4ad4eceab6cd73f3dcb5914 GIT binary patch literal 67173 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