diff options
author | Leonardo Arena <rnalrd@alpinelinux.org> | 2018-01-04 15:23:35 +0000 |
---|---|---|
committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2018-01-04 15:25:32 +0000 |
commit | cd5dd02c13cbdb98e682c16184c4692086c12ffc (patch) | |
tree | e0f8c8ac7f3ea704d259e894542286e4179ceafe /testing/netbox | |
parent | 86152549db024b35fe69353aa1da1cac8ea54558 (diff) | |
download | aports-cd5dd02c13cbdb98e682c16184c4692086c12ffc.tar.bz2 aports-cd5dd02c13cbdb98e682c16184c4692086c12ffc.tar.xz |
testing/netbox: new aport
IP address management (IPAM) and data center infrastructure management (DCIM) tool
Diffstat (limited to 'testing/netbox')
-rw-r--r-- | testing/netbox/APKBUILD | 77 | ||||
-rw-r--r-- | testing/netbox/gunicorn_config.py | 5 | ||||
-rw-r--r-- | testing/netbox/netbox.initd | 21 | ||||
-rw-r--r-- | testing/netbox/netbox.logrotated | 8 | ||||
-rw-r--r-- | testing/netbox/netbox.nginx-sample | 20 | ||||
-rwxr-xr-x | testing/netbox/netbox.post-upgrade | 8 | ||||
-rwxr-xr-x | testing/netbox/netbox.pre-install | 4 | ||||
-rw-r--r-- | testing/netbox/set-config-defaults.patch | 11 |
8 files changed, 154 insertions, 0 deletions
diff --git a/testing/netbox/APKBUILD b/testing/netbox/APKBUILD new file mode 100644 index 0000000000..6a9a139706 --- /dev/null +++ b/testing/netbox/APKBUILD @@ -0,0 +1,77 @@ +# Contributor: Leonardo Arena <rnalrd@alpinelinux.org> +# Maintainer: +pkgname=netbox +pkgver=2.2.8 +pkgrel=0 +pkgdesc="IP address management and data center infrastructure management tool" +url="https://netbox.io" +arch="noarch" +license="Apache-2.0" +depends="py3-django py3-django-cors-headers py3-django-debug-toolbar + py3-django-filter py3-django-mptt py3-django-rest-swagger py3-django-tables2 + py3-django-rest-framework py3-napalm py3-graphviz py3-markdown py3-natsort + py3-ncclient py3-netaddr py3-paramiko py3-pillow py3-psycopg2 py3-pygfm + py3-pycryptodome py3-xmltodict py3-gunicorn" +install="$pkgname.pre-install $pkgname.post-upgrade" +subpackages="$pkgname-doc" +options="!check" # no testsuite +pkgusers="netbox" +pkggroups="netbox" +source="$pkgname-$pkgver.tar.gz::https://github.com/digitalocean/netbox/archive/v$pkgver.tar.gz + gunicorn_config.py + netbox.nginx-sample + $pkgname.initd + $pkgname.logrotated + set-config-defaults.patch + " +builddir="$srcdir"/$pkgname-$pkgver + +build() { + return 0 +} + +package() { + cd "$builddir" + local destdir=usr/share/webapps + local conffile=etc/$pkgname/configuration.py + mkdir -p "$pkgdir"/$destdir \ + "$pkgdir"/usr/share/doc \ + "$pkgdir"/etc/$pkgname + mv $pkgname "$pkgdir"/$destdir + mkdir -p "$pkgdir"/$destdir/$pkgname/static + mv docs "$pkgdir"/usr/share/doc/$pkgname + mv "$pkgdir"/$destdir/$pkgname/$pkgname/configuration.example.py \ + "$pkgdir"/$conffile + + # in order to install the static files we need a working config file + # and temporarily set minimum settings in config file + ln -s "$pkgdir"/$conffile \ + "$pkgdir"/$destdir/$pkgname/$pkgname/configuration.py + sed -i "s/SECRET_KEY.*/SECRET_KEY = \'abcdefghk123456789\'/" \ + "$pkgdir"/$conffile + + # install static files + python3 "$pkgdir"/$destdir/$pkgname/manage.py collectstatic --noinput --clear --link + # let's move instead of linking static files originating from netbox + local dir; for dir in "$pkgdir"/$destdir/$pkgname/project-static/*; do + rm -rf "$pkgdir"/$destdir/$pkgname/static/$(basename $dir) + mv $dir "$pkgdir"/$destdir/$pkgname/static + done + + install -m644 "$srcdir"/gunicorn_config.py "$pkgdir"/$destdir/$pkgname + install -D -m644 "$srcdir"/netbox.nginx-sample "$pkgdir"/etc/nginx/netbox.sample + install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname + install -D -m644 "$srcdir"/$pkgname.logrotated "$pkgdir"/etc/logrotate.d/$pkgname + install -d -m755 -o netbox -g netbox "$pkgdir"/var/lib/$pkgname/media + + # undo temp stuff + ln -sf /$conffile "$pkgdir"/$destdir/$pkgname/$pkgname/configuration.py + sed -i "s/SECRET_KEY.*/SECRET_KEY = \'\'/" "$pkgdir"/$conffile +} + +sha512sums="3e5014ff240404e33ac50a700f3c31dc86ff3693c1f26caa681db7b5d14e8d7237f6b2d918c519e47818efc2384ef279196943f86c256a9a8bf7aa7f8084d1a2 netbox-2.2.8.tar.gz +09d8e40d98d113458ee602de85306ac1a24fbb0015fbc4bb77812dae05096cb7b9c50770f650fd2ac78a388f35d7752ce8021790e952234a39c8b3e73a4ea3db gunicorn_config.py +b5c3dc0ad2ebaacf43dfa41880dc7d677a763a3fadf1ccd0a6a9ec744d1648ca72f6a55893d09fd843b399559e2411a98b0ded597669f18a34f305f5ccb57c06 netbox.nginx-sample +d4467109d803f42f8d9b088951d6123b9088f0069a4db280c2ca5e5a57bf746d1faa70d0f542154149e60f21891876f7c15da360e07eec8c8a36f5aac65509d3 netbox.initd +a87dd52264f5ea00dbb774e54332480615850aa0056e60e13963481e8390bee73ceb519873fa11d357a29911c4e34a30c4623f4c206f765af6e64f379314e5a8 netbox.logrotated +6b9eb0dcf8d5a267c3c88b81468d1fd7a7971cc084370a44f1ea5b61b08a30e9339f838e97947a0c65f385ed69fc5122592eca0ee5ff6e00cf5ec0f2dbe4c59f set-config-defaults.patch" diff --git a/testing/netbox/gunicorn_config.py b/testing/netbox/gunicorn_config.py new file mode 100644 index 0000000000..7de9b24a33 --- /dev/null +++ b/testing/netbox/gunicorn_config.py @@ -0,0 +1,5 @@ +command = '/usr/bin/gunicorn' +pythonpath = '/usr/share/webapps/netbox' +bind = '127.0.0.1:8001' +workers = 3 +user = 'netbox' diff --git a/testing/netbox/netbox.initd b/testing/netbox/netbox.initd new file mode 100644 index 0000000000..6b135dbb08 --- /dev/null +++ b/testing/netbox/netbox.initd @@ -0,0 +1,21 @@ +#!/sbin/openrc-run + +_port=8080 +_bind=0.0.0.0 +_basedir=/usr/share/webapps/netbox +_logfile="/var/log/${RC_SVCNAME}" +pidfile="/run/netbox/${RC_SVCNAME}.pid" +command=/usr/bin/gunicorn +command_args="--daemon \ + --pid $pidfile \ + --log-file $_logfile \ + --log-level info \ + -c $_basedir/gunicorn_config.py netbox.wsgi" +command_user="netbox" +command_group="netbox" + +start_pre() { + checkpath --directory /run/${RC_SVCNAME} /var/log/${RC_SVCNAME} \ + --owner $command_user:$command_group --mode 755 +} + diff --git a/testing/netbox/netbox.logrotated b/testing/netbox/netbox.logrotated new file mode 100644 index 0000000000..c3cc265126 --- /dev/null +++ b/testing/netbox/netbox.logrotated @@ -0,0 +1,8 @@ +/var/log/netbox/*.log { + weekly + rotate 4 + missingok + notifempty + sharedscripts + copytruncate +} diff --git a/testing/netbox/netbox.nginx-sample b/testing/netbox/netbox.nginx-sample new file mode 100644 index 0000000000..37c2a943ba --- /dev/null +++ b/testing/netbox/netbox.nginx-sample @@ -0,0 +1,20 @@ +server { + listen 80; + + server_name netbox.mydomain; + + client_max_body_size 25m; + + location /static/ { + alias /usr/share/webapps/netbox/static/; + } + + location / { + proxy_pass http://127.0.0.1:8001; + proxy_set_header X-Forwarded-Host $server_name; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; + } +} + diff --git a/testing/netbox/netbox.post-upgrade b/testing/netbox/netbox.post-upgrade new file mode 100755 index 0000000000..bfc3a63f72 --- /dev/null +++ b/testing/netbox/netbox.post-upgrade @@ -0,0 +1,8 @@ +#!/bin/sh +echo +echo "* Please run:" +echo "*" +echo "* 'python3 /usr/share/webapps/netbox/manage.py migrate'" +echo "*" +echo "* in order to complete the upgrade." +echo diff --git a/testing/netbox/netbox.pre-install b/testing/netbox/netbox.pre-install new file mode 100755 index 0000000000..22b96ba8be --- /dev/null +++ b/testing/netbox/netbox.pre-install @@ -0,0 +1,4 @@ +#!/bin/sh +addgroup -S netbox 2>/dev/null +adduser -S -h /var/log/netbox -s /sbin/nologin -G netbox -D netbox 2>/dev/null +exit 0 diff --git a/testing/netbox/set-config-defaults.patch b/testing/netbox/set-config-defaults.patch new file mode 100644 index 0000000000..73b8b629b3 --- /dev/null +++ b/testing/netbox/set-config-defaults.patch @@ -0,0 +1,11 @@ +--- a/netbox/netbox/configuration.example.py ++++ b/netbox/netbox/configuration.example.py +@@ -98,7 +98,7 @@ + + # The file path where uploaded media such as image attachments are stored. A trailing slash is not needed. Note that + # the default value of this setting is derived from the installed location. +-# MEDIA_ROOT = '/opt/netbox/netbox/media' ++MEDIA_ROOT = '/var/lib/netbox/media' + + # Credentials that NetBox will uses to authenticate to devices when connecting via NAPALM. + NAPALM_USERNAME = '' |