This version of GitHub Enterprise Server was discontinued on 2024-03-26. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise Server. For help with the upgrade, contact GitHub Enterprise support.
Guides for GitHub Enterprise
Learn how to increase developer productivity and code quality with GitHub Enterprise Server.
Enterprise administrators learning paths
Deploy an instance
Install GitHub Enterprise Server on your platform of choice and configure SAML authentication.
Start learning path- OverviewSystem overview
- How-to guideInstalling GitHub Enterprise
- How-to guideAdministering your instance from the web UI
- How-to guideConfiguring the hostname for your instance
- Using SAML for enterprise IAM
Upgrade your instance
Test upgrades in staging, notify users of maintenance, and upgrade your instance for the latest features and security updates.
Start learning path- How-to guideEnabling automatic update checks
- How-to guideSetting up a staging instance
- ReferenceUpgrade requirements
- How-to guideCustomizing user messages for your enterprise
- How-to guideEnabling and scheduling maintenance mode
- How-to guideUpgrading GitHub Enterprise Server
Adopt GitHub Actions for your enterprise
Learn how to plan and implement a rollout of GitHub Actions in your enterprise.
Start learning path- OverviewAbout GitHub Actions for enterprises
- OverviewUnderstanding GitHub Actions
- How-to guideIntroducing GitHub Actions to your enterprise
- How-to guideMigrating your enterprise to GitHub Actions
- How-to guideGetting started with GitHub Actions for GitHub Enterprise Server
- QuickstartGetting started with self-hosted runners for your enterprise
- OverviewSecurity hardening for GitHub Actions
Increase the fault tolerance of your instance
Back up your developers' code and configure high availability (HA) to ensure the reliability of GitHub Enterprise Server in your environment.
Start learning path- How-to guideAccessing the administrative shell (SSH)
- How-to guideConfiguring backups on your instance
- OverviewAbout high availability configuration
- How-to guideCreating a high availability replica
- How-to guideUsing GitHub Enterprise Server with a load balancer
Improve the security of your instance
Review network configuration and security features, and harden the instance running GitHub Enterprise Server to protect your enterprise's data.
Start learning path- How-to guideEnabling private mode
- How-to guideConfiguring TLS
- How-to guideTroubleshooting TLS errors
- How-to guideEnabling subdomain isolation
- How-to guideAccessing the administrative shell (SSH)
- ReferenceNetwork ports
- How-to guideConfiguring built-in firewall rules
- ReferenceBest practices for user security
- How-to guidePromoting or demoting a site administrator
Configure GitHub Actions
Allow your developers to create, automate, customize, and execute powerful software development workflows for your GitHub Enterprise Server instance with GitHub Actions.
Start learning path- How-to guideGetting started with GitHub Actions for GitHub Enterprise Server
- How-to guideEnforcing policies for GitHub Actions in your enterprise
- How-to guideEnabling automatic access to GitHub.com actions using GitHub Connect
- ReferenceHigh availability for GitHub Actions
- How-to guideBacking up and restoring GitHub Enterprise Server with GitHub Actions enabled
- How-to guideUsing a staging environment
Configure GitHub Advanced Security
Improve the quality and security of your developers' code with GitHub Advanced Security.
Start learning path- OverviewAbout billing for GitHub Advanced Security
- How-to guideEnabling GitHub Advanced Security for your enterprise
- How-to guideConfiguring code scanning for your appliance
- How-to guideConfiguring dependency review for your appliance
- How-to guideConfiguring secret scanning for your appliance
- How-to guideEnforcing policies for code security and analysis for your enterprise
- Allowing built-in authentication for users outside your providerHow-to guide- You can configure fallback authentication to allow built-in authentication for people who don't have an account on your CAS, LDAP, or SAML authentication provider. - Accounts
- Authentication
- Enterprise
- Identity
 
- Changing authentication methodsOverview- You can change the way GitHub Enterprise Server authenticates with your existing accounts at any time. - Accounts
- Authentication
- Enterprise
- Identity
 
- Configuring authentication and provisioning for your enterprise using Entra IDHow-to guide- You can use a tenant in Microsoft Entra ID (previously known as Azure AD) as an identity provider (IdP) to centrally manage authentication and user provisioning for your GitHub Enterprise Server instance. - Accounts
- Authentication
- Enterprise
- Identity
- SSO
 
