Serves the recordings directory over HTTP with autoindex on port 8080. Users can browse by date and play MP3 files natively in the browser. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
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-recorderservice
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.