mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
doc pr review iteration
This commit is contained in:
@@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
slug: first-blog-post
|
|
||||||
title: First Blog Post
|
|
||||||
authors: [slorber, yangshun]
|
|
||||||
tags: [hola, docusaurus]
|
|
||||||
---
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet...
|
|
||||||
|
|
||||||
<!-- truncate -->
|
|
||||||
|
|
||||||
...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
slug: long-blog-post
|
|
||||||
title: Long Blog Post
|
|
||||||
authors: yangshun
|
|
||||||
tags: [hello, docusaurus]
|
|
||||||
---
|
|
||||||
|
|
||||||
This is the summary of a very long blog post,
|
|
||||||
|
|
||||||
Use a `<!--` `truncate` `-->` comment to limit blog post size in the list view.
|
|
||||||
|
|
||||||
<!-- truncate -->
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
---
|
|
||||||
slug: mdx-blog-post
|
|
||||||
title: MDX Blog Post
|
|
||||||
authors: [slorber]
|
|
||||||
tags: [docusaurus]
|
|
||||||
---
|
|
||||||
|
|
||||||
Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).
|
|
||||||
|
|
||||||
:::tip
|
|
||||||
|
|
||||||
Use the power of React to create interactive blog posts.
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
{/* truncate */}
|
|
||||||
|
|
||||||
For example, use JSX to create an interactive button:
|
|
||||||
|
|
||||||
```js
|
|
||||||
<button onClick={() => alert('button clicked!')}>Click me!</button>
|
|
||||||
```
|
|
||||||
|
|
||||||
<button onClick={() => alert('button clicked!')}>Click me!</button>
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
slug: welcome
|
|
||||||
title: Welcome
|
|
||||||
authors: [slorber, yangshun]
|
|
||||||
tags: [facebook, hello, docusaurus]
|
|
||||||
---
|
|
||||||
|
|
||||||
[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).
|
|
||||||
|
|
||||||
Here are a few tips you might find useful.
|
|
||||||
|
|
||||||
<!-- truncate -->
|
|
||||||
|
|
||||||
Simply add Markdown files (or folders) to the `blog` directory.
|
|
||||||
|
|
||||||
Regular blog authors can be added to `authors.yml`.
|
|
||||||
|
|
||||||
The blog post date can be extracted from filenames, such as:
|
|
||||||
|
|
||||||
- `2019-05-30-welcome.md`
|
|
||||||
- `2019-05-30-welcome/index.md`
|
|
||||||
|
|
||||||
A blog post folder can be convenient to co-locate blog post images:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
The blog supports tags as well!
|
|
||||||
|
|
||||||
**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
yangshun:
|
|
||||||
name: Yangshun Tay
|
|
||||||
title: Front End Engineer @ Facebook
|
|
||||||
url: https://github.com/yangshun
|
|
||||||
image_url: https://github.com/yangshun.png
|
|
||||||
page: true
|
|
||||||
socials:
|
|
||||||
x: yangshunz
|
|
||||||
github: yangshun
|
|
||||||
|
|
||||||
slorber:
|
|
||||||
name: Sébastien Lorber
|
|
||||||
title: Docusaurus maintainer
|
|
||||||
url: https://sebastienlorber.com
|
|
||||||
image_url: https://github.com/slorber.png
|
|
||||||
page:
|
|
||||||
# customize the url of the author page at /blog/authors/<permalink>
|
|
||||||
permalink: '/all-sebastien-lorber-articles'
|
|
||||||
socials:
|
|
||||||
x: sebastienlorber
|
|
||||||
linkedin: sebastienlorber
|
|
||||||
github: slorber
|
|
||||||
newsletter: https://thisweekinreact.com
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
facebook:
|
|
||||||
label: Facebook
|
|
||||||
permalink: /facebook
|
|
||||||
description: Facebook tag description
|
|
||||||
|
|
||||||
hello:
|
|
||||||
label: Hello
|
|
||||||
permalink: /hello
|
|
||||||
description: Hello tag description
|
|
||||||
|
|
||||||
docusaurus:
|
|
||||||
label: Docusaurus
|
|
||||||
permalink: /docusaurus
|
|
||||||
description: Docusaurus tag description
|
|
||||||
|
|
||||||
hola:
|
|
||||||
label: Hola
|
|
||||||
permalink: /hola
|
|
||||||
description: Hola tag description
|
|
||||||
@@ -34,7 +34,7 @@ Public mode provides immediate access to core transcription features without req
|
|||||||
Private mode unlocks the full potential of Reflector with authentication and persistent storage.
|
Private mode unlocks the full potential of Reflector with authentication and persistent storage.
|
||||||
|
|
||||||
### Additional Features
|
### Additional Features
|
||||||
- **Virtual Meeting Rooms**: Whereby integration
|
- **Virtual Meeting Rooms**: Whereby and Daily.co integration
|
||||||
- **Team Collaboration**: Share transcripts with team
|
- **Team Collaboration**: Share transcripts with team
|
||||||
- **Persistent Storage**: Long-term transcript archive
|
- **Persistent Storage**: Long-term transcript archive
|
||||||
- **Advanced Analytics**: Meeting insights and trends
|
- **Advanced Analytics**: Meeting insights and trends
|
||||||
@@ -99,10 +99,8 @@ REFLECTOR_AUTH_BACKEND=authentik
|
|||||||
## Security Considerations
|
## Security Considerations
|
||||||
|
|
||||||
### Public Mode Security
|
### Public Mode Security
|
||||||
- Rate limiting to prevent abuse
|
|
||||||
- File size restrictions
|
- File size restrictions
|
||||||
- Automatic cleanup of old data
|
- Automatic cleanup of old data
|
||||||
- No PII storage
|
|
||||||
|
|
||||||
### Private Mode Security
|
### Private Mode Security
|
||||||
- Encrypted data storage
|
- Encrypted data storage
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ The user interface is built with **Next.js 14** using the App Router pattern, pr
|
|||||||
|
|
||||||
- Server-side rendering for optimal performance
|
- Server-side rendering for optimal performance
|
||||||
- Real-time WebSocket connections for live transcription
|
- Real-time WebSocket connections for live transcription
|
||||||
- WebRTC support for audio streaming
|
- WebRTC support for audio streaming and live meetings
|
||||||
- Responsive design with Chakra UI components
|
- Responsive design with Chakra UI components
|
||||||
|
|
||||||
### Backend API Server
|
### Backend API Server
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ Accepts various input sources:
|
|||||||
|
|
||||||
Prepares audio for optimal processing:
|
Prepares audio for optimal processing:
|
||||||
- **Format Conversion**: Convert to 16kHz mono WAV
|
- **Format Conversion**: Convert to 16kHz mono WAV
|
||||||
- **Normalization**: Adjust volume to -23 LUFS
|
|
||||||
- **Noise Reduction**: Optional background noise removal
|
- **Noise Reduction**: Optional background noise removal
|
||||||
- **Validation**: Check duration and quality
|
- **Validation**: Check duration and quality
|
||||||
|
|
||||||
@@ -148,7 +147,6 @@ chunk_overlap_seconds: 1
|
|||||||
|
|
||||||
# Quality settings
|
# Quality settings
|
||||||
enable_noise_reduction: true
|
enable_noise_reduction: true
|
||||||
enable_normalization: true
|
|
||||||
min_speech_confidence: 0.5
|
min_speech_confidence: 0.5
|
||||||
|
|
||||||
# Post-processing
|
# Post-processing
|
||||||
|
|||||||
@@ -176,8 +176,6 @@ Save these credentials - you'll need them in the next step.
|
|||||||
|
|
||||||
## Configure Environment
|
## Configure Environment
|
||||||
|
|
||||||
**Location: YOUR SERVER (via SSH, in the `reflector` directory)**
|
|
||||||
|
|
||||||
Reflector has two env files:
|
Reflector has two env files:
|
||||||
- `server/.env` - Backend configuration
|
- `server/.env` - Backend configuration
|
||||||
- `www/.env` - Frontend configuration
|
- `www/.env` - Frontend configuration
|
||||||
@@ -268,8 +266,6 @@ FEATURE_REQUIRE_LOGIN=false
|
|||||||
|
|
||||||
## Configure Caddy
|
## Configure Caddy
|
||||||
|
|
||||||
**Location: YOUR SERVER (via SSH)**
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp Caddyfile.example Caddyfile
|
cp Caddyfile.example Caddyfile
|
||||||
nano Caddyfile
|
nano Caddyfile
|
||||||
@@ -291,8 +287,6 @@ Replace `example.com` with your domains. The `{$VAR:default}` syntax uses Caddy'
|
|||||||
|
|
||||||
## Start Services
|
## Start Services
|
||||||
|
|
||||||
**Location: YOUR SERVER (via SSH)**
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose -f docker-compose.prod.yml up -d
|
docker compose -f docker-compose.prod.yml up -d
|
||||||
```
|
```
|
||||||
@@ -317,12 +311,6 @@ docker compose -f docker-compose.prod.yml ps
|
|||||||
# All should show "Up"
|
# All should show "Up"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Check logs for errors
|
|
||||||
```bash
|
|
||||||
docker compose -f docker-compose.prod.yml logs server --tail 20
|
|
||||||
docker compose -f docker-compose.prod.yml logs worker --tail 20
|
|
||||||
```
|
|
||||||
|
|
||||||
### Test API
|
### Test API
|
||||||
```bash
|
```bash
|
||||||
curl https://api.example.com/health
|
curl https://api.example.com/health
|
||||||
@@ -382,6 +370,12 @@ docker compose -f docker-compose.prod.yml up -d server worker
|
|||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Check logs for errors
|
||||||
|
```bash
|
||||||
|
docker compose -f docker-compose.prod.yml logs server --tail 20
|
||||||
|
docker compose -f docker-compose.prod.yml logs worker --tail 20
|
||||||
|
```
|
||||||
|
|
||||||
### Services won't start
|
### Services won't start
|
||||||
```bash
|
```bash
|
||||||
docker compose -f docker-compose.prod.yml logs
|
docker compose -f docker-compose.prod.yml logs
|
||||||
@@ -405,11 +399,3 @@ docker compose -f docker-compose.prod.yml logs
|
|||||||
- Set `FEATURE_REQUIRE_LOGIN=false` in `www/.env`
|
- Set `FEATURE_REQUIRE_LOGIN=false` in `www/.env`
|
||||||
- Rebuild frontend: `docker compose -f docker-compose.prod.yml up -d --force-recreate web`
|
- Rebuild frontend: `docker compose -f docker-compose.prod.yml up -d --force-recreate web`
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
- [Modal Setup](./modal-setup) - Cloud GPU processing details
|
|
||||||
- [Self-Hosted GPU Setup](./self-hosted-gpu-setup) - Own GPU server deployment
|
|
||||||
- [Authentication Setup](./auth-setup) - Authentik OAuth
|
|
||||||
- [System Requirements](./requirements) - Hardware specs
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ This page lists hardware and software requirements. For the complete deployment
|
|||||||
|
|
||||||
- **Daily.co account** - For video conferencing (free tier available at https://dashboard.daily.co)
|
- **Daily.co account** - For video conferencing (free tier available at https://dashboard.daily.co)
|
||||||
- **AWS S3 bucket + IAM Role** - For Daily.co to store recordings
|
- **AWS S3 bucket + IAM Role** - For Daily.co to store recordings
|
||||||
|
- **Another AWS S3 bucket (optional, can reuse the one above)** - For Reflector to store "compiled" mp3 files and transient diarization process temporary files
|
||||||
|
|
||||||
### Optional
|
### Optional
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ The file processing pipeline handles uploaded audio files, optimizing for accura
|
|||||||
### 2. Pre-processing
|
### 2. Pre-processing
|
||||||
|
|
||||||
**Audio Normalization:**
|
**Audio Normalization:**
|
||||||
```python
|
```yaml
|
||||||
# Convert to standard format
|
# Convert to standard format
|
||||||
- Sample rate: 16kHz (Whisper requirement)
|
- Sample rate: 16kHz (Whisper requirement)
|
||||||
- Channels: Mono
|
- Channels: Mono
|
||||||
@@ -35,11 +35,6 @@ The file processing pipeline handles uploaded audio files, optimizing for accura
|
|||||||
- Format: WAV
|
- Format: WAV
|
||||||
```
|
```
|
||||||
|
|
||||||
**Volume Normalization:**
|
|
||||||
- Target: -23 LUFS (broadcast standard)
|
|
||||||
- Prevents clipping
|
|
||||||
- Improves transcription accuracy
|
|
||||||
|
|
||||||
**Noise Reduction (Optional):**
|
**Noise Reduction (Optional):**
|
||||||
- Background noise removal
|
- Background noise removal
|
||||||
- Echo cancellation
|
- Echo cancellation
|
||||||
|
|||||||
@@ -220,13 +220,6 @@ Modify room configuration and permissions.
|
|||||||
- `429 Too Many Requests`: Rate limit exceeded
|
- `429 Too Many Requests`: Rate limit exceeded
|
||||||
- `500 Internal Server Error`: Server error
|
- `500 Internal Server Error`: Server error
|
||||||
|
|
||||||
## Rate Limiting
|
|
||||||
|
|
||||||
- **Anonymous users**: 100 requests per minute
|
|
||||||
- **Authenticated users**: 1000 requests per minute
|
|
||||||
- **WebSocket connections**: 10 concurrent per user
|
|
||||||
- **File uploads**: 10 per hour for anonymous, 100 per hour for authenticated
|
|
||||||
|
|
||||||
## WebSocket Protocol
|
## WebSocket Protocol
|
||||||
|
|
||||||
The WebSocket connection provides real-time updates during transcription processing. The server sends structured messages to communicate different events and data updates.
|
The WebSocket connection provides real-time updates during transcription processing. The server sends structured messages to communicate different events and data updates.
|
||||||
|
|||||||
Reference in New Issue
Block a user