build-container / build (push) Successful in 12m8s
- full-screen lyrics view that follows the song: highlighted current line with a colour sweep (word by word when the source has word timing), tap a line to jump, text size, timing nudge, 'Wrong lyrics?' search - Karaoke mode: the current line large and centered - lyrics from Plex first, then the bundled Lyrica service (LRCLIB, Musixmatch via Lrcmux, NetEase, Megalobiz); YouTube captions never used; wrong-length recordings refused; answers kept in /data/lyrics - lyrica/: Lyrica pinned to one commit, built by the workflow as hub-lyrica; compose service sharing the hub's network - tools/lyrics-test.js Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
15 lines
897 B
Docker
15 lines
897 B
Docker
# Lyrica (https://github.com/Wilooper/Lyrica, MIT): a lyrics service that tries several sources and returns plain, line-synced and word-synced lyrics.
|
|
# Pinned to one commit so what runs is what was tested; change LYRICA_REF to update.
|
|
FROM python:3.11-slim
|
|
ARG LYRICA_REF=2c77f81752f3e1ae9a1adbd7b68f633d60b2de23
|
|
ENV PYTHONUNBUFFERED=1 PORT=9999
|
|
WORKDIR /app
|
|
RUN apt-get update && apt-get install -y --no-install-recommends build-essential gcc git libxml2-dev libxslt1-dev libffi-dev libssl-dev curl ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& curl -fsSL "https://github.com/Wilooper/Lyrica/archive/${LYRICA_REF}.tar.gz" | tar xz --strip-components=1 -C /app \
|
|
&& pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir -r requirements.txt \
|
|
&& useradd -m lyrica && chown -R lyrica /app
|
|
USER lyrica
|
|
EXPOSE 9999
|
|
CMD ["gunicorn", "-c", "gunicorn.config.py", "run:app"]
|