mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-09 23:55:10 -05:00
Major Features: - Spotify playlist injection with missing tracks search - Transparent proxy authentication system - WebSocket session management for external tracks - Manual track mapping and favorites system - Lyrics support (Spotify + LRCLib) with prefetching - Admin dashboard with analytics and configuration - Performance optimizations with health checks and endpoint racing - Comprehensive caching and memory management Performance Improvements: - Quick health checks (3s timeout) before trying endpoints - Health check results cached for 30 seconds - 5 minute timeout for large artist responses - Background Odesli conversion after streaming starts - Parallel lyrics prefetching - Endpoint benchmarking and racing - 16 SquidWTF endpoints with load balancing Reliability: - Automatic endpoint fallback and failover - Token expiration handling - Concurrent request optimization - Memory leak fixes - Proper session cleanup User Experience: - Web UI for configuration and playlist management - Real-time progress tracking - API analytics dashboard - Manual track mapping interface - Playlist statistics and health monitoring
32 lines
770 B
Docker
32 lines
770 B
Docker
# Build stage
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
|
WORKDIR /src
|
|
|
|
COPY allstarr.sln .
|
|
COPY allstarr/allstarr.csproj allstarr/
|
|
COPY allstarr.Tests/allstarr.Tests.csproj allstarr.Tests/
|
|
|
|
RUN dotnet restore
|
|
|
|
COPY allstarr/ allstarr/
|
|
COPY allstarr.Tests/ allstarr.Tests/
|
|
|
|
RUN dotnet publish allstarr/allstarr.csproj -c Release -o /app/publish
|
|
|
|
# Runtime stage
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0
|
|
WORKDIR /app
|
|
|
|
# Install curl for health checks
|
|
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN mkdir -p /app/downloads
|
|
|
|
COPY --from=build /app/publish .
|
|
|
|
# Only expose the main proxy port (8080)
|
|
# Admin UI runs on 5275 but is NOT exposed - access via docker exec or SSH tunnel
|
|
EXPOSE 8080
|
|
|
|
ENTRYPOINT ["dotnet", "allstarr.dll"]
|