7872 Commits

Author SHA1 Message Date
ikmaak
b4f9fe2678
Translated using Weblate (Dutch)
Currently translated at 100.0% (1462 of 1462 strings)
2022-07-20 09:18:37 +02:00
ikmaak
39ec3e697b
Translated using Weblate (German)
Currently translated at 100.0% (1462 of 1462 strings)
2022-07-20 09:18:36 +02:00
James Valleroy
7f075ae147
Release v22.16 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v22.16
2022-07-18 20:50:38 -04:00
James Valleroy
62ba17c8a5
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-18 20:49:26 -04:00
James Valleroy
731025511c
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-18 20:16:52 -04:00
James Valleroy
8daf3d660b
debian: Follows policy version 4.6.1
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-18 20:14:29 -04:00
James Valleroy
2debe860f4
debian: Update copyright year
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-18 20:06:21 -04:00
James Valleroy
c72225de40
rssbridge: Fix flake8 errors
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 18:57:13 -07:00
Sunil Mohan Adapa
20081ee5d1
roundcube: Use privileged to simplify actions
Tests:

- Functional tests pass

- Same tests as previous patch for setting logging to syslog.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 17:23:18 -04:00
nbenedek
6c86da022e
roundcube: Add fail2ban jail
Default backend for fail2ban is systemd journal. Roundcube will be configured in
FreedomBox to log to journal (via syslog).

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 17:22:52 -04:00
Sunil Mohan Adapa
253ddb0c18
roundcube: Configure to log to journald
Tests:

- On a fresh container, install roundcube. log_driver is set to syslog in
freedombox-config.conf.

- Install roundcube without the changes. Enable local only. Apply the changes
and restart service. roundcube setup is run. log_driver is set to syslog in
freedombox-config.conf. Setting is still local-only.

- Install roundcube without the changes. Disable local only. Apply the changes
and restart service. roundcube setup is run. log_driver is set to syslog in
freedombox-config.conf. Setting is still not local-only.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 17:22:30 -04:00
Sunil Mohan Adapa
8c4999eabd
config: Set volatile logging by default
This reduces the number of writes to the disk improving disk longevity and IO
performance. Note that systemd-journald is already very reasonable with how
often it writes to the disk. It's flush interval is 5 minutes.

Most users of FreedomBox are not expected to see logs. Those that see the logs
do so for debugging purposes. Debugging can still be done if reboot does not
occur. Users can change the logging mode to 'persistent' before debugging issues
that require reboot. This makes debugging harder for non-reproducible bugs, but
is, at present, considered an acceptable compromise.

Tests:

- On a fresh container, with the patch applied, config page shows 'volatile' as
the logging mode.

- On an container with changes not applied, start freedombox service. Then apply
the patch and restart service. config app setup will be run. Config page shows
'volatile' as the logging mode.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 16:55:06 -04:00
Sunil Mohan Adapa
80a203bd23
config: Add option to set logging mode: none/volatile/persistent
- None disables logging altogether. This is useful when we want to prevent
FreedomBox from collecting IP addresses of visitors and other sensitive
information.

- Volatile logs are kept in RAM until the system is rebooted. Only 5% of RAM
will be used at most and only 2 days worth of logs are kept.

- Permanent will store logs into /var/log/journal. systemd-journald defaults
will apply. 10% of disk capacity is used at most, capped at 4GiB. Also logging
will stop if free space is below 15%. Maximum of 100 files are kept. No time
based cleanup is done.

Tests:

- Set the logging mode to disabled. Observe that `journalctl -f` does not show
any logs (say when performing plinth actions).

- Set the logging mode to volatile. Observe that `journalctl` shows that logging
is set to /run/log/journal/ and 5% of available memory is set as maximum.

- Set the logging mode to persistent. Observe that `journalctl` shows that
logging is set to /var/log/journal/ and 10% of disk space is set as maximum.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 16:54:46 -04:00
Sunil Mohan Adapa
bf1ed7d064
apache: Redirect all logs to systemd journal
- Redirect with separate identifiers so that they can retrieved separately.

- Enable virtual host log format that include name of the domain accessed so
that that information is preserved.

- There is no need to increment the apache app's version number as it has been
incremented earlier in the patch series (for this release).

Tests:

- In a fresh container, setup succeeds. Default apache sites 000-default.conf
and default-ssl.conf are disabled. freedombox-default.conf is enabled. Apache
access logs and error logs are sent to systemd journal.

- Without the patch applied, create a container. Run setup and access Plinth
interface. Apply the patches. Apache setup is run. a2query -s default and
a2query -s 000-default show that sites are not enabled. a2query -s
freedombox-default shows that site is enabled. Apache access logs and error logs
are sent to systemd journal.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 12:07:55 -04:00
Sunil Mohan Adapa
d6131df6a8
apache: Also configure to serve on /freedombox
This is useful mostly for future when we may switch from /plinth to /freedombox.

