summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorpappy2018-07-02 13:38:33 +0300
committerpappy2018-07-02 13:38:33 +0300
commit197fe465d817cf56f1a1fbe6d4feddcc7acfabf7 (patch)
treef3f8e3df3f77dd9c26d00821fc0fd7b3972f57fe
downloadaur-197fe465d817cf56f1a1fbe6d4feddcc7acfabf7.tar.gz
initial import
-rw-r--r--.SRCINFO39
-rw-r--r--.gitignore6
-rw-r--r--0010-dirs.patch30
-rw-r--r--0010-paths.patch62
-rw-r--r--PKGBUILD90
-rw-r--r--lxdui.conf47
-rwxr-xr-xlxdui.install21
-rw-r--r--lxdui.service16
-rw-r--r--lxdui.sysusers2
-rw-r--r--lxdui.tmpfiles2
10 files changed, 315 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..50c866d46c6e
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,39 @@
+pkgbase = lxdui-git
+ pkgdesc = Web UI for the native Linux container technology LXD/LXC
+ pkgver = 2.1.1.0.636.c477657
+ pkgrel = 1
+ url = https://github.com/AdaptiveScale/lxdui
+ install = lxdui.install
+ arch = x86_64
+ license = AGPL3
+ makedepends = python-virtualenv
+ depends = lxd
+ depends = python-click
+ depends = python-flask-jwt
+ depends = python-flask-login
+ depends = python-jsonschema
+ depends = python-netaddr
+ depends = python-psutil
+ depends = python-ptyprocess
+ depends = python-requests
+ depends = python-terminado
+ depends = python-tornado
+ provides = lxdui
+ backup = etc/lxdui/lxdui.conf
+ backup = etc/lxdui/log.conf
+ backup = etc/lxdui/auth.conf
+ source = lxdui-git::git+https://github.com/AdaptiveScale/lxdui
+ source = lxdui.conf
+ source = lxdui.sysusers
+ source = lxdui.tmpfiles
+ source = lxdui.service
+ source = 0010-paths.patch
+ sha256sums = SKIP
+ sha256sums = e419e1ecb8bec84fd676e7a729d91b48065a3a7616956bc5356e64e6d8286eac
+ sha256sums = b149cf164d32659b95802d0e4e455e98736de0d0ece519c48eae2eb846c35f3c
+ sha256sums = ba3e1a27e38e63e283ea595480be375a70d5f24879ba4c2c4f3fe4dc28fbdee4
+ sha256sums = 7487a9b77522a23b1be4c02961f46917d48b9c617d669843bbf26c4fd285d75d
+ sha256sums = bf8ecd2b10b70d90b8b7b9dd2d5b35a69cb2ed6fa6d7a7c310cc0648fa19e723
+
+pkgname = lxdui-git
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..0a558ca035ff
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+src/
+pkg/
+lxdui-git/
+*.tar.gz
+*.tar.xz
+*.log
diff --git a/0010-dirs.patch b/0010-dirs.patch
new file mode 100644
index 000000000000..23543f1b46df
--- /dev/null
+++ b/0010-dirs.patch
@@ -0,0 +1,30 @@
+diff -rNc lxdui-2.1.1-orig/app/__metadata__.py lxdui-2.1.1/app/__metadata__.py
+*** lxdui-2.1.1-orig/app/__metadata__.py 2018-06-18 22:36:37.000000000 +0300
+--- lxdui-2.1.1/app/__metadata__.py 2018-06-29 17:03:39.961224760 +0300
+***************
+*** 26,37 ****
+ lxdui.jwt.secret.key = AC8d83&21Almnis710sds
+ lxdui.jwt.auth.url.rule = /api/user/login
+ lxdui.admin.user = admin
+! lxdui.conf.dir = {{app_root}}/conf
+ lxdui.conf.file = ${lxdui.conf.dir}/lxdui.conf
+ lxdui.auth.conf = ${lxdui.conf.dir}/auth.conf
+ lxdui.ssl.cert = ${lxdui.conf.dir}/client.crt
+ lxdui.ssl.key = ${lxdui.conf.dir}/client.key
+! lxdui.log.dir = {{app_root}}/logs
+ lxdui.log.file = ${lxdui.log.dir}/lxdui.log
+ lxdui.log.conf = ${lxdui.conf.dir}/log.conf
+ #lxdui.log.rotate = true
+--- 26,37 ----
+ lxdui.jwt.secret.key = AC8d83&21Almnis710sds
+ lxdui.jwt.auth.url.rule = /api/user/login
+ lxdui.admin.user = admin
+! lxdui.conf.dir = /etc/lxdui
+ lxdui.conf.file = ${lxdui.conf.dir}/lxdui.conf
+ lxdui.auth.conf = ${lxdui.conf.dir}/auth.conf
+ lxdui.ssl.cert = ${lxdui.conf.dir}/client.crt
+ lxdui.ssl.key = ${lxdui.conf.dir}/client.key
+! lxdui.log.dir = /var/log/lxdui
+ lxdui.log.file = ${lxdui.log.dir}/lxdui.log
+ lxdui.log.conf = ${lxdui.conf.dir}/log.conf
+ #lxdui.log.rotate = true
diff --git a/0010-paths.patch b/0010-paths.patch
new file mode 100644
index 000000000000..3e9ca0350161
--- /dev/null
+++ b/0010-paths.patch
@@ -0,0 +1,62 @@
+diff -rNc lxdui-2.1.1-orig/app/api/core.py lxdui-2.1.1/app/api/core.py
+*** lxdui-2.1.1-orig/app/api/core.py 2018-06-18 22:36:37.000000000 +0300
+--- lxdui-2.1.1/app/api/core.py 2018-06-29 17:26:55.789621966 +0300
+***************
+*** 14,20 ****
+ Log(__name__)
+ app = Flask(__name__)
+ HAS_UI = False
+! PID = os.path.join(tempfile.gettempdir(), '{}.pid'.format(meta.APP_NAME).lower())
+
+ # Authentication section
+ initAuth(app)
+--- 14,20 ----
+ Log(__name__)
+ app = Flask(__name__)
+ HAS_UI = False
+! PID = '/run/{}/{}.pid'.format(meta.APP_NAME, meta.APP_NAME).lower()
+
+ # Authentication section
+ initAuth(app)
+***************
+*** 133,136 ****
+ print("LXDUI started. Running on http://0.0.0.0:{}".format(port))
+ print("PID={}, Press CTRL+C to quit".format(pid))
+ terminal(app, port, debug)
+! # app.run(debug=debug, host='0.0.0.0', port=port)
+\ No newline at end of file
+--- 133,136 ----
+ print("LXDUI started. Running on http://0.0.0.0:{}".format(port))
+ print("PID={}, Press CTRL+C to quit".format(pid))
+ terminal(app, port, debug)
+! # app.run(debug=debug, host='0.0.0.0', port=port)
+diff -rNc lxdui-2.1.1-orig/app/__metadata__.py lxdui-2.1.1/app/__metadata__.py
+*** lxdui-2.1.1-orig/app/__metadata__.py 2018-06-18 22:36:37.000000000 +0300
+--- lxdui-2.1.1/app/__metadata__.py 2018-06-29 17:25:26.097793995 +0300
+***************
+*** 26,37 ****
+ lxdui.jwt.secret.key = AC8d83&21Almnis710sds
+ lxdui.jwt.auth.url.rule = /api/user/login
+ lxdui.admin.user = admin
+! lxdui.conf.dir = {{app_root}}/conf
+ lxdui.conf.file = ${lxdui.conf.dir}/lxdui.conf
+ lxdui.auth.conf = ${lxdui.conf.dir}/auth.conf
+ lxdui.ssl.cert = ${lxdui.conf.dir}/client.crt
+ lxdui.ssl.key = ${lxdui.conf.dir}/client.key
+! lxdui.log.dir = {{app_root}}/logs
+ lxdui.log.file = ${lxdui.log.dir}/lxdui.log
+ lxdui.log.conf = ${lxdui.conf.dir}/log.conf
+ #lxdui.log.rotate = true
+--- 26,37 ----
+ lxdui.jwt.secret.key = AC8d83&21Almnis710sds
+ lxdui.jwt.auth.url.rule = /api/user/login
+ lxdui.admin.user = admin
+! lxdui.conf.dir = /etc/lxdui
+ lxdui.conf.file = ${lxdui.conf.dir}/lxdui.conf
+ lxdui.auth.conf = ${lxdui.conf.dir}/auth.conf
+ lxdui.ssl.cert = ${lxdui.conf.dir}/client.crt
+ lxdui.ssl.key = ${lxdui.conf.dir}/client.key
+! lxdui.log.dir = /var/log/lxdui
+ lxdui.log.file = ${lxdui.log.dir}/lxdui.log
+ lxdui.log.conf = ${lxdui.conf.dir}/log.conf
+ #lxdui.log.rotate = true
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..802f14dcd9bc
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,90 @@
+# Maintainer: pappy <pappy _AT_ a s c e l i o n _DOT_ com>
+
+_pkgname=lxdui
+pkgname=$_pkgname-git
+pkgver=2.1.1.0.636.c477657
+pkgrel=1
+
+srcver() {
+ cd "${srcdir}/${pkgname}"
+ eval $(cat app/__metadata__.py | grep -w VERSION | sed 's/ //g')
+ echo -n $VERSION
+}
+
+pkgver() {
+ cd "${srcdir}/${pkgname}"
+
+ echo -n $(srcver).0.$(git rev-list --count HEAD).$(git rev-parse --short HEAD)
+}
+
+pkgdesc="Web UI for the native Linux container technology LXD/LXC"
+arch=(x86_64)
+url="https://github.com/AdaptiveScale/lxdui"
+license=('AGPL3')
+depends=(lxd
+ python-click
+ python-flask-jwt
+ python-flask-login
+ python-jsonschema
+ python-netaddr
+ python-psutil
+ python-ptyprocess
+ python-requests
+ python-terminado
+ python-tornado
+)
+makedepends=('python-virtualenv')
+provides=(lxdui)
+install=lxdui.install
+backup=(etc/lxdui/lxdui.conf
+ etc/lxdui/log.conf
+ etc/lxdui/auth.conf)
+source=($pkgname::git+https://github.com/AdaptiveScale/$_pkgname
+
+ $_pkgname.conf
+ $_pkgname.sysusers
+ $_pkgname.tmpfiles
+ $_pkgname.service
+
+ 0010-paths.patch
+ )
+sha256sums=('SKIP'
+ 'e419e1ecb8bec84fd676e7a729d91b48065a3a7616956bc5356e64e6d8286eac'
+ 'b149cf164d32659b95802d0e4e455e98736de0d0ece519c48eae2eb846c35f3c'
+ 'ba3e1a27e38e63e283ea595480be375a70d5f24879ba4c2c4f3fe4dc28fbdee4'
+ '7487a9b77522a23b1be4c02961f46917d48b9c617d669843bbf26c4fd285d75d'
+ 'bf8ecd2b10b70d90b8b7b9dd2d5b35a69cb2ed6fa6d7a7c310cc0648fa19e723')
+
+prepare()
+{
+ cd $pkgname
+ for s in ${source[@]}; do
+ case $s in
+ *.patch)
+ echo -n Applying patch $s...
+ patch -s -p1 -i ${srcdir}/$s
+ echo ' done'
+ ;;
+ esac
+ done
+}
+
+package() {
+ virtualenv --system-site-packages $pkgdir/usr/lib/$_pkgname
+
+ pushd $pkgname
+ $pkgdir/usr/lib/$_pkgname/bin/python setup.py install --optimize=1
+ $pkgdir/usr/lib/$_pkgname/bin/pip uninstall -y pip setuptools wheel
+ popd
+
+ find $pkgdir/usr/lib/$_pkgname/bin -type f -exec grep -q $pkgdir {} \; -exec sed -i "s:$pkgdir::g" {} \;
+ find $pkgdir/usr/lib/$_pkgname/lib -type d \( -name testsuite -o -name tests \) -exec rm -rf {} \; 2>/dev/null || true
+
+ install -Dm644 $_pkgname.conf $pkgdir/etc/$_pkgname/$_pkgname.conf
+ install -Dm644 $_pkgname.sysusers $pkgdir/usr/lib/sysusers.d/$_pkgname.conf
+ install -Dm644 $_pkgname.service $pkgdir/usr/lib/systemd/system/$_pkgname.service
+ install -Dm644 $_pkgname.tmpfiles $pkgdir/usr/lib/tmpfiles.d/$_pkgname.conf
+
+ mv $pkgdir/usr/lib/$_pkgname/lib/python3.6/site-packages/LXDUI-$(srcver)-py3.6.egg/conf/* $pkgdir/etc/$_pkgname
+}
+
diff --git a/lxdui.conf b/lxdui.conf
new file mode 100644
index 000000000000..6cc881d6458a
--- /dev/null
+++ b/lxdui.conf
@@ -0,0 +1,47 @@
+[LXDUI]
+lxdui.port = 15151
+lxdui.images.remote = https://images.linuxcontainers.org
+lxdui.jwt.token.expiration = 1200
+lxdui.jwt.secret.key = AC8d83&21Almnis710sds
+lxdui.jwt.auth.url.rule = /api/user/login
+lxdui.admin.user = admin
+lxdui.conf.dir = /etc/lxdui
+lxdui.conf.file = ${lxdui.conf.dir}/lxdui.conf
+lxdui.auth.conf = ${lxdui.conf.dir}/auth.conf
+lxdui.ssl.cert = ${lxdui.conf.dir}/client.crt
+lxdui.ssl.key = ${lxdui.conf.dir}/client.key
+lxdui.log.dir = /var/log/lxdui
+lxdui.log.file = ${lxdui.log.dir}/lxdui.log
+lxdui.log.conf = ${lxdui.conf.dir}/log.conf
+#lxdui.log.rotate = true
+#lxdui.log.max = 10M
+#lxdui.log.keep.generations = 5
+lxdui.profiles = ${lxdui.conf.dir}/profiles
+lxdui.zfs.pool.name = lxdpool
+lxdui.app.alias = LXDUI
+lxdui.cli = cli
+
+[LXDUI_CERT]
+lxdui.cert.country = US
+lxdui.cert.state = Texas
+lxdui.cert.locale = Dallas
+lxdui.cert.org = AdaptiveScale, Inc.
+lxdui.cert.ou = OU=AdaptiveScale, DN=com
+
+[LXD]
+lxd.bridge.enabled = true
+lxd.bridge.name = lxdbr0
+lxd.dns.conf.file =
+lxd.dns.domain = lxd
+lxd.ipv4.addr = 10.5.5.1
+lxd.ipv4.netmask = 255.255.255.0
+lxd.ipv4.network = 10.5.5.0/24
+lxd.ipv4.dhcp.range = 253
+lxd.ipv4.dhcp.max = 10.5.5.2,10.5.5.254
+lxd.ipv4.nat = true
+lxd.ipv6.addr = 2001:470:b368:4242::1
+lxd.ipv6.mask = 255.255.255.0
+lxd.ipv6.network = 2001:470:b368:4242::/64
+lxd.ipv6.nat = false
+lxd.ipv6.proxy = false
+
diff --git a/lxdui.install b/lxdui.install
new file mode 100755
index 000000000000..b10e6c8dd288
--- /dev/null
+++ b/lxdui.install
@@ -0,0 +1,21 @@
+post_install()
+{
+ systemd-sysusers
+
+ echo ""
+ echo "To start LXDUI, run: systemctl start lxdui"
+ echo "To enable LXDUI at boot, run: systemctl enable lxdui"
+ echo ""
+}
+
+post_upgrade()
+{
+ systemctl daemon-reload
+}
+
+pre_remove()
+{
+ systemctl stop lxdui
+ systemctl disable lxdui
+}
+
diff --git a/lxdui.service b/lxdui.service
new file mode 100644
index 000000000000..00e9dc752270
--- /dev/null
+++ b/lxdui.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Web UI for the native Linux container technology LXD/LXC
+After=network.target lxd.service
+Requires=lxd.service
+
+[Service]
+Type=simple
+User=lxdui
+Group=lxdui
+PIDFile=/run/lxdui/lxdui.pid
+ExecStart=/usr/lib/lxdui/bin/lxdui start
+ExecStop=/usr/lib/lxdui/bin/lxdui stop
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/lxdui.sysusers b/lxdui.sysusers
new file mode 100644
index 000000000000..c7a1de2c9ca1
--- /dev/null
+++ b/lxdui.sysusers
@@ -0,0 +1,2 @@
+u lxdui - "LXDUI User" /var/log/lxdui
+m lxdui lxd
diff --git a/lxdui.tmpfiles b/lxdui.tmpfiles
new file mode 100644
index 000000000000..c634e654dc14
--- /dev/null
+++ b/lxdui.tmpfiles
@@ -0,0 +1,2 @@
+d /var/log/lxdui 0755 lxdui lxdui -
+d /run/lxdui 0755 lxdui lxdui -