Commit graph

63 commits

Author SHA1 Message Date
67beae5f6f
chore(streamer): drop cosmetic swscaler deprecated-format spam from logs 2026-04-30 19:31:29 +06:00
bdecc8c819
fix(streamer): explicit scale filter to fully silence swscaler 2026-04-30 19:30:20 +06:00
a544649a22
fix(streamer): tag mjpeg input as full-range to silence swscaler 2026-04-30 19:29:27 +06:00
2cd7cd3eab
fix(streamer): handle stdin EPIPE on ffmpeg exit, raise queue size, color_range tv 2026-04-30 19:28:10 +06:00
a83d063814
feat(liquidsoap): filename-based fallback when title/album tags are empty 2026-04-30 19:24:46 +06:00
1c4c875c10
fix(streamer): db-scaled spectrum so bars match frontend visibility 2026-04-30 19:18:03 +06:00
9eaa16d818
feat(streamer): BRANDING env to hide denpa.fm refs, drop station pill 2026-04-30 19:12:50 +06:00
3b4ce1ce39
fix(streamer): drop fonts-vt323 (not in bookworm) and use node fetch for healthcheck
- fonts-vt323 doesn't exist in debian bookworm; vt323 is loaded via google fonts cdn anyway.
- node:22-bookworm-slim has no wget; switch healthcheck to node -e fetch.
2026-04-30 15:41:17 +06:00
ed76fbd379
feat(compose): add streamer-minecraft-tg service 2026-04-30 15:32:11 +06:00
0ff5ecd9d0
feat(streamer): supervisor wiring all subprocesses 2026-04-30 15:30:45 +06:00
7cdc8f0d44
feat(streamer): ffmpeg rtmp encoder spawn 2026-04-30 15:28:35 +06:00
baef915561
feat(streamer): chromium cdp screencast driver 2026-04-30 15:28:31 +06:00
e0d93b03ae
feat(streamer): react views ported from prototype with sse hooks 2026-04-30 15:26:57 +06:00
870a41a2f7
feat(streamer): icecast listener-count poller 2026-04-30 15:21:49 +06:00
6bcf18c1bf
feat(streamer): page http server with sse + cover proxy 2026-04-30 15:21:42 +06:00
40ac86717a
feat(streamer): pcm tcp tap with reconnect backoff 2026-04-30 15:21:32 +06:00
8bca1767bd
feat(streamer): fft + log-bin spectrum analyzer 2026-04-30 15:19:41 +06:00
48955634af
feat(streamer): now-playing watcher with cover resolver 2026-04-30 15:17:37 +06:00
23d98320df
feat(streamer): env config parsing + validation 2026-04-30 15:14:48 +06:00
cc1f278fb8
feat(streamer): scaffold package, tsconfig, dockerfile 2026-04-30 15:12:42 +06:00
08f3f6e7da
feat(liquidsoap): raw-pcm tcp tap on :9100 for streamer 2026-04-30 15:09:25 +06:00
83df3b4602
feat(liquidsoap): emit cover_path + up_next in now-playing json
also fix path.extension -> file.extension (path module has no .extension in 2.3.3)
2026-04-30 15:04:25 +06:00
68a02ff250
fix(liquidsoap): deck filters audio, guards empty, avoids cross-deck repeat 2026-04-30 14:59:17 +06:00
fcb783ffca
feat(liquidsoap): deck-shuffle playlist with peek-ahead 2026-04-30 14:56:38 +06:00
f6ce00a6b1
fix(scripts): quote remote glob, drop UUOC in cover upload 2026-04-30 14:55:37 +06:00
703d7532f7
chore: mark restore-album-covers.sh executable 2026-04-30 14:54:28 +06:00
824192b856
chore: script to restore per-album covers from archives 2026-04-30 14:53:26 +06:00
d3e919d4c8
chore: gitignore .design-prototype-stream/ 2026-04-30 14:51:06 +06:00
52c6750a51
fix(liquidsoap): switch append_history to let json.parse with typed record
old json.parse(default=...) silently failed on every track change so
recent-played always showed only one entry. modern let-form parses
the existing history file correctly.
2026-04-30 11:22:50 +06:00
abca97b4ac
chore(frontend): trim ticker copy, set default volume to 67% 2026-04-30 11:17:55 +06:00
922f3d9e10
docs: note that tracks/ supports nested album subdirectories 2026-04-30 11:15:28 +06:00
21d214abe9
docs: add CLAUDE.md operator manual and README.md 2026-04-30 11:01:01 +06:00
9500a93fde
chore: gitignore .design-prototype/ handoff bundle 2026-04-30 10:57:12 +06:00
38394f40a6
fix: compute duration via request.duration when decoder metadata is empty 2026-04-30 10:55:24 +06:00
8d00c10b9f
fix(frontend): defer date and localStorage reads to post-mount to fix hydration mismatches 2026-04-30 10:08:15 +06:00
9f9c2148b4
chore: deploy frontend to summer; fix healthcheck localhost→127.0.0.1
alpine wget resolves localhost to ::1 (IPv6) but node only binds IPv4;
switched healthcheck URL to 127.0.0.1 to fix unhealthy container.
2026-04-30 09:52:03 +06:00
eb701bbb8a
feat: add frontend service + dockerfile + env example 2026-04-30 09:45:18 +06:00
04835f31b6
feat(frontend): add static shell + index page 2026-04-30 09:44:14 +06:00
01c281ca80
feat(frontend): add HistoryCard + HistoryList 2026-04-30 09:42:16 +06:00
65d88be032
feat(frontend): add HeroPlayer interactive island 2026-04-30 09:41:07 +06:00
7ab3c850bf
feat(frontend): add player store + WebAudio Spectrum 2026-04-30 09:36:35 +06:00
f069eef8a8
feat(frontend): add Tape presentational component 2026-04-30 09:34:49 +06:00
d16bc80ac8
feat(frontend): add /api/stations.json and /api/stations/:id/cover 2026-04-30 09:33:37 +06:00
a7256bc13c
feat(frontend): add stations library reader with tdd 2026-04-30 09:31:59 +06:00
a1e24c6a81
feat(frontend): add types + format helpers with tdd 2026-04-30 09:29:52 +06:00
3b8400b2ed
feat(frontend): add tokens, global css, self-hosted fonts 2026-04-30 09:28:05 +06:00
f1a0d1ddef
chore: scaffold astro frontend with static output 2026-04-30 09:24:40 +06:00
6bec95a563
feat: emit duration + per-station history in liquidsoap 2026-04-30 09:18:18 +06:00
439ae3c9c0
fix: use restart:always so containers recover from process crashes 2026-04-30 08:34:23 +06:00
a8bb02732f
chore: gitignore .claude/ tooling dir 2026-04-30 01:06:19 +06:00