- point MySQL and Whisper settings to the VM - add VM MySQL bootstrap scripts and docs - allow LAN Vite origins for CORS - fix Express 5 validation assignment crash - allow login with username or email - prevent recursive auth refresh retries
72 lines
1.8 KiB
Markdown
72 lines
1.8 KiB
Markdown
# Orphion MoM
|
|
|
|
Orphion is a premium voice-to-text collaboration platform for Minutes of Meeting workflows.
|
|
|
|
## Architecture
|
|
|
|
```text
|
|
frontend/ React + Vite dashboard
|
|
backend/ Node.js + Express REST API
|
|
scripts/ Optional local/ops helpers
|
|
docs/ API, database, storage, and Whisper notes
|
|
```
|
|
|
|
The backend exposes versioned REST APIs at `/api/v1`, stores users/transcripts/jobs in remote
|
|
MySQL, writes audio through a storage adapter, and processes transcription with a queued
|
|
Faster-Whisper VM client.
|
|
|
|
## Local Development
|
|
|
|
1. Install dependencies:
|
|
|
|
```sh
|
|
npm install
|
|
```
|
|
|
|
2. Copy env values:
|
|
|
|
```sh
|
|
cp .env.example .env
|
|
```
|
|
|
|
3. Create the MySQL database/user on the VM:
|
|
|
|
```sh
|
|
sh scripts/bootstrap-vm-mysql.sh <vm-user>@172.16.10.64
|
|
```
|
|
|
|
The sample env uses MySQL and Whisper on `172.16.10.64`. For alternate MySQL, storage, or Whisper
|
|
settings, see the files in `docs/`.
|
|
|
|
4. Run the API and frontend:
|
|
|
|
```sh
|
|
npm run dev:api
|
|
npm run dev
|
|
```
|
|
|
|
Or start both from one terminal:
|
|
|
|
```sh
|
|
npm run dev:all
|
|
```
|
|
|
|
Frontend: `http://localhost:5173` or the Vite network URL printed in your terminal
|
|
Backend health: `http://localhost:4000/health`
|
|
Swagger UI: `http://localhost:4000/api/docs`
|
|
|
|
## Key Features
|
|
|
|
- JWT access tokens and refresh-token sessions in secure cookies
|
|
- Role-ready auth model with protected routes
|
|
- Remote MySQL connection pooling and migration runner
|
|
- Storage adapter pattern for SMB/NFS mounts, HTTP storage, S3-compatible storage, and local dev
|
|
- Queued transcription jobs with status tracking
|
|
- Faster-Whisper VM retries, timeout handling, and health checks
|
|
- Standard API envelope: `{ success, message, data }`
|
|
- Premium dark React dashboard with recording, upload progress, transcript history, playback, sharing, and downloads
|
|
|
|
See `docs/` for setup details.
|
|
|
|
`DB_PASSWORD=NexaVault2026!Blue`
|