46 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
ee38f32f2b
letencrypt: Fix issue with disabling matrixsynapse checkbox
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-02-13 15:40:47 -08:00
Joseph Nuthalapati
a918f9a885
matrix-synapse: Use Let's Encrypt certificates
Matrix requires valid certificates for federation with other servers from
version 1.0 onward. If the FreedomBox server already has LE cert and private
key, copy them into /etc/matrix-synapse

- Add certificate renewal hooks for Matrix Synapse. Reusing the certificate
  renewal mechanism built for ejabberd with matrix-synapse as well. One notable
  difference is that Matrix Synapse doesn't support switching the domain name or
  dropping the Let's Encrypt certificate.

- Use self-signed certificate if there is no LE certificate. Matrix Synapse
  server startup fails if the files homeserver.tls.crt and homeserver.tls.key
  are missing.

- Copy Apache's snakeoil certificates to /etc/matrix-synapse when LE
  certificates are not available. Prefer LE certificates if available.

- Display warning if no valid LE certificate is found.

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
2019-02-13 11:29:36 -08:00
Joseph Nuthalapati
df978ce8ee
letsencrypt: UI: Fix checkbox disabling
Disable checkboxes using HTML attribute instead of CSS class

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-02-07 15:23:01 -08:00
Prachi Srivastava
5d68f6bf52
Replace glyphicons with forkawesome icons
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-01-14 17:37:58 -08:00
Sunil Mohan Adapa
91ba56e3ce
letsencrypt: Use macros for configuring sites
Makes it trivial to alter site configuration for all domains at once. Also
possible to easily switch to TLS modules other than mod_gnutls.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-12-26 09:20:05 -05:00
Joseph Nuthalapati
45256dd3f0
letsencrypt: Enable backup/restore
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-10-29 23:22:48 -04:00
Joseph Nuthalapati
04287858e3
Trim the translation strings in Letsencrypt template where missing
Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-08-11 09:56:16 -04:00
Sunil Mohan Adapa
9c9998d041
letsencrpt: Remove unnecessary column sizing
Signed-off-by: Manish Tripathy <manisht@thougtworks.com>
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2018-06-18 20:22:15 +05:30
Joseph Nuthalapati
4064d6e231
manual: Link to manual from each service
Closes #930

- Make targets to download wiki pages of each service

- Add post-processor script for DocBook file processing

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-03-22 19:49:14 -04:00
Sunil Mohan Adapa
79276f14df
Don't use async for method parameters
async is a reserved keyword in Python 3.7. It can no longer be used as method
parameter. Change the name so that we are ready for Python 3.7.

See: https://www.python.org/dev/peps/pep-0492/#deprecation-plans

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-02-24 19:14:13 +01:00
Sunil Mohan Adapa
8f0e2d6381
Rename Plinth to FreedomBox in module doc strings
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-02-16 20:10:25 -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
RaviBolla
644b4ef4e5
config: refactoring of config.py into views and form
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-11-13 12:52:21 -05:00
Federico Ceratto
f0c0d6dcf5
letsencrypt: Disable test when sudo is not available
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-11-03 18:32:14 +05:30
Johannes Keyser
e0a1de4137
letsencrypt: fix internal server error when obtaining a certificate.
- Fixes issue #1103.

Signed-off-by: Johannes Keyser <johanneskeyser@posteo.de>
2017-10-28 15:21:05 +02:00
Joseph Nuthalapati
29ca31fae2
letsencrypt: Fix tests requiring sudo
Closes #1084

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-10-26 22:08:43 -04:00
Johannes Keyser
479e6b1678
letsencrypt: log info about obtain/revoke only if actually attempted
- Fixes issue #1086.

Signed-off-by: Johannes Keyser <johanneskeyser@posteo.de>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-10-26 06:51:45 -04:00
James Valleroy
b87388ae3c
letsencrypt: Handle case where current domain is empty
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2017-10-19 19:39:05 -04:00
Joseph Nuthalpati
a9b5ac55cb
letsencrypt: Automatically obtain and revoke SSL certificates
Let's Encrypt module listens to the following django signals and takes the
appropriate actions.
- domain_added
- domain_removed
- domainname_change

Do not revoke empty domains.

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-10-19 19:38:56 -04:00
Johannes Keyser
f628eb2cc2
ejabberd: Use Let's Encrypt certificate, also across renewals.
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2017-10-01 10:48:39 -04:00
Prachi
c8eb714562
Separate out the short description and app name
Signed-off-by: Prachi <prachi@swecha.net>
Reviewed-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
2017-08-21 11:17:08 +05:30
Johannes Keyser
d8849114ba
letsencrypt: delete button also disables certificate renewal mngmt 2017-07-30 09:18:00 -04:00
James Valleroy
3ea5868ec1
pylint and spelling fixes 2017-07-19 21:47:07 -04:00
Johannes Keyser
1069f84154
letsencrypt: Add option to let Plinth "manage" certbot's renewal hooks
- add action commands for managing and running hooks

- adding template, view and url for managing and running hooks

