Skip to content

Monadical-SAS/reflector-dailyco-dashboard

Repository files navigation

Daily.co Observability Dashboard

Real-time monitoring dashboard for Daily.co integration with PostgreSQL database and S3 storage verification.

Features

  • 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

Quick Start

# 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:3001

Environment Variables

Create .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=3001

Scripts

pnpm dev       # Development server with HMR
pnpm build     # Production build
pnpm start     # Production server

Deployment

Coolify

Build: pnpm install && pnpm build
Start: pnpm start
Port: 3001

Set all environment variables in Coolify dashboard.

See DEPLOYMENT.md for detailed instructions.

Docker

docker build -t dailyco-dashboard .
docker run -p 3001:3001 --env-file .env.local dailyco-dashboard

Separation from Parent Repository

Dashboard 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.

Architecture

  • 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

Database Schema

Read-only SELECT queries on:

  • meeting - Meeting metadata, participant counts, merged video paths
  • recording - Recording metadata, individual track paths
  • daily_participant_session - Join/leave events

Project Structure

src/
├── server/          # Server functions (database, API calls)
├── components/      # React UI components
├── routes/          # TanStack Router routes
├── lib/             # Utilities (color generation)
└── styles/          # CSS

Troubleshooting

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

License

Internal tool.

About

daily co / reflector monitoring dashboard

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published