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

# GitHub Enterprise

> Run Blacksmith on GitHub Enterprise Server and Cloud

export const ProductEmbed = ({story, title, width, height}) => {
  const productionOrigin = "https://docs-embeds.blacksmith.sh";
  const knownOrigin = () => {
    if (typeof window === "undefined") return undefined;
    if (!(/^localhost$|\.mintlify\.(app|site)$/).test(window.location.hostname)) return productionOrigin;
    return window.__blacksmithEmbedOrigin;
  };
  const designWidth = width || 960;
  const designHeight = height || 600;
  const frameRef = useRef(null);
  const [embedOrigin, setEmbedOrigin] = useState(knownOrigin);
  const [ready, setReady] = useState(false);
  const [live, setLive] = useState(false);
  const [requested, setRequested] = useState(false);
  useEffect(() => {
    const frame = frameRef.current;
    const box = frame && frame.parentElement;
    if (requested || !box) return undefined;
    const request = () => setRequested(true);
    const observer = new IntersectionObserver(entries => {
      if (entries.some(entry => entry.isIntersecting)) request();
    }, {
      rootMargin: "100px 0px"
    });
    observer.observe(box);
    frame.addEventListener("blacksmith-embed-load", request);
    return () => {
      observer.disconnect();
      frame.removeEventListener("blacksmith-embed-load", request);
    };
  }, [embedOrigin, requested]);
  useEffect(() => {
    if (embedOrigin) return undefined;
    const resolve = () => setEmbedOrigin(knownOrigin() || productionOrigin);
    if (knownOrigin()) return resolve();
    window.addEventListener("blacksmith-embed-origin", resolve);
    const timer = setTimeout(resolve, 5000);
    return () => {
      window.removeEventListener("blacksmith-embed-origin", resolve);
      clearTimeout(timer);
    };
  }, [embedOrigin]);
  useEffect(() => {
    const frame = frameRef.current;
    const box = frame && frame.parentElement;
    if (!box) return undefined;
    const fit = () => {
      frame.style.transform = `scale(${box.clientWidth / designWidth})`;
    };
    fit();
    const observer = new ResizeObserver(fit);
    observer.observe(box);
    return () => observer.disconnect();
  }, [designWidth, embedOrigin]);
  useEffect(() => {
    const onMessage = event => {
      if (event.origin !== embedOrigin) return;
      if (!frameRef.current || event.source !== frameRef.current.contentWindow) return;
      if (event.data && event.data.source === "blacksmith-docs-embed" && event.data.type === "ready") {
        setReady(true);
        if (!event.data.snapshot) setLive(true);
      }
    };
    window.addEventListener("message", onMessage);
    return () => window.removeEventListener("message", onMessage);
  }, [embedOrigin]);
  if (!embedOrigin) return null;
  return <iframe ref={frameRef} className={ready ? "is-ready" : undefined} data-embed-live={live ? "" : undefined} src={requested ? `${embedOrigin}/embeds/${story}` : undefined} data-embed-story={story} width={designWidth} height={designHeight} title={title} onLoad={event => {
    if (event.currentTarget.getAttribute("src")) event.currentTarget.setAttribute("data-loaded", "");
  }} tabIndex={-1} />;
};

Blacksmith fully supports **GitHub Enterprise Server** (GHES) and **GitHub Enterprise Cloud with data residency** (`*.ghe.com`), in addition to github.com. To get set up on either, email our support team at [support@blacksmith.sh](mailto:support@blacksmith.sh).

## Create and install the App

Once your GitHub Enterprise instance is registered with Blacksmith, you will receive a setup link. The setup page will walk you through configuring your GitHub instance to work with Blacksmith.

<Note>
  The setup link is valid for 7 days and can be used once. Open it as a user who can create GitHub Apps on your instance and authorize apps for use in your organization.
</Note>

