File size: 1,918 Bytes
9b205e1 06094c9 9b205e1 06094c9 9b205e1 06094c9 9b205e1 06094c9 9b205e1 06094c9 9b205e1 06094c9 9b205e1 e070be5 06094c9 9b205e1 06094c9 9b205e1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#!/bin/bash
set -e
# Logging function
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] [File Browser] $*"
}
# Configuration with environment variables
FILEBROWSER_USER=${FILEBROWSER_USER:-admin}
FILEBROWSER_PASSWORD=${FILEBROWSER_PASSWORD:-admin}
FILEBROWSER_PORT=${FILEBROWSER_PORT:-8080}
FILEBROWSER_ADDRESS=${FILEBROWSER_ADDRESS:-0.0.0.0}
FILEBROWSER_ROOT=${FILEBROWSER_ROOT:-/home/user}
FILEBROWSER_DB_PATH=${FILEBROWSER_DB_PATH:-/home/user/filebrowser/filebrowser.db}
log "Initializing File Browser..."
log "Configuration:"
log " - User: ${FILEBROWSER_USER}"
log " - Port: ${FILEBROWSER_PORT}"
log " - Address: ${FILEBROWSER_ADDRESS}"
log " - Root: ${FILEBROWSER_ROOT}"
log " - Database: ${FILEBROWSER_DB_PATH}"
# Ensure the directory exists and set correct permissions
mkdir -p "$(dirname "${FILEBROWSER_DB_PATH}")"
chmod 755 "$(dirname "${FILEBROWSER_DB_PATH}")"
# Initialize config and database if not exist
if [[ ! -f "${FILEBROWSER_DB_PATH}" ]]; then
log "Creating File Browser database..."
# Initialize using simple CLI command
filebrowser config init \
--port "${FILEBROWSER_PORT}" \
--address "${FILEBROWSER_ADDRESS}" \
--database "${FILEBROWSER_DB_PATH}" \
--root "${FILEBROWSER_ROOT}" \
--log stdout
# Add default admin user
log "Creating default admin user (${FILEBROWSER_USER})..."
filebrowser users add "${FILEBROWSER_USER}" "${FILEBROWSER_PASSWORD}" \
--database "${FILEBROWSER_DB_PATH}" \
--perm.admin
log "File Browser initialized successfully"
else
log "File Browser database already exists"
fi
# Start File Browser
log "Starting File Browser on ${FILEBROWSER_ADDRESS}:${FILEBROWSER_PORT}..."
exec filebrowser \
--port "${FILEBROWSER_PORT}" \
--address "${FILEBROWSER_ADDRESS}" \
--database "${FILEBROWSER_DB_PATH}" \
--root "${FILEBROWSER_ROOT}" \
--log stdout |