Thanks to visit codestin.com
Credit goes to gitHub.com

Skip to content

Audora is a scalable, full-stack platform for remote audio/video recording, real-time communication, media processing pipelines, and multipart S3 uploads, built with reliability-first principles using Turborepo and Bun.

License

Notifications You must be signed in to change notification settings

narsibhati-dev/audora

Repository files navigation

Audora.xyz

Audora Logo

High-Quality Podcast Recording Platform

License PRs Welcome Code of Conduct


Table of Contents


Star History

Star History Chart

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:

bun install

Copy the environment example file and configure:

cp .env.example .env

Start the database:

bun run db:up

Generate Prisma client and run migrations:

bun run db:deploy

Start the development server:

bun run dev

Database Management

Start PostgreSQL

bun run db:up

Stop PostgreSQL

bun run db:down

Run Migrations

bun run db:deploy

Generate Prisma Client

bun run generate

Deployment

Docker Compose (Recommended)

Start all services with a single command:

docker compose up -d

This starts:

  • PostgreSQL database on port 5432
  • Backend API on port 9000
  • Signal server on port 8000
  • Frontend on port 3000

Individual Docker Builds

# Build all services
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 container
  • frontend.prod.Dockerfile - Next.js frontend container
  • signal.prod.Dockerfile - WebSocket server container

CI/CD Pipelines

GitHub Actions workflows automate deployment:

  • cd_api.yml - Deploys the backend service
  • cd_frontend.yml - Deploys the frontend application
  • cd_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

# Run linting
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.


Made with care by the audoralabs Team

About

Audora is a scalable, full-stack platform for remote audio/video recording, real-time communication, media processing pipelines, and multipart S3 uploads, built with reliability-first principles using Turborepo and Bun.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages