1diff --git a/apks/invidious/APKBUILD b/apks/invidious/APKBUILD
2new file mode 100644
3index 0000000000000000000000000000000000000000..79d5ec17c14a2da551a8ad324a93f9f776a652ec
4--- /dev/null
5+++ b/apks/invidious/APKBUILD
6@@ -0,0 +1,74 @@
7+# Maintainer: Francesco Camuffo <dev@fmac.xyz>
8+pkgname=invidious
9+pkgver=0_git20231007
10+_commit=60fae015d8b5e4b0bfac8306065db07f93c4c661
11+pkgrel=0
12+pkgdesc="Alternative front-end to YouTube"
13+url="https://github.com/iv-org/invidious"
14+arch="x86_64"
15+license="AGPL-3.0-or-later"
16+depends="
17+ rsvg-convert
18+"
19+options="!check" # testing breaks for now fixing later
20+makedepends="
21+ crystal
22+ git
23+ libxml2-dev
24+ openssl-dev
25+ shards
26+ sqlite-dev
27+ yaml-dev
28+ zlib-dev
29+"
30+install="$pkgname.pre-install"
31+pkgusers="$pkgname"
32+pkggroups="$pkgname"
33+subpackages="$pkgname-openrc"
34+_mocks_commit=cb16e0343c8f94182615610bfe3c503db89717a7
35+source="
36+ $pkgname-$_commit.tar.gz::https://github.com/iv-org/invidious/archive/$_commit.tar.gz
37+ $pkgname.initd
38+"
39+builddir="$srcdir/invidious-$_commit"
40+
41+prepare() {
42+ sed -i src/invidious.cr \
43+ -e 's/\(CURRENT_BRANCH \) = .*/\1 = "master"/' \
44+ -e "s/\(CURRENT_COMMIT \) = .*/\1 = \"${_commit:0:7}\"/" \
45+ -e "s/\(CURRENT_VERSION\) = .*/\1 = \"$pkgver\"/" \
46+ -e "s/\(ASSET_COMMIT\) = .*/\1 = \"${_commit:0:7}\"/"
47+
48+ datadir=/usr/share/webapps/invidious
49+ # fix paths
50+ sed -i src/invidious.cr \
51+ -e "s|\(public_folder\) \"assets\"|\1 \"$datadir/assets\"|"
52+ sed -i src/invidious/helpers/i18n.cr \
53+ -e "s|File.read(\"locales/|File.read(\"$datadir/locales/|"
54+ sed -i src/invidious/database/base.cr \
55+ -e "s|config/sql|/etc/$pkgname/\0|g"
56+
57+ default_prepare
58+}
59+
60+build() {
61+ shards install
62+ crystal build \
63+ --release \
64+ -Ddisable_quic \
65+ src/invidious.cr
66+}
67+
68+package() {
69+ install -Dm755 "$pkgname" "$pkgdir"/usr/bin/invidious
70+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
71+ mkdir -p "$pkgdir"/usr/share/webapps/invidious
72+ cp -r "$builddir"/assets "$builddir"/locales \
73+ "$pkgdir"/usr/share/webapps/invidious
74+ install -Dm644 "$builddir"/config/config.example.yml \
75+ "$pkgdir"/etc/"$pkgname"/config.yml
76+}
77+sha512sums="
78+bc2295d5d43ac3b793914e4baa0bdd6c4d6ff1746629b3db0b81a22ca057acb5cc28a7af984573ace936acaabedc2ce134d9ecf76386101893af408976f8f44c invidious-60fae015d8b5e4b0bfac8306065db07f93c4c661.tar.gz
79+ed0a2e498751927c1ad82619395a07c169f7353a9c1453381ad288ad501b915010df5b799e4f102e034f0483b9101b9a8ae40d150b3d7db80605f87b9ca6f596 invidious.initd
80+"
81diff --git a/apks/invidious/invidious.initd b/apks/invidious/invidious.initd
82new file mode 100644
83index 0000000000000000000000000000000000000000..ba29fce025b9f0bfd03ee28b3b8f7373e3184eb2
84--- /dev/null
85+++ b/apks/invidious/invidious.initd
86@@ -0,0 +1,13 @@
87+#!/sbin/openrc-run
88+
89+supervisor=supervise-daemon
90+name=invidious
91+command="/usr/bin/invidious"
92+command_user="${INVIDIOUS_USER:-invidious}"
93+supervise_daemon_args="--env INVIDIOUS_CONFIG_FILE='${INVIDIOUS_CONFIG_FILE:-/etc/invidious/config.yml}'"
94+pidfile="/run/invidious.pid"
95+
96+depend() {
97+ need net
98+ after firewall
99+}
100diff --git a/apks/invidious/invidious.pre-install b/apks/invidious/invidious.pre-install
101new file mode 100644
102index 0000000000000000000000000000000000000000..bce4a4ea1c066b0227f707c23af7e55bfa849878
103--- /dev/null
104+++ b/apks/invidious/invidious.pre-install
105@@ -0,0 +1,7 @@
106+#!/bin/sh
107+
108+addgroup -S invidious 2>/dev/null
109+adduser -S -D -h /usr/share/webapps/invidious -s /sbin/nologin -G invidious \
110+ -g invidious invidious 2>/dev/null
111+
112+exit 0