10481 Commits

Author SHA1 Message Date
Hosted Weblate user 54392
714abafb0c
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 61.0% (1192 of 1954 strings)
2026-08-19 04:51:25 +02:00
Oğuz Ersen
1ae6eed009
Translated using Weblate (Turkish)
Currently translated at 100.0% (1954 of 1954 strings)
2026-08-19 04:51:24 +02:00
James Valleroy
b6e122816d
d/tests: Re-arrange test steps to help with debugging
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-08-17 19:52:04 -07:00
James Valleroy
031bbb53cb
Release v26.11 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
debian/26.11
2026-08-17 19:45:01 -04:00
James Valleroy
52e83a6c26
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-17 19:44:02 -04:00
James Valleroy
4043799d18
locale: Update strings for translation
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-17 19:23:41 -04:00
Sunil Mohan Adapa
29eca5426d
views: Link to apps-add page from a tag click in app page
Tests:

- On Coturn app page, clicking on a tag redirects to Add New App page with tag
filter set to clicked tag.

- On Names app page, clicking on a tag redirects to system page with tag filter
set to clicked tag.

- On Operations page such as when installing an app, clicking on a tag redirects
to Add New App page with tag filter set to clicked tag.

- On Index page such when OpenVPN is clicked description for OpenVPN is shown.
Clicking on a tag in the description redirects to Add New App page with tag
filter set to clicked tag.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-17 19:19:05 -04:00
Sunil Mohan Adapa
18046ef736
firstboot: Link from next steps page to add apps page
- Instead of the apps page which will be empty on first boot.

Tests:

- On Next Steps page, click on apps link takes users to add apps page and not
apps page.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-17 19:19:02 -04:00
Sunil Mohan Adapa
2764c58c53
views: Add a separate page for adding new apps
- It avoids confusion with two separate app sections in a single page. The
sections/pages can be better titled.

- In future, we can style the apps page (with more status display) differently
from apps-add page (with more search and featured apps).

- Move page specific parts into individual pages instead of in the common
template cards.html.

- Add special message when there are no apps enabled and when there are no more
apps to enable.

- Drop show_disabled flag in cards template that is not needed anymore.

Tests:

- Unit tests work.

- Functional tests work on bepasty when starting with uninstalled, disabled, or
enabled states.

- Apps page shows special message when there are no apps enabled. It is
centered.

- Apps page shows 'Add new app' button with icon. Clicking it takes us to
apps-add page.

- Apps page does not have disabled apps list (even hidden).

- Disabled and uninstalled apps are not shown on apps page.

- Apps-add page shows special message when there are no more apps to be
installed or enabled (test by altering view code to have empty list of apps).

- Apps-add page shows list of apps that are disabled or uninstalled but not
enabled apps. It shows a title 'Add New App'.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-17 19:18:51 -04:00
James Valleroy
37cfb0fbfd
debian: Trim list of Uploaders
See:
https://lists.debian.org/debian-project/2026/08/msg00011.html

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-08-15 07:11:43 -07:00
Sunil Mohan Adapa
62deda0ec7
dynamicdns: Allow updating both IPv4 and IPv6 records together
- Change the IPv6 checkbox into an option to select from IPv4 only, IPv6 only,
or IPv4 and IPv6. Update functional tests.

- Add type hints everywhere.

- Separate out the generic URL update method to its own module. Add unit tests.

- Migrate old configuration to new configuration on first read.

- Store multiple IP addresses in the status. Support showing old status format
of single IP address as well. Show multiple IP addresses in the status table.

- Handle errors during update using exceptions for clearer code.

- For generic URL based updates, capture return code, stdout and stdin in error
message.

Tests:

- Adding a new GnuDIP domain leads to configuration setting ip_type = ipv4

- When adding a new dynamic domain, when generic option is selected IP Address
  Type is shown. When GnuDIP is selected, the field is hidden.

- IP Address Type field is as expected. Options and description are as expected.

- When a new domain is added for generic domain, the value of ip_type is set as
  expected. Changing the value to other values works. Configuration is updated
  as expected. Option values and description are as expected.

- The column for IP Address is now 'IP Addresses'. When multiple IP addresses
  are present in the status, they are shown in multiple lines in the tables as
  <pre>. When no IP addresses are present, a '-' is shown in the column.

