py-kms/docs
simonmicro 047bff1232
Dropped changelog symlink
Signed-off-by: simonmicro <simon@simonmicro.de>
2025-12-06 19:48:54 +01:00
..
img Added web-ui screenshot 2023-02-21 14:09:59 +01:00
conf.py Migrate to non-deprecated myst-parser 2024-01-18 17:58:36 +01:00
Contributing.md Specify the branch to base on 2025-12-06 19:00:32 +01:00
Documentation.md Converted all HTML tables to markdown code (#119) 2020-12-12 22:35:23 +01:00
Getting Started.md Revert "Removed all references to Docker Hub after their removal of "Free Team Organizations" -> https://web.docker.com/rs/790-SSB-375/images/privatereposfaq.pdf" 2024-05-28 20:23:06 +02:00
Historic Releases.md Moved changelog and added semantic-versioning note into README 2025-12-06 19:00:31 +01:00
index.rst Move docs to Readthedocs (#87) 2020-09-01 23:29:46 +02:00
Keys.md Merge branch 'master' into next 2024-01-18 18:03:39 +01:00
make.bat Move docs to Readthedocs (#87) 2020-09-01 23:29:46 +02:00
Makefile Move docs to Readthedocs (#87) 2020-09-01 23:29:46 +02:00
readme.md Move docs to Readthedocs (#87) 2020-09-01 23:29:46 +02:00
requirements.txt Migrate to non-deprecated myst-parser 2024-01-18 17:58:36 +01:00
Troubleshooting.md Do not run py-kms on the same machine to activate 2022-07-12 17:05:43 +08:00
Usage.md Allow explixit dualstack-control via flag 2024-05-28 19:58:00 +02:00

py-kms

repo-size open-issues last-commit docker-pulls read-the-docs

Keep in mind that this project is not intended for production use. Feel free to use it to test your own systems or maybe even learn something from the protocol structure. 😉

History

py-kms is a port of node-kms created by cyrozap, which is a port of either the C#, C++, or .NET implementations of KMS Emulator. The original version was written by CODYQX4 and is derived from the reverse-engineered code of Microsoft's official KMS. This version of py-kms is for itself a fork of the original implementation by SystemRage, which was abandoned early 2021.

What is with version 1.0.0?

Semantic versioning is now being used in this project, so checkout the GitHub Releases. Before, a CHANGELOG.md file was used to track changes, but got abandoned over time. Its content got moved into the Historic Releases document for reference.

Features

  • Responds to v4, v5, and v6 KMS requests.
  • Supports activating a lot of products, so checkout the docs for more information.
    • It's written in Python.
    • Supports execution by Docker, systemd and many more...
    • Uses sqlite for persistent data storage (with a simple web-based explorer).

Documentation

The wiki has been completely reworked and is now available on readthedocs.io. It should provide you all the necessary information about how to setup and to use py-kms, all without clumping this readme. The documentation also houses more details about the activation procedure with py-kms and how to get GVLK keys.

Quick start

  • To start the server, execute python3 pykms_Server.py [IPADDRESS] [PORT], the default IPADDRESS is :: ( all interfaces ) and the default PORT is 1688.
    • Note that both the address and port are optional.
    • It's allowed to use IPv4 and IPv6 addresses.
    • If you have an IPv6-capable dual-stack OS, a dual-stack socket is created when using a IPv6 address.
    • In case your OS does not support IPv6, make sure to explicitly specify the legacy IPv4 of 0.0.0.0!
  • To start the server automatically using Docker, execute docker run -d --name py-kms --restart always -p 1688:1688 ghcr.io/py-kms-organization/py-kms.
  • To show the help pages type: python3 pykms_Server.py -h and python3 pykms_Client.py -h.

License

  • py-kms is Unlicense