user/filebrowser: new aport #1837
5 changed files with 7699 additions and 0 deletions
53
user/filebrowser/APKBUILD
Normal file
53
user/filebrowser/APKBUILD
Normal 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
|
||||
"
|
||||
30
user/filebrowser/filebrowser.openrc
Normal file
30
user/filebrowser/filebrowser.openrc
Normal 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
|
||||
}
|
||||
1
user/filebrowser/filebrowser.post-upgrade
Symbolic link
1
user/filebrowser/filebrowser.post-upgrade
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
filebrowser.pre-install
|
||||
47
user/filebrowser/filebrowser.pre-install
Normal file
47
user/filebrowser/filebrowser.pre-install
Normal 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
7568
user/filebrowser/frontend-package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue