# Lightweight Python base image (no GPU/PyTorch needed) FROM python:3.11-slim # Labels LABEL maintainer="Jacob Schmieder" LABEL email="Jacob.Schmieder@dbfz.de" LABEL version="0.1.1.dev" LABEL description="Scraibe: LocalAI-backed transcription and diarization client with summarization. \ Sends audio to a LocalAI server running vibevoice.cpp and uses a second LLM for summarization." LABEL url="https://github.com/JSchmie/ScrAIbe" # Install system dependencies (ffmpeg required) RUN apt update -y && \ apt install -y --no-install-recommends ffmpeg && \ apt clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Working directory WORKDIR /app # Environment variables for LocalAI (transcription/diarization) # Set these via docker run -e or docker-compose ENV LOCALAI_API_URL=http://localhost:8080 ENV LOCALAI_API_KEY= ENV LOCALAI_MODEL=vibevoice-diarize # Environment variables for Summarizer LLM ENV SUMMARIZER_API_URL=http://localhost:8080 ENV SUMMARIZER_API_KEY= ENV SUMMARIZER_MODEL=llama-3.1-8b-instruct # Copy and install Python dependencies COPY requirements.txt /app/requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY scraibe /app/scraibe # Expose port (if UI is served) EXPOSE 7860 # Run the application ENTRYPOINT ["python3", "-m", "scraibe.cli"]