88 Commits

Author SHA1 Message Date
James Valleroy
5e18a648e1
snapshot: New module for disk snapshots
- Create and list filesystem snapshots. Hide "current" snapshot.

- Allow deleting snapshots, except for default subvolume.

- Allow rollback to a snapshot.
2016-08-08 22:21:21 +05:30
Sunil Mohan Adapa
6cf1cc72b9
networks: Ability to configure for BATMAN
Add a dispatcher script to NetworkManager to configure
B.A.T.M.A.N. Advanced interfaces.  This quite a bit hacky at it is
triggered for network connections that have the keyword "BATMAN" in
them.  The proper way to implement this is as a core change in
NetworkManager itself (as it lacks plugins).  It is done is the hope
that it will garner some more interest in FreedomBox for mesh networks.

Currently, it is possible to create a BATMAN mesh network and shared
existing internet connections on it.  Other boxes can then join this
mesh network and use that internet connection.

Known issues:

- Very unintuitive setup process.  First create a connection with device
  a Wi-Fi device, mode as ad-hoc, with a known frequency and BSSID.  The
  name of the connection should have contain BATMAN in it.  It should
  also have IPv4 method as disabled.  Second connection should be
  created for 'bat0' interface after the first on is successful.  It can
  be with method 'shared' for sharing internet connection and doing DHCP
  requests or 'auto' for aqcuiring IP address from another node in the
  mesh network.

- Untested for joining existing mesh networks.

- Requires configuring two network connections and the second one needs
  to be manually enabled after the first one is successfully activated.
2016-07-21 19:23:34 -04:00
James Valleroy
8e96e828d9
security: New module to control login restrictions 2016-07-09 22:41:21 +05:30
Sunil Mohan Adapa
9ac37465dd
disks: New module to manage disks
- Show free space of currently mounted partitions.  Should help with
  people running out of free space and ending up with non-working
  system.  In future, this module could emit more visible messages.

- Show and allow expanding root partition to help people who have
  written FreedomBox images to higher capacity SD cards.  Very selective
  and restrictive checks to minimize problems.

- Automated tests to ensure expansion works in non-trivial senarious.
2016-06-19 16:20:01 -04:00
Sunil Mohan Adapa
9078ec5a2b
Don't write to PID file
When running under systemd, PID is known and maintained by systemd.
Process don't have write PIDs to a PID file.
2016-05-29 21:07:07 +05:30
Sunil Mohan Adapa
1f53321b51
Don't use init.d file, don't daemonize
We pretty much only run in systemd environment and I don't see that
changing any time soon.  By relying on it, we can reduce some burden.
Remove init script.

Daemonizing is not needed for systemd.  Remove code related
daemonization.
2016-05-29 20:32:12 +05:30
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
James Valleroy
31c491ae46
Revert "Apply workaround to SSL config for mod_gnutls"
Debian bug #514005 is resolved in mod_gnutls 0.7.4-1.

This reverts commit cdda77b3b4c815b80603d1a69d793b5156c5672e.
2016-05-14 19:04:41 +05:30
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
368e64c5ca
ttrss: Use LDAP authentication 2016-03-12 11:38:28 +05:30
Jallepalli Ashok Kumar
80bab090bf
ttrss: New module for Tiny Tiny RSS feed reader 2016-03-12 11:37:28 +05:30
James Valleroy
fbbd70a642
Remove #! sequence from ikiwiki setup automators.
These files are not executed directly, but through ikiwiki's setup command.
2016-03-05 16:14:47 -05:00
James Valleroy
9d85084d8d
radicale: New module for a CalDAV/CardDAV server 2016-02-26 15:40:19 +05:30
James Valleroy
363e071bff
minetest: New module for minetest server 2016-02-26 15:20:36 +05:30
Sunil Mohan Adapa
57fd2a2ea2
repro: Minor styling and message changes
- Indentation for HTML template consistent with other templates.

- Style 'repro' like the upstream project does in all small case.

- Better describe the functions of a SIP server and organize the actions
  to be done by the user.

- Set the menu weight so that it does not clash with an existing module.

- Name the application 'SIP Server' instead of 'SIP Proxy' as that
  better describes the capabilities of the repro and is simpler for
  users to understand.
2016-01-27 17:49:41 +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
Sunil Mohan Adapa
1a17819380
letsencrypt: New basic module for SSL certficates
This is the first implementation for obtaining certificates from Let's
Encrypt.  Following the features and limitations.

- Requires manual operation.

- Registrations are done anonymously.

- Supports revoking and re-obtaining certificates.  Does not have a way
  to show if a certficate is already renewed.

- Automatic renewal is not available.

- Details messages in case of errors.

- Has ability to switch to testing mode by using LE's staging servers.

- Sets up Apache configuration for the domain and enables/disables it.
  When certificates are not available for a domain, default website
  configuration is used.  When certificates are available, separate
  SSL website configuration for each domain is used.

- Many domain will work with a single IP address with the help of Server
  Name Indication (SNI) which is supported by all modern browsers.

- Supports diagnostics on websites.
2016-01-14 14:18:43 +05:30
James Valleroy
70d85cbd6f
monkeysphere: New module for verifying SSH servers
monkeysphere: Run publish as background task, allow user to cancel.