<div className="product-embed not-prose">
  <div className="product-embed-window">
    <div className="product-embed-screen" style={{ backgroundImage: "url(data:image/webp;base64,UklGRmAEAABXRUJQVlA4IFQEAADwIQCdASpAAcgAPtFosFGoJqSjotUYqQAaCWlu9H/pBV0aPLjD61DNsb68HeDKsYDcbfe+meNDn9AIEsri1XDTAc3DSyuLVcNMBzcNLK4iouFLDWv+7IFruAOe1k8N8W9AAP+H97QArlgeAAn4QUD4Fv1ObXcDFyygtpHlhev00H4yJpKs9eleNYoemNCULi1XUnwASCxun8a+3Pt5x/GnbJkDqZ6e9mUFTm14wwPELdxoOZo/RJ+rGRkVaYD3cWq4aceB1MoWFRw+ILpjVrGv4fXlC4tVxKtmhqMStwlmEn677G1XDTAd/nHOFEuxlLLMrakxReS5ihgqc2u4B1lsmE+3yCpza7gDm4aWVxarhpgObhpZXFgAAP79aAAHIKAySVgMUD5J02Yn4fT6plymPOFrCS6kIdpq2R+PbxUI6ovM8A7+6D8xliSZ75rrcbmx2Go4nZAvrEfksyx8TRYhoRGGDrpivelSSxEkIYGuO9YRPPvVxZzXMzdmoxP/G6IXeeLTRy7baFxJuccnyhQ8fMe/ekv3G6F2LHxgV0+iEkOh5Po/agl5DejiNMoFN0KSuwGWTeF++klUMH0AGh7bHTiBai5373DmXP36L4R4qbAjFBqHc8f4CncI3VEcBIJ4SuKos2ofoAcHi4n2qV0j9ehTOnfK3nun9XngXtNTPDHx7thk8Bnb0KBSQQt4YM9eePkSXVzoMHbbDqGjwn/++kw6cVO3Id0wbkkVyz23aqUtzrfP2GiLQtW1FOoceiptGxbthIf9zPbA4ernL+vVEyTlVsDyOb1H1NpD6/VNlPl3tIRefdm1CCvqA6BiyqtUm/I8ykqBCzzT+A5gRiZnRXs6kxATtJEZZwNHgYoAt4zJAPSnQygdTFgCY021rTy0rBC7+EoqVHKnXC9B0NncWUB2HQKE85iPzoPSotTdY4ZNxtsWbzzOgmUF02JOvjHERIPGaJbbTh/VtpTlcwP7CEVJP3XBdpveKEssfb0fESr9hDb0auXyaQsfdXuHUOnzQRoEPjTJ1ctGT+pD1AW0IDq26uJmKtByBWRyrad8U4OFw9CIzwxOT26MpVdXXg7jAPMpTtTV5iDRBnyX5vl0LZqWQZezfxyTnbhpcS6iab6O+pGzVree/JrUron7t7I8bODcVnx4RU8SUrYFXbeqEstqYQr4vajcngouiakU6F1aaVNmP5/+tH2/YOW2N28NQigU6iPbJPRIdeZxCngz2kAJQMfNsfXlmR0G4lsPBM3yv051T3qJs1Rt7E/6mxEu89ENFtyAWyaGBdnLjs4dd09C48kCqWIf9HB1Y43DozYNiz/cPeEJAg4a00gmw022q4MSNUDZ9dW/PBTfBTF6HDxguAqRIYZgNTknhlT4Ms0c5Ma7sHAcrXfVyGhCsjckZVpP2P8rZWsdCMV9mgShiRt0ctW4Xn82UL/qGCbsbdiWWHdacvGuL+wAWORtQAAAAAAA)" }}>
      <img className="product-embed-poster" src="https://mintcdn.com/blacksmith/SV-ru8kAQx8JYEYR/images/embeds/github-app-setup-connect.png?fit=max&auto=format&n=SV-ru8kAQx8JYEYR&q=85&s=20204f6aacfaae53522358786c5cdbbf" alt="Creating the Blacksmith App on a GitHub Enterprise instance, installing it, and signing in" noZoom width="1920" height="1200" data-path="images/embeds/github-app-setup-connect.png" />

      <ProductEmbed story="docs-embeds-github-app-setup--connect" title="Creating the Blacksmith App on a GitHub Enterprise instance, installing it, and signing in" />
    </div>
  </div>
</div>

<Steps>
  <Step title="Open the setup link">
    The page shows your instance's hostname and the three steps to connect it.
  </Step>

  <Step title="Create the App">
    The card names the organization that will own the Blacksmith App; it comes from the setup link support issued for you. Any organization on your instance can install the App.

    Click **Create the App**. Your instance opens GitHub's **Create GitHub App** page, prefilled with Blacksmith's app configuration. Review it and click **Create GitHub App**. GitHub sends you back to Blacksmith.
  </Step>

  <Step title="Install the App">
    Click **Install the App** and pick an organization on your instance. Repeat for each organization that should run jobs on Blacksmith. As on github.com, you can grant access to all repositories or to a selection.
  </Step>

  <Step title="Sign in to Blacksmith">
    Click **Sign in to Blacksmith**. You authenticate against your instance and land in the Blacksmith dashboard for your enterprise. Everyone on your team signs in through the same login link, `https://app.blacksmith.sh/enterprise/<enterprise-name>/login`.
  </Step>
</Steps>

## Make Blacksmith actions available

GitHub Enterprise Server can't use actions from github.com by default, so jobs that reference [`useblacksmith/*`](https://github.com/useblacksmith) actions, such as `useblacksmith/setup-docker-builder` or `useblacksmith/stickydisk`, fail until a site administrator enables them via [GitHub Connect](https://docs.github.com/en/enterprise-server@latest/admin/managing-github-actions-for-your-enterprise/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect) or imports them [manually](https://docs.github.com/en/enterprise-server@latest/admin/managing-github-actions-for-your-enterprise/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom). These actions are optional: jobs run on Blacksmith without them.

## Move your jobs to Blacksmith

Migrate your workflows with the **Migration Wizard**, as described in the [quickstart](/introduction/quickstart).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.