Tests:

- Accessing /freedombox/app/transmission works. Although redirects generated by
the FreedomBox web service still redirect to /plinth. For example, redirection
after logout and auto-redirection to login page.

- Accessing pages of FreedomBox works as usual on /plinth and /freedombox.
Content-Security-Policy is set.

- Accessing /foo/plinth/app/transmission throws 404.

- Accessing http:// redirects to https:// for /plinth and /freedombox.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 12:07:55 -04:00
Sunil Mohan Adapa
f8f7dd22b5
apache: Merge old configuration files into a better location
- It is simpler to keep all the configuration in a single file. Any overrides
are expected to be done by writing additional configuration files with higher
priority.

- /etc/apache2/site-available/ is typically reserved for virtual host
configurations. Redirections and proxying for all virtual hosts rather belongs
in /etc/apache2/conf-available/.

- This looses the option of disabling plinth-ssl.conf when needed. In the
initial days of enabling TLS, there was a need felt to keep the option of easily
disabling redirection to TLS in case there is a need for it. However, TLS
certificate setup is mature and the limitations are well understood. There is no
longer a need for it. It still may be possible to avoid the redirection with an
additional configuration.

Tests:

- In a fresh container, setup succeeds. Redirecting to https:// for /plinth
works. FreedomBox web interface is available.

- Without the patch applied created a container. Run setup and access Plinth
interface. Apply the patches. Apache setup is run. a2query -s plinth and a2query
-s plinth-ssl show that sites are not enabled. Redirecting to https:// for
/plinth works. FreedomBox web interface is available.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-17 12:07:55 -04:00
James Valleroy
2b6b025bcf
janus: Change short description to "Video Room"
This makes it clearer why one would wish to install and use this app.

Closes #2236.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 09:05:51 -07:00
Sunil Mohan Adapa
b2e6508b16
rssbridge: Add functional tests
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 09:04:54 -07:00
Sunil Mohan Adapa
556c476de4
rssbridge: Whitelist all bridges by default
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 09:04:51 -07:00
nbenedek
9efc56368c
rssbridge: New app to generate RSS feeds for websites
[sunil: Update description for simplicity, group info]
[sunil: Indentation fixes]
[sunil: End all URLs with a slash]
[sunil: Update frontpage shortcut to be a simple one]
[sunil: Enable single-sign-on for main interface only]
[sunil: In copyright file, merge with public-domain section]
[sunil: Simplify and vectorify the icon]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 09:04:48 -07:00
109247019824
9de181b730
Translated using Weblate (Bulgarian)
Currently translated at 32.9% (479 of 1455 strings)
2022-07-16 15:21:25 +02:00
Veiko Aasa
545b35c0aa
gitweb: Switch default branch name to main for new repositories
I tested additionally that if the root user has already configured
default branch other than main, it is not changed by the gitweb app
setup process.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-15 20:54:32 -04:00
Sunil Mohan Adapa
99d8be9d2a
cockpit: Use decorator for privileged actions
Tests:

- Login to Cockpit on a freshly setup container.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-15 20:37:13 -04:00
Sunil Mohan Adapa
c163601b6c
cockpit: Reconfigure to allow any origin
When Cockpit is not configured any origins, it uses the host and protocol of the
incoming request to set the allowed origin for WebSocket connections. By
ensuring that the original host/protocol is passed on to Cockpit from the
browser, we can eliminate the need for configuring a pre-determined list of
origins. Passing the host and protocol from the browser is done by setting
ProxyPreserveHost and using https:// for proxying.

For a cross-site request, Origin: and Host: entries won't match and '403
Forbidden' is thrown. So, this approach is still safe.

Tests:

- Without the patch, access Cockpit using IP address and it fails. Apply the
patch. Cockpit setup should run. Origins= directive in the configuration file
/etc/cockpit/cockpit.conf should get removed. Accessing with IP address and
logging in succeeds.

- Freshly setup a container with the patch and access Cockpit using IP address.
This works and login succeeds.

- Test on stable and testing containers.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-15 20:37:04 -04:00
Sunil Mohan Adapa
372ecdcda9
privoxy: Use privileged decorator for actions
Tests:

- App installation works. Proxying works when configured with Firefox.
listen-address and permit-access directives are set as expected in the
configuration file.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-13 19:41:45 -07:00
nbenedek
de2c246dbd
privoxy: Restrict to private IPs, prevent access over the internet
- Make sure a user might not run Privoxy as an open proxy, potentially giving
unwanted access to local resources. Only private IP classes are allowed to
connect.

Tests:

- Freshly install privoxy app. permit-access directives are set in the
configuration. Proxy works when tested with a private IP address with Firefox.

- Install privoxy app without the changes. Apply the changes, privoxy setup
should run. permit-access directives are set in the configuration. Proxy works
when tested with a private IP address with Firefox.

