Files
clicktrack/docker-compose.dev.yml
AJ Avezzano 5b772655c6 feat: initial scaffold for ClickTrack monorepo
Full self-hosted click track generator for cover bands.

Core technical pieces implemented:
- CTP (Click Track Protocol) TypeScript schema, Zod validator, and WAV
  renderer (44.1 kHz, 16-bit PCM, accented downbeats, ramp sections)
- MusicBrainz API client with 1 req/s rate limiting
- PostgreSQL schema (songs, tempo_maps, registry_sync_log) with triggers
- Git registry sync logic (clone/pull → validate CTP → upsert DB)
- Next.js 14 App Router: search page, track page, API routes
  (/api/songs, /api/tracks, /api/generate)
- UI components: SearchBar, SongResult, TempoMapEditor, ClickTrackPlayer
  (Web Audio API in-browser playback + WAV download)
- Docker Compose stack: app + postgres + redis + nginx + registry-sync
- Multi-stage Dockerfile with standalone Next.js output
- .env.example documenting all configuration variables
- README with setup instructions, CTP format spec, and API reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 11:14:46 -04:00

33 lines
754 B
YAML

version: "3.9"
# Development overrides
# Usage: docker compose -f docker-compose.yml -f docker-compose.dev.yml up
services:
app:
build:
target: deps # stop before the production build step
command: npm run dev
volumes:
# Mount source for hot reload — node_modules stays inside the container
- .:/app
- /app/node_modules
- /app/.next
environment:
NODE_ENV: development
ports:
- "3000:3000" # expose directly in dev (no nginx needed)
postgres:
ports:
- "5432:5432" # expose for local DB tools (TablePlus, psql, etc.)
redis:
ports:
- "6379:6379" # expose for local Redis inspection
# Disable nginx in dev
nginx:
profiles:
- production-only