diff --git a/plinth/modules/bind/templates/bind.html b/plinth/modules/bind/templates/bind.html
new file mode 100644
index 000000000..fcadda74d
--- /dev/null
+++ b/plinth/modules/bind/templates/bind.html
@@ -0,0 +1,55 @@
+{% extends "app.html" %}
+{% comment %}
+#
+# This file is part of FreedomBox.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+{% endcomment %}
+{% load bootstrap %}
+{% load i18n %}
+
+{% block status %}
+ {{ block.super }}
+
+
{% trans "Serving Domains" %}
+
+
+
+
+ | {% trans "Type" %} |
+ {% trans "Domain Names" %} |
+ {% trans "Serving" %} |
+ {% trans "IP addresses" %} |
+
+
+
+ {% for domain in domains_table %}
+
+ | {{ domain.type}} |
+ {{ domain.domain_name}} |
+ {{ domain.serving }} |
+ {{ domain.ip_address }} |
+
+ {% endfor %}
+
+
+
+{% endblock %}
diff --git a/plinth/modules/bind/views.py b/plinth/modules/bind/views.py
index fe01456ae..8649b7c01 100644
--- a/plinth/modules/bind/views.py
+++ b/plinth/modules/bind/views.py
@@ -23,6 +23,7 @@ from django.utils.translation import ugettext_lazy as _
from plinth import actions
from plinth.views import AppView
+from plinth.modules import bind, names
from . import description, get_config, name, port_forwarding_info
from .forms import BindForm
@@ -35,8 +36,39 @@ class BindAppView(AppView): # pylint: disable=too-many-ancestors
description = description
show_status_block = True
form_class = BindForm
+ template_name = 'bind.html'
port_forwarding_info = port_forwarding_info
+ def get_context_data(self, *args, **kwargs):
+ """
+ Get/append information for domains bind is configured to respond for
+ and additional names from the names module
+ """
+ context = super().get_context_data(**kwargs)
+
+ served_domains = bind.get_served_domains()
+ context['domains_table'] = []
+ for key, val in served_domains.items():
+ if key == 'localhost.':
+ continue
+
+ context['domains_table'].append({
+ 'type': 'Domain Name',
+ 'domain_name': key[:-1:],
+ 'serving': 'Yes',
+ 'ip_address': ', '.join(val),
+ })
+
+ for item in names.components.DomainName.list():
+ context['domains_table'].append({
+ 'type': item.domain_type.display_name,
+ 'domain_name': item.name,
+ 'serving': '-',
+ 'ip_address': ''
+ })
+
+ return context
+
def get_initial(self):
"""Return the values to fill in the form."""
initial = super().get_initial()