- Privoxy works when accessed with IPv4 address (such as 10.42.0.x) and IPv6
address (such as fe80:y:z%ve-fbx-testing).

[sunil: Use Spacevars augeus lens to edit the configuration file]
[sunil: Update IP ranges with auto-configuration, IPv6 addresses, etc.]
[sunil: Update description to mention that only local IPs are allowed]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-13 19:41:42 -07:00
Maxime Leroy
864c269f3d
Translated using Weblate (French)
Currently translated at 100.0% (1455 of 1455 strings)
2022-07-14 00:17:56 +02:00
Sunil Mohan Adapa
08821787bf
cockpit: Depend on apache and setup after it
Closes: #2089.

Tests:

- Regular startup works without errors. Cockpit is ordered after Apache.

- After creating a fresh container, Cockpit works as expected. Cockpit setup
runs after Apache setup.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-12 20:00:18 -04:00
109247019824
d5c0a221c9
Translated using Weblate (Bulgarian)
Currently translated at 32.7% (477 of 1455 strings)
2022-07-12 05:04:47 +02:00
Nikita Epifanov
d9a13d32e2
Translated using Weblate (Russian)
Currently translated at 100.0% (1455 of 1455 strings)
2022-07-12 05:04:47 +02:00
109247019824
ca5001aa4e
Translated using Weblate (Bulgarian)
Currently translated at 32.5% (473 of 1455 strings)
2022-07-10 20:16:22 +02:00
Nikita Epifanov
eee90a2650
Translated using Weblate (Russian)
Currently translated at 100.0% (1455 of 1455 strings)
2022-07-10 20:16:22 +02:00
Maxime Leroy
34c6a07c36
Translated using Weblate (French)
Currently translated at 99.1% (1442 of 1455 strings)
2022-07-10 20:16:21 +02:00
109247019824
d11e2d4c27
Translated using Weblate (Bulgarian)
Currently translated at 32.4% (472 of 1455 strings)
2022-07-07 06:21:44 +02:00
Andrij Mizyk
3250397569
Translated using Weblate (Ukrainian)
Currently translated at 83.6% (1217 of 1455 strings)
2022-07-07 06:21:43 +02:00
Eric
db642c8b96
Translated using Weblate (Chinese (Simplified))
Currently translated at 69.6% (1013 of 1455 strings)
2022-07-07 06:21:43 +02:00
James Valleroy
d0118752f2
Release v22.15 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v22.15
2022-07-04 21:43:09 -04:00
James Valleroy
70f9af7341
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 21:42:33 -04:00
James Valleroy
e7f432f914
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 21:23:21 -04:00
Andrij Mizyk
55bc21b5fc
Translated using Weblate (Ukrainian)
Currently translated at 83.5% (1216 of 1455 strings)
2022-07-05 03:21:41 +02:00
Sunil Mohan Adapa
40f4a24e92
views: Add a comment about change in Django 4.0
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 21:03:10 -04:00
Sunil Mohan Adapa
a150cd15bd
static: js: css: Make multiple select fields work with Django 4.0
Closes: #2228.

- Django 4.0 changed to using <div> instead of using <ul> and <li> for multiple
choice select fields. Update code for the select-all button to work with the new
HTML structure.

- Add styling to ensure that multiple choice select field appears similar to
previous <ul> and <li> based style.

- This patch assumes that django-bootstrap-form has support for Django 4.0 as
seen in https://github.com/tzangms/django-bootstrap-form/pull/110 .

Tests:

- Radio select seem to have no issues. Checked in networks -> connection type
page.

- Open Backups -> Create backup page and ensure that select all button works
and appears same on testing (Django 3.2) and unstable (Django 4.0).

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 21:03:02 -04:00
James Valleroy
d42a07a630
datetime: Fix typo from pylint fix
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 20:58:21 -04:00
Sunil Mohan Adapa
bb35ddfeaa
pyproject.toml: Ignore some refactoring messages with pylint
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:46:39 -04:00
Sunil Mohan Adapa
eaa3a59791
*: pylint: Drop unnecessary 'pass' statements
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:46:31 -04:00
Sunil Mohan Adapa
22a120d979
*: pylint: Avoid calling super() with arguments
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:46:23 -04:00
Sunil Mohan Adapa
bfa11beb73
*: pylint: Don't inherit from 'object'
- This was required in Python 2 but useless in Python 3.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:46:15 -04:00
Sunil Mohan Adapa
c73f88b925
*: pylint: Suppress unused argument warnings
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:46:06 -04:00
Sunil Mohan Adapa
3c7bc4a192
*: pylint: Explicitly specify encoding when open a file
This is recommended by PEP-0597: https://peps.python.org/pep-0597/

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:45:57 -04:00
Joseph Nuthalapati
05815bc992
ci: Use compatible versions of Selenium and Splinter
This is a temporary fix until Splinter addresses the breaking changes in Selenium 4.3.0

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-07-04 19:26:40 -04:00