8124 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
8b7c0fb0bf
uninstall: Fix issue with uninstall of apps that have no backup
Closes: #2342.

- Define a helper method to figure if app has backup. Use the helper method in
main AppView.

- Minor refactor of repeated code in uninstall view that gets the app and
app_id.

- Pass whether an app has backup or not into form. Delete backup related form
fields when backup is not supported. UX when fields are disabled is not nice, it
is not explained why fields are disabled. Better UX seems to be to remove the
backup fields entirely.

Tests:

- Install wireguard. In the uninstall form backup fields don't appear. Uninstall
is successful.

- Install Bepasty. In the uninstall form back fields are shown. Uninstall is
successful with and without a backup. In case backup is chosen, backup is
created and can successfully be restored.

- Run functional tests for bepasty. For wireguard uninstall test succeeds.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-05-06 07:08:06 -04:00
Sunil Mohan Adapa
43a2734917
storage: Handle mount error properly
Closes: #2343.

- The change is needed due to change in privileged exception handling.

Tests:

- In vagrant machine, while FreedomBox service is running, run unit tests are
root user. Observe that exception is not handled properly without the patch. But
a more reasonable error is printed with the patch.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-05-06 06:56:53 -04:00
Sunil Mohan Adapa
e525d0ff72
ttrss: Use the apache component to restart apache on config change
Tests:

- Install version 5 of ttrss app. Update to version 6. Notice that apache is
reloaded.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-05-03 08:00:43 -04:00
Sunil Mohan Adapa
31e4616470
transmission: Add Tremotesf to list of client apps
Test:

- From F-droid, install and configure the app. Ensure that it works with
FreedomBox.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-05-03 08:00:40 -04:00
Sunil Mohan Adapa
209e9c681e
transmission: Allow remote UIs to connect
- Reload apache for new configuration

- Increment app version to ensure new apache configuration is load immediately
after FreedomBox version upgrade.

- Don't re-enable a disabled app during app version upgrade.

- Update description to talk about the remote RPC URL for apps.

Tests:

- Use tremotesf client on LineageOS to connect on the URL /transmission-remote.

- Install transmission app freshly and notice that webserver reload was called
only once. Remote GUI is working.

- Install transmission without patches. Disable app. Apply patches, notice that
webserver was not reloaded. Enable and remote GUI is working.

- Install transmission without patches. Enable app. Apply patches, notice that
webserver was reloaded and remote GUI is working.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-05-03 08:00:37 -04:00
Sunil Mohan Adapa
1406f53019
apache: Reload apache using component if config changes
We often change apache configuration for an app and when a new version of the
config is deployed the changes go un-applied until FreedomBox is restarted. Allow
specifying that config has changed in an particular version and reload of
configuration is needed.

Tests:

- Unit tests pass. The feature used in transmission works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-05-03 08:00:34 -04:00
James Valleroy
3c4771ed00
tor: Rename Hidden service to Onion service
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-05-02 08:44:00 -07:00
James Valleroy
f9e039b4cb
tor: Check if Hidden service is version 3
Check that the Hidden service hostname contains 56 bytes before the
.onion.

Helps: #2104

Tests:

- With Hidden service enabled, v3 check is passed.

- With Hidden service disabled, v3 check is skipped.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-05-02 08:43:52 -07:00
James Valleroy
56adc7ae22
tor: Only diagnose relay ports if feature enabled
Tests:

- With relay enable, relay port diagnostic is passed.

- With relay disabled, relay port diagnostic is skipped.

- With bridge relay enabled, obfs ports diagnostics are passed.

- With bridge relay disabled, obfs ports diagnostics are skipped.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-05-02 08:43:38 -07:00
Sunil Mohan Adapa
3922d7c71f
ttrss: Don't show app in enabled list of apps if install fails
Closes: #1615.

Tests:

- Throw an unconditional exception in enable_api_access() method. Reproduce the
problem described by installing ttrss app. Installation fails but ttrss shows up
in enabled list.

- Apply the patch. Try to install ttrss. When it fails, the app is not in the
enabled list.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-29 08:47:23 -04:00
Sunil Mohan Adapa
537cc749d1
ttrss: Update list of clients
- Tiny Tiny RSS Fork calls itself "Tiny Tiny RSS" on F-Droid and "TTTRSS" on
project page.

- TTRSS-Reader is available on F-Droid and Google Play Store.

- Geekttrss is available on F-Droid.

- The original TTRSS app does not seem to be available on Google Play Store
anymore.

Tests:

- Install each app on respective platforms. Configure them and see if they work.

- Check for free software licenses on project pages.

- Click on each of the clients in the clients list in the web UI and see that
the links redirect to corresponding app pages on the appropriate store.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-29 06:22:22 -04:00
Sunil Mohan Adapa
3d1beaf640
mediawiki: Simplify retrieving the default language
- Mostly to avoid a repeated call to retrieve the list of changes.

- If an unknown value is read, user experience in terms of listed languages and
resetting the new language won't change.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-27 08:39:28 -04:00
Sunil Mohan Adapa
f3621a274d
mediawiki: Make retrieving list of supported languages robust
- Invoke PHP command to retrieve the list instead of parsing PHP file. This
fixes issue with regex not being generic enough to retrieve languages list using
double quotes. Also make is much more robust to future formatting changes.

