Getting started with GitHub Enterprise Server

Get started with setting up and managing your GitHub Enterprise Server instance.

This guide will walk you through setting up, configuring and managing your GitHub Enterprise Server instance as an enterprise administrator.

GitHub provides two ways to deploy GitHub Enterprise.

  • GitHub Enterprise Cloud
  • GitHub Enterprise Server

GitHub hosts GitHub Enterprise Cloud. You can deploy and host GitHub Enterprise Server in your own datacenter or a supported cloud provider.

For an overview of how GitHub Enterprise Server works, see "System overview."

Part 1: Installing GitHub Enterprise Server

To get started with GitHub Enterprise Server, you will need to create your enterprise account, install the instance, use the Management Console for initial setup, configure your instance, and manage billing.

1. Creating your enterprise account

Before you install GitHub Enterprise Server, you can create an enterprise account on GitHub.com by contacting GitHub's Sales team. An enterprise account on GitHub.com is useful for billing and for shared features with GitHub.com via GitHub Connect. For more information, see "About enterprise accounts."

2. Installing GitHub Enterprise Server

To get started with GitHub Enterprise Server, you will need to install the appliance on a virtualization platform of your choice. For more information, see "Setting up a GitHub Enterprise Server instance."

3. Using the Management Console

You will use the Management Console to walk through the initial setup process when first launching your GitHub Enterprise Server instance. You can also use the Management Console to manage instance settings such as the license, domain, authentication, and TLS. For more information, see "Accessing the management console."

4. Configuring your GitHub Enterprise Server instance

In addition to the Management Console, you can use the site admin dashboard and the administrative shell (SSH) to manage your GitHub Enterprise Server instance. For example, you can configure applications and rate limits, view reports, use command-line utilities. For more information, see "Configuring your enterprise."

You can use the default network settings used by GitHub Enterprise Server via the dynamic host configuration protocol (DHCP), or you can also configure the network settings using the virtual machine console. You can also configure a proxy server or firewall rules. For more information, see "Configuring network settings."

5. Configuring high availability

You can configure your GitHub Enterprise Server instance for high availability to minimize the impact of hardware failures and network outages. For more information, see "Configuring high availability."

6. Setting up a staging instance

You can set up a staging instance to test modifications, plan for disaster recovery, and try out updates before applying them to your GitHub Enterprise Server instance. For more information, see "Setting up a staging instance."

7. Designating backups and disaster recovery

To protect your production data, you can configure automated backups of your GitHub Enterprise Server instance with GitHub Enterprise Server Backup Utilities. For more information, see "Configuring backups on your appliance."

8. Managing billing for your enterprise

Billing for all the organizations and GitHub Enterprise Server instances connected to your enterprise account is aggregated into a single bill charge for all of your paid GitHub.com services. Enterprise owners and billing managers can access and manage billing settings for enterprise accounts. For more information, see "Managing billing for your enterprise."

Part 2: Organizing and managing your team

As an enterprise owner or administrator, you can manage settings on user, repository, team and organization levels. You can manage members of your enterprise, create and manage organizations, set policies for repository management, and create and manage teams.

1. Managing members of your GitHub Enterprise Server instance

You can manage settings and audit activity for the members of your GitHub Enterprise Server instance. You can promote an enterprise member to be a site administrator, manage dormant users, view the audit log for user activity, and customize messages that enterprise members will see. For more information, see "Managing users in your enterprise."

2. Creating organizations

You can create new organizations in your GitHub Enterprise Server instance to reflect your company or group's structure. For more information, see "Creating a new organization from scratch."

3. Adding members to organizations

You can add members to organizations in your GitHub Enterprise Server instance as long as you are an organization owner in the organizations you want to manage. You can also configure visibility of organization membership. For more information, see "Adding people to your organization" and "Configuring visibility for organization membership."

4. Creating teams

Teams are groups of organization members that can be granted permissions to specific repositories as a group. You can create individual teams or multiple levels of nested teams in each of your organizations. For more information, see "Creating teams" and "Adding people to teams."

5. Setting organization and repository permission levels

We recommend giving a limited number of members in each organization an organization owner role, which provides complete administrative access for that organization. For more information, see "Permission levels for an organization."

For organizations where you have admin permissions, you can also customize access to each repository with granular permission levels. For more information, see "Repository permissions levels for an organization."

6. Enforcing repository management policies

As an enterprise owner, you can set repository management policies for all organizations in your GitHub Enterprise Server instance, or allow policies to be set separately in each organization. For more information, see "Enforcing repository management policies in your enterprise."

Part 3: Building securely