- When generic domain update fails, subprocess failure code, stderr and stdout
  are shown in the error message.

- Unit tests work.

- Functional tests work.

- After 5 minute period, attempts are made to update the domain

- For GnuDIP and generic method:

  - IP address lookup works for IPv4 and IPv6.

  - IP address updates works for IPv4 (tested) and IPv6 (untested).

  - In 'both' configuration, when IPv6 update fails, IPv4 still succeeds.

  - Updates are skipped if the record is up-to-date.

  - Successful updates are performed otherwise.

  - Wrong password leads to proper error being shown.

- When the old status is stored, it is updated during read and proper status is
  shown.

- When configuration has old use_ipv6 key, then it is migrated when newer
  version of the service is started. True value is converted as 'ipv6', False
  value is converted as 'ipv4'. 'null' key is properly removed.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-15 08:49:43 -04:00
Sunil Mohan Adapa
ca1b54f3cf
dynamnicdns: Drop old migration code shipped in bookworm
All the users of the old ez-ipupdate client must have been migrated long ago as
the migration code was shipped in bookworm.

Tests:

- Service starts as expected.

- Re-running setup for the app works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-15 08:49:38 -04:00
Pierfrancesco Passerini
72095dffec
Translated using Weblate (Italian)
Currently translated at 100.0% (1948 of 1948 strings)
2026-08-13 20:51:26 +02:00
Priit Jõerüüt
53e7fb013c
Translated using Weblate (Estonian)
Currently translated at 19.9% (389 of 1948 strings)
2026-08-11 10:51:27 +00:00
Coucouf
ba0b39c2a4
Translated using Weblate (French)
Currently translated at 100.0% (1948 of 1948 strings)
2026-08-11 10:51:24 +00:00
Sunil Mohan Adapa
c5f9606f43
pyproject: Declare support for Django 6.0
Explicitly noting down the version of Django helps us keep better track of our
upgrade progress. Due to the nature of changes to Django in recent versions,
FreedomBox does not need any changes to support newer versions. So, work done on
analyzing support for newer versions needs to tracked separate from git log
message.

Tests:

- Building FreedomBox Debian package works.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-08 10:03:49 -04:00
Sunil Mohan Adapa
5013c05d35
settings: Drop support for Django < 4.0
- Trixie has Django 4.2.28.

Tests:

- Unit tests pass on Trixie and Forky.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-08 10:03:46 -04:00
Sunil Mohan Adapa
f2e898090c
mypy: Add support for version 2.1
Tests:

- Unit tests pass.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-08 10:03:44 -04:00
Sunil Mohan Adapa
d2a959a277
tests: Use class methods for class scoped fixtures
Using class-scoped fixture as instance method is deprecated in pytest 9.1 and
support will be removed in 10.0.

See: https://docs.pytest.org/en/stable/deprecations.html#class-scoped-fixture-as-instance-method

Tests:

- Run functional tests for samba, matrixsynapse (unrelated failure), and
bepasty.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-08 10:03:39 -04:00
Sunil Mohan Adapa
c1aeb1f661
d/postinst: Remove unnecessary file
- The last bit code left in the file was a fix applied in 2018 and not used
since we stopped using access.conf file.

Tests:

- Building Debian package works.

- The Debian package still contains a postinst script with code for starting
systemd daemon and for running other debhelper hooks.

- Installing the Debian package on a fresh Debian trixie machine starts the
FreedomBox service. First wizard finished without issues and bepasty app install
succeeds.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-08 09:11:38 -04:00
Sunil Mohan Adapa
841b0382e7
homeassistant: App is stable, remove experimental warning
- This app has been running on my FreedomBox without any problems with every day
usage for more than 6 months.

Tests:

