> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Orchestrator Quickstart

> Choose your quickstart path – video transcoding, AI inference, or join a pool – and get your first orchestrator node running.

export const CustomDivider = ({color = "var(--lp-color-border-default)", middleText = "", spacing = "default", style = {}, className = "", ...rest}) => {
  const spacingPresets = {
    default: {
      margin: "24px 0"
    },
    overlap: {
      margin: "-1rem 0 -1rem 0"
    },
    tight: {
      margin: "0 0 -1rem 0"
    },
    section: {
      margin: "0 0 -2rem 0"
    },
    sectionOverlap: {
      margin: "-1rem 0 -2rem 0"
    },
    deepOverlap: {
      margin: "-1rem 0 -1.5rem 0"
    }
  };
  const spacingStyle = spacingPresets[spacing] || spacingPresets.default;
  return <div role="separator" aria-orientation="horizontal" className={className} style={{
    display: "flex",
    alignItems: "center",
    ...spacingStyle,
    fontSize: style?.fontSize || "16px",
    height: "fit-content",
    ...style
  }} {...rest}>
      <span style={{
    marginRight: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
      </span>
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      {middleText && <>
          <Icon icon="circle" size={2} />
          <span style={{
    margin: "0 8px",
    fontWeight: "bold",
    color: color,
    opacity: 0.7
  }}>
            {middleText}
          </span>
          <Icon icon="circle" size={2} />
        </>}
      <div style={{
    flex: 1,
    height: "1px",
    background: "var(--lp-color-border-default)",
    opacity: 0.4
  }}></div>
      <span style={{
    marginLeft: "var(--lp-spacing-px-8)",
    opacity: 0.2
  }}>
        <span style={{
    display: "inline-block",
    transform: "scaleX(-1)"
  }}>
          <Icon icon="/snippets/assets/logos/Livepeer-Logo-Symbol-Theme.svg" />
        </span>
      </span>
    </div>;
};

export const TableCell = ({children, align = "left", header = false, style = {}, className = "", ...rest}) => {
  const Component = header ? "th" : "td";
  return <Component className={className} style={{
    padding: "0.75rem 1rem",
    textAlign: align,
    border: header ? "none" : "1px solid var(--lp-color-border-default)",
    ...style
  }} {...rest}>
      {children}
    </Component>;
};

export const TableRow = ({children, header = false, hover = false, style = {}, className = "", ...rest}) => {
  const rowId = `table-row-${Math.random().toString(36).substr(2, 9)}`;
  return <>
      {hover && <style>{`
          #${rowId}:hover {
            background-color: var(--lp-color-bg-card);
          }
        `}</style>}
      <tr id={rowId} className={className} style={{
    ...header && ({
      backgroundColor: "var(--lp-color-accent-strong)",
      color: "var(--lp-color-on-accent)",
      fontWeight: "bold"
    }),
    ...style
  }} {...rest}>
        {children}
      </tr>
    </>;
};

export const StyledTable = ({children, variant = "default", style = {}, className = "", ...rest}) => {
  const wrapperVariants = {
    default: {
      border: "1px solid var(--lp-color-border-default)",
      backgroundColor: "var(--lp-color-bg-card)",
      overflow: "hidden"
    },
    bordered: {
      border: "2px solid var(--lp-color-accent)",
      backgroundColor: "var(--lp-color-bg-page)",
      overflow: "hidden"
    },
    minimal: {
      border: "none",
      backgroundColor: "transparent",
      overflow: "visible"
    }
  };
  return <div data-docs-styled-table-shell className={className} style={{
    width: "100%",
    padding: 0,
    margin: 0,
    ...wrapperVariants[variant],
    ...style
  }} {...rest}>
      <table data-docs-styled-table style={{
    width: "100%",
    borderCollapse: "collapse",
    borderSpacing: 0,
    margin: 0,
    backgroundColor: "transparent"
  }}>
        {children}
      </table>
    </div>;
};

The quickstart gets you from zero to a working Orchestrator node as fast as possible. Pick the path that matches your goal.

<CustomDivider />

## Choose your path

<CardGroup cols={2}>
  <Card title="Video Transcoding" icon="film" href="/v2/orchestrators/quickstart/video-transcoding" arrow>
    The default path. Run a transcoding Orchestrator with Docker in under 30 minutes. Requires an NVIDIA GPU.
  </Card>

  <Card title="Join a Pool" icon="users" href="/v2/orchestrators/guides/setup-paths/join-a-pool" arrow>
    Contribute your GPU to an existing Orchestrator pool. No staking, no activation – just install and connect.
  </Card>
</CardGroup>

<Note>
  **AI quickstart coming soon.** To add AI inference pipelines to your node today, complete the video transcoding quickstart first, then follow the [AI Workloads Guide](/v2/Orchestrators/guides/workloads-and-ai/ai-workloads-guide).
</Note>

<CustomDivider />

## What you will need

<StyledTable variant="bordered">
  <TableRow header>
    <TableCell header>Requirement</TableCell>
    <TableCell header>Details</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**GPU**</TableCell>
    <TableCell>NVIDIA with NVENC support (GTX 1060+ for transcoding, RTX 3090+ for AI)</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**OS**</TableCell>
    <TableCell>Linux recommended. MacOS/Windows for development only.</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Docker**</TableCell>
    <TableCell>Docker Engine + NVIDIA Container Toolkit</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Wallet**</TableCell>
    <TableCell>Ethereum account with ETH and LPT on Arbitrum One</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Port**</TableCell>
    <TableCell>8935 TCP open to the public internet</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**RPC**</TableCell>
    <TableCell>Arbitrum One endpoint (Alchemy or Infura free tier)</TableCell>
  </TableRow>
</StyledTable>

For detailed hardware guidance, see [Hardware Reference](/v2/Orchestrators/guides/feasibility-and-hardware/hardware-reference).

<CustomDivider />

## Quickstart vs Setup guide

<StyledTable variant="bordered">
  <TableRow header>
    <TableCell header />

    <TableCell header>Quickstart</TableCell>
    <TableCell header>Setup Guide</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Goal**</TableCell>
    <TableCell>First working node, fast</TableCell>
    <TableCell>Production-ready deployment</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Install method**</TableCell>
    <TableCell>Docker only</TableCell>
    <TableCell>Docker, binary, or source</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Decisions**</TableCell>
    <TableCell>Opinionated defaults</TableCell>
    <TableCell>You choose every flag</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Time**</TableCell>
    <TableCell>\~30 minutes</TableCell>
    <TableCell>\~1–2 hours</TableCell>
  </TableRow>

  <TableRow>
    <TableCell>**Best for**</TableCell>
    <TableCell>First-time operators, evaluation</TableCell>
    <TableCell>Production, custom configurations</TableCell>
  </TableRow>
</StyledTable>

If you need more control – custom binary installs, split Orchestrator/transcoder, advanced pricing, or AI pipelines – use the [Setup Guide](/v2/Orchestrators/setup/guide) instead.

<CustomDivider />

## After the quickstart

Once your node is running and you have received your first job:

<CardGroup cols={2}>
  <Card title="Add AI Workloads" icon="microchip-ai" href="/v2/orchestrators/guides/workloads-and-ai/ai-workloads-guide" arrow>
    Add AI inference pipelines alongside transcoding.
  </Card>

  <Card title="Optimise Earnings" icon="coins" href="/v2/orchestrators/guides/staking-and-rewards/earnings" arrow>
    Understand your revenue streams and tune your parameters.
  </Card>

  <Card title="Set Up Monitoring" icon="chart-line" href="/v2/orchestrators/setup/r-monitor" arrow>
    Enable Prometheus metrics and track node health.
  </Card>

  <Card title="Attract Delegates" icon="users" href="/v2/orchestrators/guides/staking-and-rewards/attracting-delegates" arrow>
    Increase your stake and job selection probability.
  </Card>
</CardGroup>
