Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 30 Next »

Prerequisites

  • Define the label for the OneList environment to be deployed. This is a short label, e.g. dev, qa, prod. The first letter must be unique in all the environments planned and it is used as the suffix of the database names.
    • Use this value to replace the <environment> placeholder in the instructions below.
  • Windows Server 2019 Version 1809.
    • CPU: 8 core
    • RAM: 16 GB
    • Free disk space: 100 GB
    • Outbound Internet access
  • SQL Server (dedicated or shared instance)
    • SQL Server 2016 or later
    • Databases for each environment: onelist_x, comms_x, rolemanager_x. The "x" is the first letter of the environment label
  • Request for login to IQX container registry.
  • Generate the Machine key for each environment. This is a Base64 string representing an array of 50 bytes.

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

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. 

  • RoleManager__MachineKey 
    The value is the generated machine key.
  • Database__ConnectionString
    The value is the SQL Server connection string. The name of the databases will be automatically specified by the services.
  • ASPNETCORE_ENVIRONMENT
    The value is <environment>.
  • Smtp__UserName 
  • Smtp__Password
  • Smtp__From
    This is the sender email address of notifications from OneList
  • Smtp__Host
    This is the SMTP server OneList use to send notifications.
  • Smtp__Port
    This is the port of SMTP server.
  • Smtp__UseSsl
    Define if SMTP server uses SSL connection. For Office365 SMTP service, the value is always false. 

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

Start containers

Open PowerShell console from the folder created in previous step. Run following 3 commands.

Login to IQX container registry

docker login -u <username> --password-stdin iqxbusiness.azurecr.io

Pull images

docker-compose pull

Start OneList containers

docker-compose up -d

Configure IIS Proxy

Enable WebSocket Protocol and Dynamic Content Compression feature.

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

  • → "Application Development" → Check "WebSocket Protocol" 

  • → "Performance" → Check "Dynamic Content Compression


Install IIS modules

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


Create OneList site on IIS

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

Fill in details as below and click OK.


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

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

The web.config file contains:

  • URL rewrite rules that route inbound traffic to OneList containers.
  • Add following headers to the request header.
    • X_Forwarded_Host, value: host name of original request
    • X_Original_URI. value: URL path of original request
    • X_Forwarded_Port, value: 80



  • No labels