This version of GitHub Enterprise Server was discontinued on 2023-09-25. 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
 - ReferenceSite admin dashboard
 
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 provider
How-to guideYou 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 methods
OverviewYou can change the way GitHub Enterprise Server authenticates with your existing accounts at any time.
- Accounts
 - Authentication
 - Enterprise
 - Identity
 
Configuring SAML single sign-on for your enterprise
How-to guideYou 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
 
About SAML for enterprise IAM
OverviewYou can use SAML single sign-on (SSO) to centrally manage access to your GitHub Enterprise Server instance.
- Accounts
 - Access management
 - Authentication
 - Enterprise
 - Identity
 
Using CAS
How-to guideIf 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 LDAP
How-to guideIf 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 guideSSH access allows you to run the GitHub Enterprise Server command line utilities to troubleshoot, run backups, and configure replication.
- Enterprise
 - Fundamentals
 - SSH
 
Administering your instance from the web UI
How-to guideTo perform administrative tasks for your GitHub Enterprise Server instance, you can use the Management Console and site admin dashboard.
- Enterprise
 
Configuring the hostname for your instance
How-to guideYou 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 instance
How-to guideIf 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 instance
How-to guideAs 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 rules
How-to guideYou can view default firewall rules and customize rules for your GitHub Enterprise Server instance.
- Enterprise
 - Fundamentals
 - Infrastructure
 - Networking
 
Configuring code scanning for your appliance
How-to guideYou can enable, configure and disable code scanning for your GitHub Enterprise Server instance. Code scanning allows users to scan code for vulnerabilities and errors.
- Advanced Security
 - Code scanning
 - Enterprise
 - Security
 
Configuring dependency review for your appliance
How-to guideTo 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 nameservers
How-to guideGitHub 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 limits
How-to guideYou can set rate limits for GitHub Enterprise Server using the Management Console.
- Enterprise
 - Infrastructure
 - Performance
 
Configuring secret scanning for your appliance
How-to guideYou 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 TLS
How-to guideYou 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 enterprise
How-to guideYou 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 enterprise
How-to guideYou can decide whether people can use GitHub Mobile to connect to your GitHub Enterprise Server instance.
- Enterprise
 - Mobile
 
Configuring SSH connections to your instance
How-to guideYou 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 instance
How-to guideYou 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 mode
How-to guideSome 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 enterprise
How-to guideYou 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 mode
How-to guideIn 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 isolation
How-to guideYou 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 enterprise
How-to guideYou 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 enterprise
How-to guideYou 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 ports
ReferenceOpen network ports selectively based on the network services you need to expose for administrators, end users, and email support.
- Enterprise
 - Infrastructure
 - Networking
 - Security
 
Site admin dashboard
ReferenceYou can use the site admin dashboard to manage users, organizations, and repositories on your GitHub Enterprise Server instance.
- Enterprise
 - Fundamentals
 
Troubleshooting TLS errors
How-to guideIf 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 balancer
How-to guideUse 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 configuration
OverviewIn 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 dashboard
How-to guideGitHub 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 replica
How-to guideIn 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)
ReferenceLearn 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 checks
How-to guideYou 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 appliance
How-to guideYou 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 thresholds
ReferenceYou 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 monitoring
How-to guideYou 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 requirements
ReferenceBefore upgrading GitHub Enterprise Server, review these recommendations and requirements to plan your upgrade strategy.
- Enterprise
 - Upgrades
 
Upgrading GitHub Enterprise Server
How-to guideUpgrade GitHub Enterprise Server to get the latest features and security updates.
- Enterprise
 - Upgrades
 
About system logs
OverviewTo 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 enterprise
OverviewGitHub 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 enabled
How-to guideTo 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 Connect
How-to guideTo 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 enterprise
How-to guideYou 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 Server
How-to guideLearn about enabling and configuring GitHub Actions on GitHub Enterprise Server for the first time.
- Actions
 - Enterprise
 
High availability for GitHub Actions
ReferenceThere are some special considerations for administering GitHub Actions in a high availability configuration.
- Actions
 - Enterprise
 - High availability
 - Infrastructure
 - Storage
 
Using a staging environment
How-to guideLearn about using GitHub Actions with GitHub Enterprise Server staging instances.
- Actions
 - Enterprise
 - Infrastructure
 - Upgrades
 
About enterprise accounts
OverviewWith 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 releases
OverviewYou 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 enterprise
How-to guideYou 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 Packages
QuickstartConfigure your custom MinIO storage bucket for use with GitHub Packages.
- Packages
 - Enterprise
 - Storage
 
About pre-receive hooks
OverviewPre-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 environment
How-to guideTo 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 script
How-to guideUse 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 enterprise
How-to guideYou can enforce policies to manage the use of GitHub Advanced Security features within your enterprise's organizations.
- Advanced Security
 - Code scanning
 - Enterprise
 - Policies
 - Secret scanning
 - Security
 
Enforcing policies for security settings in your enterprise
How-to guideYou 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 enterprise
How-to guideYou can enforce policies for project boards within your enterprise's organizations, or allow policies to be set in each organization.
- Enterprise
 - Policies
 - Projects
 
Enforcing repository management policies in your enterprise
How-to guideYou 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 enterprise
How-to guideYou 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 enterprise
How-to guideYou 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 instance
How-to guideConfigure how people will use pre-receive hooks on your GitHub Enterprise Server instance.
- Enterprise
 - Policies
 - Pre-receive hooks
 
Auditing SSH keys
How-to guideSite administrators can initiate an instance-wide audit of SSH keys.
- Auditing
 - Enterprise
 - Security
 - SSH
 
Auditing users across your enterprise
How-to guideThe audit log dashboard shows site administrators the actions performed by all users and organizations across your enterprise within the current month and previous six months. 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 enterprise
How-to guideGit 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 membership
How-to guideYou 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 Jenkins
ReferenceYou 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 enterprise
How-to guideYou can prevent people from using Git over SSH for certain or all repositories on your enterprise.
- Enterprise
 - Policies
 - Security
 - SSH
 
Managing dormant users
How-to guideBy 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 enterprise
OverviewTo 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 enterprise
How-to guideYou 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 enterprise
How-to guideYou can search an extensive list of audited actions in your enterprise.
- Auditing
 - Enterprise
 - Logging
 
Configuring the audit log for your enterprise
How-to guideYou can configure settings for your enterprise's audit log.
- Auditing
 - Enterprise
 - Logging
 
Streaming the audit log for your enterprise
TutorialYou 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 enterprise
TutorialYou can programmatically retrieve enterprise events with the REST API.
- Auditing
 - Enterprise
 - Logging
 - API
 
Audit log events for your enterprise
ReferenceLearn 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 logs
How-to guideSite administrators can view a list of Git push operations for any repository on the enterprise.
- Auditing
 - Enterprise
 - Git
 - Logging
 
Log forwarding
How-to guideGitHub Enterprise Server uses syslog-ng to forward system and application logs to the server you specify.
- Auditing
 - Enterprise
 - Logging
 - Security
 
Managing global webhooks
How-to guideYou can configure global webhooks to notify external web servers when events occur within your enterprise.
- Enterprise
 - Webhooks
 
Managing projects using Jira
How-to guideYou can integrate Jira with GitHub Enterprise Server for project management.
- Enterprise
 - Project management
 
Inviting people to manage your enterprise
How-to guideYou 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 organization
How-to guideYou 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 organizations
How-to guideYou can prevent users from creating organizations in your enterprise.
- Enterprise
 - Organizations
 - Policies
 
Rebuilding contributions data
How-to guideYou may need to rebuild contributions data to link existing commits to a user account.
- Enterprise
 - Repositories
 - User account
 
Requiring two-factor authentication for an organization
How-to guideYou 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 users
How-to guideIf 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 organization
How-to guideYou can partially restore an organization that was previously deleted on your GitHub Enterprise Server instance.
- Administrator
 - Enterprise
 - Organizations
 
About the Management Console
OverviewFrom the Management Console, you can initialize, configure, and monitor your GitHub Enterprise Server instance.
- Administrator
 - Enterprise
 - Fundamentals
 - Networking
 - Monitoring
 
Managing access to the Management Console
How-to guideYou can access the Management Console as well as configure Management Console authentication rate limits.
- Enterprise
 - Authentication
 - SSH
 - User account
 
Accessing the Management Console
How-to guideYou can access the Management Console using the Management Console password.
- Enterprise
 - Authentication
 
Troubleshooting access to the Management Console
How-to guideYou can troubleshoot access problems for the Management Console.
- Enterprise
 - Authentication
 - SSH
 - Troubleshooting