- The app description does not show experimental message anymore. App page shows
up fine.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-08-08 09:09:42 -04:00
Jiří Podhorecký
2aaee483d4
Translated using Weblate (Czech)
Currently translated at 100.0% (1948 of 1948 strings)
2026-08-04 19:01:52 +02:00
Hosted Weblate user 54392
22ac98d6a7
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 60.9% (1188 of 1948 strings)
2026-08-02 05:01:53 +02:00
Burak Yavuz
a04c1c801d
Translated using Weblate (Turkish)
Currently translated at 100.0% (1948 of 1948 strings)
2026-07-30 12:01:59 +02:00
James Valleroy
4f419723b5
Release v26.10 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
debian/26.10
2026-07-28 22:48:47 -04:00
James Valleroy
ecddf2cefa
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-07-28 22:47:39 -04:00
James Valleroy
ca8a64ec10
locale: Update strings for translation
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-07-28 22:27:31 -04:00
Sunil Mohan Adapa
1e2fb8171f
first_boot: Move first wizard secret generation to this app
- Generating files in postinst script makes working with image-based systems
harder as postinst scripts are not run when booting from a pristine image. So,
move this to first_boot app's setup() method.

- This means that first wizard secret is no longer displayed during package
installation. This is a loss in usability, but might be acceptable:

  - We want to reduce the number of dialog box messages shown to the user during
  the installation of FreedomBox as a blend in Debian installer. Along with this
  change, if we migrate away from LDAP, then no messages will be shown anymore.

  - When users are installing using Debian installer, they don't have access to
  console to note down the secret. They can only note down on a physical medium.
  This is not the best way. Most of the time when I installed on machines, I
  just looked at the secret file later.

  - It is not expected that user will loose root access to the machine on which
  they installed 'freedombox' package (manually or through Debian installer)
  before they can type in the secret into the first wizard. Earlier, we had
  restrictions on the type of users who can login to the console and this could
  have happened.

  - We can eliminate a lintian warning that we are showing messages in a dialog
  in the postinst script instead of configure script.

Tests:

- Unit tests work.

- Building Debian package with changes works.

- Lintian warning about debconf has been eliminated.

- On a fresh Debian Trixie machine, installing the newly built Debian package
succeeds. It does not show first wizard secret related message. When web
interface is accessed, secret is asked. Skipping the secret is not possible.
Even before the creation of the secret file.

- Providing incorrect secret leads to error message. Secret file can be read by
root. The file is owned by plinth:plinth. The file has 0400 permissions.

- The secret file contains a newline at the file but entering the secret without
the newline character works.

- The secret contains uppercase and lowercase ASCII characters and digits. The
secret is 16 chars in length.

- Incrementing the version number of first_boot app does not lead to change in
the secret file contents.

- The message in the first wizard secret form is as expected.

- Building a disk image with newly built Debian package works. When the image is
booted, it does not ask for first wizard secret.

- When an existing machine is upgraded, if it is a disk image, first wizard
secret file is not created and first wizard is not shown to the user.

- When an existing machine is upgraded, if it is not a disk image, first wizard
secret file is not changed and first wizard is not shown to the user.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
[jvalleroy: Correct comment]
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-07-28 22:23:11 -04:00
Sunil Mohan Adapa
485391620b
ssh: Don't fail on page load when SSH host key can't be read
Closes: #2575.

Tests:

- 'touch /etc/ssh/ssh_host_dsa_key.pub'. Try to load the SSH app page. It fails.
With the patch, it succeeds. A warning message is printed about failing to read
the key with proper returncode, stdout, and stderr.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-07-26 10:05:26 -04:00
Sunil Mohan Adapa
0ab9be2ae0
log: Set simpler syslog identifier instead of full binary path
Tests:

- When watching journal using 'sudo freedombox-logs' command, the syslog
identifier for main service is 'freedombox' and for privileged service is
'freedombox-privileged'.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-07-26 09:53:01 -04:00
Sunil Mohan Adapa
fadea7eb4a
css: Fix sizing for icons in custom shortcuts
Closes: #2583.

Changes based on fix and workaround suggested by James Duncan (@jaduncan).

See: https://salsa.debian.org/freedombox-team/freedombox/-/work_items/2583

Tests:

- Home page, apps, system, and help icons appears as before.

- James Duncan (@jaduncan) reports that custom shortcut icons appear normal
after this change.

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-07-23 13:50:13 -07:00
reducedradius
f38f29e9e3
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 61.1% (1187 of 1942 strings)
2026-07-20 15:01:23 +02:00
Frederico Gomes
5a00d05cfe
apps: Change header title from Disabled to Available for install
Closes #1633.

