Implement async processing with Celery, Redis, and queue-based email notifications
This commit is contained in:
+10
-6
@@ -9,9 +9,9 @@ LABEL description="Scraibe: LocalAI-backed transcription and diarization client
|
||||
Sends audio to a LocalAI server running vibevoice.cpp and uses a second LLM for summarization."
|
||||
LABEL url="https://git.optimex.systems/admin/scribe"
|
||||
|
||||
# Install system dependencies (ffmpeg required)
|
||||
# Install system dependencies (ffmpeg, redis)
|
||||
RUN apt update -y && \
|
||||
apt install -y --no-install-recommends ffmpeg && \
|
||||
apt install -y --no-install-recommends ffmpeg redis-server && \
|
||||
apt clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
@@ -31,6 +31,11 @@ ENV SUMMARIZER_MODEL=qwen3-14b
|
||||
# Gradio / Web GUI
|
||||
ENV GRADIO_SERVER_NAME=0.0.0.0
|
||||
|
||||
# Async processing (Celery + Redis)
|
||||
ENV CELERY_BROKER_URL=redis://localhost:6379/0
|
||||
ENV CELERY_RESULT_BACKEND=redis://localhost:6379/0
|
||||
ENV SCRAIBE_UPLOAD_DIR=/tmp/scraibe_uploads
|
||||
|
||||
# Copy and install Python dependencies
|
||||
COPY requirements.txt /app/src/requirements.txt
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
@@ -41,9 +46,8 @@ COPY scraibe /app/src/scraibe
|
||||
# Copy custom Web GUI assets (header, footer, templates, logos, config)
|
||||
COPY misc /app/src/misc
|
||||
|
||||
# Expose port (for Web GUI)
|
||||
# Expose ports
|
||||
EXPOSE 7860
|
||||
|
||||
# Run the Web GUI by default (never the CLI)
|
||||
# Use python -m scraibe so __main__.py forces web GUI.
|
||||
CMD ["python3", "-m", "scraibe"]
|
||||
# Run the Web GUI and Celery worker (with Redis) by default
|
||||
CMD ["/bin/bash", "-c", "redis-server --daemonize yes && celery -A scraibe.celery_app worker -Q transcription -l info & python3 -m scraibe"]
|
||||
|
||||
Reference in New Issue
Block a user