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