Backend server for ReVideeo — a browser-based video editor. Handles video rendering (via Remotion + Chromium), AI-powered editing suggestions, project storage, and a plugin system.
# Install dependencies
pnpm install
# Start the server
pnpm devThe server starts on http://localhost:33623 by default.
The server is an Express.js application with three core modules:
-
Render Engine — Uses Remotion to render video projects into MP4/WebM/MKV. The client sends a JSON config + uploaded assets, the server bundles the Remotion composition, launches a headless Chromium instance, and returns the rendered file.
-
AI Juicer — Provides AI-powered video analysis and editing suggestions. Supports three providers:
- Local — Runs a GGUF model via
llama-server(selected byai_powerprofile) - Gemini — Uses Google Gemini API
- Custom — Any OpenAI-compatible endpoint
- Local — Runs a GGUF model via
-
Space Render — Project storage and management. Saves
.reevprojproject files on disk and exposes a CRUD API. -
Server Plugins — Install and manage server-side plugins (e.g. Whisper runtime for speech recognition).
All configuration lives in config.ini:
[modules]
# Enable/disable project storage
space-render=true
# Enable/disable video rendering
render=true
[space-render]
# Directory for project files
projects-dir=projects
[ai]
# Provider: local | gemini | custom | disabled
provider=local
# --- Gemini ---
# api_key=your-google-api-key
# model=gemini-3.1-flash-lite
# --- Custom (OpenAI-compatible) ---
# endpoint=http://your-endpoint:port
# model=your-model-name
# --- Local (llama-server) ---
# ai_power=1 through 8 (selects model profile)On first run, if AI is not configured, an interactive setup wizard will launch in the terminal.
| Variable | Default | Description |
|---|---|---|
RENDER_SERVER_PORT |
33623 |
HTTP port |
RENDER_SERVER_NO_SANDBOX |
1 |
Disable Chromium sandbox (set 0 to enable) |
RENDER_SERVER_CHROMIUM_PATH |
/run/current-system/sw/bin/chromium |
Path to Chromium binary |
RENDER_SERVER_ASSET_URL |
http://127.0.0.1:<port> |
Base URL for serving assets to Chromium |
RENDER_SERVER_TIMEOUT_MS |
120000 |
Render timeout in ms |
RENDER_SERVER_DUMP_LOGS |
0 |
Set 1 to dump Chromium logs |
LLAMA_SERVER_PATH |
./ai/bin/llama-server |
Path to llama-server binary |
POST /api/render— Submit a render job (multipart:configJSON + asset files)POST /api/render/manifest— Submit a render job via ReVideeoManifest (multipart:manifestJSON + asset files)GET /api/render/:jobId/events— SSE stream for render progressGET /api/render/:jobId/file— Download rendered fileDELETE /api/render/:jobId— Cancel a render job
GET /api/juicer/status— AI provider statusPOST /api/juicer/analyze— Analyze a project (SSE response)POST /api/juicer/plan— Generate an editing plan (SSE response)
GET /api/space-render/projects— List projectsPOST /api/space-render/projects— Create projectPUT /api/space-render/projects/:id— Update projectGET /api/space-render/projects/:id— Get project
GET /api/plugins— List installed pluginsPOST /api/plugin-install-requests— Request plugin installationDELETE /api/plugins/:id— Uninstall plugin
GET /api/health— Server health & module status
| Format | Codec |
|---|---|
| MP4 | H.264 |
| WebM | VP9 |
| MKV | H.264 |
ReVideeo Server is licensed under the Apache License 2.0.
ReVideeo Server uses third-party software, including Remotion, which is subject to its own licensing terms. Use of Remotion may require a separate license depending on your use case.
| Dependency | License | Link |
|---|---|---|
| Remotion | Remotion License (Free / Company) | License FAQ |
| Express | MIT | GitHub |
| CORS | MIT | GitHub |
| Multer | MIT | GitHub |
Since this server uses Remotion for rendering, you must comply with Remotion's licensing terms:
- Individuals & Small Teams (≤ 3 people): Free for both personal and commercial use under the Remotion Free License.
- Companies & Teams (≥ 4 people): You are legally required to obtain a commercial license directly from Remotion AG.
Source code: github.com/RevoProject/revideeo-render-server