- disable Plinth hook management on domain change
2017-07-19 21:47:00 -04:00
bharatak
ee43db0e1b
letsencrypt: Make Let's Encrypt an essential module
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-07-14 12:55:01 +05:30
Johannes Keyser
1a39ec0267
letsencrypt: add option to delete certificates 2017-07-06 22:30:10 -04:00
Johannes Keyser
57e96b298c
letsencrypt: show more info on cert validity status 2017-07-06 22:30:01 -04:00
Johannes Keyser
249403a6dd
diagnostics: Disable button if app/service is not running
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-06-06 08:55:24 +05:30
Sunil Mohan Adapa
ee7cc98fee
apps, system: Remove modules and merge into main
- Remove apps and system modules and merge their views into main views.

- Move main_menu from cfg into menu.py.

- Remove dependencies of other modules on apps and system modules.

- Update tests.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2017-05-05 22:31:45 -04:00
James Valleroy
61ff4190d5
letsencrypt: Mark module as non-essential
This avoids making the certbot package a dependency for plinth.
2016-11-27 20:07:25 -05:00
Sunil Mohan Adapa
7e4af695ce
letsencrypt: I18n and minor fixes
- Fix indentation from a recent change.

- Internationalize 'no domains configured' message.

- Expand the message as per orignal pull request.
2016-11-14 21:38:27 -05:00
mridulnagpal
14b65ae456
letsencrypt: Improve display when no domains are configured
Show better message, and hide diagnostics button.
2016-11-07 19:53:46 -05:00
Sunil Mohan Adapa
ff0d117a89
Readjust the responsive widths of various tables
Most tables now occupy the full width of the container row.  Some of
them are otherwise squished.  Also make sure the new fixed container
layout has not reduced the originally intended width of a table.
2016-09-11 13:15:00 -04:00
Sunil Mohan Adapa
57bc8f1db6
letsencrypt: Depend on the new certbot package
Instead of the transitional package 'letsencrypt'.

I believe, there is no need to rename the entire module to certbo since
letsencrypt is stil a more apt name for the module.  Let's Encrypt is a
strong brand that people know.  The service is still called Let's
Encrypt.  Only the automation tool has been renamed to certbot to avoid
confusion of the service name.
2016-09-04 15:47:46 -04:00
Sunil Mohan Adapa
7025cf099e
letsencrypt: Fix spelling (Dietmar) 2016-08-26 21:52:01 -04:00
Sunil Mohan Adapa
130b5273e4
letsencrypt: Replace a Unicode char with ASCII
Although there is nothing wrong with the generated POT file and the
encoding is properly set to UTF-8, Weblate failed with following error:

We have not been able to update the source file for the resource
django.pot of the project FreedomBox UI.

The URL we used to update the source file from was
https://raw.githubusercontent.com/freedombox/Plinth/master/plinth/locale/django.pot.

The exact error we encountered was:

'ascii' codec can't encode character u'\u2019' in position 31271:
ordinal not in range(128)
2016-08-20 09:40:30 +05:30
Sunil Mohan Adapa
18996b5c56
Import urlresolvers from django.urls
In Django 1.10, django.core.urlresolvers is available from
django.urls. Use it.
2016-08-11 18:03:00 -04:00
Sunil Mohan Adapa
5f548a9e36
packages: Make modules declare managed packages
This can then be used by a privileged action to verify that packages
requested for installation are in fact valid.  This slightly improves
security of those privileged actions.
2016-06-11 12:11:32 -04:00
Sunil Mohan Adapa
ad61028a3a
menu: Sort menu items for all locales
Currently menu items are shown in alphabetical order in applications and
no clear order in system configuration.  This is done using static
weights for menu items based on English names that does not work for
other locales.

Sorting can't be done at the time of adding menu items as users of
multiple locales may use the interface at the same time.

Implement a sorting mechanism based on existing order as well as labels
of menu item.  This allows the flexiblity of grouping menu items in
future as it may be need for system configuration.  In case of help menu

Remove sort order for all modules except for help menu as here we want
that specific order.
2016-06-06 17:44:59 -04:00
fonfon
b54846b0ce
Services: Template restructuring
- renamed app.html to simple_service.html
- allow hiding the 'status' block instead of using separate
  apache_service.html template
2016-05-11 18:19:35 -04:00
James Valleroy
77134cd55b
Merge branch 'better-setup' 2016-02-19 22:11:24 -05:00
Saúl Ibarra Corretgé
cec3ced675
letsencrypt: Skip hidden service domains on index 2016-02-19 19:55:38 +05:30
Sunil Mohan Adapa
cef8f5c2c4
letsencrypt: Use new setup mechanism 2016-02-13 13:51:05 +05:30
Sunil Mohan Adapa
7f4c5f7410
Make app names as module identifiers
- The last part of the module import path is the module name.  This also
  becomes the Django app name.  Apps names have to be unique.  Hence,
  there is no scope for two different modules with same name but
  different load path to exist in the project.

- Most uses of list of loaded modules are dealing with app names instead
  of full module load path.  This is due to the fact that Django deals
  with app names and not module paths.

- It is also somewhat clumsy to access a loaded module as we are
  re-importing every time to get access module.

- Simplify all of the above by using app names are module identifiers
  and maintaing an ordered dictionary of app names to loadded modules.

- Remove unused imports.

- Minor styling fixes.
2016-02-13 13:49:23 +05:30
Sunil Mohan Adapa
4602c5bfce
Use translated brand name in templates
Using brand name directly from configuration means that it can't be
easily translated.  Instead use the translated brand name sent in my the
context processor.
2016-01-24 00:37:01 +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