DevBox: GitHub Enterprise Server

Earlier today I had a meeting with folks from Solidify and Microsoft concerning Azure DevOps Server and GitHub. During this meeting, there was also a brief discussion around running a source control solution like GitHub on-prem (there are some really good reasons for this), and GitHub Enterprise Server was mentioned. So tonight I asked myself: Is it possible to experiment with GitHub features locally on a developer machine? Can I harness the power of GitHub without placing my data somewhere else, and play with it in isolation? This is a tale of how I got this beast placed in my own local zoo.

Here we go!

The license phase

We need a 45-day license file downloaded, so go to enterprise.github.com/trial and fill out the form. After a short while you'll recieve an email with further installation instructions. There will be a "personalized" link included in the email to your account dashboard. Click it!

Once there, you will have the option to login to your dashboard with an existing GitHub account - or you can enter a password for a new user. I created a new user. Voila, we have the option to download a license file. Click the link and download the .ghl file.

image.png

The download phase

In my case I wanted to test the GitHub Enterprise Server on my laptop, which runs Windows 10 with Hyper-V. So at the download page enterprise.github.com/releases/2.22.1/downl.. I choose the Hyper-V image. This "thing" is above 12GB big, so go get some coffee, do some sun salutations or take the opportunity to water some plants.

The RTFM phase

OK! We got the license file and the image! Nice! Time to look into the documentation called the Administration Guide found here: docs.github.com/en/enterprise-server@2.22/a..

It seems that it takes some serious resources and power to run this. But I'm going to try to see how it performs on my laptop anyway. The documentation points out that the easiest way to configure things is by using Powershell.

Here are the Powershell commands i ran:

New-VM -Generation 1 -Name MYGES -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath C:\GitHubEntSrv\github-enterprise-2.22.1.vhd

New-VHD -Path C:\GitHubEntSrv\Storage.vhdx -SizeBytes 20GB

Add-VMHardDiskDrive -VMName MYGES -Path C:\GitHubEntSrv\Storage.vhdx

Start-VM -Name MYGES

(Get-VMNetworkAdapter -VMName MYGES).IpAddresses

Hm, that last command did not output any IpAddresses (at least for me)... So I went into the Hyper-V Manager and connected into the MYGES machine and saw this screen:

image.png

Navigating to the setup URL in my case 172.17.59.139/setup led to a page with some Preflight checks - all seems good except the memory requirements, which smacked me in the face, it needs a whopping 14GB?!

image.png

Oh well, stopped the machine and gave it all the juice it needed, this old gaming laptop can handle it! Revisited the setup URL and was now presented with some information about the SSL Certificate.

image.png

...rest assured this is expected and all is well. :)

OK, after clicking through the web browser alerts regarding the certificate, we end up with this screen asking for the license file and a password. Upload the license file and enter a password, then finally click the Finish installation button.

image.png

Now we are presented with these alternatives, I will go for the New install option.

image.png

The settings page that is shown after clicking New Install is huge, I didn't change anything and just clicked the Save Settings button using the defaults. After a while everything is setup and we have green boxes all the way through.

Here are some screenshots from the "management" views:

image.png

image.png

Navigating to the local IP-address URL, we are asked to create an admin account:

image.png

After creating the account everything looks so familiar :)

image.png

I must say, the process of getting the GitHub Enterprise Server setup on a local development laptop, was way easier than i expected. It was a fun experience, but it also gives me the opportunity to experiment wildly with GitHub features in isolation. At least for 45 days :)

Enjoy!