2025-05-29 15:07:58 +08:00

48 lines
1.2 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (C) 2018-2022 Lienol <lawlienol@gmail.com>
# Improve by xiaozhuai <xiaozhuai7@gmail.com>
START=99
USE_PROCD=1
PROG=/usr/sbin/filebrowser
LOG_PATH="/var/log/filebrowser.log"
get_config() {
config_get_bool enable $1 enable 1
config_get address $1 address "0.0.0.0"
config_get port $1 port 8088
config_get database $1 database "/etc/filebrowser.db"
config_get username $1 username "admin"
config_get password $1 password "admin"
config_get ssl_cert $1 ssl_cert ""
config_get ssl_key $1 ssl_key ""
config_get root_path $1 root_path "/"
}
start_service() {
config_load filebrowser
config_foreach get_config global
[ $enable != 1 ] && return 1
rm -f $LOG_PATH
ssl_params=""
[ -n "$ssl_cert" ] && [ -n "$ssl_key" ] && ssl_params="-t $ssl_cert -k $ssl_key"
password=$($PROG hash "$password")
procd_open_instance filebrowser
procd_set_param command $PROG
procd_append_param command -a $address -p $port -r $root_path -d "$database" --username $username --password $password $ssl_params -l $LOG_PATH
procd_set_param stdout 0
procd_set_param stderr 0
procd_set_param respawn
procd_close_instance filebrowser
}
service_triggers() {
procd_add_reload_trigger "filebrowser"
}
reload_service() {
stop
sleep 1
start
}