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- OverviewOverview of the upgrade process
- ReferenceUpgrade requirements
- How-to guideEnabling automatic update checks
- How-to guideSetting up a staging instance
- How-to guideCustomizing user messages for your enterprise
- How-to guideEnabling and scheduling maintenance mode
- How-to guideTaking a snapshot
- Performing an upgrade
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 authentication and provisioning with Entra ID
How-to guideYou 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 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
Configuring user provisioning with SCIM on GitHub Enterprise Server
How-to guideGet started with managing the lifecycle of user accounts with SCIM on your GitHub Enterprise Server instance.
- 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
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 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 appliance
How-to guideTo help users understand dependency changes when reviewing pull requests, you can enable, configure, and disable dependency review for GitHub Enterprise Server.
- 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 GitHub Enterprise Server. 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 Enterprise Cloud.
- Enterprise
- GitHub Connect
Enabling unified search for your enterprise
How-to guideYou can allow users to include repositories on GitHub Enterprise Cloud 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
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
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
About the monitor dashboard
How-to guideView historical data for details like 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
Overview of the upgrade process
OverviewLearn the recommendations and requirements for upgrading GitHub Enterprise Server, so you can plan and test your upgrade strategy.
- Enterprise
- Upgrades
Upgrade requirements
ReferenceBefore upgrading GitHub Enterprise Server, review these recommendations and requirements to plan your upgrade strategy.
- Enterprise
- Upgrades
Taking a snapshot
How-to guideTo save your GitHub Enterprise Server data before upgrading, take a virtual machine snapshot.
- Enterprise
- Upgrades
Performing an upgrade
Administrators can upgrade GitHub Enterprise Server using an appropriate upgrade package.
- 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 to manage how GitHub Actions can be used within your enterprise.
- 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
OverviewLearn how enterprise accounts enable scalability by simplifying administration and billing across multiple organizations.
- Accounts
- Enterprise
- Fundamentals
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 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 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 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 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 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 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
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
TutorialLearn how to 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
TutorialLearn how to programmatically retrieve enterprise events with the REST API.
- Auditing
- Enterprise
- Logging
- API
Audit log events for your enterprise
ReferenceReview the events recorded in an enterprise's audit log.
- 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
Learn which roles you can assign to control access to your enterprise's settings and data.
- 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 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 Console
How-to guideYou can access the Management Console as the root site administrator or a Management Console user.
- Enterprise
- Authentication
Troubleshooting access to the Management Console
How-to guideYou can troubleshoot access problems for the Management Console.
- Enterprise
- Authentication
- SSH
- Troubleshooting