diff --git a/start.sh b/start.sh index d7af0af..501328d 100644 --- a/start.sh +++ b/start.sh @@ -478,6 +478,9 @@ cat > /app/data/caddy/Caddyfile < Checking database migration state" if [ -d "$SERVER_DIR/cmd/museum" ]; then echo "==> Attempting to fix dirty migration state" - cd "$SERVER_DIR" # Create migrations log directory mkdir -p /app/data/logs/migrations @@ -773,17 +775,19 @@ if [ -d "$SERVER_DIR/cmd/museum" ]; then export GOFLAGS="-modfile=/app/data/go/go.mod -mod=mod" echo "==> Forcing migration version to 25" - if /usr/local/bin/gosu cloudron:cloudron env \ - GOCACHE="$GOCACHE" \ - GOMODCACHE="$GOMODCACHE" \ - GO111MODULE=on \ - GOFLAGS="$GOFLAGS" \ - cd "$SERVER_DIR" && go run cmd/museum/main.go db force 25 > /app/data/logs/migrations/force.log 2>&1; then + # Execute as the cloudron user but use a proper script instead of env cd + cat > /tmp/run_migration.sh < /app/data/logs/migrations/force.log 2>&1; then echo "==> Successfully forced migration version" else echo "==> WARNING: Could not force migration version" echo "==> Migration force log:" - cat /app/data/logs/migrations/force.log + cat /app/data/logs/migrations/force.log || echo "==> No migration log was created" fi else echo "==> Skipping migration state check: cmd/museum not found" @@ -823,12 +827,26 @@ if [ -n "$MUSEUM_BIN" ]; then SERVER_PID=$! elif [ -d "$SERVER_DIR/cmd/museum" ]; then echo "==> Starting Museum from source" + # Create a startup script + cat > /tmp/run_server.sh < /app/data/logs/museum.log 2>&1 & + MUSEUM_CONFIG="$MUSEUM_CONFIG" \ + MUSEUM_DB_HOST="$MUSEUM_DB_HOST" \ + MUSEUM_DB_PORT="$MUSEUM_DB_PORT" \ + MUSEUM_DB_USER="$MUSEUM_DB_USER" \ + MUSEUM_DB_PASSWORD="$MUSEUM_DB_PASSWORD" \ + MUSEUM_DB_NAME="$MUSEUM_DB_NAME" \ + ENTE_LOG_LEVEL=debug \ + bash /tmp/run_server.sh > /app/data/logs/museum.log 2>&1 & SERVER_PID=$! else echo "==> ERROR: Museum server not found"