PLUTUS

README

Shop. Watch. Discover.

Self-hosted AI shopping channel: submit a product URL and watch an AI host present it in generated video clips — fully open-source, no external video APIs required.

CI passing Conformity passing Release v0.4.0 License: AGPL-3.0-or-later

Why PLUTUS

ProblemPLUTUS answer
AI video APIs are expensive and closedFully open-source: T2I keyframes + ffmpeg minterpolate, no external video API
Shopping channels require production studiosAI-generated video clips from a product URL alone
Each service has its own AI integrationOmniRoute fronts 350+ providers for scripting, image gen, and more

What it is

Quick start

git clone https://github.com/innotelinc/plutus.git && cd plutus
cp .env.example .env        # edit: PLUTUS_HOST, CONVEX_SELF_HOSTED_ADMIN_KEY
node scripts/lan-ip.mjs     # print the autodetected LAN IP (for PLUTUS_HOST)
./scripts/get-admin-key.sh  # auto-fetch admin key from backend
make push                   # push functions + seed demo data
make build                  # build static export (LAN IP baked in)
make up                     # start the stack

The stack

PLUTUS_HOST is the host's LAN IP — autodetect it with node scripts/lan-ip.mjs or set it explicitly in .env. Using the LAN IP lets other devices on your network reach the stack; 127.0.0.1 works for localhost-only access.

ServiceURLBacked by
Web UIhttp://$PLUTUS_HOST:3000Next.js static export (Nginx)
Convex backendhttp://$PLUTUS_HOST:3210Self-hosted Convex
Convex site proxyhttp://$PLUTUS_HOST:3211Convex HTTP actions
Dashboardhttp://$PLUTUS_HOST:6791Convex dashboard
OmniRoute (AI gateway)http://$PLUTUS_HOST:20128Shared platform instance (zeus)

Operator workflow

make help    # every target, with docs
make test    # unit tests (PNG encoder, script parser)
make verify  # browser checks: playback + submit end-to-end
make logs    # tail backend logs
make down    # stop the stack

Repo layout

convex/          Convex functions (queries, mutations, actions)
  pipeline.ts    Pipeline action (scripting + video generation)
  videoAction.ts Node.js action (keyframe gen + ffmpeg)
  channel.ts     Channel queries + mutations
src/             Next.js frontend (broadcast UI)
web/landing/     GitHub Pages site (this page)
deploy/          Dockerfiles, nginx config, admin-key check
tests/           Unit tests (bun test)

License

PLUTUS is licensed under AGPL-3.0-or-later — see LICENSE for the full text.

The in-repo README (README.md) is the source of truth; this page mirrors it for the web.