Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mcrook250/docker-kms

 
 

Repository files navigation

banner

THIS IS A WORK IN PROGRESS

Lots of stuff left over from 11notes, please give me time to update

KMS

5pxsize5pxversion5pxpulls5px5pxswiss_made

Activate any version of Windows and Office, forever

Windows Server 2025

Web GUI

Live Demo

http://kms.ii1.net

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. Why was this created? Because the upstream loser 11notes likes to leave breaking bugs in his code, this one here "Error 0x2a 0x80070216" has been fixed in this release and has a new UI with tons of new features!

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
  • Windows Server 2025: Azure Edition
  • 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
  • /var:/stb - This is new and used by webUI to get the version of the kms server (this is no longer needed after version 2.0.1)

COMPOSE ✂️

name: "kms"
services:
  kms:
    image: "mcrook250/ms-kms:latest"
    environment:
      TZ: "Europe/Zurich"
      AUTO_PURGE: "True"
    volumes:
      - "var:/kms/var"
    ports:
      - "1688:1688/tcp"
    restart: "always"

  gui:
    image: "mcrook250/kms-gui:latest"
    depends_on:
      app:
        condition: "service_healthy"
        restart: true
    environment:
      TZ: "Europe/Zurich"
      ENABLE_DEL: "False"
    volumes:
      - "var:/kms/var"
    ports:
      - "3000:3000/tcp"
    restart: "always"

volumes:
  var:

EXAMPLE

Windows Server 2025 Datacenter. List of GVLK

Add your key via cmd

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

Add your KMS server via cmd

slmgr /skms kms.yourdomain.com:1688

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

*Alot of these don't do anything yet, however they will at some point. All default values have been preserved and hardcoded.

ENVIRONMENT 📝

Parameter Value Default
TZ Time Zone
DEBUG Will activate debug option for container image and app (if available)
LOCALE see Microsoft LICD specification 1033 (en-US)
ACTIVATIONINTERVAL Retry unsuccessful after N minutes 120 (2 hours)
RENEWALINTERVAL re-activation after N minutes 259200 (180 days)
LOGLEVEL CRITICAL, ERROR, WARNING, INFO, DEBUG, MININFO INFO
CLIENT_COUNT A number >=25 is required to enable activation of client OSes; for server OSes and Office >=5 26
IP The IP address to listen on. 0.0.0.0
AUTO_PURGE Automatically remove stale records after 210 days. RENEWALINTERVAL + 30 days False
LOGFILE Use this flag to set an output Logfile. /var/log/pykms_logserver.log

*These should all work as they are ported right from py-kms 'next' branch

MAIN TAGS 🏷️

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

Please use the :latest tag to keep your containers up to date

There is a reminder in the web UI to let you know when its time to update.... like any normal docker app, eg. the arr family. Why should you keep up with the latest release? Because I believe in fixing bugs, adding improvements and providing a overall pleasant user experience, no fuss, no hassle.

If you still insist on having the last stable release of this app, simply use the :2.0.1 tag. You will stay on the stable version of the app, regardless of breaking changes or security issues or what so ever. You do this at your own risk!

REGISTRIES ☁️

docker pull mcrook250/ms-kms:latest
docker pull mcrook250/kms-gui:latest
docker pull ghcr.io/11notes/kms:1.0.1 <- old not used anymore
docker pull quay.io/11notes/kms:1.0.1 <- old and not used anymore

UNRAID VERSION 🟠

11notes - "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." This should just work out of the box. No messing around, no special version. Report if you have bugs!

SOURCE 💾

BUILT WITH 🧰

GENERAL TIPS 📌

Tip

  • 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 mcrook250/kms-gui if you want to see the clients you activated in a nice NEW web UI and features!
  • Look for easter eggs, I have and always will include these little goodies!

BlueWave™️

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 21.05.2025, 08:48:52 (CET)

About

Activate any version of Windows and Office, forever

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dockerfile 81.7%
  • Shell 18.3%