Windows Server

Zercurity is partially supported on Windows Server as support for running Linux containers on Windows is currently in preview.

Installing Docker

Note

You can keep things simple by installing Docker for Desktop https://docs.docker.com/docker-for-windows/install/ - however, you can use Windows containers which is under preview.

First, you’ll need to install Docker. Start an “elevated” PowerShell (run it as administrator). Search for PowerShell, right-click, and choose Run as administrator. When asked if you want to allow this app to make changes to your device, click Yes.

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell -All -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All -NoRestart

Get-VM WinContainerHost | Set-VMProcessor -ExposeVirtualizationExtensions $true

Install-Module DockerProvider -Force
Install-Package -Name Docker -ProviderName DockerProvider -RequiredVersion preview -Force

Restart-Computer -Force

Installing Docker Compose

In order to deploy Zercurity and keep it up-to-date Docker Compose is required. Start an “elevated” PowerShell (run it as administrator). Search for PowerShell, right-click, and choose Run as administrator. When asked if you want to allow this app to make changes to your device, click Yes.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe

On Windows Server 2019, you can add the Compose executable to $Env:ProgramFiles\Docker. Because this directory is registered in the system PATH, you can run the docker-compose --version command on the subsequent step with no additional configuration.

ECR Login

Zercurity makes use of AWS ECR. In order to authenticate with our container repository you’ll need to download and install AWS powershell Tools.

https://aws.amazon.com/powershell/

Which is available directly at:

https://sdk-for-net.amazonwebservices.com/latest/AWSToolsAndSDKForNet.msi

Warning

Your Zercurity account manager will provide you with AWS keys in order to authenticate with the Zercurity container repository. The keys used in the example below do not work.

Once you have your account credentials. Please run the following commands. You will need to do this each time you need to run the following commands each time you want to interact with the Zercurity ECR.

Set-AWSCredential `
  -AccessKey AKIA0123456787EXAMPLE `
  -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY `
  -StoreAs Zercurity

Invoke-Expression -Command (Get-ECRLoginCommand -ProfileName Zercurity -Region eu-central-1).Command.Replace("https://237746114954.dkr.ecr.eu-central-1.amazonaws.com", "https://ecr.zercurity.com")

Starting Zercurity

Before starting Zercurity you will need the Zercurity docker-compose.yml.

In the example below we will be using the domain name zercurity.local. Zercurity also requires SSL certificates in order to establish a secure connection between both clients and the server.

cd C:\ProgramData
mkdir zercurity
cd zercurity

# Copy across the docker-compose.yml and production.env files to this
# new directory.

# Change zercurity.local for the domain you with to use.
$Env:ZERCURITY_DOMAIN = "zercurity.local"

# Start the containers. The output will also be logged.
docker-compose up

As the containers start (which will take a few minutes) you’ll notice two directories being created, certs and data.

  • The certs directory contains the SSL certificates for the NGINX web-server.

  • The data directory contains both a working directory for the creation of temp files and data for the prostgresql database.

The Zercurity web application will now be available at: https://app.zercurity.local

Warning

If you are using self-signed certificates you will need to manually visit https://app.zercurity.local, https://api.zercurity.local and https://download.zercurity.local in order for the web application to work correctly. Or you can add the generated CA to your preferred browser which can be found in the certs folder.

Updating Zercurity

cd C:\ProgramData\zercurity

# Pull the latest images
docker-compose pull