Real-time monitoring dashboard for Daily.co integration with PostgreSQL database and S3 storage verification.
- Real-time meeting monitoring with participant counts
- Recording tracking with S3 file verification
- Color-coded visual relationships between meetings and recordings
- Polling comparison (Daily.co API vs database)
- Participant join/leave event details
- Grouped multitrack recordings display
# 1. Install dependencies
pnpm install
# 2. Configure environment
cp .env.example .env.local
# Edit .env.local with your credentials
# 3. Start development server
pnpm dev
# Dashboard available at http://localhost:3001Create .env.local with these values:
# PostgreSQL (read-only access sufficient)
DATABASE_URL=postgresql://user:password@host:port/database
# Daily.co API
DAILYCO_API_KEY=your_daily_api_key
# AWS S3 (for HeadObject verification)
TRANSCRIPT_STORAGE_AWS_ACCESS_KEY_ID=your_access_key
TRANSCRIPT_STORAGE_AWS_SECRET_ACCESS_KEY=your_secret_key
TRANSCRIPT_STORAGE_AWS_BUCKET_NAME=your-bucket-name
TRANSCRIPT_STORAGE_AWS_REGION=us-east-1
# Server port (optional)
PORT=3001pnpm dev # Development server with HMR
pnpm build # Production build
pnpm start # Production serverBuild: pnpm install && pnpm build
Start: pnpm start
Port: 3001
Set all environment variables in Coolify dashboard.
See DEPLOYMENT.md for detailed instructions.
docker build -t dailyco-dashboard .
docker run -p 3001:3001 --env-file .env.local dailyco-dashboardDashboard is fully self-contained - no dependencies on parent reflector codebase.
Ready to move to separate repository:
cp -r daily-co-dashboard /new/location
cd /new/location
git init
git add .
git commit -m "Initial commit"See SEPARATION_ANALYSIS.md for detailed analysis.
- Framework: TanStack Start (React 19, Vite 7)
- Database: PostgreSQL via pg connection pool (read-only)
- APIs: Daily.co REST API (60s cache), AWS S3 SDK
- Styling: Tailwind CSS 4
Read-only SELECT queries on:
meeting- Meeting metadata, participant counts, merged video pathsrecording- Recording metadata, individual track pathsdaily_participant_session- Join/leave events
src/
├── server/ # Server functions (database, API calls)
├── components/ # React UI components
├── routes/ # TanStack Router routes
├── lib/ # Utilities (color generation)
└── styles/ # CSS
Port busy: Vite auto-tries 3002, 3003...
Database errors: Verify DATABASE_URL and network access
API failures: Dashboard shows 0 rooms/recordings (non-fatal)
S3 missing files: Actual missing files, not dashboard bug
Internal tool.