- Configuring SAML single sign-on for your enterpriseHow-to guide- You can control and secure access to your GitHub Enterprise Server instance by configuring SAML single sign-on (SSO) through your identity provider (IdP). - Accounts
- Authentication
- Enterprise
- Identity
- SSO
 
- Configuring user provisioning with SCIM for your enterpriseHow-to guide- You can configure System for Cross-domain Identity Management (SCIM) for your GitHub Enterprise Server instance, which automatically provisions user accounts when you assign the application for your instance to a user on your identity provider (IdP). - Accounts
- Authentication
- Enterprise
- Identity
- SSO
 
- About SAML for enterprise IAMOverview- You can use SAML single sign-on (SSO) to centrally manage access to your GitHub Enterprise Server instance. - Accounts
- Access management
- Authentication
- Enterprise
- Identity
 
- Using CASHow-to guide- If you use Central Authentication Service (CAS) to centralize access to multiple web applications, you can integrate GitHub Enterprise Server by configuring CAS authentication for your instance. - Accounts
- Authentication
- Enterprise
- Identity
- SSO
 
- Using LDAPHow-to guide- If you use Lightweight Directory Access Protocol (LDAP) to centralize access across applications, you can integrate GitHub Enterprise Server by configuring LDAP authentication for your instance. - Accounts
- Authentication
- Enterprise
- Identity
 
- Using SAML for enterprise IAM- You can centrally manage accounts and access to your GitHub Enterprise Server instance with SAML single sign-on (SSO). 
- Accessing the administrative shell (SSH)How-to guide- SSH access allows you to run the GitHub Enterprise Server command line utilities to troubleshoot, run backups, and configure replication. - Enterprise
- Fundamentals
- SSH
 
- Configuring the hostname for your instanceHow-to guide- You can provide reliable access to your GitHub Enterprise Server instance by assigning a hostname that's accessible over your network. - Enterprise
- Fundamentals
- Infrastructure
 
- Changing the hostname for your instanceHow-to guide- If you want to change the hostname for an existing GitHub Enterprise Server instance, you must restore the settings and data to a new instance. - Enterprise
- Fundamentals
- Infrastructure
 
- Configuring backups on your instanceHow-to guide- As part of a disaster recovery plan, you can protect production data on your GitHub Enterprise Server instance by configuring automated backups. - Backups
- Enterprise
- Fundamentals
- Infrastructure
 
- Configuring built-in firewall rulesHow-to guide- You can view default firewall rules and customize rules for your GitHub Enterprise Server instance. - Enterprise
- Fundamentals
- Infrastructure
- Networking
 
- Configuring code scanning for your applianceHow-to guide- You can enable, configure, and disable code scanning for GitHub Enterprise Server. Code scanning allows users to scan code for vulnerabilities and errors. - Advanced Security
- Code scanning
- Enterprise
- Security
 
- Configuring dependency review for your applianceHow-to guide- To help users understand dependency changes when reviewing pull requests, you can enable, configure, and disable dependency review for your GitHub Enterprise Server instance. - Advanced Security
- Enterprise
- Dependency review
- Security
 
- Configuring DNS nameserversHow-to guide- GitHub Enterprise Server uses the dynamic host configuration protocol (DHCP) for DNS settings when DHCP leases provide nameservers. If nameservers are not provided by a dynamic host configuration protocol (DHCP) lease, or if you need to use specific DNS settings, you can specify the nameservers manually. - Enterprise
- Fundamentals
- Infrastructure
- Networking
 
- Configuring rate limitsHow-to guide- You can set rate limits for GitHub Enterprise Server using the Management Console. - Enterprise
- Infrastructure
- Performance
 
- Configuring secret scanning for your applianceHow-to guide- You can enable, configure, and disable secret scanning for your GitHub Enterprise Server instance. Secret scanning allows users to scan code for accidentally committed secrets. - Advanced Security
- Enterprise
- Secret scanning
- Security
 
