Installation
Launching an instance of open-videocore on Open Source Cloud (OSC). No servers to provision by hand — an MCP-connected agent runs the calls for you.
-
Get an OSC account and access token
Create an account at osaas.io, then generate a Personal Access Token at app.osaas.io/settings. You'll use this token to authenticate both the deploy agent and, later, the API itself.
-
Connect an agent to OSC over MCP
OSC exposes an MCP server that provisions and manages every resource open-videocore needs. Connect your agent to it:
Claude Code / Claude Desktopclaude mcp add --transport http osc https://mcp.osaas.io/mcpFor any other MCP-compatible tool, add
https://mcp.osaas.io/mcpas a server with your Personal Access Token as the Bearer token. Full setup guides at osaas.io/mcp. -
Set up a parameter store
open-videocore tracks the OSC service instances it provisions in a parameter store. Ask your agent:
PromptSet up an app-config parameter store called `ovcconfig` for my open-videocore deployment.The agent provisions the store and returns a config API key — keep it, you'll pass it to the deploy step next.
-
Deploy the instance
Ask your agent to create the instance, wired to the parameter store from the previous step:
PromptCreate a Personal Access Token for the open-videocore instance, then create an open-videocore instance called `ovctest`. Connect it to the parameter store named `ovcconfig` using the API key from the previous step. Use the Personal Access Token as the OSC access token. Generate strong passwords for `MinioRootPassword` and `CouchdbAdminPassword`.The agent provisions the instance and returns its public URL — that's
https://<your-instance>in every example in this documentation. -
Provision a workspace stack
One call stands up the backing infrastructure for a workspace — object storage, metadata store, and queue. The transcoder and packager are provisioned separately, on demand, the first time they're actually used — see Operating a workspace.
Requestcurl -X POST https://<your-instance>/api/v1/provision \ -H "Content-Type: application/json" \ -d '{"name": "mystack"}'Provisioning is asynchronous. Poll the returned
operationIduntilstatusreaches"done":curl https://<your-instance>/api/v1/provision/operations/<operationId>By default the stack provisions its own object storage and buckets — no storage configuration required. To point at an existing S3-compatible bucket instead, pass the optionalsourceStorage/packagedStorageblocks — see provision in the reference. -
Bootstrap transcoding profiles
Seed the profile store from the default transcoder test profiles:
curl -X POST https://<your-instance>/api/v1/profiles/bootstrapYour instance is live. The ops dashboard is at
https://<your-instance>/ui; interactive, always-current API docs are served athttps://<your-instance>/api-docs. Continue to Ingesting media to get your first asset in.
Environment variables
Set automatically by the deploy step above, or configurable directly if you're running open-videocore yourself.
| Variable | Required | Description |
|---|---|---|
OSC_ACCESS_TOKEN | Yes | Personal Access Token. Injected automatically at deploy time on OSC. |
PARAMETER_STORE_API_KEY | Yes | Config API key of the connected parameter store. |
PARAMETER_STORE_INSTANCE_NAME | Yes | Name of the parameter store (default ovcconfig). |
MINIO_ROOT_PASSWORD | Yes | Admin password used when provisioning object storage instances. |
COUCHDB_ADMIN_PASSWORD | Yes | Admin password used when provisioning the metadata store. |
PORT | No | HTTP port (default 3000). |
ENCORE_MAX_INSTANCES | No | Max transcoder instances the auto-scaler may run per workspace (default 3). |
ENCORE_MIN_INSTANCES | No | Warm floor of transcoder instances kept running even when idle (default 0 — scale to zero). See Operating a workspace. |
ENCORE_IDLE_TIMEOUT_MS | No | Idle time before a transcoder instance is torn down (default 300000). |
PUBLIC_BASE_URL | No | Publicly-reachable base URL of this instance, used to build the profile index URL handed to each transcoder. |