Skip to content

11notes/docker-kms

Repository files navigation

Banner

🏔️ Alpine - kms

size version pulls

Activate any version of Windows and Office, forever

slmgr whodb

SYNOPSIS

What can I do with this? This image will run a KMS server you can use to activate any version of Windows and Office, forever.

Works with:

  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 8.1
  • Windows 10
  • Windows 11
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022
  • Windows Server 2025
  • Microsoft Office 2010 ( Volume License )
  • Microsoft Office 2013 ( Volume License )
  • Microsoft Office 2016 ( Volume License )
  • Microsoft Office 2019 ( Volume License )
  • Microsoft Office 2021 ( Volume License )
  • Microsoft Office 2024 ( Volume License )

VOLUMES

  • /kms/var - Directory of the activation database

COMPOSE

name: "kms"
services:
  kms:
    image: "11notes/kms:latest"
    container_name: "kms"
    environment:
      TZ: Europe/Zurich
    volumes:
      - "var:/kms/var"
    ports:
      - "1688:1688/tcp"
    restart: always
  whodb:
    image: "11notes/whodb:latest"
    container_name: "whodb"
    environment:
      TZ: Europe/Zurich
    volumes:
      - "kms-var:/whodb/var"
    ports:
      - "8080:8080/tcp"
    restart: always
volumes:
  var:

EXAMPLES

Windows Server 2022 Datacenter. List of GVLK

slmgr /ipk WX4NM-KYWYW-QJJR4-XV3QB-6VM33

Add your KMS server information to server

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" -Name "KeyManagementServiceName" -Value "KMS_IP"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" -Name "KeyManagementServicePort" -Value "KMS_PORT"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" -Name "KeyManagementServiceName" -Value "KMS_IP"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" -Name "KeyManagementServicePort" -Value "KMS_PORT"

Activate server

slmgr /ato

DEFAULT SETTINGS

DEFAULT SETTINGS

Parameter Value Description
user docker user docker
uid 1000 user id 1000
gid 1000 group id 1000
home /kms home directory of user docker
database /kms/var/kms.db SQlite database holding all client data

ENVIRONMENT

Parameter Value Default
TZ Time Zone
DEBUG Show debug information
KMS_IP localhost or 127.0.0.1 or a dedicated IP 0.0.0.0
KMS_PORT any port > 1024 1688
KMS_LOCALE see Microsoft LICD specification 1033 (en-US)
KMS_CLIENTCOUNT client count >= 25 25
KMS_ACTIVATIONINTERVAL Retry unsuccessful after N minutes 120 (2 hours)
KMS_RENEWALINTERVAL re-activation after N minutes 259200 (180 days)
KMS_LOGLEVEL CRITICAL, ERROR, WARNING, INFO, DEBUG, MININFO INFO

SOURCE

PARENT IMAGE

BUILT WITH

TIPS

  • Use a reverse proxy like Traefik, Nginx to terminate TLS with a valid certificate
  • Use Let’s Encrypt certificates to protect your SSL endpoints
  • Microsoft LICD

ElevenNotes™️

This image is provided to you at your own risk. Always make backups before updating an image to a new version. Check the changelog for breaking changes. You can find all my repositories on github.