- Configuring TLSHow-to guide- You can configure Transport Layer Security (TLS) on your GitHub Enterprise Server instance so that you can use a certificate that is signed by a trusted certificate authority. - Enterprise
- Fundamentals
- Infrastructure
- Networking
- Security
 
- Verifying or approving a domain for your enterpriseHow-to guide- You can verify your ownership of domains with GitHub to confirm the identity of organizations owned by your enterprise account. You can also approve domains where organization members can receive email notifications. - Enterprise
- Notifications
- Organizations
- Policy
 
- Managing GitHub Mobile for your enterpriseHow-to guide- You can decide whether people can use GitHub Mobile to connect to your GitHub Enterprise Server instance. - Enterprise
- Mobile
 
- Configuring SSH connections to your instanceHow-to guide- You can increase the security of your GitHub Enterprise Server instance by configuring the SSH algorithms that clients can use to establish a connection. - Authentication
- Enterprise
- Infrastructure
- Networking
- Security
- SSH
 
- Configuring host keys for your instanceHow-to guide- You can increase the security of your GitHub Enterprise Server instance by configuring the algorithms that your instance uses to generate and advertise host keys for incoming SSH connections. - Authentication
- Enterprise
- Infrastructure
- Networking
- Security
- SSH
 
- Enabling and scheduling maintenance modeHow-to guide- Some standard maintenance procedures, such as upgrading your GitHub Enterprise Server instance or restoring backups, require the instance to be taken offline for normal use. - Enterprise
- Fundamentals
- Maintenance
- Upgrades
 
- Enabling automatic user license sync for your enterpriseHow-to guide- You can manage license usage across your GitHub Enterprise environments by automatically syncing user licenses from your GitHub Enterprise Server instance to GitHub Enterprise Cloud. - Enterprise
- GitHub Connect
- Licensing
 
- Enabling private modeHow-to guide- In private mode, GitHub Enterprise Server requires every user to sign in to access the installation. - Access management
- Authentication
- Enterprise
- Fundamentals
- Infrastructure
- Networking
- Privacy
- Security
 
- Enabling subdomain isolationHow-to guide- You can set up subdomain isolation to securely separate user-supplied content from other portions of your GitHub Enterprise Server appliance. - Enterprise
- Fundamentals
- Infrastructure
- Networking
- Security
 
- Enabling unified contributions for your enterpriseHow-to guide- You can allow users to include anonymized contribution counts for their work on your GitHub Enterprise Server instance in their contribution graphs on GitHub.com. - Enterprise
- GitHub Connect
 
- Enabling unified search for your enterpriseHow-to guide- You can allow users to include repositories on GitHub.com in their search results when searching from your GitHub Enterprise Server instance. - Enterprise
- GitHub Connect
- GitHub search
 
- Network portsReference- Open network ports selectively based on the network services you need to expose for administrators, end users, and email support. - Enterprise
- Infrastructure
- Networking
- Security
 
- Administering your instance from the web UIHow-to guide- To perform administrative tasks for your GitHub Enterprise Server instance, you can use the Management Console and site admin dashboard. - Enterprise
 
- Troubleshooting TLS errorsHow-to guide- If you run into TLS issues with your appliance, you can take actions to resolve them. - Enterprise
- Errors
- Infrastructure
- Networking
- Security
- Troubleshooting
 
- Using GitHub Enterprise Server with a load balancerHow-to guide- Use a load balancer in front of a single GitHub Enterprise Server instance or a pair of instances in a High Availability configuration. - Enterprise
- High availability
- Infrastructure
- Networking
 
- About high availability configurationOverview- In a high availability configuration, a fully redundant secondary GitHub Enterprise Server appliance is kept in sync with the primary appliance through replication of all major datastores. - Enterprise
- High availability
- Infrastructure
 
- Accessing the monitor dashboardHow-to guide- GitHub Enterprise Server includes a web-based monitoring dashboard that displays historical data about your GitHub Enterprise Server appliance, such as CPU and storage usage, application and authentication response times, and general system health. - Enterprise
- Fundamentals
- Infrastructure
- Monitoring
- Performance
 
- Creating a high availability replicaHow-to guide- In an active/passive configuration, the replica appliance is a redundant copy of the primary appliance. If the primary appliance fails, high availability mode allows the replica to act as the primary appliance, allowing minimal service disruption. - Enterprise
- High availability
- Infrastructure
 