Small fixes to names module:

- Remove unused ugettext import.

- Change SERVICES to tuple.

- If a domain is not available for a service type, return None instead
  of (translated) "Not Available".

- Rename get_services -> get_enabled_services.
2016-01-14 14:00:08 +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
Joel Valleroy
eca36e6f96 add power module with reboot and shut down 2015-11-26 16:29:38 -05:00
James Valleroy
e0bfd1401f Name Services module 2015-11-25 15:22:27 +01:00
James Valleroy
903a11824e Merge pull request #265 from fonfon/restore
Added reStore module/application
2015-11-04 08:00:55 -05:00
Sunil Mohan Adapa
646763ff3c openvpn: New module VPN into FreedomBox
- Authentication using client certificates.  Extra password based
  authentication for later.

- Auto setup of CA, server and client certificates.

- Provides a .ovpn profile for each user for easy setup.

- Use 4096 bit Diffie-Hellman parameters for better security.  If this
  takes to much time, reduce it to 2048 or 1024, at least during
  debugging.
2015-11-03 20:24:40 -05:00
fonfon
125cb88336 Removed cfg.product_name entry and tests
The name 'Plinth' (cfg.product_name) is not used anymore after my previous
commits.
Reason for the complete removal: I do not think that users should know or have
to care about the internal name of the web interface of the FreedomBox.
2015-10-28 19:52:14 -04:00
fonfon
be325f8879 added reStore module 2015-10-21 11:54:34 +00:00
Sean Alexandre
e6f7e6020f Adds Service Discovery module
Resolves issue https://github.com/freedombox/Plinth/issues/231
"Option to disable avahi-daemon"
2015-10-07 01:10:53 +05:30
Sean Alexandre
1f183bf997 Changes Apache conf files to use new mod_authz_host syntax instead of Allow/Deny
Resolves Issue https://github.com/freedombox/Plinth/issues/171
"Update Apache auth config directives"
2015-09-29 19:28:50 -04:00
Sunil Mohan Adapa
b63ec9bffc Update the main config file too for danube_edition 2015-09-29 22:38:25 +05:30
James Valleroy
cdda77b3b4 Apply workaround to SSL config for mod_gnutls
HTTPS environmental variable is not set properly by mod_gnutls.
2015-09-20 12:09:09 +05:30
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
Sunil Mohan Adapa
100f8392e3 Fix issue with Apache configuration
I faced a situation that on my localhost resolved to an IPv6 address and
Apache was unable to connect to Plinth as Plinth does not yet listen on
IPv6 address.  It is best to change this to an explict local IP address
at least until Plinth listens on IPv6 address.
2015-09-02 19:40:54 -04:00
Sunil Mohan Adapa
28f84ad0b1 datetime: New module for date & time operations
- Enable/disable ntpd from this module.  Since ntpd has implications on
  anonymity.

- Implement NTP diagonstics from freedombox-setup.

- Eventually provide ability to set date & time of the system.

- Eventually move timezone configuration to this module.
2015-08-29 10:32:14 -04:00
James Valleroy
4458a6537d Add Bookmarks (Shaarli) module. 2015-08-23 16:43:13 +05:30
Sunil Mohan Adapa
05ef2921db package: Remove package module
- It does not work on all the modules available.

- It does not reload Plinth after changes.

- As of now, there is not strong case for disabling modules in Plinth
  making it unnecessary UI complication.

- Split into multiple small Debian packages is not yet implemented for
  Plinth.  The module expects to work on the Debian modules.  When
  smaller Debian packages are available perhaps we should consider using
  packages.py library instead.
2015-07-28 16:51:19 +05:30
Sunil Mohan Adapa
8c155bfafb ikiwiki: Update LDAP auth configuration
- Make the configuration work for new style user/group structure.
2015-07-26 16:33:06 -04:00
Sunil Mohan Adapa
02269a93cc ikiwiki: Update the LDAP login prompt message 2015-07-18 17:14:05 +05:30
James Valleroy
2c5b829fb0 ikiwiki: Authorize users from admin or wiki group. 2015-07-13 19:50:58 +05:30
James Valleroy
70e0c4f61a ikiwiki: Enable HTTP auth using LDAP. 2015-07-13 19:50:58 +05:30
James Valleroy
7d80c95048 ikiwiki: Fix indentation in setup automators. 2015-07-13 19:50:58 +05:30
James Valleroy
9c717246ee deluge: Install apache conf file during Plinth install. 2015-06-26 17:34:37 +05:30
James Valleroy
be14b49c83 ikiwiki: Install conf files during Plinth install. 2015-06-26 17:34:37 +05:30
Sunil Mohan Adapa
19301e541e roundcube: New app for web based email client 2015-06-07 17:41:51 -04:00
Sunil Mohan Adapa
56c732ab10 privoxy: New web proxy application 2015-05-27 22:46:57 +05:30
James Valleroy
128aa42873 xmpp: Enable jwchat apache conf after install. 2015-05-24 17:25:54 +05:30
James Valleroy
1055787be2 Merge remote-tracking branch 'sunil/network-manager-glib' 2015-05-16 13:18:20 -04:00