[sunil: Move the button to the top of the apps page]
[sunil: Drop additional div nesting for 'available for install' section]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-07-14 15:37:46 -07:00
James Valleroy
10069c4e5d
tor, torproxy: Avoid error if defaults file missing during uninstall
See:
https://discuss.freedombox.org/t/error-when-uninstalling-tor-and-tor-proxy/4295

sunil: Use pathlib.Path.unlink()

Tests:

- Install Tor and Tor Proxy. Uninstall both. Uninstall is succesful.

- Install Tor and Tor Proxy. Manually delete
  /var/run/tor-instances/*.defaults. Uninstall both apps. Uninstall is
  successful. A warning is printed in the logs.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-07-14 14:53:16 -07:00
Coucouf
fce97a871a
Translated using Weblate (French)
Currently translated at 100.0% (1942 of 1942 strings)
2026-07-06 17:01:25 +02:00
Frederico Gomes
51ce0c4404
luanti: Add more detail to description
Sunil:

- Simplify installation of Luanti client into a paragraph. Merge information
about default port into this paragraph.

- Minor formatting and punctuation.

- Drop format_lazy calls where not needed.

Signed-off-by: Frederico Gomes <fredericojfgomes@gmail.com>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2026-06-29 10:34:00 -07:00
Dietmar
620b774d51
Translated using Weblate (German)
Currently translated at 99.1% (1926 of 1942 strings)
2026-06-28 16:01:21 +00:00
James Valleroy
7ab7c5f29c
debian/tests: Drop redundant status check
- Remove final status check, since it is confirmed at that point that
  setup is completed.

- Print the final status in test log.
2026-06-27 10:16:30 -04:00
Grayson Wolf
444b1f387a
d/t/access-web-interface: make ready check more robust
Test was failing (on Ubuntu) after an unrelated systemd update caused
things to be reordered enough to cause the 30 second time limit to
overrun, meaning apache wouldn't be ready and the test would fail.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-27 09:44:17 -04:00
bittin1ddc447d824349b2
90360af9b7
Translated using Weblate (Swedish)
Currently translated at 100.0% (1942 of 1942 strings)
2026-06-22 10:01:22 +02:00
ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)
614a4fa5b6
Translated using Weblate (Latvian)
Currently translated at 2.4% (47 of 1942 strings)
2026-06-18 11:01:18 +02:00
James Valleroy
350466940f
Release v26.9.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
debian/26.9.1
2026-06-15 20:46:51 -04:00
James Valleroy
dff6698647
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:44:27 -04:00
James Valleroy
ceaccd7baf
wireguard: Get config for both download and qr actions
Re-arrange imports

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:15:14 -04:00
James Valleroy
629cc866b6
wireguard: Move segno import inside method
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:15:14 -04:00
Sunil Mohan Adapa
efcdc8cb5c
matrixsynapse: Allow installing new dependencies
Fixes: #2556

Should be merged after fix for https://bugs.debian.org/1122841 is in unstable.

- This fixes issue with Matrix Synapse app not being installable from current
unstable.

- matrix-synapse package depends on older version of python3-typing-extensions.
This causes the daemon to fail during startup when older version is installed.
This was reported as https://bugs.debian.org/1122841. After this bug is fixed
and a newer version of matrix-synapse is uploaded, the patch will work as
expected. An alternative was to allow unattended-upgrades to upgrade
python3-typing-extensions from unstable, but has to be done very carefully and
with a lot of testing.

Tests:

- Install Matrix Synapse apps works. This request installation of the latest
version python3-typing-extensions from unstable. The daemon is running properly
after installation.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:12:24 -04:00
Coucouf
0188ad38f7
Translated using Weblate (French)
Currently translated at 100.0% (1942 of 1942 strings)
2026-06-13 22:01:20 +02:00
Pierfrancesco Passerini
1086d52851
Translated using Weblate (Italian)
Currently translated at 100.0% (1942 of 1942 strings)
2026-06-13 22:01:17 +02:00
Pierfrancesco Passerini
3616ceb68d
Translated using Weblate (Italian)
Currently translated at 99.6% (1936 of 1942 strings)
2026-06-08 13:01:02 +00:00
Jiří Podhorecký
274dabb741
Translated using Weblate (Czech)
Currently translated at 100.0% (1942 of 1942 strings)
2026-06-04 20:01:02 +02:00