- Differences between clustering and high availability (HA)Reference- Learn about the differences between deployment topologies for the virtual machines (VMs) that comprise a GitHub Enterprise Server instance. - Clustering
- Enterprise
- High availability
- Infrastructure
 
- Enabling automatic update checksHow-to guide- You can enable automatic update checks so that your GitHub Enterprise Server instance checks for and downloads the latest GitHub Enterprise Server release. - Enterprise
- Upgrades
 
- Initiating a failover to your replica applianceHow-to guide- You can failover to a GitHub Enterprise Server replica appliance using the command line for maintenance and testing, or if the primary appliance fails. - Enterprise
- High availability
- Infrastructure
 
- Recommended alert thresholdsReference- You can configure an alert to notify you of system resource issues before they affect your GitHub Enterprise Server appliance's performance. - Enterprise
- Infrastructure
- Monitoring
- Performance
- Storage
 
- Setting up external monitoringHow-to guide- You can monitor basic system resources on your GitHub Enterprise Server appliance using either the SNMP or collectd statistics collection protocols. - Enterprise
- Infrastructure
- Monitoring
- Performance
 
- Upgrade requirementsReference- Before upgrading GitHub Enterprise Server, review these recommendations and requirements to plan your upgrade strategy. - Enterprise
- Upgrades
 
- Upgrading GitHub Enterprise ServerHow-to guide- Upgrade GitHub Enterprise Server to get the latest features and security updates. - Enterprise
- Upgrades
 
- About system logsOverview- To help administrators understand activity and errors, GitHub Enterprise Server stores system logs. - Auditing
- Enterprise
- Logging
- Security
 
- About GitHub Support- You can contact GitHub Support for help troubleshooting issues you encounter while using GitHub. - Support
 
- About using actions in your enterpriseOverview- GitHub Enterprise Server includes most GitHub-authored actions, and has options for enabling access to other actions from GitHub.com and GitHub Marketplace. - Actions
- Enterprise
 
- Backing up and restoring GitHub Enterprise Server with GitHub Actions enabledHow-to guide- To restore a backup of your GitHub Enterprise Server instance when GitHub Actions is enabled, you must configure GitHub Actions before restoring the backup with GitHub Enterprise Server Backup Utilities. - Actions
- Backups
- Enterprise
- Infrastructure
 
- Enabling automatic access to GitHub.com actions using GitHub ConnectHow-to guide- To allow GitHub Actions in your enterprise to use actions from GitHub.com, you can connect your enterprise instance to GitHub Enterprise Cloud. - Actions
- Enterprise
- GitHub Connect
 
- Enforcing policies for GitHub Actions in your enterpriseHow-to guide- You can enforce policies for GitHub Actions within your enterprise's organizations, or allow policies to be set in each organization. - Actions
- Enterprise
- Policies
 
- Getting started with GitHub Actions for GitHub Enterprise ServerHow-to guide- Learn about enabling and configuring GitHub Actions on GitHub Enterprise Server for the first time. - Actions
- Enterprise
 
- High availability for GitHub ActionsReference- There are some special considerations for administering GitHub Actions in a high availability configuration. - Actions
- Enterprise
- High availability
- Infrastructure
- Storage
 
- Using a staging environmentHow-to guide- Learn about using GitHub Actions with GitHub Enterprise Server staging instances. - Actions
- Enterprise
- Infrastructure
- Upgrades
 
- About enterprise accountsOverview- With GitHub Enterprise Server, you can use an enterprise account to give administrators a single point of visibility and management. - Accounts
- Enterprise
- Fundamentals
 
- About upgrades to new releasesOverview- You can benefit from new features and bug fixes for GitHub Enterprise Server by upgrading your enterprise to a newly released version. - Enterprise
- Upgrades
 
- Configuring package ecosystem support for your enterpriseHow-to guide- You can configure GitHub Packages for your enterprise by globally enabling or disabling individual package ecosystems on your enterprise, including Container registry, Docker, and npm. Learn about other configuration requirements to support specific package ecosystems. - Enterprise
- Packages
 
