#!/bin/bash # Filebrowser runs as uid 1000 (non-root image) - give it ownership of its # database dir and the browse root, and pin the uid explicitly. set -e NET=$(sudo docker network ls --format '{{.Name}}' | grep -m1 hal8) sudo docker rm -f filebrowser >/dev/null 2>&1 || true sudo rm -rf /opt/filebrowser && sudo mkdir -p /opt/filebrowser /srv/files sudo chown -R 1000:1000 /opt/filebrowser /srv/files PW=$(openssl rand -base64 12) HASH=$(sudo docker run --rm filebrowser/filebrowser hash "$PW") sudo docker run -d --restart unless-stopped --name filebrowser --network "$NET" \ -u 1000:1000 \ -v /srv/files:/srv \ -v /opt/filebrowser:/database \ -e FB_DATABASE=/database/filebrowser.db \ -e FB_ROOT=/srv \ -e FB_ADDRESS=0.0.0.0 \ -e FB_PORT=80 \ -e FB_USERNAME=jerry \ -e FB_PASSWORD="$HASH" \ filebrowser/filebrowser sleep 6 echo "--- container log ---" sudo docker logs --tail 5 filebrowser 2>&1 echo "---------------------" echo "====================================================" echo "SITE TEST: HTTP $(curl -s -o /dev/null -w '%{http_code}' --max-time 15 https://files.odyssey-works.io) (200 = working)" echo "LOGIN: https://files.odyssey-works.io user: jerry" echo "PASSWORD: $PW" echo "===================================================="