diff --git a/plinth/modules/ejabberd/views.py b/plinth/modules/ejabberd/views.py index c80d1b8d1..896014829 100644 --- a/plinth/modules/ejabberd/views.py +++ b/plinth/modules/ejabberd/views.py @@ -36,6 +36,7 @@ class EjabberdServiceView(ServiceView): diagnostics_module_name = 'ejabberd' form_class = EjabberdForm manual_page = ejabberd.manual_page + port_forwarding_info = ejabberd.port_forwarding_info def get_initial(self): initdict = super().get_initial() diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py index 0f7f5f3e7..38d930952 100644 --- a/plinth/modules/infinoted/__init__.py +++ b/plinth/modules/infinoted/__init__.py @@ -78,6 +78,7 @@ class InfinotedServiceView(ServiceView): diagnostics_module_name = "infinoted" description = description clients = clients + port_forwarding_info = port_forwarding_info def setup(helper, old_version=None): diff --git a/plinth/modules/minetest/views.py b/plinth/modules/minetest/views.py index dd400d27a..aa4a2654c 100644 --- a/plinth/modules/minetest/views.py +++ b/plinth/modules/minetest/views.py @@ -39,6 +39,7 @@ class MinetestServiceView(ServiceView): # pylint: disable=too-many-ancestors form_class = MinetestForm clients = minetest.clients manual_page = minetest.manual_page + port_forwarding_info = minetest.port_forwarding_info def get_initial(self): """Return the values to fill in the form.""" diff --git a/plinth/modules/mumble/__init__.py b/plinth/modules/mumble/__init__.py index 3e5f11de7..a315939c3 100644 --- a/plinth/modules/mumble/__init__.py +++ b/plinth/modules/mumble/__init__.py @@ -83,6 +83,7 @@ class MumbleServiceView(ServiceView): description = description clients = clients manual_page = manual_page + port_forwarding_info = port_forwarding_info def setup(helper, old_version=None): diff --git a/plinth/modules/openvpn/views.py b/plinth/modules/openvpn/views.py index 255951402..ecb260030 100644 --- a/plinth/modules/openvpn/views.py +++ b/plinth/modules/openvpn/views.py @@ -61,6 +61,7 @@ def index(request): 'title': openvpn.name, 'description': openvpn.description, 'manual_page': openvpn.manual_page, + 'port_forwarding_info': openvpn.port_forwarding_info, 'status': status, 'form': form }) diff --git a/plinth/modules/quassel/__init__.py b/plinth/modules/quassel/__init__.py index 6b1250253..69d3f1509 100644 --- a/plinth/modules/quassel/__init__.py +++ b/plinth/modules/quassel/__init__.py @@ -89,6 +89,7 @@ class QuasselServiceView(ServiceView): description = description clients = clients manual_page = manual_page + port_forwarding_info = port_forwarding_info def setup(helper, old_version=None): diff --git a/plinth/templates/service.html b/plinth/templates/service.html index e8b05fe8c..bf5f4c145 100644 --- a/plinth/templates/service.html +++ b/plinth/templates/service.html @@ -75,6 +75,26 @@ {% include "internal-zone.html" %} + {% if port_forwarding_info %} +
+ {% with service_name=service.name %} + {% blocktrans trimmed %} + If your FreedomBox is behind a router, you will need to set up port + forwarding on your router. You should forward the following ports for + {{ service_name }}: + {% endblocktrans %} + {% endwith %} +
+ +