Milestone 2: ingestion daemon driving the stream
Add the Python `ingest` container exposing `GET /next`, which returns the next track as an annotated Liquidsoap URI (or an empty body when nothing is ready). Liquidsoap switches from a static playlist to a `request.dynamic` source pulling from the daemon, with the local cache as fallback and mksafe for guaranteed continuous output. For now the daemon just cycles through the files already in the cache; the download providers (Navidrome, yt-dlp, ListenBrainz) come in later milestones. Also commit the implementation plan (PLAN.md). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
29ab0be7cb
commit
f8eb0655eb
9 changed files with 247 additions and 19 deletions
12
ingest/Dockerfile
Normal file
12
ingest/Dockerfile
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Milestone 2 uses the standard library only; third-party dependencies
|
||||
# (httpx, yt-dlp, feedparser…) will be added in later milestones.
|
||||
COPY radieo/ ./radieo/
|
||||
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["python", "-m", "radieo"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue