## Context RTLSDR-Airband records CB transmissions as MP3 files into `/home/m/recordings/` on the Pi, organized by channel subdirectories with dated subdirectories inside. The recorder runs as a Docker container via `docker-compose.yml`. ## Goals / Non-Goals **Goals:** - Serve the recordings directory over HTTP with browsable directory listings - Allow MP3 playback via the browser's native audio handling - Deploy as a Docker container alongside the existing `sdr-recorder` service **Non-Goals:** - Custom web UI, styling, or JavaScript - Authentication (local network only) - Modifying, uploading, or deleting recordings - Live streaming or transcription ## Decisions ### Use Nginx with HTML autoindex, no custom frontend **Decision**: Use `nginx:alpine` with `autoindex on` to serve the recordings directory. No custom HTML, JS, or CSS. **Rationale**: Nginx's built-in directory listing is fully functional for browsing channel/date directories. Modern browsers play MP3 files natively when clicked. This requires only an Nginx config file and a docker-compose service — zero application code. **Alternatives considered**: - **Custom SPA frontend**: Adds complexity (build tools, JS code) for marginal UX improvement over native directory listing. - **Python http.server**: Simpler but less performant and no Alpine image parity. ## Risks / Trade-offs - **[No search or filtering]** → Users browse by directory structure. Acceptable given the channel/date organization. - **[Plain directory listing]** → No styled UI. Acceptable for a local utility tool. - **[No auth]** → Anyone on the LAN can access. Acceptable per non-goals.