Configuration
.env for the server, the console for everything else.
Kinetica has very few settings in files. .env holds what must exist before the console opens; everything you change while the studio runs is a setting in the console at /admin.
01Where settings live
| Place | What goes there | How it changes |
|---|---|---|
.env in the Kinetica folder | Port, public URL, secret key, data folder, proxy count, program paths, optional pinned API keys | Edit the file and restart the server |
Console at /admin | Brand, keys, AI models, voice, studio options, rendering, credits, plans, billing, e-mail, API | Saved at once, written to the audit log |
The server reads .env from its own folder on start (src/server/index.ts). With Docker, pass it with --env-file .env.
02Every .env variable
From .env.example, src/server/config.ts and the scripts. Only PUBLIC_URL and ADMIN_SECRET_KEY need a value on a normal install; the rest have working defaults.
| Variable | Default | What it does |
|---|---|---|
PORT | 8787 | Port the server listens on |
HOST | 0.0.0.0 | Address it listens on |
PUBLIC_URL Set it | empty | The https address people use, e.g. https://video.your-agency.com. Invite, share and review links and Stripe's return addresses use it. Pins "Public URL" in the console. When it starts with https://, cookies get the Secure flag. |
ADMIN_SECRET_KEY Set it | generated | 64 hex characters (openssl rand -hex 32). Encrypts saved API keys. Without it a key is generated into DATA_DIR/.admin-secret-key (First steps). |
DATA_DIR | data (Docker: /app/data) | Databases, uploads, music and renders |
BACKUP_DIR | DATA_DIR/backups | Where npm run backup writes |
TRUST_PROXY_HOPS | 0 | Number of proxies in front. Caddy or nginx = 1, so rate limits see the visitor's address |
CHROME_PATH | searched | Chrome or Chromium program file, when not in the standard places |
FFMPEG_PATH, FFPROBE_PATH | ffmpeg, ffprobe on the PATH | Only when they live elsewhere |
ANTHROPIC_API_KEY, ELEVENLABS_API_KEY, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, RESEND_API_KEY, PEXELS_API_KEY | empty | Optional. Pin a key here instead of entering it in the console; the console then shows that field locked (Keys) |
COOKIE_SECURE | empty | 1 forces the Secure cookie flag even when PUBLIC_URL is not https |
FRAME_ANCESTORS | empty | Space-separated https origins allowed to show the studio in a frame. Empty means same origin only; leave it empty unless you embed the studio in another site |
DEMO_MODE=1 with DEMO_PASSWORD, and ADMIN_DEMO_PASSWORD, turn a server into a read-only public demo with example data. Never set them on a server with real customers (src/server/demo.ts, packages/admin-kit/server/kit.ts).
03Console settings, section by section
Every field below is declared in src/server/admin/manifest.ts. Defaults are what a new install starts with.
Brand and Legal
Product name, tagline, accent colour, logo, support e-mail, website; app title in the browser tab; "Headline on the home screen" (default "What should we make today?"). Legal: terms URL, privacy URL, disclaimer. See White label.
Access
"Anyone can sign up" (off), "Credits a new self-serve workspace gets" (0), announcement banner. See Sign-up open or closed.
AI director
| Setting | Default |
|---|---|
| Model for storyboards and reviews | Claude Opus 5.5 |
| Model for edits, repairs and translations | Claude Opus 5.5 |
| Visual review before the final render (Claude checks one frame per scene and fixes overflowing or crowded scenes; one extra call per render) | On |
| Retry declined requests on a fallback model | On |
| Workspaces may bring their own Anthropic key | Off |
| Fast, Balanced and Smart tier: model and credit multiplier | See Model tiers |
| Tier picked by default | Smart |
Voice
| Setting | Default |
|---|---|
| Voiceover | On |
| Default voice (name or id from your ElevenLabs library) | Liam |
| Voice model | Multilingual v2 (also Flash v2.5, Turbo v2.5) |
| Speaking speed | 1.04 (0.7 to 1.2) |
| Voices users can pick | Empty: every voice in your ElevenLabs account |
Studio
Niches on offer (17), looks on offer (18) and the default look (Midnight), default captions (karaoke), default format (9:16), languages (17 BCP-47 codes, from en-US to ar-SA), and "Longest video anyone can make" (120 seconds, up to 600). Plans can set a lower limit.
Rendering
| Setting | Default |
|---|---|
| Renders at the same time | 1 (up to 8; about 1 core and 600 MB each) |
| Renders at the same time per workspace | 1 |
| Chrome pages per render | 4 (up to 12) |
| Watermark on plans that keep it | Empty: no watermark on any plan |
| Make a GIF preview of every video | On |
| Delete render files after (days, 0 = keep) | 0 |
| Queued renders per workspace | 5 |
Credits and Customer billing
See Plans and credits. Customer billing: "Sell plans and credit packs" (off), "Name on receipts" (Video studio), "Customers can enter promotion codes at checkout" (off).
Public API
"Public API and webhooks" (off) and "Requests per minute per API key" (60). See API and webhooks.
Client review
"Comments per hour from one address" (30) and "Review links stop working after (days, 0 = never)" (30).
Server and E-mail
Server: "Public URL of this server" (required, https). E-mail: "Sender", a sender on a domain you verified in Resend, for example Studio <hello@your-agency.com>; "E-mail people when their video is ready" (on).
Integrations and Notifications
Integrations: the six keys (Keys). Notifications: where the console sends its own alerts, an e-mail address and/or a signed webhook URL (Security & alerts).