Sponsored Content
Skip to content

Repository files navigation

Video Processing Toolkit

An open-source, self-hostable video processing system built with Node.js, Hono, Zod, and BullMQ. Upload a video, get transcription, subtitles, AI, chapter markers, and thumbnails.

Features

  • Video transcription (OpenAI Whisper, Deepgram)
  • AI-powered video analysis and summarization (OpenAI, Claude)
  • Automatic chapter generation
  • Background job processing with BullMQ
  • REST API + Nuxt 3 web interface
  • Docker-based deployment with automatic HTTPS

Quick Start

cp .env.example .env
# Add your OPENAI_API_KEY to .env
docker compose up
  • API: http://localhost:3000
  • Web: http://localhost:3001

Development

npm install
npx turbo dev

Architecture

.
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ api/        # Hono REST API (port 3000)
β”‚   β”œβ”€β”€ worker/     # BullMQ video processor
β”‚   └── web/        # Nuxt 3 frontend (port 3000)
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ shared/     # Types, schemas, constants
β”‚   └── providers/  # AI provider implementations
└── deploy/         # Deployment scripts
Service Port Description
apps/api 3000 Hono REST API
apps/worker β€” BullMQ video processor
apps/web 3000 Nuxt 3 frontend
PostgreSQL 5432 Primary database
Redis 6379 Job queue + caching

Tech Stack

  • API: Hono, Drizzle ORM, BullMQ
  • Web: Nuxt 3, Tailwind CSS
  • AI: OpenAI (Whisper + GPT), Anthropic Claude, Deepgram
  • Infra: Docker, Caddy, PostgreSQL, Redis

Production Deployment

1. Provision a server

Any Ubuntu/Debian VPS with 2 vCPU and 4 GB RAM or larger.

2. Run the setup script

ssh root@your-server-ip
curl -fsSL <raw-setup-url> | bash
# Or clone the repo first, then:
bash deploy/setup.sh

This installs Docker, creates the vpt user, sets up data directories, and configures the firewall.

3. Configure and deploy

su - vpt
git clone <repo-url> ~/app && cd ~/app
cp .env.example .env
nano .env  # Set DOMAIN, POSTGRES_PASSWORD, REDIS_PASSWORD, OPENAI_API_KEY, SESSION_SECRET
bash deploy/update.sh

Caddy automatically provisions TLS certificates for your domain.

4. Updates

cd ~/app
bash deploy/update.sh

5. Backups

bash deploy/backup.sh

# Automate with cron (daily at 3 AM):
# 0 3 * * * /home/vpt/app/deploy/backup.sh >> /var/log/vpt-backup.log 2>&1

Environment Variables

See .env.example for all available configuration options.

License

MIT

About

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages