GitHub Enterprise is your organization's private copy of GitHub contained within a virtual appliance, hosted on premise or in the cloud, that you configure and control.

Storage architecture

The GitHub Enterprise virtual appliance requires two storage volumes, one mounted to the root filesystem path (/) and the other to the user filesystem path (/data/user). This architecture simplifies the upgrade, rollback, and recovery procedures by separating the running software environment from persistent application data.

The root filesystem is included in the distributed machine image. It contains the base operating system and the GitHub Enterprise application environment. The root filesystem should be treated as ephemeral. Any data on the root filesystem will be replaced when upgrading to future GitHub Enterprise releases.

The root filesystem contains:

  • Custom CA Certificates (in /usr/local/share/ca-certificates)
  • Custom networking configurations
  • Custom firewall configurations
  • The replication state

The user filesystem contains user configuration and data, such as:

  • Git repositories
  • Databases
  • Search indexes
  • Published Pages content
  • Large files from Git Large File Storage (For more information, see "Versioning large files.")
  • Pre-receive hook environments

Deployment options

You can deploy GitHub Enterprise as a single virtual appliance, or in a high availability configuration. For more information, see "Configuring GitHub Enterprise for High Availability." Some organizations with tens of thousands of developers may also benefit from GitHub Enterprise Clustering. For more information, see "Clustering Overview."

Data retention and datacenter redundancy

Before using GitHub Enterprise in a production environment, we strongly recommend you set up backups and a disaster recovery plan. For more information, see "Backups and Disaster Recovery."

GitHub Enterprise includes support for online and incremental backups via the GitHub Enterprise Backup Utilities. You can take incremental snapshots over a secure network link (the SSH administrative port) over long distances for off-site / geographically dispersed storage. You can restore snapshots over the network into a newly provisioned GitHub Enterprise virtual appliance at time of recovery in case of disaster at the primary datacenter.

In addition to network backups, both AWS (EBS) and VMware disk snapshots of the user storage volumes are supported while the appliance is offline / in maintenance mode. Regular volume snapshots can be used as a low-cost / low-complexity alternative to network backups with backup-utils if your service level requirements allow for regular offline maintenance.

For more information, see "Backups and Disaster Recovery."

Open source dependencies for GitHub Enterprise

You can see a complete list of dependencies in your appliance's version of GitHub Enterprise, as well as each project's license, at http(s)://hostname/site/credits.

Tarballs with a full list of dependencies and associated metadata are available on your appliance:

  • For dependencies common to all platforms, at /usr/local/share/enterprise/dependencies-<GHE version>-base.tar.gz
  • For dependencies specific to a platform, at /usr/local/share/enterprise/dependencies-<GHE version>-<platform>.tar.gz

Tarballs are also available, with a full list of dependencies and metadata, at https://enterprise.github.com/releases/<version>/download.html.

Further reading