aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Steinmetz <zi@FreeBSD.org>2021-07-24 20:05:34 +0000
committerRyan Steinmetz <zi@FreeBSD.org>2021-07-24 20:06:40 +0000
commitcb84185382cf156f72f34e43d8b46e672f050884 (patch)
tree5486b7def79a2a2745c571a23f16c2c9acd9a603
parent3b804851a687ffcf4a58214c9fb6f243fc8e009e (diff)
downloadports-cb84185382cf156f72f34e43d8b46e672f050884.tar.gz
ports-cb84185382cf156f72f34e43d8b46e672f050884.zip
dns/dns-ui: New port:
A tool to manage a PowerDNS authoritative server in a corporate LDAP-driven environment. Features: * Connects to PowerDNS via its JSON API. * Allows login managed by LDAP server. * Create zones; add, edit and delete records. * Grant multiple users access to administer a zone. * Lower access level that allows to view a zone and request changes. * Provides its own JSON API for making changes to DNS records. * Keeps a changelog of all DNS changes done through it. * (Optionally) export all zones as bind-format zone files and store changes in git. WWW: https://github.com/operasoftware/dns-ui/
-rw-r--r--dns/Makefile1
-rw-r--r--dns/dns-ui/Makefile42
-rw-r--r--dns/dns-ui/distinfo3
-rw-r--r--dns/dns-ui/files/pkg-message.in16
-rw-r--r--dns/dns-ui/pkg-descr15
-rw-r--r--dns/dns-ui/pkg-plist142
6 files changed, 219 insertions, 0 deletions
diff --git a/dns/Makefile b/dns/Makefile
index 60c63d508f51..6600e234088d 100644
--- a/dns/Makefile
+++ b/dns/Makefile
@@ -28,6 +28,7 @@
SUBDIR += dns2blackhole
SUBDIR += dns2tcp
SUBDIR += dns_balance
+ SUBDIR += dns-ui
SUBDIR += dnsblast
SUBDIR += dnscap
SUBDIR += dnscheckengine
diff --git a/dns/dns-ui/Makefile b/dns/dns-ui/Makefile
new file mode 100644
index 000000000000..cbe6ec0364b0
--- /dev/null
+++ b/dns/dns-ui/Makefile
@@ -0,0 +1,42 @@
+# Created by: Ryan Steinmetz <zi@FreeBSD.org>
+
+PORTNAME= dns-ui
+DISTVERSION= v0.2.6
+CATEGORIES= dns
+
+MAINTAINER= zi@FreeBSD.org
+COMMENT= LDAP-authenticated PowerDNS user interface by Opera
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= pgsql php:mod,cli
+
+SUB_FILES= pkg-message
+
+NO_BUILD= yes
+
+USE_PHP= curl json intl ldap mbstring pdo_pgsql
+USE_GITHUB= yes
+GH_ACCOUNT= operasoftware
+
+OPTIONS_DEFINE= APACHE PGSQLSRV
+OPTIONS_DEFAULT= APACHE PGSQLSRV
+APACHE_DESC= Use apache as webserver
+PGSQLSRV_DESC= Use local postgres instance
+
+APACHE_USES= apache:run,22+
+APACHE_RUN_DEPENDS= mod_php74>0:www/mod_php74
+PGSQLSRV_VARS= WANT_PGSQL=server
+
+.include <bsd.port.options.mk>
+
+post-extract:
+ ${MV} ${WRKSRC}/config/config-sample.ini \
+ ${WRKSRC}/config/config.ini.sample
+
+do-install:
+ @${MKDIR} ${STAGEDIR}${WWWDIR}
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR})
+
+.include <bsd.port.mk>
diff --git a/dns/dns-ui/distinfo b/dns/dns-ui/distinfo
new file mode 100644
index 000000000000..352e022b0171
--- /dev/null
+++ b/dns/dns-ui/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1627144708
+SHA256 (operasoftware-dns-ui-v0.2.6_GH0.tar.gz) = 338454d1b701d0fe0339ca8009352aba09d2546203eaa666ea768b29ad405fd9
+SIZE (operasoftware-dns-ui-v0.2.6_GH0.tar.gz) = 634458
diff --git a/dns/dns-ui/files/pkg-message.in b/dns/dns-ui/files/pkg-message.in
new file mode 100644
index 000000000000..a0d9792bae50
--- /dev/null
+++ b/dns/dns-ui/files/pkg-message.in
@@ -0,0 +1,16 @@
+[
+{ type: install
+ message: <<EOM
+ Follow the post-installation instructions at:
+ https://github.com/operasoftware/dns-ui#readme
+
+Create a database and user, by running the following as the postgres user:
+ % createuser -P dnsui-user ; createdb -O dnsui-user dnsui
+
+Customize %%WWWDIR%%/config/config.ini
+
+Create an initial admin account by running:
+ % php %%WWWDIR%%/scripts/create_admin_account.php
+EOM
+}
+]
diff --git a/dns/dns-ui/pkg-descr b/dns/dns-ui/pkg-descr
new file mode 100644
index 000000000000..4c2fb5495aa1
--- /dev/null
+++ b/dns/dns-ui/pkg-descr
@@ -0,0 +1,15 @@
+A tool to manage a PowerDNS authoritative server in a corporate LDAP-driven
+environment.
+
+Features:
+* Connects to PowerDNS via its JSON API.
+* Allows login managed by LDAP server.
+* Create zones; add, edit and delete records.
+* Grant multiple users access to administer a zone.
+* Lower access level that allows to view a zone and request changes.
+* Provides its own JSON API for making changes to DNS records.
+* Keeps a changelog of all DNS changes done through it.
+* (Optionally) export all zones as bind-format zone files and store changes
+ in git.
+
+WWW: https://github.com/operasoftware/dns-ui/
diff --git a/dns/dns-ui/pkg-plist b/dns/dns-ui/pkg-plist
new file mode 100644
index 000000000000..41063ceb5880
--- /dev/null
+++ b/dns/dns-ui/pkg-plist
@@ -0,0 +1,142 @@
+%%WWWDIR%%/LICENSE
+%%WWWDIR%%/NOTICE
+%%WWWDIR%%/Pest.php
+%%WWWDIR%%/PestJSON.php
+%%WWWDIR%%/README.md
+%%WWWDIR%%/bindzonefile.php
+%%WWWDIR%%/core.php
+%%WWWDIR%%/email.php
+%%WWWDIR%%/extensions/README
+%%WWWDIR%%/ldap.php
+%%WWWDIR%%/migrations/001.php
+%%WWWDIR%%/migrations/002.php
+%%WWWDIR%%/migrations/003.php
+%%WWWDIR%%/migrations/004.php
+%%WWWDIR%%/migrations/005.php
+%%WWWDIR%%/migrations/006.php
+%%WWWDIR%%/model/change.php
+%%WWWDIR%%/model/changeset.php
+%%WWWDIR%%/model/comment.php
+%%WWWDIR%%/model/dbdirectory.php
+%%WWWDIR%%/model/migrationdirectory.php
+%%WWWDIR%%/model/nstemplate.php
+%%WWWDIR%%/model/pendingupdate.php
+%%WWWDIR%%/model/record.php
+%%WWWDIR%%/model/replicationtype.php
+%%WWWDIR%%/model/replicationtypedirectory.php
+%%WWWDIR%%/model/resourcerecord.php
+%%WWWDIR%%/model/resourcerecordset.php
+%%WWWDIR%%/model/soatemplate.php
+%%WWWDIR%%/model/template.php
+%%WWWDIR%%/model/templatedirectory.php
+%%WWWDIR%%/model/user.php
+%%WWWDIR%%/model/useralert.php
+%%WWWDIR%%/model/userdirectory.php
+%%WWWDIR%%/model/zone.php
+%%WWWDIR%%/model/zoneaccess.php
+%%WWWDIR%%/model/zonedirectory.php
+%%WWWDIR%%/pagesection.php
+%%WWWDIR%%/phpunit.xml
+%%WWWDIR%%/powerdns.php
+%%WWWDIR%%/public_html/book_next.png
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap-theme.css
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap-theme.css.map
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap-theme.min.css
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap-theme.min.css.map
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap.css
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap.css.map
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap.min.css
+%%WWWDIR%%/public_html/bootstrap/css/bootstrap.min.css.map
+%%WWWDIR%%/public_html/bootstrap/fonts/glyphicons-halflings-regular.eot
+%%WWWDIR%%/public_html/bootstrap/fonts/glyphicons-halflings-regular.svg
+%%WWWDIR%%/public_html/bootstrap/fonts/glyphicons-halflings-regular.ttf
+%%WWWDIR%%/public_html/bootstrap/fonts/glyphicons-halflings-regular.woff
+%%WWWDIR%%/public_html/bootstrap/fonts/glyphicons-halflings-regular.woff2
+%%WWWDIR%%/public_html/bootstrap/js/bootstrap.js
+%%WWWDIR%%/public_html/bootstrap/js/bootstrap.min.js
+%%WWWDIR%%/public_html/bootstrap/js/npm.js
+%%WWWDIR%%/public_html/extra.js
+%%WWWDIR%%/public_html/init.php
+%%WWWDIR%%/public_html/ipaddr/LICENSE
+%%WWWDIR%%/public_html/ipaddr/SOURCE
+%%WWWDIR%%/public_html/ipaddr/ipaddr.min.js
+%%WWWDIR%%/public_html/jquery/jquery-1.11.3.min.js
+%%WWWDIR%%/public_html/logo-header-opera.png
+%%WWWDIR%%/public_html/screenshot-changelog.png
+%%WWWDIR%%/public_html/screenshot-zoneedit.png
+%%WWWDIR%%/public_html/style.css
+%%WWWDIR%%/requesthandler.php
+%%WWWDIR%%/router.php
+%%WWWDIR%%/routes.php
+%%WWWDIR%%/scripts/create_admin_account.php
+%%WWWDIR%%/scripts/full_git_tracked_export.php
+%%WWWDIR%%/scripts/ldap_update.php
+%%WWWDIR%%/templates/apihelp.php
+%%WWWDIR%%/templates/base.php
+%%WWWDIR%%/templates/csrf.php
+%%WWWDIR%%/templates/error403.php
+%%WWWDIR%%/templates/error404.php
+%%WWWDIR%%/templates/error500.php
+%%WWWDIR%%/templates/error503.php
+%%WWWDIR%%/templates/error503_upstream.php
+%%WWWDIR%%/templates/functions.php
+%%WWWDIR%%/templates/settings.php
+%%WWWDIR%%/templates/template.php
+%%WWWDIR%%/templates/templates.php
+%%WWWDIR%%/templates/user.php
+%%WWWDIR%%/templates/user_not_found.php
+%%WWWDIR%%/templates/users.php
+%%WWWDIR%%/templates/zone.php
+%%WWWDIR%%/templates/zone_add_failed.php
+%%WWWDIR%%/templates/zone_update_failed.php
+%%WWWDIR%%/templates/zonedeleted.php
+%%WWWDIR%%/templates/zoneexport.php
+%%WWWDIR%%/templates/zoneimport.php
+%%WWWDIR%%/templates/zones.php
+%%WWWDIR%%/templates/zonesplit.php
+%%WWWDIR%%/templates/zonesplitcompleted.php
+%%WWWDIR%%/tests/DNSContentTest.php
+%%WWWDIR%%/tests/DNSKEYTest.php
+%%WWWDIR%%/tests/DNSNameTest.php
+%%WWWDIR%%/tests/DNSTimeTest.php
+%%WWWDIR%%/vagrant/README.md
+%%WWWDIR%%/vagrant/Vagrantfile
+%%WWWDIR%%/vagrant/ansible/config.sample.yml
+%%WWWDIR%%/vagrant/ansible/dns-ui.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/defaults/main.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/apache2.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/config.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/dns-ui.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/ldap.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/main.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/packages.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/ping.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/postgresql.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/powerdns.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/tasks/repo.yml
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/templates/apache2.conf.j2
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/templates/pdns.gpgsql.conf.j2
+%%WWWDIR%%/vagrant/ansible/roles/dns-ui/vars/main.yml
+%%WWWDIR%%/views/api.php
+%%WWWDIR%%/views/csrf.php
+%%WWWDIR%%/views/error403.php
+%%WWWDIR%%/views/error404.php
+%%WWWDIR%%/views/error500.php
+%%WWWDIR%%/views/error503.php
+%%WWWDIR%%/views/error503_upstream.php
+%%WWWDIR%%/views/home.php
+%%WWWDIR%%/views/settings.php
+%%WWWDIR%%/views/template.php
+%%WWWDIR%%/views/templates.php
+%%WWWDIR%%/views/user.php
+%%WWWDIR%%/views/users.php
+%%WWWDIR%%/views/zone.php
+%%WWWDIR%%/views/zoneexport.php
+%%WWWDIR%%/views/zoneimport.php
+%%WWWDIR%%/views/zones.php
+%%WWWDIR%%/views/zonesplit.php
+@mode 0640
+@group www
+@sample %%WWWDIR%%/config/config.ini.sample
+@group
+@mode 0644