Vodmill docs
v1.0.0
Get help
● Start · Before you rent a server

Requirements
what the server needs.

Vodmill decodes, analyses and renders video on the same machine that serves the app, so it needs a real server with CPU, memory and disk that you control. Check this list before you rent one.

VPS or dedicated serverNo shared hosting

01Software

SoftwareVersionNotes
Node.js22.12 or newer"engines": {"node": ">=22.12"} in package.json. Inside the Docker image already.
ffmpeg with ffprobeRequired From your distributionReads, cuts and encodes video and audio. Not bundled. The server finds both on the PATH, or at FFMPEG_PATH and FFPROBE_PATH. The renderer was checked on ffmpeg 8.1 and needs neither libass nor drawtext (packages/render/README.md).
Build toolspython3 make g++Only when no prebuilt database driver (better-sqlite3) fits your system. Build time only.
Caddy or nginxAny current versionhttps in front of the server
whisper.cppOptionalLocal transcription with no API cost. You build it and fetch a model yourself (steps).
yt-dlpOptionalOnly if you want to offer import from a link. Not bundled; you install it yourself (Imports).
DockerOptionalAn alternative to installing Node.js on the host

Vodmill itself is Node.js and TypeScript only. No Python code ships, and no browser runs on the server.

02Server: CPU, memory, disk

The author has not published benchmark figures for Vodmill 1.0.0, so this section gives you what the code says and a way to size the server yourself.

ResourceWhat the code tells you
CPUOne render uses every core (x264) (packages/render/README.md). Face detection for reframing and the 720p preview copy of each source also run on the CPU. No GPU is needed.
MemoryOne render uses about 400 MB (packages/render/README.md), on top of the server itself and the operating system. Local whisper.cpp adds the memory of the model you choose.
Parallel workA new install runs one render and one analysis at a time (console, System, Rendering). Both can be raised to 4. Raise them only on a machine with the cores and memory for it.
DiskFor every source the server keeps the original file, a 720p preview copy, the extracted audio and the transcript; for every render the MP4, subtitles and cover. A single upload may be up to 8 GB by default ("Largest upload", 1 to 200 GB). A plan's storage limit is 10 GB per workspace by default.
Operating systemLinux. This guide uses Ubuntu 22.04 or 24.04 with systemd.
AccessRoot or sudo over SSH, to install packages, the service and the https proxy
A starting point, not a measured minimum

As a suggestion only: start with 4 CPU cores, 8 GB of memory and 100 GB of disk, keep the defaults of one render and one analysis at a time, process a few of your own typical videos, and watch the console's System health and Render queue pages. If renders wait too long, add cores before you raise the parallel settings. This suggestion is not a benchmark.

Shared hosting does not work

Vodmill is a long-running Node.js process that starts ffmpeg and writes large files. Shared hosting, cPanel-only plans and "serverless" platforms cannot run it. Use a VPS from any provider, or your own machine.

03Domain and https

You need a domain or subdomain pointing at the server, and https in front of Vodmill. Invite links, password reset links, share links, Stripe's return addresses, signed file links and the YouTube connection all use the public https address. The console's status check "Public URL is https" is a blocker until it is set (src/server/admin/manifest.ts). Caddy gets a certificate by itself (Installation).

04Accounts you may need

All optional, each one switches on features. You open these accounts yourself and pay their providers directly.

ServiceSwitches on
AnthropicAI moment picking, the complete-thought check, titles, hooks, hashtags, post texts
ElevenLabsTranscription with ElevenLabs Scribe, with speaker labels
Groq, OpenAI or a compatible serverTranscription with Whisper over HTTP
StripeSelling plans and credit packs
ResendInvite and password reset e-mails, with a sending domain you verify there
Google CloudA YouTube Data API key (campaign view counts) and an OAuth client (publishing to YouTube)
Twitch developer consoleTwitch view counts for campaigns, and viewer-made top clips of a Twitch video as signals

Transcription needs one of: an ElevenLabs key, a Whisper provider key, or local whisper.cpp.

05Your own computer

Any modern browser opens the app and the console. Captions use a colour emoji font format (COLRv1) that Chromium-based browsers draw; the caption package notes that Safari versions without COLRv1 support do not show colour emoji in the preview (packages/captions/README.md). The rendered video is not affected. For the MCP server (optional), the computer that runs the AI assistant needs Node.js 22 or newer.