user/filebrowser: new aport #1837

Merged
forge merged 1 commit from filebrowser/initial into edge 2025-12-16 18:51:42 +00:00
5 changed files with 7699 additions and 0 deletions

53
user/filebrowser/APKBUILD Normal file
View file

@ -0,0 +1,53 @@
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=filebrowser
pkgver=1.0.3
_gittag="v$pkgver-stable"
pkgrel=0
pkgdesc="Standalone web file manager"
arch="all"
url="https://github.com/gtsteffaniak/filebrowser"
license="Apache-2.0"
depends="libcap-setcap"
makedepends="go nodejs npm"
source="
$pkgname-$_gittag.tar.gz::https://github.com/gtsteffaniak/filebrowser/archive/refs/tags/$_gittag.tar.gz
frontend-package-lock.json
filebrowser.openrc
"
builddir="$srcdir"/$pkgname-${_gittag/v}
options="!check" # TODO: setup test suite
subpackages="$pkgname-openrc"
install="$pkgname.pre-install $pkgname.post-upgrade"
prepare() {
default_prepare
(
cd "$builddir"/frontend
cp "$srcdir"/frontend-package-lock.json package-lock.json
npm ci
)
}
build() {
(
cd "$builddir"/frontend
npm run build
)
(
cd "$builddir"/backend
go build -o filebrowser \
--ldflags="-w -s -X 'github.com/gtsteffaniak/filebrowser/backend/common/version.CommitSHA=production' \
-X 'github.com/gtsteffaniak/filebrowser/backend/common/version.Version=$pkgver'"
)
}
package() {
install -Dm755 "$builddir"/backend/filebrowser "$pkgdir"/usr/bin/filebrowser
install -Dm755 "$srcdir"/filebrowser.openrc "$pkgdir"/etc/init.d/filebrowser
install -Dm644 "$builddir"/frontend/public/config.generated.yaml "$pkgdir"/etc/filebrowser/filebrowser.yaml
}
sha512sums="
7919d391e45c7a88bcbff61f6d63963fe559afe21170c2940ae7895e6b794ce68af0742d4ce81584437b14e603a4ff8b95fb1fb16d72a032a40b76986ed8981b filebrowser-v1.0.3-stable.tar.gz
4ffe0c2ae7d6d972950fb38c9c777c20e3f507da6b4562231e09843b3ae618362ffdfbaf6dbb60959b3811c1856eb326d608e9d32e236bac405c65974e6e1e50 frontend-package-lock.json
06319bc67b088b5ffdad01a575691d82c5319730b4e46975bfc09ebb7466d6913eaca73e93f8db7b8c8bc374e6b9e35634ff1a69e701d24a5d2eae444de6bdf7 filebrowser.openrc
"

View file

@ -0,0 +1,30 @@
#!/sbin/openrc-run
description="File browser for ${RC_SVCNAME/*.}"
supervisor=supervise-daemon
respawn_max=0
respawn_delay=10
# Change $directory to path to middleware scripts
directory=${directory:-/var/lib/${RC_SVCNAME/.*}/${RC_SVCNAME/*.}}
pidfile=${pidfile:-/run/$RC_SVCNAME.pid}
log_dir="/var/log/${RC_SVCNAME/.*}/"
logfile=${logfile:-$log_dir/${RC_SVCNAME/*.}.log}
output_log="${output_log:-$logfile}"
error_log="${error_log:-$logfile}"
command=${command:-/usr/bin/filebrowser}
command_args="-c /etc/filebrowser/${RC_SVCNAME/*.}.yaml"
command_user=${command_user:-filebrowser:filebrowser}
command_background=true
depend() {
need net
}
start_pre() {
checkpath --owner=$command_user --directory $log_dir /var/lib/filebrowser $directory
cd $directory
}

View file

@ -0,0 +1 @@
filebrowser.pre-install

View file

@ -0,0 +1,47 @@
#!/bin/sh
setcap 'cap_net_bind_service=+ep' /usr/bin/filebrowser
if [ "${0##*.}" = 'pre-install' ]; then
cat >&2 <<-EOF
1. Generate filebrowser config file
cd /etc/filebrowser
filebrowser setup
2. Rename config.yaml to $service.yaml (i.e. movies.yaml) and adjust as desired (see https://filebrowserquantum.com/en/docs/configuration/configuration-overview/ for more information)
3. Create symbolic link for service file, enable, and start
ln -s /etc/init.d/filebrowser /etc/init.d/filebrowser.$service
rc-update add filebrowser.$service
service filebrowser.$service
You should now be able to go to http://ip-address:port (default 80)
For more documentation, go to https://filebrowserquantum.com/en/docs
EOF
if ! getent group filebrowser 1>/dev/null; then
echo 'Creating group filebrowser' 1>&2
addgroup -S filebrowser
fi
if ! id filebrowser 2>/dev/null 1>&2; then
echo 'Creating user filebrowser' 1>&2
adduser -DHS -G filebrowser -h "$DATADIR" -s /bin/sh \
-g "added by apk for filebrowser" filebrowser
passwd -u filebrowser 1>/dev/null # unlock
fi
if ! id -Gn filebrowser | grep -Fq www-data; then
echo 'Adding user filebrowser to group www-data' 1>&2
addgroup filebrowser www-data
fi
exit 0
fi

7568
user/filebrowser/frontend-package-lock.json generated Normal file

File diff suppressed because it is too large Load diff