1diff --git a/apks/photoview/APKBUILD b/apks/photoview/APKBUILD
2new file mode 100644
3index 0000000000000000000000000000000000000000..ab6003ccbae6cd90e3136bf1e643e8b2f7d01ca9
4--- /dev/null
5+++ b/apks/photoview/APKBUILD
6@@ -0,0 +1,63 @@
7+# Maintainer: Gabriel Giovanini <mail@gabrielgio.me>
8+pkgname=photoview
9+pkgver=2.3.13
10+pkgrel=2
11+pkgdesc="Photo gallery for self-hosted personal servers"
12+url="https://github.com/photoview/photoview"
13+arch="x86_64"
14+license="AGPL-3.0"
15+install="$pkgname.pre-install"
16+makedepends="go
17+ npm
18+ dlib-dev
19+ yaml-dev
20+ libheif-dev
21+ jpeg-dev
22+ blas-dev
23+ lapack-dev
24+ exiftool
25+ ffmpeg-dev"
26+subpackages="$pkgname-openrc"
27+source="$pkgname-$pkgver.tar.gz::https://github.com/photoview/photoview/archive/v$pkgver.tar.gz
28+ $pkgname.pre-install
29+ $pkgname.initd
30+ $pkgname.confd"
31+builddir="$srcdir/$pkgname-$pkgver"
32+
33+build() {
34+ cd "$srcdir/$pkgname-$pkgver/api"
35+ go build -o "$pkgname" server.go
36+
37+ cd "$srcdir/$pkgname-$pkgver/ui"
38+ npm ci --yes --omit=dev --ignore-scripts
39+ npm run build
40+}
41+
42+check() {
43+ cd "$srcdir/$pkgname-$pkgver/api"
44+ go test ./...
45+
46+ cd "$srcdir/$pkgname-$pkgver/ui"
47+ npm install
48+ CI=true npm run test
49+}
50+
51+package() {
52+ install -Dm755 api/"$pkgname" "$pkgdir/usr/bin/$pkgname"
53+ install -d "${pkgdir}/var/cache/${pkgname}/media_cache"
54+
55+ cd "$srcdir/$pkgname-$pkgver/ui/dist"
56+ find * -type f -exec install -Dm0644 "{}" "${pkgdir}/usr/share/webapps/${pkgname}/{}" \;
57+
58+ install -d "${pkgdir}/var/lib/${pkgname}"
59+
60+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
61+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
62+}
63+
64+sha512sums="
65+63feaaa33257a5f529fe87f354b1937f7eac60faf1ec0d01c1ca91bf6929b08b680359c044879e9ab96329690baa543e19d4cf0237b20fda152c39631496cd59 photoview-2.3.13.tar.gz
66+25ab91023866397d7e7557c546606212c1c59f97d7a4f1dc091b717c5daaadcb35ab82552bc7ee723baf9b5dd8a76114e027ab453e4db9469931378655c82a29 photoview.pre-install
67+e93390bbd9cf50f4838fdbe217656722781d07dcedebbbef27060df69107ebd5f04b8dec54f1802318e6da8f3a3c9c74a301c208e92713d3c785c7e35f14f55b photoview.initd
68+41e8ac7cca9051b7420de9c4fb67bad0168ac1ecc4ff63761defb1e025b0cbc8264443e2488af18b21ecd189d63cf2037103d3a6d6ba83eaf362c578f765da31 photoview.confd
69+"
70diff --git a/apks/photoview/photoview.confd b/apks/photoview/photoview.confd
71new file mode 100644
72index 0000000000000000000000000000000000000000..0c90d9ef153572ecc7c734f5ea4f0e96844fbe7e
73--- /dev/null
74+++ b/apks/photoview/photoview.confd
75@@ -0,0 +1,17 @@
76+# Available options mysql (default), postgres and sqlite.
77+PHOTOVIEW_DATABASE_DRIVER=sqlite
78+PHOTOVIEW_SQLITE_PATH=/var/lib/photoview/photoview.db
79+
80+# PHOTOVIEW_MYSQL_URL=
81+# PHOTOVIEW_POSTGRES_URL=
82+
83+PHOTOVIEW_LISTEN_IP=localhost
84+PHOTOVIEW_LISTEN_PORT=4001
85+PHOTOVIEW_SERVE_UI=1
86+PHOTOVIEW_UI_PATH=/usr/share/webapps/photoview/
87+PHOTOVIEW_MEDIA_CACHE=/var/cache/photoview/media_cache
88+
89+# disable features
90+PHOTOVIEW_DISABLE_FACE_RECOGNITION=1
91+PHOTOVIEW_DISABLE_VIDEO_ENCODING=0
92+PHOTOVIEW_DISABLE_RAW_PROCESSING=0
93diff --git a/apks/photoview/photoview.initd b/apks/photoview/photoview.initd
94new file mode 100644
95index 0000000000000000000000000000000000000000..04a799c90d4c2b5910bce2028724061911ee584b
96--- /dev/null
97+++ b/apks/photoview/photoview.initd
98@@ -0,0 +1,40 @@
99+#!/sbin/openrc-run
100+supervisor=supervise-daemon
101+
102+command="/usr/bin/photoview"
103+command_background="yes"
104+command_user="photoview:photoview"
105+
106+# database
107+export PHOTOVIEW_DATABASE_DRIVER
108+export PHOTOVIEW_SQLITE_PATH
109+export PHOTOVIEW_MYSQL_URL
110+export PHOTOVIEW_POSTGRES_URL
111+
112+export PHOTOVIEW_LISTEN_IP
113+export PHOTOVIEW_LISTEN_PORT
114+export PHOTOVIEW_SERVE_UI
115+export PHOTOVIEW_UI_PATH
116+export PHOTOVIEW_MEDIA_CACHE
117+
118+# features
119+export PHOTOVIEW_DISABLE_FACE_RECOGNITION
120+export PHOTOVIEW_DISABLE_VIDEO_ENCODING
121+export PHOTOVIEW_DISABLE_RAW_PROCESSING
122+
123+logdir="/var/log/photoview"
124+error_log="$logdir/${SVCNAME}.log"
125+pidfile="/var/run/${SVCNAME}.pid"
126+
127+depend() {
128+ need net
129+ after firewall
130+}
131+
132+start_pre() {
133+ checkpath -d -o $command_user -m755 $logdir
134+ checkpath -d -o $command_user -m755 /var/cache/photoview/media_cache
135+ checkpath -d -o $command_user -m755 /var/lib/photoview
136+ checkpath -d -o $command_user -m755 /usr/share/webapps/photoview
137+ checkpath -f -o $command_user -m644 $error_log
138+}
139diff --git a/apks/photoview/photoview.pre-install b/apks/photoview/photoview.pre-install
140new file mode 100644
141index 0000000000000000000000000000000000000000..a493b21631e607bcda180413ba6adbc69e52b8e4
142--- /dev/null
143+++ b/apks/photoview/photoview.pre-install
144@@ -0,0 +1,6 @@
145+#!/bin/sh
146+
147+addgroup -S photoview 2>/dev/null
148+adduser -S -D -h /var/lib/photoview -s /sbin/nologin -G photoview -g photoview photoview 2>/dev/null
149+
150+exit 0