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
On Open Source Cloud only the settings exposed by the service's deploy form are configurable — the required credentials above plus the optional ENCORE_* tuning knobs. The others are injected automatically by the deploy step or fixed by the platform, and can only be set directly when you run open-videocore yourself (self-hosted). The OSC-configurable column below marks which is which.
| Variable | Required | OSC-configurable | Description |
|---|---|---|---|
OSC_ACCESS_TOKEN | Yes | Injected | Personal Access Token. Injected automatically at deploy time on OSC. |
PARAMETER_STORE_API_KEY | Yes | Yes | Config API key of the connected parameter store. |
PARAMETER_STORE_INSTANCE_NAME | Yes | Yes | Name of the parameter store (default ovcconfig). On OSC this is the ParameterStore deploy-form field. |
MINIO_ROOT_PASSWORD | Yes | Yes | Admin password used when provisioning object storage instances. |
COUCHDB_ADMIN_PASSWORD | Yes | Yes | Admin password used when provisioning the metadata store. |
PORT | No | No | HTTP port (default 3000). Fixed by the platform on OSC; self-hosted only. |
ENCORE_MAX_INSTANCES | No | Yes | Max transcoder instances the auto-scaler may run per workspace (default 3). |
ENCORE_MIN_INSTANCES | No | Yes | Warm floor of transcoder instances kept running even when idle (default 0 — scale to zero). See Operating a workspace. |
ENCORE_IDLE_TIMEOUT_MS | No | Yes | Idle time before a transcoder instance is torn down (default 300000). |
PUBLIC_BASE_URL | No | No | Publicly-reachable base URL of this instance, used to build the profile index URL handed to each transcoder. Self-hosted only — not configurable on Open Source Cloud (the OSC deploy form exposes no field for it, and OSC injects no self-URL). Left unset on OSC, transcoders fall back to the remote default profiles index. |