Skip to content

11notes/docker-kms

Repository files navigation

banner

⛰️ kms

sizeversionpulls

Activate any version of Windows and Office, forever

MAIN TAGS 🏷️

These are the main tags for the image. There is also a tag for each commit and its shorthand sha256 value.

UNRAID VERSION 🟠

This image supports unraid by default. Simply add -unraid to any tag and the image will run as 99:100 instead of 1000:1000 causing no issues on unraid. Enjoy.

Windows Server 2025

Web GUI

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:465f4d1"
    container_name: "kms"
    environment:
      TZ: "Europe/Zurich"
    volumes:
      - "var:/kms/var"
    ports:
      - "1688:1688/tcp"
    restart: "always"
  kms-gui:
    image: "11notes/kms-gui:stable"
    container_name: "kms-gui"
    environment:
      TZ: "Europe/Zurich"
    volumes:
      - "var:/kms/var"
    ports:
      - "8080:8080/tcp"
    restart: "always"
volumes:
  var:

EXAMPLE

Windows Server 2025 Datacenter. List of GVLK

slmgr /ipk D764K-2NDRG-47T6Q-P8T8W-YP6DF

Add your KMS server information to server via registry

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 🗃️

Parameter Value Description
user docker user name
uid 1000 user identifier
gid 1000 group identifier
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 Will activate debug option for container image and app (if available)
KMS_LOCALE see Microsoft LICD specification 1033 (en-US)
KMS_CLIENTCOUNT client count > 25 26
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 🧰

GENERAL TIPS 📌

  • Use a reverse proxy like Traefik, Nginx, HAproxy to terminate TLS and to protect your endpoints
  • Use Let’s Encrypt DNS-01 challenge to obtain valid SSL certificates for your services
  • Do not expose this image to WAN! You will get notified from Microsoft via your ISP to terminate the service if you do so
  • Microsoft LICD
  • Use 11notes/kms-gui if you want to see the clients you activated in a nice web GUI

SECURITY VULNERABILITIES REPORT ⚡

Severity Package Version Fix Version Type Location Data Namespace Link
4.7 (Medium) linux-pam 1.6.1-r1 apk /lib/apk/db/installed nvd:cpe CVE-2024-10041

ElevenNotes™️

This image is provided to you at your own risk. Always make backups before updating an image to a different version. Check the releases for breaking changes. If you have any problems with using this image simply raise an issue, thanks. If you have a question or inputs please create a new discussion instead of an issue. You can find all my other repositories on github.

created Fri, 21 Feb 2025 05:56:22 GMT