A Guide to Deploying pyKMS using Docker-compose and Activating Windows 11

Microsoft’s Key Management Service (KMS) plays a crucial role in the activation of Microsoft products on a local network. Instead of each computer individually connecting to Microsoft, KMS allows a local network of computers to validate their Microsoft software. pyKMS is an open-source, Python-based KMS server emulator providing a cost-free and flexible alternative to Microsoft’s proprietary KMS servers. This guide will focus on how to deploy pyKMS using Docker-compose and activate a Windows 11 computer using it.

Deploying pyKMS Using Docker-compose

Firstly, it’s worth mentioning that while pyKMS can activate any license without question, it’s not intended for use with unlicensed copies of Windows. Your organization should legally own the licenses for all Windows instances that you intend to activate with pyKMS.


To deploy pyKMS using Docker-compose, you need:

  1. Docker installed on your machine.
  2. Docker-compose installed on your machine.

Steps to Deploy

  • Create a directory for your docker-compose.yml file: mkdir pykms
  • Navigate to the new directory: cd pykms
  • Open your text editor and create a docker-compose.yml file. This file defines your services, networks, and volumes. Populate it as follows:
version: '3'
    image: ghcr.io/py-kms-organization/py-kms:python3
      - 1688:1688
      - 8080:8080
      IP: "::"
    restart: always
      - ./db:/home/py-kms/db
      - /etc/localtime:/etc/localtime:ro
  • Save the docker-compose.yml file and exit your text editor.
  • Execute the Docker-compose command: docker-compose up -d

You’ve now deployed your pyKMS server using Docker-compose! The server will auto-start every time your machine boots, thanks to the restart: always command.

Activating Windows 11 with pyKMS

After deploying pyKMS, the next step is activating your Windows 11 machine. This requires a General Volume License Key (GVLK), which directs the software to check for a KMS server in your local network rather than reaching out to Microsoft’s servers.

Steps to Activate

  1. Open the Command Prompt as an administrator on the Windows 11 client machine you want to activate.
  2. Install the product and enter the GVLK for Windows 10/11 Professional: W269N-WFGWX-YVC9B-4J6C9-T83GX
  3. Configure the client to use the KMS server by entering the following commands:
slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX 
slmgr /skms your_pykms_server_ip:1688 
slmgr /ato

Congratulations! Your Windows 11 client machine is now activated with pyKMS!

Activating Microsoft Office with pyKMS

Not only is pyKMS adept at activating Windows, but it can also be employed for various versions of Microsoft Office. Whether you’re using Office 2013, 2016, 2019, or 2021, pyKMS has got you covered. Similar to the Windows activation process, you would need the respective General Volume License Keys (GVLKs) for the Office versions you’re activating.

As for the GVLK keys required for the activation process, they can be retrieved from the py-kms documentation available here. Remember, using pyKMS for activation does not eliminate the need for a valid license for each Microsoft Office instance you are activating.

With these simple steps, you can manage your Office activations just as easily as your Windows activations using the power of pyKMS and Docker-compose.

Important Information

KMS activations are valid for 180 days. Therefore, KMS clients must renew their activation by reconnecting to the KMS server at least once every 180 days. Always ensure that the KMS server is reachable for all clients on your network.

Deploying pyKMS with Docker-compose and using it for KMS activation provides a flexible and cost-free solution for managing Windows activation in a local network. However, it’s important to remember that this doesn’t absolve users from the responsibility of ensuring they own valid licenses for all Windows instances they’re activating with pyKMS. This tool helps you manage your licenses better, not avoid purchasing them.

Leave a Reply

Your email address will not be published. Required fields are marked *