f44d4e8c03
feat: universal setup.sh with install/update/doctor/status commands
...
- install: full first-time setup (unchanged flow)
- update: git pull + npm install + prisma + rebuild containers + clear cache
- doctor: 8-step diagnostic with auto-fix (deps, .env, package.json "type"
bug, docker services, postgres schema, redis, minio bucket, .next cache)
- status: table view of all services with health, ports, DB size, Redis keys
- logs: tail service logs (default: app)
- restart: restart all containers
- reset: full teardown with double confirmation + .env backup
- Interactive menu when run without arguments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-24 02:27:02 +03:00
7f9c521fed
fix: remove "type" field from package.json + improve setup.sh
...
- Remove "type": "commonjs" from package.json — fixes Turbopack
ESM/CommonJS conflict causing white screen in dev mode
- setup.sh: auto-generate passwords (PostgreSQL, MinIO, auth secret)
- setup.sh: auto-install Docker/Node.js if missing (apt/nvm/brew)
- setup.sh: backup existing .env before overwrite
- setup.sh: create MinIO bucket via curl if mc not installed
- setup.sh: add timeout errors for service readiness checks
- setup.sh: include pgbouncer in local dev docker compose up
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-24 02:21:40 +03:00
cb589b540a
chore: add Redis/PgBouncer readiness checks to setup.sh + post-change checklist rule to CLAUDE.md
...
setup.sh now waits for Redis PONG and PgBouncer pg_isready before running
Prisma migrations. CLAUDE.md gets mandatory post-change checklist ensuring
setup.sh, README.md, PROMPT.md, .env.example stay in sync after every change.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 14:21:40 +03:00
a42ec96965
perf: Redis pub/sub, PgBouncer, optimistic UI for high concurrency
...
- Add Redis 7 for pub/sub (lobby + chat real-time), rate limiting, caching
- Replace SSE DB polling with Redis pub/sub (lobby: instant approval, chat: instant delivery)
- Add PgBouncer (transaction mode, 500 client → 25 pool connections)
- Chat SSE stream via Redis pub/sub instead of 3s polling
- Optimistic UI in ChatPanel (messages appear before server confirms)
- Redis-based rate limiter (works across multiple app replicas)
- Prisma query optimization (select only needed fields)
- Chat message cache in Redis (10s TTL)
- Docker Compose: add redis, pgbouncer services with healthchecks
- Production: resource limits, 2 app replicas behind Traefik
- Update CLAUDE.md, README.md, .env.example, setup.sh
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 14:17:25 +03:00
3e50c57ee0
Merge pull request 'feat: LiveServer-M1 v1 — educational video conferencing platform' ( #1 ) from master into main
...
Reviewed-on: #1
2026-03-22 14:02:49 +03:00
3846e3e00d
feat: LiveServer-M1 v1 — educational video conferencing platform
...
Full MVP implementation:
- Next.js 16 + React 19 + TypeScript + Tailwind CSS v4
- LiveKit integration (rooms, tokens, webhooks, moderation)
- better-auth (email/password, sessions, roles)
- Prisma 7 + PostgreSQL (9 models, 3 enums)
- 15 API routes (auth, rooms, lobby, chat, files, moderation, hand-raise)
- 7 pages (landing, auth, dashboard, join, video room)
- SSE-based waiting room with host approval flow
- Security: PIN rate limiting, session fingerprint bans, chat/files auth
- Python AI Agent (Deepgram STT + OpenAI summarization)
- Docker Compose (local + production with Traefik + Let's Encrypt)
- Interactive setup script (setup.sh)
- Dev protection middleware (DEV_ACCESS_KEY, ALLOWED_IPS)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 13:57:53 +03:00
e5bb4c99ec
Initial commit
2026-03-22 11:49:30 +03:00