# Deploy a Channel

> Build and activate an immutable Channel package from an archive or pinned Git commit.

## Before you begin {#before-you-begin}

Prepare a ZIP or TAR.GZ package, or a public HTTPS repository pinned to a full commit SHA. The Channel manifest must declare its protocol, AuthProvider CRN, target Agent CRN or null target, public visibility, customer-identity requirement, capabilities, bindings, Policy, and runtime compatibility.

## Steps {#steps}

1. Open **Channels** and choose **Deploy Channel**.
2. Select an archive or pinned Git source.
3. Supply the package information and review the deployment guide.
4. Choose **Deploy**.
5. Wait while Constal builds the Worker, validates the immutable Channel identity, probes the runtime, and updates the registry head.
6. Open the Channel detail page.

Deployment does not mutate prior revisions. Requests already admitted under an older deployment retain their exact recorded identity.

## Verify {#verify}

Confirm the detail page shows the canonical Channel CRN, protocol, visibility, customer-identity mode, delivery capabilities, AuthProvider, and linked target Agent. Send a controlled test message and verify both the delivery receipt and resulting Run.

## Next steps {#next-steps}

Continue with [Operate Channels](/docs/channels/operate.md) and [Start a Run](/docs/runs/start.md).
