#!/bin/bash # Filebrowser 502 fix: show what happened, then re-init with the listen # port pinned to 80 so the Caddy proxy target is certain. Fresh install # (nothing stored yet), so the database is recreated with new credentials. set -e echo "--- previous container state ---" sudo docker ps -a --filter name=filebrowser --format '{{.Status}}' || true sudo docker logs --tail 15 filebrowser 2>&1 || true echo "--------------------------------" 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 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" \ -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 "--- new container log ---" sudo docker logs --tail 6 filebrowser 2>&1 echo "-------------------------" printf 'files.odyssey-works.io {\n\treverse_proxy filebrowser:80\n}\n' \ | sudo tee /opt/marketplace/caddy/files.caddy >/dev/null CADDY_CONFIG_SHA=$(sudo sh -c "cat /opt/hal8/deploy/Caddyfile /opt/marketplace/caddy/*.caddy | sha256sum | cut -d' ' -f1") cd /opt/hal8 sudo CADDY_CONFIG_SHA="$CADDY_CONFIG_SHA" docker compose -f docker-compose.prod.yaml up -d --no-build --force-recreate caddy sleep 4 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 "===================================================="