2535 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
4d73d7eb7f
email_server: Merge domain configuration with app view
Test:

- Submit the domain form unchanged. Message is printed that settings are
unchanged.

- Submit the domain form with changes. Message is printed that domain has been
updated. Configuration reflects the new domain.

- On page load, the current domain is shown in the domain configuration form.

- Clicking the repair button the service alert section triggers the repair
operations as seen in the console.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-06 17:39:55 -05:00
Sunil Mohan Adapa
ae882fea70
email_server: Simplify domain configuration form
- By default, receive mail for all the domains on the system.

- Allow user to select a primary domain. This domain is used for TLS
certificate, automatically adding domain to sender address, etc.

- Don't expose postfix configuration parameters.

Tests:

- On installation, the domain list populated in postfix. Primary domain is
the one set in the config module. If it is not set, any other domain from
configured domains is taken.

- When not installed, adding/removing domains does not cause errors.

- Changing the domain in the domain view works. mydomain has the primary domain
set. myhostname has primary domain set. mydestination has default values and in
addition has all the domains on the system.

- /etc/mailname is populated with the primary domain.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-06 17:39:43 -05:00
James Valleroy
b12a07229c
tests: Add 'domain' mark for apps that add/remove domains
Test:
- "py.test-3 --include-functional -m domain" tests the marked apps.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-12-05 11:00:41 -08:00
Sunil Mohan Adapa
019a785cc3
*: Drop module level depends declaration
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:39:49 -05:00
Sunil Mohan Adapa
603b63bbac
module_loader, app: Move app init to app module
- Don't try to get the depends from module level and sort modules based on that.

- Instead after all App instances are created, sort the apps based on
app.info.depends and app.info.is_essential.

- Print message that apps have been initialized instead of printing before they
are initialized. The correct order of apps is only known after they have been
initialized and sorted.

- Avoid circular import on module_loader and setup.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:39:40 -05:00
Sunil Mohan Adapa
a0a6e1d362
setup: Run setup on apps instead of modules
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:39:01 -05:00
Sunil Mohan Adapa
8382a604bb
security: Drop use of loaded_modules and use App.list
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:38:43 -05:00
Sunil Mohan Adapa
bc3a879ead
first_boot: Drop use of loaded_modules and use App.list
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:38:34 -05:00
Sunil Mohan Adapa
a3d4d99b33
*: Drop use of module level version
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:38:08 -05:00
Sunil Mohan Adapa
cf36a9d385
*: Drop use of module level is_essential flag
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:37:59 -05:00
Sunil Mohan Adapa
b609abe7e5
*: Use the App's state management API
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:37:40 -05:00
Sunil Mohan Adapa
fb40bb7f42
*: Drop module level package_conflicts and use component API
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:37:03 -05:00
Sunil Mohan Adapa
00182da751
*: Drop use of unnecessary managed_paths
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:36:31 -05:00
Sunil Mohan Adapa
781d8fa18b
*: Drop use of managed_services, rely on Daemon component
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:35:57 -05:00
Sunil Mohan Adapa
9ec0c5f3db
security: Drop use of managed_services in security report
Use Daemon component instead.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:35:30 -05:00
Sunil Mohan Adapa
84ae338e66
bind: Drop alias handling unnecessary in >= Bullseye
Alias was added to deal with Buster -> Bullseye transition. In Buster the daemon
was named bind9 and in Bullseye the daemon is named named with alias to bind9.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:35:21 -05:00
Sunil Mohan Adapa
4bf57c5707
*: Drop use of managed_packages and rely on Packages component
- For zoph, drop dependency on php7.4 as it will cause issues for future
versions of php. The dependency was a hack and not needed for Bullseye and
higher.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:34:52 -05:00
Sunil Mohan Adapa
6ba98573d5
security: Get the list of packages from Packages component
Instead of from managed_packages module level variable.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:34:42 -05:00
Sunil Mohan Adapa
80d0a7638c
*: Drop unused manual_page at module level
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-04 16:33:49 -05:00
Sunil Mohan Adapa
18ed1c9267
firewall: Allow configuration upgrade to version 1.0.x
Closes: #2133.

There are two new defaults which need not be altered in FreedomBox:

CleanupModulesOnExit=no
(removed) AllowZoneDrifting=no

Tests:

- Without the patch, on a testing system with firewalld 0.9.x installed, run apt
update. FreedomBox considers firewalld for force upgrade and then ignores it as
shown in the logs.

- With the patch, firewalld is upgraded to 1.0.x version by FreedomBox using
force upgrade as shown in logs. After upgrade, the default zone is external and
backend is nftables.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-03 14:09:26 -05:00
Sunil Mohan Adapa
9133711baf
dynamicdns: Update URLs to the new dynamic DNS server
By December 15th, all freedomboxes should no longer be pointing to the old
server. Hence, we need to have these changes done much before the migration date
for the changes to propagate.

The new website ddns.freedombox.org does not allow registrations yet. However,
the new website has a link to announcement. There is now an advice for new users
seeking to create accounts during the migration period.

Tests:

- In Dynamic DNS app, in the about page, the link is to the new server and it
works.

- The example link in the configuration form, IP URL field description is to new
server and it works.

- Functional tests for the Dynamic DNS app work.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-03 12:43:11 -05:00
James Valleroy
b10fc8c107
shaarli: Enable app
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2021-11-28 21:01:09 +05:30
Sunil Mohan Adapa
20b46f7df5
config: Add packages component to a re-add zram-tools dependency
Fixes: #2151.

Tests:

- Before this patch, --list-dependencies does not list zram-tools. After this
patch, --list-dependencies lists zram-tools.