- Quickstart for configuring your MinIO storage bucket for GitHub PackagesQuickstart- Configure your custom MinIO storage bucket for use with GitHub Packages. - Packages
- Enterprise
- Storage
 
- About pre-receive hooksOverview- Pre-receive hooks are scripts that run on the GitHub Enterprise Server appliance that you can use to implement quality checks. - Enterprise
- Policies
- Pre-receive hooks
 
- Creating a pre-receive hook environmentHow-to guide- To execute pre-receive hooks, use either the default pre-receive environment, or create a custom environment. - Enterprise
- Policies
- Pre-receive hooks
 
- Creating a pre-receive hook scriptHow-to guide- Use pre-receive hook scripts to create requirements for accepting or rejecting a push based on the contents. - Enterprise
- Policies
- Pre-receive hooks
 
- Enforcing policies for code security and analysis for your enterpriseHow-to guide- You can enforce policies to manage the use of code security and analysis features within your enterprise's organizations. - Advanced Security
- Code scanning
- Enterprise
- Policies
- Secret scanning
- Security
 
- Enforcing policies for security settings in your enterpriseHow-to guide- You can enforce policies to manage security settings in your enterprise's organizations, or allow policies to be set in each organization. - Enterprise
- Policies
- Security
 
- Enforcing policies for projects in your enterpriseHow-to guide- You can enforce policies for projects and projects (classic) within your enterprise's organizations, or allow policies to be set in each organization. - Enterprise
- Policies
- Projects
 
- Enforcing repository management policies in your enterpriseHow-to guide- You can enforce policies for repository management within your enterprise's organizations, or allow policies to be set in each organization. - Enterprise
- Policies
- Repositories
- Security
 
- Enforcing team policies in your enterpriseHow-to guide- You can enforce policies for teams in your enterprise's organizations, or allow policies to be set in each organization. - Enterprise
- Policies
- Teams
 
- Restricting email notifications for your enterpriseHow-to guide- You can prevent your enterprise's information from leaking into personal email accounts by restricting the domains where members can receive email notifications about activity in organizations owned by your enterprise. - Enterprise
- Notifications
- Organizations
- Policies
 
- Managing pre-receive hooks on your instanceHow-to guide- Configure how people will use pre-receive hooks on your GitHub Enterprise Server instance. - Enterprise
- Policies
- Pre-receive hooks
 
- Auditing SSH keysHow-to guide- Site administrators can initiate an instance-wide audit of SSH keys. - Auditing
- Enterprise
- Security
- SSH
 
- Auditing users across your enterpriseHow-to guide- The audit log dashboard shows site administrators the actions performed by all users and organizations across your enterprise within the last 180 days. The audit log includes details such as who performed the action, what the action was, and when the action was performed. - Auditing
- Enterprise
- Organizations
- Security
- User account
 
- Configuring Git Large File Storage for your enterpriseHow-to guide- Git Large File Storage (Git LFS) is an open source extension to Git that allows you to work with large files the same way as other text files. - Git
- Enterprise
- LFS
- Storage
 
- Configuring visibility for organization membershipHow-to guide- You can set visibility for new organization members across your enterprise to public or private. You can also prevent members from changing their visibility from the default. - Enterprise
- Organizations
- User account
 
- Continuous integration using JenkinsReference- You can automatically trigger build jobs on a Jenkins server when pushes are made to a repository in your GitHub Enterprise Server instance. - CI
- Enterprise
 
- Disabling Git SSH access on your enterpriseHow-to guide- You can prevent people from using Git over SSH for certain or all repositories on your enterprise. - Enterprise
- Policies
- Security
- SSH
 
- Managing dormant usersHow-to guide- By default, a user account is considered to be dormant if it has not been active for 90 days. You can configure the length of time a user must be inactive to be considered dormant and choose to suspend dormant users to release user licenses. - Accounts
- Enterprise
- Licensing
 
- About the audit log for your enterpriseOverview- To support debugging and internal and external compliance, GitHub Enterprise Server provides logs of audited system, user, organization, and repository events. - Auditing
- Enterprise
- Logging
- Security
 
