Add Nginx web server for browsing recordings
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>
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
## 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.
|
||||
Reference in New Issue
Block a user