- Features
- Tech Stack
- Project Structure
- Getting Started
- Database Management
- Deployment
- Available Scripts
- Development Tools
- Support
- License
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
| 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 |
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 - Bun v1.2.5 or later
- Node.js v18 or later
- PostgreSQL v14 or later
- Docker and Docker Compose
- FFmpeg (for media processing)
Clone the repository and install dependencies:
bun installCopy the environment example file and configure:
cp .env.example .envStart the database:
bun run db:upGenerate Prisma client and run migrations:
bun run db:deployStart the development server:
bun run devbun run db:upbun run db:downbun run db:deploybun run generateStart all services with a single command:
docker compose up -dThis starts:
- PostgreSQL database on port 5432
- Backend API on port 9000
- Signal server on port 8000
- Frontend on port 3000
# Build all services docker compose build # Build specific service docker compose build frontend docker compose build backend docker compose build signalLocated in the /docker directory:
backend.prod.Dockerfile- Backend API containerfrontend.prod.Dockerfile- Next.js frontend containersignal.prod.Dockerfile- WebSocket server container
GitHub Actions workflows automate deployment:
cd_api.yml- Deploys the backend servicecd_frontend.yml- Deploys the frontend applicationcd_signal.yml- Deploys the WebSocket server
| 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 |
# Run linting bun run lint # Format code bun run format # Type checking bun run check-typesPlease read and follow our Code of Conduct to help keep Audora a welcoming and inclusive space for everyone.
This project is licensed under the MIT License.