- After this patch, --list-dependencies exactly matches the output from
freedombox release without Packages component changes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-24 10:17:27 -05:00
James Valleroy
bec080ec90
datetime: Avoid error when systemctl is not available
This situation happens when building the package with cowbuilder.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-22 05:42:51 -08:00
Joseph Nuthalapati
aaea6bf00e
tt-rss: Allow selection of a domain name
Fixes: #2136

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
[james: Fix comment]
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-21 19:10:54 -05:00
Joseph Nuthalapati
a912c867c8
names: Create a generic TLS domain selection form
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-21 19:04:35 -05:00
Sunil Mohan Adapa
3c44fa9a07
gitweb: Split app initialization
Tests:

- When a public repo is added, upon startup, the front page shortcut is shown.

- When all public repos are removed, upon startup, the front page shortcut is
not shown.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:14:14 -05:00
Sunil Mohan Adapa
9c091df245
ejabberd: Split app initialziation
Tests:

- When enabled, when domain name or hostname changes, ejabberd actions are
triggered.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:14:07 -05:00
Sunil Mohan Adapa
5b4f70d6f9
upgrades: Split app initialziation
Tests:

- Upon startup, upgrade check runs every 3 minutes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:59 -05:00
Sunil Mohan Adapa
fe482256f6
tor: Split app initialziation
Tests:

- When onion services are enabled, upon startup, names module shows the onion
domain.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:51 -05:00
Sunil Mohan Adapa
4b3a4020d9
storage: Split app initialization
Tests:

- Upon startup, 'storage usage-info' action is triggered every 3 minutes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:42 -05:00
Sunil Mohan Adapa
e5b56e44f1
pagekite: Split app initialization
Tests:

- When configured, upon startup, pagekite domains shows up in the names module.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:34 -05:00
Sunil Mohan Adapa
1d17ba2134
names: Split app initialization
Tests:

- When domain name is changed in config module. The updated names shows up in
the names module.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:25 -05:00
Sunil Mohan Adapa
32d7ce9b38
letencrypt: Split app initialization
Tests:

- On startup, LE tries to obtain certs during post app initialization.

- When domain is added, LE tried to obtain certificates.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:17 -05:00
Sunil Mohan Adapa
c27000c6d6
config: Split app configuration
Tests:

- After startup, the configured domain name shows up in names module.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:08 -05:00
Sunil Mohan Adapa
6429806114
email_server: Don't get domain name during initialization
This keeps the LE module working better when the domain name is changed after
startup.

Tests:

- Untested. The module is not enabled yet. LE functionality in email server is
not fully functional.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:13:00 -05:00
Sunil Mohan Adapa
b163423a26
dynamicdns: Split app initialization
Tests:

- When configured, after startup, Dynamic DNS domain shows up in names module.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:12:52 -05:00
Sunil Mohan Adapa
249c713bb5
diagnostics: Split app initialization
Tests:

- When a print message is added in low disk space checking method, it is printed
every 3 minutes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:12:44 -05:00
Sunil Mohan Adapa
2947e182cd
cockpit: Split app initialization
Tests:

- When a domain is added it is added to the configuration file.

- When a domain is removed it is removed from the configuration file.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:12:35 -05:00
Sunil Mohan Adapa
143bff3984
backups: Split app initialization
Tests:

- After startup, every 3 minutes, backup schedule check is performed if a
schedule is set.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:12:19 -05:00
Sunil Mohan Adapa
79a6e041ca
avahi: Split app initialization
Tests:

- After startup, names module shows a .local domain if app is enabled.

- If app is disabled, .local domain is not shown.

- When hostname is changed, .local domain name in names modules changes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-15 10:12:11 -05:00
Sunil Mohan Adapa
7b9149d048
security: Properly handle sandbox analysis of timer units
- When a timer is provided to 'systemctl show' not all expected keys are
provided in the result. This leads to a KeyError exception.

- Also the security analysis for a timer unit is not useful. Instead perform the
analysis on the corresponding .service unit.

Closes: #2145

Tests:

- Before the patch, Wordpress shows as not sandboxed. The security report page
crashes on Debian testing setup.

- After the patch, there is no crash. Wordpress shows as sandboxed with 86%
coverage.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-11-08 20:44:49 -05:00
Joseph Nuthalapati
cd4bd17173
components: Introduce new component - Packages
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
[sunil: isort all files]
[sunil: Remove component in datetime component as managed_packages is empty]
[sunil: Minor refactor in minidlna for consistency]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 16:03:42 -08:00
James Valleroy
ff0dc01023
samba: Use systemd sandboxing for smbd/nmbd
Test: Samba functional tests passed.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 13:52:54 -08:00
James Valleroy
4bb0f81643
avahi: Use systemd sandboxing
Sandbox coverage is 35%.

Tests:
- Functional tests passed.
- Diagnostics passed.
- FreedomBox services are visible in Avahi Zeroconf Browser.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 13:28:42 -08:00
James Valleroy
10ece80a56
tests: functional: Add diagnostics delay parameter
Time to delay after app is enabled, before checking
diagnosics. Default value is 0 (no delay).

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 11:55:31 -08:00
James Valleroy
520feedaca
tor: Use BaseAppTests for functional tests
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 11:55:28 -08:00
James Valleroy
7b90787be3
tahoe: Use BaseAppTests for functional tests
Not tested: App is not currently available.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 11:55:24 -08:00
James Valleroy
b94833e44d
transmission: Use BaseAppTests for functional tests
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 11:55:21 -08:00
James Valleroy
452f8b825b
shadowsocks, syncthing: Use BaseAppTests for functional tests
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-11-08 11:55:06 -08:00