Requirements
- Node.js 24 and npm
- MongoDB running as a replica set (the credit ledger uses transactions; hosted MongoDB clusters are replica sets already)
- ffmpeg and ffprobe on the machine that runs the render worker, and Python 3 for the free neural voices
- Your own AI API key for scripts, images, premium voices and AI presenters
- Optional: Stripe keys for live billing (billing is simulated until they are set), SMTP for email, and a Google OAuth client for Google sign-in
Rendering is a long-running job, so the worker needs a normal server or VM. The web app can run on serverless hosting, but renders only happen where a worker with ffmpeg is running.
Install
Download the ZIP from your DEV3 account and unzip it. Open Documentation/index.html in a browser for the full guide.
Copy the environment template and fill it in:
cp .env.example .env.local
Set MONGODB_URI, MONGODB_DB, AUTH_SECRET (for example openssl rand -base64 32), NEXT_PUBLIC_SITE_URL and your AI key. Leave the Stripe, SMTP and Google values empty to start: billing runs in simulated mode and emails are printed to the console.
Install everything and seed the demo data (plans, settings, demo logins, preset presenters and the bundled sample reels):
npm run setup
This runs npm install, creates the Python environment for the free voices and runs the seed. The seed refuses to write into a non-empty database it did not create.
Start the web app and the render worker together:
npm run dev:all
Open the address the web process prints and use one of the one-click demo accounts on the sign-in page.
Production
- Web app:
npm run build and npm start behind a TLS reverse proxy.
- Render worker:
npm run start:worker on one or more machines with ffmpeg, the fonts, Python edge-tts and access to the same STORAGE_DIR. WORKER_CONCURRENCY sets jobs per worker. On Linux: apt install ffmpeg python3-venv fonts-dejavu-core, then npm run setup:tts.
- Stripe: set
STRIPE_SECRET_KEY, add the webhook endpoint https://<your domain>/api/stripe/webhook with the events listed in the deployment guide, put its signing secret in STRIPE_WEBHOOK_SECRET, and enable the Customer Portal.
- Optional caption fonts: drop open
.ttf/.otf fonts into engine/fonts/ and they appear in the font pickers.
npm run verify runs the typecheck, lint and tests against throwaway databases.
Updates
Download the new version from Account → Downloads on dev3.tech. Keep your own changes on a branch and merge the new release into it.