48 Commits

Author SHA1 Message Date
Joseph Nuthalapati
21f6c9128f
django: Improve handling of file uploads
1. Set temporary directory to /var/tmp
2. Drop MemoryFileUploadHandler

Tests:

- During upload notice that file are in /var/tmp/system-private... folder
instead of /var/tmp.

- Upload a file but rename with another extension instead of moving to
destination through changes in code. Notice that the file is available in
/var/tmp/systemd-private... directory after the upload operation is completed.
Stop the service and notice that the file has been deleted. Folder is empty
after the service starts again.

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
[sunil: Add PrivateTmp=yes in plinth.service file]
[sunil: Update comments]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2024-10-03 11:44:51 +03:00
Sunil Mohan Adapa
071d61bcc8
*: Move all systemd service files from /lib to /usr
This is now the preferred location in Debian. See:

https://lintian.debian.org/tags/systemd-service-in-odd-location
https://bugs.debian.org/992465
https://bugs.debian.org/987989
d70caa69c6
https://lists.debian.org/debian-devel/2021/08/msg00275.html

Tests:

- Lintian no longer shows errors:
  E: freedombox: systemd-service-in-odd-location lib/.../calibre-server-freedombox.service

- Comparing the old .deb and newly generated .deb with these changes. All the
systemd files show that they are moved from /lib to /usr/lib/systemd.

- After upgrading the deb from older version to a version these changes,
services installed by the package are available (tested after restart with
wordpress and claibre). Services tweaked by the package have the changed
configuration reflected as shown by systemctl show
{service-name}.service (tested after restart with quassel).

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-10-09 22:08:50 -04:00
Sunil Mohan Adapa
365c29ba1a
*: Update remaining misc files to use SPDX license identifier
None of the files are installed into /etc/. They will unconditionally override
older versions of themselves. They are not likely to cause any configuration
file prompts.

Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2020-02-19 14:40:32 +02:00
Sunil Mohan Adapa
d205455cda
dbus: Allow plinth user to own FreedomBox DBus service
Without this fix, the daemon plinth will not able to acquire a DBus connection
and listen for the FreedomBox DBus service when running as user plinth user.
This is the case for production FreedomBox machines.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-07-09 19:40:04 -04:00
Sunil Mohan Adapa
ff247fa5aa
setup: Move app data files into respective apps
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-03-17 16:20:57 -04:00
Sunil Mohan Adapa
2df02b059c
dbus: Add new module for D-Bus services
- Implement listening for CacheUpdated notification.

- Configuration to allow only root to trigger the notification.

- Trigger the notification from an apt update hook.

- Retrieve the list of packages available for upgrade and print them to log.

- Add dependency on libglib2.0-bin for the gdbus command line tool.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-02-26 06:24:05 -05:00
Sunil Mohan Adapa
dea4af17fb
Rename Plinth to FreedomBox in license headers
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-02-16 20:10:09 -05:00
Sunil Mohan Adapa
07ee92692b
shadowsocks: Update firewall service description
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-11-29 17:47:37 +05:30
James Valleroy
6bf4eb1483
shadowsocks: Add shadowsocks client with socks5 proxy
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-11-29 17:47:05 +05:30
Sunil Mohan Adapa
e8e8fe0bd9
setup: Remove freedombox-setup related scripts
From freedombox-setup all the setup mechanisms and first-run mechanisms have
been removed. This script no longer does anything and is not needed. Ensuring
that the directories have proper permissions is now the duty of Plinth Debian
packaging.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Signed-off-by: Joseph Nuthalpati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-10-07 07:14:02 -04:00
Sunil Mohan Adapa
602ea6cf16
apache: New module to manage Apache configuration
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-09-01 20:04:07 -04:00
Sunil Mohan Adapa
2e55acb465
firewall: Move remaining setup steps to Plinth
There is no need to restart firewalld after the setup steps run.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-09-01 20:03:51 -04:00
Sunil Mohan Adapa
f5a5ee1f04
firewall: Remove redundant setup steps
- Essential modules enable their own services properly.  There is no need to do
  them as part of common setup.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-09-01 20:03:28 -04:00
Sunil Mohan Adapa
4bbbfd956c
Don't run Plinth setup as part of freedombox/setup
Instead run all of the setup process during the first boot. This enables us to
someday remove the reboot step entirely.

Tests: After building a new image with the changes, call the modules have shown
to be properly setup. Running the setup wizard, creating admin user and logging
works as expected.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-08-31 21:08:54 -04:00
James Valleroy
b19a9f972c
users: Move ldap structure config into normal setup
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-08-29 17:08:09 +05:30
Joseph Nuthalpati
5ad180fcc9
Add Tahoe-LAFS module
- Created basic plinth app which starts an introducer and a storage
  node on the FreedomBox.
- Prompt user to set a domain name before creating Tahoe-LAFS nodes.
- Support adding and removing of introducers to the storage node.
- Serve Tahoe-LAFS from a different port.
- Start all nodes and introducers at system startup.
- Add utility class YAMLFile with test cases.
2017-06-10 09:38:57 -04:00
morrme
ad3420823d
owncloud: Remove module (Closes: #818)
It is believed that ownCloud is unlikely to return to Debian in near future.
Removing module to ease maintenance.

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-04-25 18:06:56 +05:30
Sunil Mohan Adapa
93c151ab2b
matrixsynapse: Minor review changes
- Change the configuration minimally and more reliably.

- Rename the Apache configuration and add comments.

- Rename firewalld description file.

- Enable the matrixsynapse module by default.

- Improve category, description texts and warnings.

- Remove unused variable.

- Add missing docstrings.

- Minor styling updates.

- Fix i18n in templates.

- Fix showing description in main service view.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-04-05 12:58:45 +05:30
Rahul De
8b4cacd682
matrixsynapse: Add firewall rules to open port 8448
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-04-05 12:58:03 +05:30
James Valleroy
31f95cfb12
tor: Support obfs4 for upstream bridges
Refactor augeas lens for readability.
2017-01-29 11:19:34 +05:30
James Valleroy
1aa767e6bd
users: Move part of LDAP setup to first-run
LDAP admin and basic structure setup requires running slapd. Move this
to first-run so we don't have to start slapd during setup. This should
avoid issues when running setup in a chroot.
2017-01-18 18:40:03 -05:00
Sunil Mohan Adapa
eff8a7b84e
infinoted: Update firewall service description
- Mention Gobby.

- Add note on when the firewall service should be enabled in line with
  other firewalld service descriptions.
2017-01-18 10:36:27 +05:30
James Valleroy
cd12f5d2b3
infinoted: Add new module for collaborative editing 2017-01-18 10:35:06 +05:30
James Valleroy
85b87268b4
tor: Fix various issues related to plinth instance
- Remove extra newlines added to torrc.
- Remove comments added in random places to torrc.
- Enable tor instance during setup.
- Fix restarts to use tor instance.
- Revert change to augeas lens to attempt handling +.
- Add support for hyphens in values to augeas lens.
- Increment module version so setup can run again.
2017-01-08 15:36:59 -05:00
mridulnagpal
7afd5dd32d
tor: Disable tor service (replaced by tor@plinth) 2017-01-08 14:55:40 -05:00
Sunil Mohan Adapa
4db5a35ce0
repro: Open up RTP ports
- RTP ports used for voice and video communication can span a wide range
  of ports.  Some servers seem to restrict the range.  However, repro
  does not seem to do that.  So, open up the full range.
2016-10-01 08:19:57 -04:00
Sunil Mohan Adapa
7a80e04ddd
repro: Use firewalld provided SIP services
Now that firewalld has service definitions for SIP and SIP over
TLS/DTLS use them instead of custom service definitions.
2016-10-01 08:19:51 -04:00
James Valleroy
71f8869bea
Upstream patch from Debian bug #837206
Fixes DB and log file permissions. Also switch to new setup command.
2016-09-23 07:52:48 -04:00
Sunil Mohan Adapa
5a04d8057e
networks: Add polkit rules for network management
Allow Plinth to manage network connections even when running as 'plinth'
user and not root user.  This is done by adding polkit rules that
Network Manager checks

- Add new style Javascript based rules file for newer versions of
  polkit (>105). This is not fuly tested.

- Add old style .pkla file for older versions of polkit (<=105).
2016-09-09 19:47:41 -04:00
Sunil Mohan Adapa
b69720e0d4
Exit with error if any of the setup steps fail 2016-08-31 16:59:12 -04:00
Sunil Mohan Adapa
7b8b12dc20
users: Move PAM configs over from freedombox-setup
Since we are running PAM update script from users action file, it is
appropriate for the PAM configurations that are effected by it to stay
here in Plinth as well.
2016-05-21 16:06:36 -04:00
Sunil Mohan Adapa
9adf27c9a9
setup: Don't run DBus during initial setup
Now that initial package installation is done using apt-get instead of
PackageKit, DBus is no longer required.
2016-05-08 10:47:21 +05:30
James Valleroy
a6417c59a7
tor: Use augeas to modify configuration.
- Use json to get info from action script.
- Add SSH port to hidden service.
- Enable hidden service during setup.
2016-03-15 18:50:51 -04:00
Sunil Mohan Adapa
529e6ae05b
Run Plinth setup during FreedomBox setup
Start DBus daemon to ensure PackageKit can use it.  Only start if it is
not already running.  Stop after setup.  Stop only if we have started
it.
2016-03-12 18:36:15 +05:30
James Valleroy
363e071bff
minetest: New module for minetest server 2016-02-26 15:20:36 +05:30
Sunil Mohan Adapa
5805351f50
repro: Split firewall service as sip and sips
- Since SIP is a generic protocol implemented by various servers, the
  firewall service must describe the protocol instead of the
  application.  This is similar to the way firewalld handles
  http/https.  This also make the service descriptions more acceptable
  by upstream.

- Split unencrypted and encrypted services so that one can enabled
  without the other (a possibility with SIP).

- Add 5061/UDP for SIP over DTLS and DCCP.
2016-01-27 17:49:32 +05:30
James Valleroy
b7e44eb429
Add repro SIP proxy module. 2016-01-27 17:49:20 +05:30
James Valleroy
e74c4791ec Add quassel module. 2015-12-11 19:09:54 -05:00
James Valleroy
23d1798802 Enable javascript-common apache conf during setup. 2015-12-10 18:49:49 -05:00
Sunil Mohan Adapa
f2a4ffe394 firewall: Make default zone as 'external'
Set the default firewall zone.  When network connections are configured
outside of FreedomBox/Plinth, they will not be able to serve the Plinth
web interface.  This is because all such interfaces will fall in the
default firewall zone and that is, by default, 'public'.  On 'public'
zone we don't allow Plinth web interface as this zone is not managed.

Configuration of network connections happen outside for
FreedomBox/Plinth for various reasons:

 - Existing network connections before installation of freedombox-setup

 - Connections configured in /etc/network/interfaces

 - Connections manually configured using nmtui

 - Connections created using GUI environments such as GNOME

Rather then clearing out /etc/network/interfaces during setup and
expecting the connections not to be created outside of Plinth, setting
the default firewall zone is a better approach.  This default zone
selection fits with the main purpose of FreedomBox to be a router which
is also reflected by the fact that only 'external'
2015-12-03 18:25:37 -05:00
Sunil Mohan Adapa
1c046d0ece firewall: Remove assigning zones to interfaces
This is now properly handled by freedombox-setup network scripts.  There
is no need to set it up here.  Also there is chance they might by
configured wrong.
2015-09-02 19:48:35 -04:00
fonfon
cf96797040 pagekite action: Use augeas pagekite lens
And allow setting any server as pagekite frontend.
2015-05-03 09:44:45 +02:00
Sunil Mohan Adapa
69adf1cfc5 transmission: Run from behind Apache
- Introduce Apache configuration for plinth.

- Remove Transmission service file for firewalld.

- Enable transmission on install.

- Enable/disable Apache configuration on Transmission on enable/disable.

- Remove IP address whilelisting as 127.0.0.1 is the default setting and
  is sufficient for Apache to reverse proxy.

- Update UI URL.
2015-05-01 19:00:56 +05:30
Sunil Mohan Adapa
f94d0d5414 transmission: New module for BitTorrent downloads 2015-05-01 18:52:17 +05:30
Sunil Mohan Adapa
2028a63deb mumble: Add new module for installing, enabling/disabling 2015-03-28 16:02:39 -04:00
Sunil Mohan Adapa
e2ca5e0f12 Rewrite Apache configuration files
- Don't hijack the entire SSL site for sake of Plinth.

- Serve both HTTP and HTTPS sites with default configuration.

- plinth-ssl configuration only make SSL compulsory.

- Document modules required for configuration to work properly.

- Don't disable default site during FreedomBox setup run.  This is no
  longer required.
2014-11-30 15:11:50 +05:30
Sunil Mohan Adapa
5b969d9d30 Explicitly write license headers for each source file
The package license (AGPL3+) implicitly indicates the license of each
file.  However, it is desirable to have license headers in each file.
This is the case for many prominent projects like GNU project, Mozilla
etc.
2014-11-30 14:49:49 +05:30
Sunil Mohan Adapa
e6dbcdccaa Move all misc files under misc directory 2014-08-30 09:38:24 +05:30