Deploy Linksight on Windows Server
Note: This documentation is currently under review and may be updated. Please use it as a reference with caution.
This guide provides step-by-step instructions for deploying Linksight on Windows Server using Docker Engine and Docker Compose. This deployment method is suitable for organizations running Windows Server infrastructure and provides a self-hosted solution for the Linksight platform.
The installation methods in this guide have been tested on Windows Server 2025, Windows Server 2022 and Windows Server 2019 (Datacenter edition).
Prerequisites
Before installation, make sure the following is ready:
- A server with Windows Server 2025, 2022 or 2019 Datacenter edition
- Minimum specifications: 4 (v)CPUs, 16 GB memory, 60 GB SSD storage
info
Optimal configuration depends on use-case and size of datasets. In general, more is better; the data station utilizes all CPU cores available during computation.
- Minimum specifications: 4 (v)CPUs, 16 GB memory, 60 GB SSD storage
- Administrator access to the Windows Server
- (Optional) A PEM encoded TLS certificate to secure the Analysis Hub.
- Using a TLS certificate is optional, however it is recommended to secure the connection between the user and the backend.
- It is possible to automatically issue a certificate using Let's Encrypt. Review the page
TLSto setup and enable automated certificate issuance. - TLS connections can also be established in other ways, e.g. by using a reverse proxy which terminates TLS. In these cases, TLS does not need to be set up in the Linksight software.
If there is a firewall enabled for the VM, please review the Required Connections & Firewall Rules page and apply the listed firewall rules to be able to connect to the services of Linksight.
Install Docker Engine
Docker Engine on Windows Server uses Windows Containers, which run natively on Windows without requiring a Linux virtual machine. Follow the steps below to install Docker Engine on your Windows Server.
For detailed information, refer to the official Microsoft documentation.
-
Open PowerShell as Administrator and run the following command to install the Windows Containers features:
Install-WindowsFeature -Name Containers -
Restart the server to enable the Windows Containers feature.
-
After restart, open PowerShell as Administrator and run the following command to install Docker Engine:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
.\install-docker-ce.ps1 -
Verify the installation by running the following command:
docker versionThis should display the version of the Docker Engine.
Install Docker Compose
Docker Compose is a tool for defining and running multi-container Docker applications. It allows you to use a YAML file to configure your application's services.
-
Open PowerShell as Administrator and run the following command to install Docker Compose:
New-Item -ItemType Directory -Path C:\ProgramData\docker\cli-plugins\
Invoke-WebRequest -UseBasicParsing "https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe" -o C:\ProgramData\docker\cli-plugins\docker-compose.exe -
Verify the installation by running the following command:
docker compose --versionThis should display the version of Docker Compose.
Set up working directory
Create a working directory for your installation:
New-Item -ItemType Directory -Path <workdir>
Set-Location -Path <workdir>
Configuration and Deployment
-
Create the data directory:
New-Item -ItemType Directory -Path <workdir>\data -
Download the Docker Compose file template for the supervisor, and put the files in the working directory.
- Windows Server 2025
- Windows Server 2022
- Windows Server 2019
- Docker Compose file: https://setup.linksight.network/v3-ltsc2025/docker-compose.yml
- Example
.envfile: https://setup.linksight.network/v3-ltsc2025/.env.example-
Rename the file to
.envAlternatively, download the files from PowerShell:
Invoke-WebRequest https://setup.linksight.network/v3-ltsc2025/docker-compose.yml -OutFile docker-compose.yml
Invoke-WebRequest https://setup.linksight.network/v3-ltsc2025/.env.example -OutFile .env
-
- Docker Compose file: https://setup.linksight.network/v3-ltsc2022/docker-compose.yml
- Example
.envfile: https://setup.linksight.network/v3-ltsc2022/.env.example-
Rename the file to
.envAlternatively, download the files from PowerShell:
Invoke-WebRequest https://setup.linksight.network/v3-ltsc2022/docker-compose.yml -OutFile docker-compose.yml
Invoke-WebRequest https://setup.linksight.network/v3-ltsc2022/.env.example -OutFile .env
-
- Docker Compose file: https://setup.linksight.network/v3-ltsc2019/docker-compose.yml
- Example
.envfile: https://setup.linksight.network/v3-ltsc2019/.env.example-
Rename the file to
.envAlternatively, download the files from PowerShell:
Invoke-WebRequest https://setup.linksight.network/v3-ltsc2019/docker-compose.yml -OutFile docker-compose.yml
Invoke-WebRequest https://setup.linksight.network/v3-ltsc2019/.env.example -OutFile .env
-
-
Configure the following variables in the
.envfile:Required variables
Environment variable Description FULLDATAPATHThe full (absolute) path to the directory which will store the persisted data. For example C:\Users\Administrator\linksight\data.ANALYSISHUB_FRONTEND_FQDNFully qualified domain name (FQDN) of the Analysis Hub. This will be used in the OIDC redirect URL if using an OIDC identity provider. E.g. https://my.domain-name.comorhttp://my.domain-name.com:8000. Make sure to configureANALYSISHUB_PORTaccordingly.DATASTATION_HOSTThe external public hostname/IP of the VM where other (external) data stations can reach the data station. Optional variables
Environment variable Description ANALYSISHUB_FRONTEND_TLS_CERTFILE,ANALYSISHUB_FRONTEND_TLS_KEYFILESet to secure the connection to the Analysis Hub with TLS. Leaving these variables empty results in connections without TLS.
The certificate file should be a PEM encoded.crtfile. The key file should be an unencrypted PEM encoded.keyfile. Encrypted key files are not supported.
The files should be put in the<workdir>\data\analysisfolder, after creating it:New-Item -ItemType Directory -Path <workdir>\dataNew-Item -ItemType Directory -Path <workdir>\data\analysis
TheANALYSISHUB_FRONTEND_TLS_variables can then be set to/data/<key>.keyand/data/<cert>.crt(so withoutanalysisin the path).ANALYSISHUB_AUTOCERT_ENABLEDEnable automatic certificate issuance from Let's Encrypt. Review page TLS for more info. ANALYSISHUB_AUTOCERT_HTTP01_ENABLEDEnable server for Let's Encrypt http-01challenge responses on port80. Enabled by default. Review page TLS for more info.ANALYSISHUB_AUTH_PROVIDERIdentity provider used for authentication to the Analysis Hub. The default value is linksight. Other options arelocaldb,microsoft,customoidc. See User Identity Management for more information on user identities and identity providers.ANALYSISHUB_AUTH_XXXDepending on the chosen identity provider, additional configuration might be required. Consult the User Identity Management page to learn more. ANALYSISHUB_PORTPort for the Analysis Hub frontend. Defaults to 8000.ANALYSISHUB_GRPC_PORTPort for the Analysis Hub backend gRPC server. Defaults to 8080.DATASTATION_ALTHOSTSAlternative hosts for the datastation, comma-separated. These will be used by internal components to route traffic internally. DATASTATION_HTTP_PORTPort for the data station mTLS HTTP server. Defaults to 8443. It should be externally accessible.DATASTATION_GRPC_PORTPort for the data station mTLS gRPC server. Defaults to 9090. It should be externally accessible.
Start components
-
Pull the supervisor container image:
docker compose pullinfoDownloading the container image may take several minutes, as the Windows base image is quite large.
-
Start all components:
docker compose up -d -
Check whether the frontend of the Analysis Hub is reachable (URL configured as
ANALYSISHUB_FRONTEND_FQDN). -
Follow the instructions on the page to complete the registration for the Analysis Hub and data station (accepting the registration tokens on the Linksight Governance Hub).
-
Check the logs to see whether all components have been registered successfully:
docker compose logs -f
The Linksight software is now up and running! Follow the Next steps to configure the firewall (if applicable) and to register the nodes.
Next steps
-
Configure the server firewall. Note that this is different from the network firewall, which should be configured separately. See Required Connections & Firewall Rules
- Allow traffic to ports 8443 and 9090:
netsh advfirewall firewall add rule name="Allow Linksight mTLS" dir=in action=allow protocol=TCP localport=8443
netsh advfirewall firewall add rule name="Allow Linksight gRPC" dir=in action=allow protocol=TCP localport=9090
- Allow traffic to ports 8443 and 9090:
-
Register the nodes. Follow the instructions on the page
Register nodes.