- Accessing the audit log for your enterpriseHow-to guide- You can view aggregated actions from all of the organizations owned by an enterprise account in the enterprise's audit log. - Auditing
- Enterprise
- Logging
 
- Searching the audit log for your enterpriseHow-to guide- You can search an extensive list of audited actions in your enterprise. - Auditing
- Enterprise
- Logging
 
- Configuring the audit log for your enterpriseHow-to guide- You can configure settings for your enterprise's audit log. - Auditing
- Enterprise
- Logging
 
- Streaming the audit log for your enterpriseTutorial- You can stream audit and Git events data from GitHub to an external data management system. - Auditing
- Enterprise
- Logging
- Organizations
 
- Using the audit log API for your enterpriseTutorial- You can programmatically retrieve enterprise events with the REST API. - Auditing
- Enterprise
- Logging
- API
 
- Audit log events for your enterpriseReference- Learn about audit log events recorded for your enterprise. - Auditing
- Enterprise
- Logging
- Security
 
- Activity dashboard- The Activity dashboard gives you an overview of all the activity in your enterprise. - Enterprise
 
- Viewing push logsHow-to guide- Site administrators can view a list of Git push operations for any repository on the enterprise. - Auditing
- Enterprise
- Git
- Logging
 
- Log forwardingHow-to guide- GitHub Enterprise Server uses syslog-ng to forward system and application logs to the server you specify. - Auditing
- Enterprise
- Logging
- Security
 
- Managing global webhooksHow-to guide- You can configure global webhooks to notify external web servers when events occur within your enterprise. - Enterprise
- Webhooks
 
- Managing projects using JiraHow-to guide- You can integrate Jira with GitHub Enterprise Server for project management. - Enterprise
- Project management
 
- Inviting people to manage your enterpriseHow-to guide- You can add and remove enterprise owners for your enterprise account. - Administrator
- Enterprise
- User account
 
- Roles in an enterprise- Everyone in an enterprise is a member of the enterprise. To control access to your enterprise's settings and data, you can assign different roles to members of your enterprise. - Enterprise
 
- Viewing people in your enterprise- To audit access to enterprise-owned resources or user license usage, enterprise owners can view every administrator and member of the enterprise. - Enterprise
 
- Placing a legal hold on a user or organizationHow-to guide- You can place a legal hold on a user or organization to ensure that repositories they own cannot be permanently removed from your enterprise. - Accounts
- Auditing
- Enterprise
- Organizations
- User account
 
- Preventing users from creating organizationsHow-to guide- You can prevent users from creating organizations in your enterprise. - Enterprise
- Organizations
- Policies
 
- Rebuilding contributions dataHow-to guide- You may need to rebuild contributions data to link existing commits to a user account. - Enterprise
- Repositories
- User account
 
- Requiring two-factor authentication for an organizationHow-to guide- You can require organization members and outside collaborators to enable two-factor authentication for their personal accounts in an organization, making it harder for malicious actors to access an organization's repositories and settings. - 2FA
- Enterprise
- Organizations
- Policies
- Security
 
- Suspending and unsuspending usersHow-to guide- If a user leaves or moves to a different part of the company, you should remove or modify their ability to access your GitHub Enterprise Server instance. - Access management
- Enterprise
- Security
- User account
 
- Restoring a deleted organizationHow-to guide- You can partially restore an organization that was previously deleted on your GitHub Enterprise Server instance. - Administrator
- Enterprise
- Organizations
 
- About the Management ConsoleOverview- From the Management Console, you can initialize, configure, and monitor your GitHub Enterprise Server instance. - Administrator
- Enterprise
- Fundamentals
- Networking
- Monitoring
 
- Managing access to the Management ConsoleHow-to guide- You can increase the security of your GitHub Enterprise Server instance by creating or deleting Management Console users. As the root site administrator, you can access the Management Console as well as configure Management Console authentication rate limits. - Enterprise
- Authentication
- SSH
- User account
 
- Accessing the Management ConsoleHow-to guide- You can access the Management Console as the root site administrator or a Management Console user. - Enterprise
- Authentication
 
- Troubleshooting access to the Management ConsoleHow-to guide- You can troubleshoot access problems for the Management Console. - Enterprise
- Authentication
- SSH
- Troubleshooting