Docs / Installation

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.

  1. 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.

  2. 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 Desktop
    claude mcp add --transport http osc https://mcp.osaas.io/mcp

    For any other MCP-compatible tool, add https://mcp.osaas.io/mcp as a server with your Personal Access Token as the Bearer token. Full setup guides at osaas.io/mcp.

  3. Set up a parameter store

    open-videocore tracks the OSC service instances it provisions in a parameter store. Ask your agent:

    Prompt
    Set 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.

  4. Deploy the instance

    Ask your agent to create the instance, wired to the parameter store from the previous step:

    Prompt
    Create 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.

  5. 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.

    Request
    curl -X POST https://<your-instance>/api/v1/provision \
      -H "Content-Type: application/json" \
      -d '{"name": "mystack"}'

    Provisioning is asynchronous. Poll the returned operationId until status reaches "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 optional sourceStorage / packagedStorage blocks — see provision in the reference.
  6. Bootstrap transcoding profiles

    Seed the profile store from the default transcoder test profiles:

    curl -X POST https://<your-instance>/api/v1/profiles/bootstrap

    Your instance is live. The ops dashboard is at https://<your-instance>/ui; interactive, always-current API docs are served at https://<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.

VariableRequiredDescription
OSC_ACCESS_TOKENYesPersonal Access Token. Injected automatically at deploy time on OSC.
PARAMETER_STORE_API_KEYYesConfig API key of the connected parameter store.
PARAMETER_STORE_INSTANCE_NAMEYesName of the parameter store (default ovcconfig).
MINIO_ROOT_PASSWORDYesAdmin password used when provisioning object storage instances.
COUCHDB_ADMIN_PASSWORDYesAdmin password used when provisioning the metadata store.
PORTNoHTTP port (default 3000).
ENCORE_MAX_INSTANCESNoMax transcoder instances the auto-scaler may run per workspace (default 3).
ENCORE_MIN_INSTANCESNoWarm floor of transcoder instances kept running even when idle (default 0 — scale to zero). See Operating a workspace.
ENCORE_IDLE_TIMEOUT_MSNoIdle time before a transcoder instance is torn down (default 300000).
PUBLIC_BASE_URLNoPublicly-reachable base URL of this instance, used to build the profile index URL handed to each transcoder.