FROM alpine:3.19

# Install dependencies
RUN apk add --no-cache \
    python3 \
    py3-pip \
    ffmpeg \
    bash \
    curl \
    tzdata \
    dcron \
    && pip3 install --no-cache-dir yt-dlp flask --break-system-packages

# Create directories
RUN mkdir -p /downloads /config /app

# Copy scripts and web UI
COPY sync.sh /app/sync.sh
COPY entrypoint.sh /app/entrypoint.sh
COPY app.py /app/app.py
COPY templates/ /app/templates/
COPY static/ /app/static/
RUN chmod +x /app/sync.sh /app/entrypoint.sh /app/app.py

# Set working directory
WORKDIR /app

# Environment defaults
ENV DOWNLOAD_DIR=/downloads \
    CONFIG_DIR=/config \
    SYNC_SCHEDULE="0 2 * * *" \
    MAX_QUALITY=1080 \
    SLEEP_INTERVAL=2 \
    TZ=America/Phoenix

# Expose web UI port
EXPOSE 8080

# Expose volume mount points
VOLUME ["/downloads", "/config"]

# Run entrypoint
ENTRYPOINT ["/app/entrypoint.sh"]
