109 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
3f57863a69
syncthing: Update Apache configuration
- Redirect /syncthing to /syncthing/ as the daemon does not work
  without a slash at the end.

- Create a separate include file for LDAP authentication
  configuration that can be included on other app configurations.
2017-03-23 15:09:37 +05:30
Sunil Mohan Adapa
277cd45342
syncthing: Minor styling fixes 2017-03-23 15:09:26 +05:30
Joseph Nuthalpati
551bd7b92c
syncthing: Fix showing running status in configuration page 2017-03-23 15:07:38 +05:30
Joseph Nuthalpati
a5147cfe16
syncthing: Run service as system user 'syncthing'
- Enabled Apache LDAP authentication for Syncthing.
2017-03-23 15:07:25 +05:30
Joseph Nuthalpati
2e28408f4b
syncthing: initial attempt at integrating Syncthing 2017-03-23 15:01:13 +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
2c37316648
ejabberd, jsxc: Fix few remaining issues from module split 2017-01-09 16:54:58 -05:00
Swapnil Gupta
bb70c43923
jsxc: Add setup
Fix routes.
2017-01-09 11:50:35 -05:00
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
mridulnagpal
8552f43154
Add bind module 2017-01-06 18:16:38 -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
305cc3218d
xmpp: Replace jwchat with jsxc
- Update action to not configure jwchat anymore.

- Update action to not disable jwchat apache configuration.  Since the
  package is no longer installed, this could cause failures.

- Update action to no refer to jwchat in comments.

- Update jwchat-plinth Apache configuration to not include jwchat
  anymore.  Keep this file name for now instead of renaming it to
  jsxc-plinth as this would introduce additional complexity with little
  benefit.

- Install package libjs-jsxc instead of jwchat during xmpp setup.

- Create jsxc front page shortcut instead of for jwchat.

- Perform diagnostics on /http-bind/ URL needed for jwchat instead of
  /jwchat.

- Update links that launch XMPP web client.
2016-09-19 19:51:26 -04:00
nikhil rayaprolu
82f9655981
Run as non-root user - plinth 2016-09-18 13:13:51 +05:30
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
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