Infrastructure Prerequisites

Environments

Web Server

SQL Server

Production

  • Windows Server 2019 Version 1809.

    • CPU: 8 core

    • RAM: 16 GB

    • Free disk space: 100 GB

  • Enable outbound internet connection

  • SQL Server (dedicated or shared instance)

    • SQL Server 2016 or later

    • Databases:

      • onelist_p

      • comms_p

      • rolemanager_p

    • SQL log in with db_owner role of the databases

  • Minimum hardware requirements

    • CPU: 2 core

    • RAM: 16 GB

    • Free diskspace: 100 GB

Non-production

  • Windows Server 2019 Version 1809.

    • CPU: 8 core

    • RAM: 16 GB

    • Free disk space: 100 GB

  • Enable outbound internet connection

  • SQL Server (dedicated or shared instance)

    • SQL Server 2016 or later

    • Databases for each non-prod environment: the "x" represents the environment tag, e.g. d for Development, q for QA.

      • onelist_x

      • comms_x

      • rolemanager_x 

    • SQL log in with db_owner role of the database

  • Minimum hardware requirements

    • CPU: 2 core

    • RAM: 16 GB

    • Free diskspace: 100 GB

Deployment Prerequisites

Deployment Instructions

Install Docker Engine - Enterprise

Open PowerShell console as Administrator. Run 2 commands below.

Install-Module DockerMsftProvider -Force

Install-Package Docker -ProviderName DockerMsftProvider -Force

Restart server.

Install docker-compose

Run command: 

Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose.exe

Prepare the deployment file

Create a new folder. Name it as the <environment> valueDownload and save docker-compose.yml and .env file to the folder. 

Open the ".env" file in notepad and update the following fields with the actual value. 

Save the ".env" file then run the command below.

When there is more than one supported culture, edit docker-compose.yml add another Localization__SupportedCultures__n entry and increase the trailing number n by 1. E.g. Localization__SupportedCultures__1.

Use the code from: Supported Languages.

Start OneList applications

Open PowerShell console from the folder created in previous step then run following commands.

Configure IIS Proxy

Enable WebSocket Protocol and Dynamic Content Compression feature.

Open "Server Manager" → Select "Add Roles and Features" → "Server Roles" → "Web Server"



Install IIS modules

Download and Install URL Rewrite and Application Request Routing IIS module.


Stop the default web site and create OneList site on IIS

Right click Sites → select "Add Website...". 

Fill in details as below and click OK.

Select OneList site → Click "Bindings..." → Create HTTP/HTTPS binding


Activate reverse proxy

Select IIS root → Open “Application Request Routing Cache” 

 Select “Server Proxy Settings”

 Check the box “Enable Proxy”, uncheck "Reverse rewrite host in response headers" and click Apply


Configure URL Rewrite rules

Select OneList site → Open URL Rewrite

Select "View Server Variables" 

Add following variables: HTTP_X_Forwarded_Host, HTTP_X_Forwarded_Port, HTTP_X_Forwarded_Proto, HTTP_X_Original_URI


Setup the OneList site

Place web.config file to root folder of the IIS site.

The web.config file contains:


Create the administrator user account