Merge pull request #55 from Simonmicro/master

Integrate official docker image
This commit is contained in:
Matteo ℱan 2020-03-03 23:13:52 +01:00 committed by GitHub
commit 19ef51a6db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 73 additions and 53 deletions

View File

@ -24,35 +24,48 @@ _py-kms_ is a port of node-kms created by [cyrozap](http://forums.mydigitallife.
- tested with Python 3.6.7 - tested with Python 3.6.7
# Dependencies # 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. - 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. - 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. - 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: - Installation example on Ubuntu / Mint:
- ```sudo apt-get update``` - `sudo apt-get update`
- for python3 - for python3
- ```sudo apt-get install python3-tk python3-pip``` - `sudo apt-get install python3-tk python3-pip`
- ```sudo pip3 install tzlocal pysqlite3``` - `sudo pip3 install tzlocal pysqlite3`
- or for python2 - or for python2
- ```sudo apt-get install python-tk python-pip``` - `sudo apt-get install python-tk python-pip`
- ```sudo pip install tzlocal pysqlite``` - `sudo pip install tzlocal pysqlite`
# Usage # 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. - __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 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 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 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 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 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 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```. - 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```. - 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``` - 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. - 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```. - 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``` - 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). 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...
* `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 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 # 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. Consult the [Wiki](https://github.com/SystemRage/py-kms/wiki) for more information about activation with _py-kms_ and to get GVLK keys.

View File

@ -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 # Usage
``` ```
docker run -it -d --name py3-kms \ docker run -it -d --name py3-kms \
@ -37,8 +12,10 @@ docker run -it -d --name py3-kms \
-e LOGFILE=/var/log/py3-kms.log \ -e LOGFILE=/var/log/py3-kms.log \
-v /etc/localtime:/etc/localtime:ro \ -v /etc/localtime:/etc/localtime:ro \
-v /var/log:/var/log:rw \ -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/tags) out._
Please note you can omit the `SQLITE` option if you plan to use the minimal ot `latest` image
# Sqlite-web # Sqlite-web
A web-based SQLite database browser written in Python. A web-based SQLite database browser written in Python.
@ -112,9 +89,3 @@ ENV LOGFILE /var/log/pykms_logserver.log
ENV LOGSIZE "" ENV LOGSIZE ""
# Use this flag to set a maximum size (in MB) to the output log file. Desactivated by default. # 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)

View File

@ -0,0 +1,36 @@
# This is a minimized version from docker/docker-py3-kms/Dockerfile without SQLLite support to further 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 "RANDOM"
ENV LOGLEVEL INFO
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 && \
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
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}