- If there is an error in retrieving, which may happen due to future code
changes, fall back to showing a safe list of languages instead of making the app
unusable.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-27 08:39:25 -04:00
Sunil Mohan Adapa
dcd8ef9634
mediawiki: Make a utility method public
For use later.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-27 08:39:23 -04:00
James Valleroy
b423733ec4
debian: Follows policy v4.6.2
No changes are needed.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-26 06:10:41 -07:00
James Valleroy
b8f786cf40
debian: Update copyright years
Add doc/*.wiki to the section covered by CC-BY-SA-4.0.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-26 06:10:24 -07:00
nbenedek
97d9174775
ttrss: Allow apps to use /tt-rss URL instead of separate one
- When tt-rss is accessed via a smart device, authenticate the
user with basic auth, otherwise authenticate with mod_auth_pubtkt.

- I tested logging in with the official TT-RSS Android app and
Fiery Feeds for iPhone.

- Reload apache2 to apply the changes.

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Use Authorization header instead of user agent]
[sunil: Update description to talk about both URLs]
[sunil: Increment app version to reload apache]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-25 12:13:42 -07:00
James Valleroy
56b17ca41f
Release v23.8 to experimental
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v23.8
2023-04-24 21:47:11 -04:00
James Valleroy
1d1a76110d
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-24 21:46:26 -04:00
Sunil Mohan Adapa
d26a6f40d0
searx: Simplify handling shortcut for front page
The older code is likely before the card approach was implemented and cached copy
had to updated. It is no longer needed as the shortcuts are not filtered based
on login required property in the template code.

Tests:

- When public visibility is enabled/disabled shortcut is properly shown on the
frontpage.

- When restarting the service the public visibility properly dictates whether
shortcut is show properly.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-24 21:13:03 -04:00
Sunil Mohan Adapa
147b61655b
gitweb: Simplify handling shortcut for front page
The older code is likely before the card approach was implemented and cached copy
had to updated. It is no longer needed as the shortcuts are not filtered based
on login required property in the template code.

Tests:

- When public visibility is enabled/disabled shortcut is properly shown on the
frontpage.

- When restarting the service the public visibility properly dictates whether
shortcut is show properly.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-24 21:12:52 -04:00
Sunil Mohan Adapa
4be7ce0f5d
tests: functional: Update detecting page changes
Several tests failed randomly (on a slightly slow machine) while trying to
detect that a page change has occurred. Workaround this by handling the
exception thrown.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-24 20:54:58 -04:00
Sunil Mohan Adapa
fcbcf1775c
tests: functional: Remove handling for custom enable/disable buttons
All the apps including OpenVPN now use AppView and therefore using the standard
enable/disable button.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2023-04-24 20:54:55 -04:00
Ihor Hordiichuk
5761718583
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1486 of 1486 strings)
2023-04-23 14:48:14 +02:00
109247019824
31411a97c7
Translated using Weblate (Bulgarian)
Currently translated at 46.8% (696 of 1486 strings)
2023-04-19 11:52:31 +02:00
nbenedek
f52bfab993
samba: Completely uninstall app
Drop all Samba shares when app is uninstalled

Test:
1. Install app, enable  Open Share and  Group Share
2. Reinstall app and confirm all shares get dropped

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 13:15:39 +05:30
nbenedek
4d7651c89f
openvpn: Completely uninstall app
Remove /etc/openvpn when the app is uninstalled

* Tests:
1. Uninstall app and manually check if /etc/openvpn gets removed
2. Sucessfully install app
3. Functional tests: passed
4. In case we choose to purge packages in the future: I checked purging openvpn and it will not
remove /etc/openvpn.

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 12:40:10 +05:30
nbenedek
7e960e7491
infinoted: Completely uninstall app
Remove DATA_DIR, KEY_DIR, CONF_PATH and SYSTEMD_SERVICE_PATH
during the uninstall process. I manually ran apt-get --purge autoremove infinoted
and these files did not get deleted.

Tests:
1. Compare the output of tree -ra /etc/infinoted/ /etc/infinoted/
before and after reinstalling the app: all the files get reinstalled properly
2. Functional tests: passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 12:37:47 +05:30
James Valleroy
99dfe9fe1e
upgrades: Check apt result during dist-upgrade
In case apt full-upgrade fails for any reason, do not
continue. Otherwise, may get stuck unattended-upgrade later (#2266).

Since the dist-upgrade flag remains set, Plinth should retry the
dist-upgrade later.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 11:04:40 +05:30
nbenedek
e3c285c4cb
ttrss: Completely uninstall app
Set debconf values so that the database gets dropped when the package is removed

Tests:

* Install App and subscribe to a feed
* Apply patches, then reinstall app: confirm the feed is purged
* Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 10:37:52 +05:30
nbenedek
82101cc9b3
tor: Completely uninstall app
Tests:
* Manually reinstall the app and check if hidden service is regenerated
* Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 09:59:36 +05:30
nbenedek
6c14b9a304
syncthing: Remove unused pathlib import so job code-quality can pass
Signed-off-by: nbenedek <contact@nbenedek.me>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 09:58:47 +05:30
nbenedek
50b6fd4093
mediawiki: Completely uninstall app
Tests:
1. Install Mediawiki, set the admin password and edit the main page
2. Reinstall app: password and wiki content are set back to default
3. After the reinstall, I test uploading an image and backing up/restoring the
   app

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
[sunil: Fix functional tests by setting up after re-install]
[sunil: Fix functional test by account for change in delete button ID]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-16 09:35:09 +05:30
nbenedek
30b0019865
wordpress: Completely uninstall app
* When app is uninstalled, remove config files and drop the database
* Declare PUBLIC_ACCESS_FILE with pathlib.Path
* Add public access file to the backup manifest

Tests:
1. Install and setup wordpress
2. Reinstall the app and confirm that the initial setup page is shown to the user
3. Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, minor refactoring]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-14 18:58:59 +05:30
nbenedek
f1d2139c2d
syncthing: Completely uninstall app
Remove config file when app is uninstalled

Tests:
1. Install app and add a share
2. Reinstall app and confirm that the share doesn't exist

The order of the functional tests should be modified
since 'test_add_remove_folder' fails

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
[sunil: Remove the entire configuration directory]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-14 17:11:31 +05:30
nbenedek
77318806c2
sharing: Completely uninstall app
Test: Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-13 08:40:08 +05:30
nbenedek
95e370a1bf
shadowsocks: Completely uninstall app
Test: Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-13 08:14:47 +05:30
nbenedek
6ab0be6f9a
shaarli: Completely uninstall app
* remove data directory when app is uninstalled

Tests:
1. Install and configure the app
2. Reinstall app and confirm the initial setup page is shown

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
[sunil: Fix uninstall test by setting up after reinstall]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-13 07:27:28 +05:30
nbenedek
be7fd45393
searx: Completely uninstall app
* If only the SETTINGS_FILE gets removed, the setup
    process fails afterwards
* Don't remove the public access file since the setup process
    will remove it anyway

Test: Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-12 15:45:04 +05:30
nbenedek
17e062e829
rssbridge: Completely uninstall app
* make ENABLE_LIST a constant
and declare PUBLIC_ACCESS_FILE with pathlib.Path()
* add PUBLIC_ACCESS_FILE to the backup manifest
* Remove PUBLIC_ACCESS_FILE and ENABLE_LIST

Tests:
1. Install the app and enable public access
2. Reinstall the app and confirm the public access is reset to default
3. Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-12 15:10:17 +05:30
nbenedek
f11074ab9d
roundcube: Completely uninstall app
* remove local config and sqlite file
* add them to the backup manifest

Tests:
1. Modify the user's email address inside roundcube
2. Reinstall the app and confirm the modification was reset
3. Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-12 14:48:47 +05:30
nbenedek
1659b456d1
matrixsynapse: Completely uninstall app
Remove database, mediafiles and freedombox configs.
Removal of certs are not neccessary since the next setup will
overwrite them

Test:
1. Install the app and set a domain
2. Reinstall the app and confirm the domain can be set like it's the first time

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
[sunil: Fix uninstall functional test]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-12 14:44:45 +05:30
nbenedek
b2ad4088aa
ikiwiki: Completely uninstall app
Tests:
1. Create a wiki and a blog
2. Reinstall the app and confirm the sites get deleted

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-11 12:52:25 +05:30
nbenedek
53f4edb016
gitweb: Completely uninstall app, remove repositories
Tests:
1. Install app, create a repository
2. Reinstall app and confirm the repository is removed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-11 12:32:15 +05:30
nbenedek
615c47e49f
deluge: Completely uninstall app
Remove deluge default file, config directory, and systemd service file

Test:
1. In a Vagrant box manually install the app
2. Modify the default download path and change the default password
3. Uninstall the app
4. Confirm that the download path and password are reset to default
5. Also test enabling and disabling the app after reinstallation

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstings and make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-11 10:45:16 +05:30
nbenedek
db2d42c5ac
coturn: Completely uninstall app
Tests:

* Verify from the UI that after reinstalling the app a new secret is generated
* Functional tests passed

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-11 10:04:16 +05:30
nbenedek
3d71869211
bepasty: Completely uninstall app
During the uninstall process:

* Remove bepasty data directory
* Remove freedombox config file
* Remove bepasty user (and group)

Test:

* Manually test if data is indeed removed
* Run functional tests

Signed-off-by: nbenedek <contact@nbenedek.me>
[sunil: Update docstrings, make uninstall fail-safe]
[sunil: Remove bapasty group as well]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-11 09:58:57 +05:30
109247019824
a6e728fc0f
Translated using Weblate (Bulgarian)
Currently translated at 46.2% (688 of 1486 strings)
2023-04-11 02:02:09 +02:00
Veiko Aasa
6dd45779db
gitweb: Make globally configured features overridable per-repository
Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-09 19:56:08 +05:30
Veiko Aasa
7481aacd82
gitweb: Disable snapshot feature
Closes: #2335.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2023-04-09 19:55:51 +05:30