Article version: Enterprise Server 2.20

System overview for GitHub Insights

GitHub Insights is a standalone application, hosted on two or more machines, which interfaces with GitHub Enterprise.

GitHub Insights is available with GitHub One. For more information, see "GitHub's products."

In this article

Requirements for running GitHub Insights

GitHub Insights requires a supported version of GitHub Enterprise Server.

GitHub Insights requires a minimum of two machines hosted either in the cloud or locally. Standard type machines with a base OS of Ubuntu or Debian are supported. Each machine should meet the following minimum specifications.

Application server Import server(s)
vCPUs 16 8
RAM 64GB 30GB
Disk 250GB 25GB

The disk size specification for the application server is a recommendation. The actual size requirement depends on your data.

To provision GitHub Insights, the application and import servers must be able to run Docker. The installation script will install Docker if able. If the script is not able to install Docker, the script will attempt to use an existing installation of Docker. If there is no existing installation of Docker on the host machines, the installation will fail.

The machine may require the Docker daemon to be run as sudo. Kubernetes is not currently supported.

If you'll use GitHub Insights to import large amounts of data, we recommend greater minimum specifications. For more information, "Managing repositories."

Security and authentication for GitHub Insights

GitHub Insights runs on your infrastructure and is governed by your existing information security controls. GitHub Insights uses existing user accounts in GitHub Enterprise for authentication and access permissions.

Network Security

GitHub Insights's internal firewall restricts network access to the machines' services. Only services necessary for the machines to function are available over the network.

GitHub Insights requires the following ports to be open for inbound and outbound traffic.

Port Service Server Protocol
22 SSH USER Application, import TCP
80 HTTP USER Application TCP
443 HTTPS USER Application, import TCP
5672 Rabbit Admin Application TCP
7070 Analyzer Application TCP
7071 Vixen Application TCP
8080 Arango Application, import TCP
8529 Arango Application TCP
15672 Rabbit Application TCP

Authentication and access permissions

Authentication for GitHub Insights is handled through GitHub Enterprise. During installation, you will create a GitHub App, which allows GitHub Insights to authorize users. The GitHub App is also used to interact with GitHub Enterprise within the scope of the user and app’s permissions.

GitHub Insights has two permission levels.

  • Admin permissions correspond to the role of site administrator on GitHub Enterprise. People with admin permissions have access to all settings for GitHub Insights.

  • All other users in GitHub Enterprise have user accounts in GitHub Insights. Users can view all metrics but have limited access to settings.

Data access in GitHub Insights is restricted according to each user's data access in GitHub Enterprise. A user will never see data in GitHub Insights for repositories the user does not have access to in GitHub Enterprise.

Architecture of GitHub Insights

GitHub Insights consists of one application server and one or more import servers. The application server hosts the core services, such as the database and client. The import server processes imports and can be scaled according to load.

System architecture

Ask a human

Can't find what you're looking for?

Contact us