Next.js + Bun client for the Audio Archive project. Interfaces with the backend to browse and stream music from a local file system. This is made with local usage only, not made or tested with user scaling in mind.
- Runtime — Bun
- Framework — Next.js
- Containerization — Docker
- Clone the repo
git clone https://github.com/R-uan/audio-archive-frontend.git
cd audio-archive-frontend- Install dependencies
bun install- Set up your local environment
cp .env.example .env.localNEXT_PUBLIC_API_URL=http://localhost:5000/api
NEXT_PUBLIC_MEDIA_URL=http://localhost:5000/media
API_URL=http://localhost:5000/api- Run it
bun run devInterface will be available at http://localhost:3000.
Make sure the backend is running — either locally or via Docker Compose.
The recommended way — spins up the frontend, backend, PostgreSQL, Redis, and the backup service together.
- Backend — audio-archive-backend — .NET 10 / ASP.NET Core
- Infra — audio-archive — Docker Compose, shared config
/parent/folder/
├── audio-archive-backend/
├── audio-archive-frontend/
└── docker-compose.yaml
docker compose up --build| Service | Exposed Host URL |
|---|---|
| Interface | http://localhost:3099 |
| API | http://localhost:5000 |
| PostgreSQL | localhost:5434 |
| Redis | localhost:6374 |
| Variable | Description | Example |
|---|---|---|
NEXT_PUBLIC_API_URL |
API base URL for browser-side calls | http://localhost:5000/api |
NEXT_PUBLIC_MEDIA_URL |
Media base URL for browser-side streaming | http://localhost:5000/media |
API_URL |
API base URL for server-side calls (SSR) | http://backend:8080/api |
NEXT_PUBLIC_variables are baked in at build time and exposed to the browser.API_URLis server-only and used during SSR — it can reference the internal Docker hostname directly.
The frontend holds no persistent state — all data lives in the backend's PostgreSQL instance. See the backend README for backup instructions.