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

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.

VariableRequiredOSC-configurableDescription
OSC_ACCESS_TOKENYesInjectedPersonal Access Token. Injected automatically at deploy time on OSC.
PARAMETER_STORE_API_KEYYesYesConfig API key of the connected parameter store.
PARAMETER_STORE_INSTANCE_NAMEYesYesName of the parameter store (default ovcconfig). On OSC this is the ParameterStore deploy-form field.
MINIO_ROOT_PASSWORDYesYesAdmin password used when provisioning object storage instances.
COUCHDB_ADMIN_PASSWORDYesYesAdmin password used when provisioning the metadata store.
PORTNoNoHTTP port (default 3000). Fixed by the platform on OSC; self-hosted only.
ENCORE_MAX_INSTANCESNoYesMax transcoder instances the auto-scaler may run per workspace (default 3).
ENCORE_MIN_INSTANCESNoYesWarm floor of transcoder instances kept running even when idle (default 0 — scale to zero). See Operating a workspace.
ENCORE_IDLE_TIMEOUT_MSNoYesIdle time before a transcoder instance is torn down (default 300000).
PUBLIC_BASE_URLNoNoPublicly-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.