I had so much difficulty installing a GitHub Enterprise Server instance on Azure, that I decided to write how to do it in the EASIEST way. This article was written in tears and blood, using , and a lot of resources on the internet. the official GitHub guide This article does not aim to give all aspects of the GitHub Enterprise Server installation, but only to give the minimum to get started. ⚠️ Do not follow the Azure procedure from the marketplace, I don't know if they changed anything or if it's my fault, but it didn't work for me. Step 1: Creating a resource group in Azure If you already have a resource group, you can skip this step. If you don't, please follow the official Azure documentation. Step 2: Creating the GitHub Enterprise Server virtual machine If you want to dive into all the requirements, you can find them in the official GitHub documentation. I will only give the minimum to get started. According to my test, even if you're only a team of 5, you will need at least for the VM size. I wasted a lot of time trying to install something less powerful. At first, it worked, but you won't be able to open some administration panels (which was the most frustrating part of this whole adventure). Standard_E4_v3 I. Finding the GitHub Enterprise Server image Type , and wait ... $ az vm image list --all -f GitHub-Enterprise | grep '"urn":' | sort -V Choose the GES image you want to install, and copy it. For example, I chose . GitHub:GitHub-Enterprise:GitHub-Enterprise:3.8.3 II. Creating the VM ⚠️ Do not forget to create a dedicated resource group in Azure first. My resource group for this article is called "ResourceGroup1". GitHub now tells us to type the following command and to fill in all the variables: $ az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS Which did not work for me that easily. I had to add the variable and to remove the variable. This is what it looked like ( is the name of my virtual machine): --admin-username --storage-sku gitHubenterpriseservertest az vm create -n gitHubenterpriseservertest -g ResourceGroup1 --size Standard_E4_v3 -l eastus --image GitHub:GitHub-Enterprise:GitHub-Enterprise:3.8.3 --admin-username arthurcoudouy Step 3: Opening the ports of your GES virtual machine Don't try to outsmart the procedure and follow methodically each port you need. If you don't open the required ports, you will face unknown errors in the future, and god, you don't want that. As I did not want to implement any kind of security, I opened all the ports. I know, it's not the best practice, but I did not want to show you all my security skills here, I just wanted to install a GitHub Enterprise Server instance. In theory, it looked like this: $ az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER In practice, Azure asks you to establish some priority starting at 100. Again, as I did not want to dive into these settings, I just added 1 in priority for each port. My list of commands looked like this (type each one of them in your terminal): az vm open-port -n gitHubenterpriseservertest -g ResourceGroup1 --port 22 --priority 100 az vm open-port -n gitHubenterpriseservertest -g ResourceGroup1 --port 25 --priority 101 ... az vm open-port -n gitHubenterpriseservertest -g ResourceGroup1 --port 80 --priority 109 Step 4: Attaching a new unencrypted data disk to the VM As before, the theory gives us this: $ az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite And the did not work for me as well. My command looked like this: --sku Premium_LRS az vm disk attach --vm-name gitHubenterpriseservertest -g ResourceGroup1 --new -z 150 --name ghe-data.vhd --caching ReadWrite Step 5: Configuring the GitHub Enterprise Server virtual machine We now need to wait that your virtual machine is ready through a specific command. This time the given command worked: Check that your virtual machine is ready az vm list -d -g RESOURCE_GROUP -o table Which was for me: az vm list -d -g ResourceGroup1 -o table Take the public IP of your virtual machine and paste it into your browser ⚠️ If you don't see anything in your explorer, did you really open all the required ports? Upload your license file and set a management console password Set up your GitHub instance setting Your GitHub instance will restart and you are now ready to go! Contact me if you have any questions. Also published . here