Audora.xyz
High-Quality Podcast Recording Platform
Table of Contents
- Features
- Tech Stack
- Project Structure
- Getting Started
- Database Management
- Deployment
- Available Scripts
- Development Tools
- Support
- License
Star History
Features
Audora offers a comprehensive set of features for professional podcast recording:
- High-Quality Recording - Studio-grade audio and video recording with multiple input device support
- Real-Time Communication - WebRTC-based peer-to-peer connections with low-latency streaming
- Reliable Uploads - S3 multipart uploads with automatic retry and resume capability
- Professional Processing - Video transcoding, audio normalization, and custom branding
- Security and Privacy - End-to-end encryption with secure room management
Tech Stack
| Category | Technology |
|---|---|
| Monorepo | Turborepo |
| Runtime | Bun |
| Frontend | Next.js 14 |
| Backend | Express |
| Real-time | WebRTC, WebSocket |
| Database | PostgreSQL, Prisma |
| Storage | AWS S3 |
| Media | FFmpeg |
| DevOps | Docker, GitHub Actions |
Project Structure
This monorepo is managed using Turborepo and is structured as follows:
audora/
+-- apps/
| +-- audora-frontend/ # Next.js app for the UI
| +-- audora-api/ # Express backend for API handling
| +-- audora-signal/ # WebSocket server for real-time communication
+-- packages/
| +-- database/ # Prisma and PostgreSQL setup
| +-- types/ # Shared TypeScript types
| +-- ui/ # Shared UI components
| +-- typescript-config/ # Shared TypeScript configuration
+-- docker/
| +-- backend.prod.Dockerfile
| +-- frontend.prod.Dockerfile
| +-- signal.prod.Dockerfile
| +-- db.docker-compose.yml
+-- .github/workflows/ # GitHub Actions CI/CD pipelines
+-- turbo.json # Turborepo configuration
+-- docker-compose.yml # Full stack Docker Compose
+-- package.json # Root package.json
Getting Started
Prerequisites
- Bun v1.2.5 or later
- Node.js v18 or later
- PostgreSQL v14 or later
- Docker and Docker Compose
- FFmpeg (for media processing)
Installation
Clone the repository and install dependencies:
Copy the environment example file and configure:
Start the database:
Generate Prisma client and run migrations:
Start the development server:
Database Management
Start PostgreSQL
Stop PostgreSQL
Run Migrations
Generate Prisma Client
Deployment
Docker Compose (Recommended)
Start all services with a single command:
This starts:
- PostgreSQL database on port 5432
- Backend API on port 9000
- Signal server on port 8000
- Frontend on port 3000
Individual Docker Builds
docker compose build
# Build specific service
docker compose build frontend
docker compose build backend
docker compose build signal
Production Dockerfiles
Located in the /docker directory:
backend.prod.Dockerfile- Backend API containerfrontend.prod.Dockerfile- Next.js frontend containersignal.prod.Dockerfile- WebSocket server container
CI/CD Pipelines
GitHub Actions workflows automate deployment:
cd_api.yml- Deploys the backend servicecd_frontend.yml- Deploys the frontend applicationcd_signal.yml- Deploys the WebSocket server
Available Scripts
| Script | Description |
|---|---|
bun run dev |
Start all apps in development mode |
bun run build |
Build all apps for production |
bun run start |
Start all apps in production mode |
bun run start:frontend |
Start frontend only |
bun run start:api |
Start backend API only |
bun run start:signal |
Start WebSocket server only |
bun run db:up |
Start PostgreSQL with Docker |
bun run db:down |
Stop PostgreSQL |
bun run db:deploy |
Run database migrations |
bun run generate |
Generate Prisma client |
bun run lint |
Run linting across all packages |
bun run format |
Format code with Prettier |
bun run check-types |
Run TypeScript type checking |
Development Tools
bun run lint
# Format code
bun run format
# Type checking
bun run check-types
Code of Conduct
Please read and follow our Code of Conduct to help keep Audora a welcoming and inclusive space for everyone.
License
This project is licensed under the MIT License.