]> git.rmz.io Git - dotfiles.git/commitdiff
mkosi: add jellyfin container
authorSamir Benmendil <me@rmz.io>
Wed, 23 Dec 2020 12:24:40 +0000 (12:24 +0000)
committerSamir Benmendil <me@rmz.io>
Wed, 23 Dec 2020 12:24:40 +0000 (12:24 +0000)
mkosi/jellyfin/.gitignore [new file with mode: 0644]
mkosi/jellyfin/mkosi.build [new file with mode: 0755]
mkosi/jellyfin/mkosi.default [new file with mode: 0644]
mkosi/jellyfin/mkosi.extra/etc/systemd/system/jellyfin.service.d/override.conf [new file with mode: 0644]
mkosi/jellyfin/mkosi.extra/etc/sysusers.d/jellyfin.conf [new file with mode: 0644]
mkosi/jellyfin/mkosi.nspawn [new file with mode: 0644]
mkosi/jellyfin/mkosi.postinst [new file with mode: 0755]
mkosi/jellyfin/override.conf [new file with mode: 0644]

diff --git a/mkosi/jellyfin/.gitignore b/mkosi/jellyfin/.gitignore
new file mode 100644 (file)
index 0000000..6dd01fa
--- /dev/null
@@ -0,0 +1 @@
+jellyfin/
diff --git a/mkosi/jellyfin/mkosi.build b/mkosi/jellyfin/mkosi.build
new file mode 100755 (executable)
index 0000000..a75371f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+mkdir /build
+ls -alr /build
+chown -R nobody:nobody /build
+chmod -R g+ws /build
+su -l nobody --shell=/bin/bash <<EOF
+export HOME=/build  # make yarn happy about having a writeable homedir
+git clone https://aur.archlinux.org/jellyfin.git /build/makepkg
+cd /build/makepkg
+makepkg --noarchive
+EOF
+
+ls -la /build/makepkg
+cp -dr --no-preserve='ownership' /build/makepkg/pkg/jellyfin-{server,web}/* $DESTDIR
diff --git a/mkosi/jellyfin/mkosi.default b/mkosi/jellyfin/mkosi.default
new file mode 100644 (file)
index 0000000..08468f2
--- /dev/null
@@ -0,0 +1,23 @@
+[Distribution]
+Distribution=arch
+Mirror=http://archlinux.uk.mirror.allworldit.com/archlinux/
+
+[Output]
+Output=jellyfin
+Format=subvolume
+
+[Packages]
+WithNetwork=yes
+BuildPackages=
+    base-devel
+    dotnet-sdk>=3
+    git
+    python2
+    yarn
+
+Packages=
+    aspnet-runtime>=3
+    dotnet-runtime>=3
+    ffmpeg
+    libva-intel-driver
+    sqlite
diff --git a/mkosi/jellyfin/mkosi.extra/etc/systemd/system/jellyfin.service.d/override.conf b/mkosi/jellyfin/mkosi.extra/etc/systemd/system/jellyfin.service.d/override.conf
new file mode 100644 (file)
index 0000000..0c5f2f0
--- /dev/null
@@ -0,0 +1,3 @@
+[Service]
+# allow binding servince to port 80
+AmbientCapabilities=CAP_NET_BIND_SERVICE
diff --git a/mkosi/jellyfin/mkosi.extra/etc/sysusers.d/jellyfin.conf b/mkosi/jellyfin/mkosi.extra/etc/sysusers.d/jellyfin.conf
new file mode 100644 (file)
index 0000000..41c3491
--- /dev/null
@@ -0,0 +1 @@
+u jellyfin - "Jellyfin Media Server" /var/lib/jellyfin
diff --git a/mkosi/jellyfin/mkosi.nspawn b/mkosi/jellyfin/mkosi.nspawn
new file mode 100644 (file)
index 0000000..6345c0b
--- /dev/null
@@ -0,0 +1,10 @@
+[Network]
+Bridge=br0
+
+[Files]
+Bind=/var/lib/jellyfin
+
+Bind=/mnt/fook/Movies
+Bind=/mnt/fook/Series
+
+BindReadOnly=/dev/dri/renderD128
diff --git a/mkosi/jellyfin/mkosi.postinst b/mkosi/jellyfin/mkosi.postinst
new file mode 100755 (executable)
index 0000000..6d151b6
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# skip if in build mode
+if [[ "x$1" = "xbuild" ]]; then
+    exit
+fi
+
+passwd -d root
+systemctl enable jellyfin.service
diff --git a/mkosi/jellyfin/override.conf b/mkosi/jellyfin/override.conf
new file mode 100644 (file)
index 0000000..87d1151
--- /dev/null
@@ -0,0 +1,3 @@
+[Service]
+# access gpu for rendering
+DeviceAllow=char-drm rw