implement video download
All checks were successful
Build and Push Multi-Arch Docker Image / build-and-push (push) Successful in 18m28s

needs check, if converted files can be run on device

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2026-02-01 11:39:02 +01:00
parent efd34616b1
commit 1c5189ea12
12 changed files with 386 additions and 48 deletions

View File

@@ -13,13 +13,28 @@ RUN dart run build_runner build --delete-conflicting-outputs && \
dart compile exe bin/server.dart -o bin/server \
-DAPP_VERSION=$APP_VERSION
# Build minimal serving image from AOT-compiled `/server`
# and the pre-built AOT-runtime in the `/runtime/` directory of the base image.
FROM scratch
COPY --from=build /runtime/ /
# Build minimal serving image with ffmpeg and yt-dlp
FROM debian:stable-slim
# Install ffmpeg and download yt-dlp binary
RUN apt-get update && apt-get install -y --no-install-recommends \
ffmpeg \
ca-certificates \
curl \
&& curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp \
&& chmod a+rx /usr/local/bin/yt-dlp \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/bin/server /app/bin/
COPY assets /assets
# Create startup script for yt-dlp update and 24h restart
RUN echo '#!/bin/sh\nyt-dlp -U 2>/dev/null || true\n(sleep 86400 && kill 1) &\nexec /app/bin/server' > /app/start.sh \
&& chmod +x /app/start.sh
WORKDIR /app
# Start server.
EXPOSE 3000
CMD ["/app/bin/server"]
CMD ["/app/start.sh"]