From 2f319f1a4171ea7295e72a0422623c35fbbf3d08 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Thu, 13 Feb 2020 12:49:10 +0100 Subject: [PATCH 01/10] Added minimal Dockerfile for builds with Docker Hub --- Dockerfile | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fade0aa --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +# This is a minimized version from docker/docker-py3-kms/Dockerfile without sqllite support to reduce image size + +FROM alpine:3.8 + +ENV IP 0.0.0.0 +ENV PORT 1688 +ENV EPID "" +ENV LCID 1033 +ENV CLIENT_COUNT 26 +ENV ACTIVATION_INTERVAL 120 +ENV RENEWAL_INTERVAL 10080 +ENV HWID "364F463A8863D35F" +ENV LOGLEVEL ERROR +ENV LOGFILE /var/log/pykms_logserver.log +ENV LOGSIZE "" + +RUN apk add --no-cache --update \ + bash \ + git \ + py3-argparse \ + py3-flask \ + py3-pygments \ + python3-tkinter \ + sqlite-libs \ + py3-pip && \ + pip3 install peewee tzlocal && \ + apk del git + +WORKDIR /home/py-kms + +COPY ./py-kms/ /home/py-kms/ +COPY ./docker/docker-py3-kms/start.sh /usr/bin/start.sh +RUN chmod a+x /usr/bin/start.sh + +EXPOSE ${PORT}/tcp + +ENTRYPOINT /usr/bin/python3 pykms_Server.py ${IP} ${PORT} -l ${LCID} -c ${CLIENT_COUNT} -a ${ACTIVATION_INTERVAL} -r ${RENEWAL_INTERVAL} -w ${HWID} -V ${LOGLEVEL} -F ${LOGFILE} From bf85c8d8bb720062d27f8e4cca411b8ce73744af Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Thu, 13 Feb 2020 12:59:23 +0100 Subject: [PATCH 02/10] Moved into sub dir --- Dockerfile => docker/docker-py3-kms-minimal/Dockerfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Dockerfile => docker/docker-py3-kms-minimal/Dockerfile (100%) diff --git a/Dockerfile b/docker/docker-py3-kms-minimal/Dockerfile similarity index 100% rename from Dockerfile rename to docker/docker-py3-kms-minimal/Dockerfile From 0778ba5c66655f1b68d73abee537c8e18035f4f7 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Thu, 13 Feb 2020 13:04:09 +0100 Subject: [PATCH 03/10] Cleanup to use inline code markdown --- README.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 7d76c9d..5a82b44 100644 --- a/README.md +++ b/README.md @@ -24,33 +24,33 @@ _py-kms_ is a port of node-kms created by [cyrozap](http://forums.mydigitallife. - tested with Python 3.6.7 # Dependencies -- Python 3.x or Python 2.7.x or Python 2.6.x with the ```argparse``` module installed. +- Python 3.x or Python 2.7.x or Python 2.6.x with the `argparse` module installed. - Tkinter module. -- If the ```tzlocal``` module is installed, the "Request Time" in the verbose output will be converted into local time. Otherwise, it will be in UTC. -- It can use the ```sqlite3``` module so you can use the database function, storing activation data so it can be recalled again. +- If the `tzlocal` module is installed, the "Request Time" in the verbose output will be converted into local time. Otherwise, it will be in UTC. +- It can use the `sqlite3` module so you can use the database function, storing activation data so it can be recalled again. - Installation example on Ubuntu / Mint: - - ```sudo apt-get update``` + - `sudo apt-get update` - for python3 - - ```sudo apt-get install python3-tk python3-pip``` - - ```sudo pip3 install tzlocal pysqlite3``` + - `sudo apt-get install python3-tk python3-pip` + - `sudo pip3 install tzlocal pysqlite3` - or for python2 - - ```sudo apt-get install python-tk python-pip``` - - ```sudo pip install tzlocal pysqlite``` + - `sudo apt-get install python-tk python-pip` + - `sudo pip install tzlocal pysqlite` # Usage -- __NOTE__: Pay attention to how invoke scripts, if you want to run with python2 use ```python...``` while for python3 use ```python3...```, also depending on the Python versions that resides in your PC. -- To start the server, execute ```python pykms_Server.py [IPADDRESS] [PORT]```, the default _IPADDRESS_ is "0.0.0.0" ( all interfaces ) and the default _PORT_ is "1688". -- To run the client (only for testing purposes), use ```python pykms_Client.py [IPADDRESS] [PORT]```, with the same defaults of ```pykms_Server.py```. -- To show the help pages type: ```python pykms_Server.py -h``` and ```python pykms_Client.py -h```. -- To generate a random HWID use ```-w``` option: ```python pykms_Server.py -w RANDOM```. -- To get the HWID from any server use the client, for example type: ```python pykms_Client.py 0.0.0.0 1688 -m Windows8.1 -V INFO```. -- To view a minimal set of logging information use ```-V MINI``` option, for example: ```python pykms_Server.py -F /path/to/your/logfile.log -V MINI```. -- To redirect logging on stdout use ```-F STDOUT``` option, for example: ```python pykms_Server.py -F STDOUT -V DEBUG```. -- You can create logfile and view logging information on stdout at the same time with ```-F FILESTDOUT``` option, for example: ```python pykms_Server.py -F FILESTDOUT /path/to/your/logfile.log -V DEBUG```. -- Select timeout (seconds) for py-kms with ```-t``` option, for example ```python pykms_Server.py -t 10``` -- For launching py-kms GUI make executable ```pykms_Server.py``` file with ```chmod +x /path/to/folder/py-kms/pykms_Server.py```, then simply run ```pykms_Server.py``` double-clicking. -- You can run py-kms deamonized (via [Etrigan](https://github.com/SystemRage/Etrigan)) using a command like: ```python pykms_Server.py etrigan start``` and stop it with: ```python pykms_Server.py etrigan stop```. -- With Etrigan you have another way to launch py-kms GUI (specially suitable if you're using a virtualenv), so: ```python pykms_Server.py etrigan start -g``` +- __NOTE__: Pay attention to how invoke scripts, if you want to run with python2 use `python...` while for python3 use `python3...`, also depending on the Python versions that resides in your PC. +- To start the server, execute `python pykms_Server.py [IPADDRESS] [PORT]`, the default _IPADDRESS_ is "0.0.0.0" ( all interfaces ) and the default _PORT_ is "1688". +- To run the client (only for testing purposes), use `python pykms_Client.py [IPADDRESS] [PORT]`, with the same defaults of `pykms_Server.py`. +- To show the help pages type: `python pykms_Server.py -h` and `python pykms_Client.py -h`. +- To generate a random HWID use `-w` option: `python pykms_Server.py -w RANDOM`. +- To get the HWID from any server use the client, for example type: `python pykms_Client.py 0.0.0.0 1688 -m Windows8.1 -V INFO`. +- To view a minimal set of logging information use `-V MINI` option, for example: `python pykms_Server.py -F /path/to/your/logfile.log -V MINI`. +- To redirect logging on stdout use `-F STDOUT` option, for example: `python pykms_Server.py -F STDOUT -V DEBUG`. +- You can create logfile and view logging information on stdout at the same time with `-F FILESTDOUT` option, for example: `python pykms_Server.py -F FILESTDOUT /path/to/your/logfile.log -V DEBUG`. +- Select timeout (seconds) for py-kms with `-t` option, for example `python pykms_Server.py -t 10` +- For launching py-kms GUI make executable `pykms_Server.py` file with `chmod +x /path/to/folder/py-kms/pykms_Server.py`, then simply run `pykms_Server.py` double-clicking. +- You can run py-kms deamonized (via [Etrigan](https://github.com/SystemRage/Etrigan)) using a command like: `python pykms_Server.py etrigan start` and stop it with: `python pykms_Server.py etrigan stop`. +- With Etrigan you have another way to launch py-kms GUI (specially suitable if you're using a virtualenv), so: `python pykms_Server.py etrigan start -g` and stop the GUI with the same precedent command (or interact with EXIT button). # Other Important Stuff From 4c51738d150a8850be6b53848f4c2378951f238b Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Thu, 13 Feb 2020 13:15:47 +0100 Subject: [PATCH 04/10] Added the docker image to the readmes --- README.md | 10 ++++++++++ docker/docker-py3-kms-minimal/README.md | 15 +++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 docker/docker-py3-kms-minimal/README.md diff --git a/README.md b/README.md index 5a82b44..2f6518a 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,16 @@ _py-kms_ is a port of node-kms created by [cyrozap](http://forums.mydigitallife. - With Etrigan you have another way to launch py-kms GUI (specially suitable if you're using a virtualenv), so: `python pykms_Server.py etrigan start -g` and stop the GUI with the same precedent command (or interact with EXIT button). +# Docker +This projects has docker image support. You can find all available image configurations inside the docker folder. +There are three tags of the images available: +* `latest`, wich is based on the python3 minimal configuration of py-kms. _This image does NOT include SQLLite support!_ +* `minimal`, currently the same like latest... +* `python2`, which is fully configurable and equiped with SQLLite support and web interface. +* `python3`, which is like the `python2` tag - just with Python 3... +If you just want to use the image and don't want to build them yourself, you could use the image from @Simonmicro at the docker hub (`realsimonmicro/py-kms`). +To ensure that the image is always up-to-date you should check [watchtower](https://github.com/containrrr/watchtower) out! + # Other Important Stuff Consult the [Wiki](https://github.com/SystemRage/py-kms/wiki) for more information about activation with _py-kms_ and to get GVLK keys. diff --git a/docker/docker-py3-kms-minimal/README.md b/docker/docker-py3-kms-minimal/README.md new file mode 100644 index 0000000..a82f06f --- /dev/null +++ b/docker/docker-py3-kms-minimal/README.md @@ -0,0 +1,15 @@ +# HowTo start the image... +``` +docker run -it -d --name py3-kms \ + -p 8080:8080 \ + -p 1688:1688 \ + -e IP=0.0.0.0 \ + -e PORT=1688 \ + -e HWID=RANDOM \ + -e LOGLEVEL=INFO \ + -e LOGSIZE=2 \ + -e LOGFILE=/var/log/py3-kms.log \ + -v /etc/localtime:/etc/localtime:ro \ + -v /var/log:/var/log:rw \ + --restart unless-stopped realsimonmicro/py-kms:minimal +``` From a549c4fa4d255f45fb5ee3984b7adf6f93f53f6a Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Thu, 13 Feb 2020 13:22:29 +0100 Subject: [PATCH 05/10] Fixed docker files path problem --- docker/docker-py3-kms-minimal/Dockerfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docker/docker-py3-kms-minimal/Dockerfile b/docker/docker-py3-kms-minimal/Dockerfile index fade0aa..90a8335 100644 --- a/docker/docker-py3-kms-minimal/Dockerfile +++ b/docker/docker-py3-kms-minimal/Dockerfile @@ -9,8 +9,8 @@ ENV LCID 1033 ENV CLIENT_COUNT 26 ENV ACTIVATION_INTERVAL 120 ENV RENEWAL_INTERVAL 10080 -ENV HWID "364F463A8863D35F" -ENV LOGLEVEL ERROR +ENV HWID "RANDOM" +ENV LOGLEVEL INFO ENV LOGFILE /var/log/pykms_logserver.log ENV LOGSIZE "" @@ -24,14 +24,11 @@ RUN apk add --no-cache --update \ sqlite-libs \ py3-pip && \ pip3 install peewee tzlocal && \ + git clone https://github.com/SystemRage/py-kms/ /home/ && \ apk del git WORKDIR /home/py-kms -COPY ./py-kms/ /home/py-kms/ -COPY ./docker/docker-py3-kms/start.sh /usr/bin/start.sh -RUN chmod a+x /usr/bin/start.sh - EXPOSE ${PORT}/tcp ENTRYPOINT /usr/bin/python3 pykms_Server.py ${IP} ${PORT} -l ${LCID} -c ${CLIENT_COUNT} -a ${ACTIVATION_INTERVAL} -r ${RENEWAL_INTERVAL} -w ${HWID} -V ${LOGLEVEL} -F ${LOGFILE} From 65fa7ae2579afb7add2653b1caba93836b6fc370 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Thu, 13 Feb 2020 13:29:57 +0100 Subject: [PATCH 06/10] Rereduced image size after I minimized some line out. Ooops --- docker/docker-py3-kms-minimal/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/docker-py3-kms-minimal/Dockerfile b/docker/docker-py3-kms-minimal/Dockerfile index 90a8335..0080f37 100644 --- a/docker/docker-py3-kms-minimal/Dockerfile +++ b/docker/docker-py3-kms-minimal/Dockerfile @@ -1,4 +1,4 @@ -# This is a minimized version from docker/docker-py3-kms/Dockerfile without sqllite support to reduce image size +# This is a minimized version from docker/docker-py3-kms/Dockerfile without SQLLite support to further reduce image size FROM alpine:3.8 @@ -24,7 +24,9 @@ RUN apk add --no-cache --update \ sqlite-libs \ py3-pip && \ pip3 install peewee tzlocal && \ - git clone https://github.com/SystemRage/py-kms/ /home/ && \ + git clone https://github.com/SystemRage/py-kms/ /tmp/py-kms && \ + mv /tmp/py-kms/py-kms /home/ && \ + rm -rf /tmp/py-kms && \ apk del git WORKDIR /home/py-kms From ed96d5424089e80ba1957b0edb12832b7b5077a6 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Sun, 23 Feb 2020 13:43:23 +0100 Subject: [PATCH 07/10] Updated READMEs to point to the original repo --- docker/README.md | 3 ++- docker/docker-py3-kms-minimal/README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/README.md b/docker/README.md index e21f0b8..43a8dad 100644 --- a/docker/README.md +++ b/docker/README.md @@ -37,8 +37,9 @@ docker run -it -d --name py3-kms \ -e LOGFILE=/var/log/py3-kms.log \ -v /etc/localtime:/etc/localtime:ro \ -v /var/log:/var/log:rw \ - --restart unless-stopped ekonprof18/pykms:py3-kms + --restart unless-stopped pykmsorg/py-kms:[TAG] ``` +_Make sure to insert at `[TAG]` your wanted edition! The default is `latest`, which does not include SQLLite support. For all available tag check [this](https://hub.docker.com/r/pykmsorg/py-kms) out._ # Sqlite-web A web-based SQLite database browser written in Python. diff --git a/docker/docker-py3-kms-minimal/README.md b/docker/docker-py3-kms-minimal/README.md index a82f06f..266a8cf 100644 --- a/docker/docker-py3-kms-minimal/README.md +++ b/docker/docker-py3-kms-minimal/README.md @@ -11,5 +11,5 @@ docker run -it -d --name py3-kms \ -e LOGFILE=/var/log/py3-kms.log \ -v /etc/localtime:/etc/localtime:ro \ -v /var/log:/var/log:rw \ - --restart unless-stopped realsimonmicro/py-kms:minimal + --restart unless-stopped pykmsorg/py-kms:minimal ``` From a408a65d32a8df615523bdede890a9567d5c14c2 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Sun, 23 Feb 2020 13:54:08 +0100 Subject: [PATCH 08/10] Updated the README to point to the official image --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2f6518a..cc371df 100644 --- a/README.md +++ b/README.md @@ -56,11 +56,11 @@ and stop the GUI with the same precedent command (or interact with EXIT button). # Docker This projects has docker image support. You can find all available image configurations inside the docker folder. There are three tags of the images available: -* `latest`, wich is based on the python3 minimal configuration of py-kms. _This image does NOT include SQLLite support!_ -* `minimal`, currently the same like latest... +* `latest`, currently the same like minimal... +* `minimal`, wich is based on the python3 minimal configuration of py-kms. _This image does NOT include SQLLite support!_ * `python2`, which is fully configurable and equiped with SQLLite support and web interface. * `python3`, which is like the `python2` tag - just with Python 3... -If you just want to use the image and don't want to build them yourself, you could use the image from @Simonmicro at the docker hub (`realsimonmicro/py-kms`). +If you just want to use the image and don't want to build them yourself, you can use the official image at the docker hub (`pykmsorg/py-kms`). To ensure that the image is always up-to-date you should check [watchtower](https://github.com/containrrr/watchtower) out! # Other Important Stuff From 5d7927a8f19cf2ee85db525b6f9ff5490152dd02 Mon Sep 17 00:00:00 2001 From: Simon Beginn Date: Sun, 23 Feb 2020 14:07:12 +0100 Subject: [PATCH 09/10] Removed double README and minimized older one --- docker/README.md | 34 ++----------------------- docker/docker-py3-kms-minimal/README.md | 15 ----------- 2 files changed, 2 insertions(+), 47 deletions(-) delete mode 100644 docker/docker-py3-kms-minimal/README.md diff --git a/docker/README.md b/docker/README.md index 43a8dad..8e877c6 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,28 +1,3 @@ -# History -_py-kms_ is a port of node-kms created by [cyrozap](http://forums.mydigitallife.info/members/183074-markedsword), which is a port of either the C#, C++, or .NET implementations of KMS Emulator. The original version was written by [CODYQX4](http://forums.mydigitallife.info/members/89933-CODYQX4) and is derived from the reverse-engineered code of Microsoft's official KMS. - -# Features -- Responds to V4, V5, and V6 KMS requests. -- Supports activating: - - Windows Vista - - Windows 7 - - Windows 8 - - Windows 8.1 - - Windows 10 ( 1511 / 1607 / 1703 / 1709 / 1803 / 1809 ) - - Windows Server 2008 - - Windows Server 2008 R2 - - Windows Server 2012 - - Windows Server 2012 R2 - - Windows Server 2016 - - Windows Server 2019 - - Microsoft Office 2010 ( Volume License ) - - Microsoft Office 2013 ( Volume License ) - - Microsoft Office 2016 ( Volume License ) - - Microsoft Office 2019 ( Volume License ) -- It's written in Python: - - tested with Python 2.7.15rc1 - - tested with Python 3.6.7 - # Usage ``` docker run -it -d --name py3-kms \ @@ -39,7 +14,8 @@ docker run -it -d --name py3-kms \ -v /var/log:/var/log:rw \ --restart unless-stopped pykmsorg/py-kms:[TAG] ``` -_Make sure to insert at `[TAG]` your wanted edition! The default is `latest`, which does not include SQLLite support. For all available tag check [this](https://hub.docker.com/r/pykmsorg/py-kms) out._ +_Make sure to insert at `[TAG]` your wanted edition! The default is `latest`, which does not include SQLLite support. For all available tag check [this](https://hub.docker.com/r/pykmsorg/py-kms/tags) out._ +Please note you can omit the `SQLITE` option if you plan to use the minimal ot `latest` image # Sqlite-web A web-based SQLite database browser written in Python. @@ -113,9 +89,3 @@ ENV LOGFILE /var/log/pykms_logserver.log ENV LOGSIZE "" # Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default. ``` - -# Other Important Stuff -Consult the [Wiki](https://github.com/SystemRage/py-kms/wiki) for more informations about activation with _py-kms_ and to get GVLK keys. - -# License - [![License](https://img.shields.io/badge/license-unlicense-lightgray.svg)](https://github.com/SystemRage/py-kms/blob/master/LICENSE) diff --git a/docker/docker-py3-kms-minimal/README.md b/docker/docker-py3-kms-minimal/README.md deleted file mode 100644 index 266a8cf..0000000 --- a/docker/docker-py3-kms-minimal/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# HowTo start the image... -``` -docker run -it -d --name py3-kms \ - -p 8080:8080 \ - -p 1688:1688 \ - -e IP=0.0.0.0 \ - -e PORT=1688 \ - -e HWID=RANDOM \ - -e LOGLEVEL=INFO \ - -e LOGSIZE=2 \ - -e LOGFILE=/var/log/py3-kms.log \ - -v /etc/localtime:/etc/localtime:ro \ - -v /var/log:/var/log:rw \ - --restart unless-stopped pykmsorg/py-kms:minimal -``` From 6edf98b2a3daf6786ba74bf60923df7fc60f35a2 Mon Sep 17 00:00:00 2001 From: Simonmicro Date: Sun, 23 Feb 2020 14:15:04 +0100 Subject: [PATCH 10/10] Added docker status badges --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index cc371df..f1c4275 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,9 @@ _py-kms_ is a port of node-kms created by [cyrozap](http://forums.mydigitallife. and stop the GUI with the same precedent command (or interact with EXIT button). # Docker +![auto-docker](https://img.shields.io/docker/cloud/automated/pykmsorg/py-kms) +![status-docker](https://img.shields.io/docker/cloud/build/pykmsorg/py-kms) + This projects has docker image support. You can find all available image configurations inside the docker folder. There are three tags of the images available: * `latest`, currently the same like minimal...