Skip to content

Instantly share code, notes, and snippets.

@fengjijiao
Created May 4, 2022 01:58
Show Gist options
  • Save fengjijiao/c884382ccdb4b0bb74d720682b36ff58 to your computer and use it in GitHub Desktop.
Save fengjijiao/c884382ccdb4b0bb74d720682b36ff58 to your computer and use it in GitHub Desktop.
simply to install filebrowser
#!/bin/bash
VERSION=v2.21.1
TMP_DIR=/tmp/filebrowser
BIN_DST_DIR=/usr/local/bin
RESOURCE_DST_DIR=/usr/local/etc/filebrowser
DEFAULT_BASE_URL=/manager
DEFAULT_PORT=8003
DEFAULT_LISTEN_ADDRESS=127.0.0.1
DEFAULT_ROOT_DIR=/var/www
DEFAULT_ADMIN_USERNAME=admin
DEFAULT_ADMIN_PASSWORD=admin
function install() {
wget -O filebrowser.tar.gz https://github.com/filebrowser/filebrowser/releases/download/${VERSION}/linux-amd64-filebrowser.tar.gz
mkdir $TMP_DIR
tar -zxvf filebrowser.tar.gz -C $TMP_DIR
mv ${TMP_DIR}/filebrowser ${BIN_DST_DIR}/filebrowser
chmod +x $BIN_DST_DIR/filebrowser
mkdir $RESOURCE_DST_DIR
${BIN_DST_DIR}/filebrowser config init -a $DEFAULT_LISTEN_ADDRESS -p $DEFAULT_PORT -b $DEFAULT_BASE_URL -r $DEFAULT_ROOT_DIR -d ${RESOURCE_DST_DIR}/filebrowser.db
${BIN_DST_DIR}/filebrowser users add $DEFAULT_ADMIN_USERNAME $DEFAULT_ADMIN_PASSWORD --perm.admin -d ${RESOURCE_DST_DIR}/filebrowser.db
cat << EOT > /etc/systemd/system/filebrowser.service
[unit]
Description=filebrowser
Wants=network.target
After=syslog.target network-online.target
[Service]
Type=simple
Environment=GOGC=20
ExecStart=${BIN_DST_DIR}/filebrowser -d ${RESOURCE_DST_DIR}/filebrowser.db
Restart=on-failure
RestartSec=10
KillMode=process
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOT
systemctl enable --now filebrowser
rm -rf $TMP_DIR
rm -rf filebrowser.tar.gz
echo 'install finished!'
}
function remove() {
systemctl stop filebrowser
systemctl disable filebrowser
rm -rf /etc/systemd/system/filebrowser.service
rm -rf $RESOURCE_DST_DIR
rm -rf ${BIN_DST_DIR}/filebrowser
echo 'remove finished!'
}
function help() {
cat << EOF
filebrowser install helper!!!
usage:
./filebrowser.sh menu
install: install filebrowser
remove: remove filebrowser
EOF
}
function main() {
if [ $# -lt 1 ]; then
help
else
case $1 in
install)
install
;;
remove)
remove
;;
*)
echo 'command not found!'
help
;;
esac
fi
}
main $@
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment