diff --git a/plinth/modules/bind/forms.py b/plinth/modules/bind/forms.py
new file mode 100644
index 000000000..8e04b1761
--- /dev/null
+++ b/plinth/modules/bind/forms.py
@@ -0,0 +1,32 @@
+#
+# This file is part of Plinth.
+#
+# 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 .
+#
+
+"""
+Forms for BIND module.
+"""
+
+from django import forms
+from django.utils.translation import ugettext_lazy as _
+
+from plinth.forms import ServiceForm
+
+
+class BindForm(ServiceForm):
+ """BIND configuration form"""
+ set_forwarding = forms.BooleanField(
+ label=_('Enable forwarding'),
+ required=False)
diff --git a/plinth/modules/bind/views.py b/plinth/modules/bind/views.py
new file mode 100644
index 000000000..de9232dc3
--- /dev/null
+++ b/plinth/modules/bind/views.py
@@ -0,0 +1,60 @@
+#
+# This file is part of Plinth.
+#
+# 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 .
+#
+
+"""
+Views for BIND module.
+"""
+
+from django.contrib import messages
+from django.utils.translation import ugettext_lazy as _
+
+from plinth import actions
+from plinth.views import ServiceView
+
+
+from . import description, managed_services, get_default
+from .forms import BindForm
+
+
+class MinetestServiceView(ServiceView): # pylint: disable=too-many-ancestors
+ """A specialized view for configuring minetest."""
+ service_id = managed_services[0]
+ diagnostics_module_name = "bind"
+ description = description
+ show_status_block = True
+ form_class = BindForm
+
+ def get_initial(self):
+ """Return the values to fill in the form."""
+ initial = super().get_initial()
+ initial.update(get_default())
+ return initial
+
+ def form_valid(self, form):
+ """Change the configurations of Minetest service."""
+ data = form.cleaned_data
+ old_config = get_default()
+
+ if old_config['set_forwarding'] != data['set_forwarding']:
+ value = 'true' if data['set_forwarding'] else 'false'
+ actions.superuser_run(
+ 'bind',
+ ['configure', '--set_forwarding', value])
+ messages.success(self.request,
+ _('Set forwarding configuration updated'))
+
+ return super().form_valid(form)