To increase the security of your GitHub Enterprise Server instance, you can configure authentication for enterprise members, use tools and audit logging to stay in compliance, configure security and analysis features for your organizations, and optionally enable GitHub Advanced Security.

1. Authenticating enterprise members

You can use GitHub Enterprise Server's built-in authentication method, or you can choose between an established authentication provider, such as CAS, LDAP, or SAML, to integrate your existing accounts and centrally manage user access to your GitHub Enterprise Server instance. For more information, see "Authenticating users for your GitHub Enterprise Server instance."

You can also require two-factor authentication for each of your organizations. For more information, see "Requiring two factor authentication for an organization."

2. Staying in compliance

You can implement required status checks and commit verifications to enforce your organization's compliance standards and automate compliance workflows. You can also use the audit log for your organization to review actions performed by your team. For more information, see "Enforcing policy with pre-receive hooks" and "Audit logging."

3. Configuring security features for your organizations

To keep the organizations in your GitHub Enterprise Server instance secure, you can use a variety of GitHub security features, including security policies, dependency graphs, secret scanning and Dependabot security and version updates. For more information, see "Securing your organization" and "Managing security and analysis settings for your organization."

4. Enabling GitHub Advanced Security features

You can upgrade your GitHub Enterprise Server license to include GitHub Advanced Security. This provides extra features that help users find and fix security problems in their code, such as code and secret scanning. For more information, see "GitHub Advanced Security for your enterprise."

Part 4: Customizing and automating your enterprise's work on GitHub

You can customize and automate work in organizations in your enterprise with GitHub and OAuth Apps, GitHub API, GitHub Actions, GitHub Packages , and GitHub Pages.

1. Building GitHub Apps and OAuth Apps

You can build integrations with the GitHub API, such as GitHub Apps or OAuth Apps, for use in organizations in your enterprise to complement and extend your workflows. For more information, see "About apps."

2. Using the GitHub API

There are two versions of the GitHub API: the REST API and the GraphQL API. You can use the GitHub APIs to automate common tasks, back up your data, or create integrations that extend GitHub Enterprise Server. For more information, see "About GitHub's APIs."

3. Building GitHub Actions

With GitHub Actions, you can automate and customize your GitHub Enterprise Server instance's development workflow on GitHub Enterprise Server. You can create your own actions, and use and customize actions shared by the GitHub community. For more information, see "Learn GitHub Actions."

For more information on enabling and configuring GitHub Actions on GitHub Enterprise Server, see "Getting started with GitHub Actions for GitHub Enterprise Server."

4. Publishing and managing GitHub Packages

GitHub Packages is a software package hosting service that allows you to host your software packages privately or publicly and use packages as dependencies in your projects. For more information, see “Introduction to GitHub Packages."

For more information on enabling and configuring GitHub Packages for your GitHub Enterprise Server instance, see "Getting started with GitHub Packages for your enterprise."

5. Using GitHub Pages

GitHub Pages is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository and publishes a website. You can enable or disable GitHub Pages for your enterprise members at the organization level. For more information, see "Configuring GitHub Pages for your enterprise" and "About GitHub Pages."

Part 5: Connecting with other GitHub resources

You can use GitHub Connect and GitHub Insights to share resources and understand and improve your processes.

1. Enabling GitHub Connect

If you are the owner of both a GitHub Enterprise Server instance and a GitHub Enterprise Cloud organization or enterprise account, you can enable GitHub Connect. GitHub Connect allows you to share specific workflows and features between your GitHub Enterprise Server instance and GitHub Enterprise Cloud, such as unified search and contributions. For more information, see "Connecting GitHub Enterprise Server to GitHub Enterprise Cloud."

2. Using GitHub Insights

GitHub Insights is a standalone application that provides analytic reports and metrics based on data from your GitHub Enterprise Server instance. You can use these reports to understand and improve your software delivery process. For more information, see "About GitHub Insights."

Part 6: Using GitHub's learning and support resources

Your enterprise members can learn more about Git and GitHub with our learning resources, and you can get the support you need when setting up and managing your GitHub Enterprise Server instance with GitHub Enterprise Support.

1. Learning with GitHub Learning Lab

Your enterprise members can learn new skills by completing fun, realistic projects in their very own GitHub repository with GitHub Learning Lab. Each course is a hands-on lesson created by the GitHub community and taught by the friendly Learning Lab bot.

For more information, see “Git and GitHub learning resources."

2. Working with GitHub Enterprise Support

GitHub Enterprise Server includes access to GitHub Enterprise Support. GitHub Enterprise Support can help you troubleshoot issues that come up on GitHub Enterprise Server. You can also choose to sign up for GitHub Premium Support for additional features. For more information, see "About GitHub Enterprise Support."

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.