# Hugging Face Spaces (Docker SDK) — reuses the prebuilt GHCR image and adapts # it for HF: HF runs containers as UID 1000 and routes to app_port (7860). # Pinned to a specific digest because HF caches the `:latest` tag and won't # re-pull a new push. Re-pin on each deploy (or query the latest digest). FROM ghcr.io/mcanince2/ucus-editor@sha256:4fee9c76c02f07c5b002b5cb35a9768d8d4b982649b431581562de832c93d242 USER root # Bake the licensed default music into the image (shipped only here, not in the # public Git repo). /api/brand-music serves it from /app/public → the seed picks # it as the default track. COPY brand-music.mp3 /app/public/brand-music.mp3 # HF runs as UID 1000 = the node base image's existing `node` user (/home/node). # Make the data dir + app writable by it. (Whisper model lives in /opt and is # already world-readable, so no per-user cache copy is needed.) RUN mkdir -p /data && chown -R 1000:1000 /data /home/node /app USER 1000 ENV HOME=/home/node \ NODE_ENV=production \ DATA_DIR=/data \ TRANSCRIBE_PROVIDER=local \ WHISPER_MODEL=small \ HF_HUB_OFFLINE=1 \ PORT=7860 WORKDIR /app EXPOSE 7860 # Bind 0.0.0.0 so HF's proxy can reach it. CMD ["sh", "-c", "node_modules/.bin/next start -p ${PORT:-7860} -H 0.0.0.0"]