Skip to content

Commit

Permalink
Move docs to Readthedocs (#87)
Browse files Browse the repository at this point in the history
* Modified rtd template

* Added current wiki files

* Superseeded by index.rst

* Removed dead links

* Minor formatting

* Moved usage to own topic

* Reformatting...

* Reformatting...

* Formulations

* New topic structure

* Split into subsections

* Heading changes

* Ooops, missed a file

* Reformatting

* Changed file name

* Link fixes

* Topic level change

* Minor title change

* Formulations

* Again more heading changes

* Added todos

* Removed old manual wiki copy

* Table fix

* Table fix chars

* Reformulated

* Formatting and reformulations

* Heading change

* Merged key files

* Fixed heading problems

* Added TODO

* Added TODOs

* Moinor formatting

* Removed empty lines

* Switched to local copies of images

* Changed in-doc ref

* Done Ref replacement

* Key table reformat

* Hidden TODOs

* Moved manual section

* Started moving into docs

* Minimized

* Moved readme file
Merged docker section
Pending still other readme sections at manual execution

* Added one sentence regarding ipv4/ipv6 to docker

* Merged manual execution information

* Added some badges

* Reworked fast run doc

* Added note to the rest of options

* Added changelog to docs

* Added tables?

* Added table support

* removed test table

* Finished TODO

* Moved subtopic to top (old parent was not "logically connected")

* Typo

* Changed readme url to new docs

* Fixed wrong docs badge uri

* Changed doc title to link, so it is impossible to miss
  • Loading branch information
simonmicro committed Sep 1, 2020
1 parent 5b328d2 commit 27aa94a
Show file tree
Hide file tree
Showing 22 changed files with 1,717 additions and 942 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Changelog

### py-kms_2020-07-01
- py-kms Gui: now matches all cli options, added modes onlyserver / onlyclient,
added some animations.
Expand Down
84 changes: 29 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# History
# Readme
![repo-size](https://img.shields.io/github/repo-size/SystemRage/py-kms)
![open-issues](https://img.shields.io/github/issues/SystemRage/py-kms)
![last-commit](https://img.shields.io/github/last-commit/SystemRage/py-kms/master)
![docker-status](https://img.shields.io/docker/cloud/build/pykmsorg/py-kms)
![docker-pulls](https://img.shields.io/docker/pulls/pykmsorg/py-kms)
![read-the-docs](https://img.shields.io/readthedocs/py-kms)
***

## 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.
## Features
- Responds to `v4`, `v5`, and `v6` KMS requests.
- Supports activating:
- Windows Vista
- Windows 7
Expand All @@ -20,59 +29,24 @@ _py-kms_ is a port of node-kms created by [cyrozap](http://forums.mydigitallife.
- Microsoft Office 2013 ( Volume License )
- Microsoft Office 2016 ( Volume License )
- Microsoft Office 2019 ( Volume License )
- It's written in Python:
- tested with Python 3.6.9

# Dependencies
- Python 3.x.
- 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.
- Installation example on Ubuntu / Mint:
- `sudo apt-get update`
- `sudo apt-get install python3-tk python3-pip`
- `sudo pip3 install tzlocal pysqlite3`
- It's written in Python (tested with Python 3.6.7)
- Supports execution by `Docker`, `systemd`, `Upstart` and many more...
- Includes a GUI for simlpe managing
- Uses `sqlite` for persistent data storage

## [Documentation](https://py-kms.readthedocs.io/en/latest/)
The documentation has been completly reworked and is now available on [readthedocs.com](https://py-kms.readthedocs.io/en/latest/Usage.html#start-parameters). It should you provide all necessary information how to get py-kms up
and running using your favourite tools - all without clumping this readme up. The documentation also houses more information about activation with _py-kms_ and to how get GVLK keys.

# Usage
- To start the server, execute `python3 pykms_Server.py [IPADDRESS] [PORT]`, the default _IPADDRESS_ is `0.0.0.0` ( 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 a IPv6-capable dual-stack OS, a dual-stack socket is created when using a IPv6 address.
- To run the client (only for testing purposes), use `python3 pykms_Client.py [IPADDRESS] [PORT]`, with the same defaults of `pykms_Server.py`.
## Get it running (fast)...
- To start the server manually, execute `python3 pykms_Server.py [IPADDRESS] [PORT]`, the default `IPADDRESS` is `::` ( all ipv6-interfaces ) and the default `PORT` is `1688`. Note that both the address and port are optional.
Also note that it is recommended to use an IPv6 address - even if you are just plan to use IPv4 (the kernel maps the incoming IPv4 requests automatically to IPv6)!
- To start the server automatically using Docker, execute `docker run -d --name py-kms --restart always -p 1688:1688 pykmsorg/py-kms`.
- To show the help pages type: `python3 pykms_Server.py -h` and `python3 pykms_Client.py -h`.
- To generate a random HWID use `-w` option: `python3 pykms_Server.py -w RANDOM`.
- To get the HWID from any server use the client, for example type: `python3 pykms_Client.py :: 1688 -m Windows8.1 -V INFO`.

- To change your logfile path use `-F` option, for example: `python3 pykms_Server.py -F /path/to/your/logfile.log -V DEBUG`.
- To view a minimal set of logging information use `-V MINI` option, for example: `python3 pykms_Server.py -F /path/to/your/logfile.log -V MINI`.
- To redirect logging on stdout use `-F STDOUT` option, for example: `python3 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: `python3 pykms_Server.py -F FILESTDOUT /path/to/your/logfile.log -V DEBUG`.
- With `-F STDOUTOFF` you disable all stdout messages (but a logfile will be created), for example: `python3 pykms_Server.py -F STDOUTOFF /path/to/your/logfile.log -V DEBUG`.
- With `-F FILEOFF` you disable logfile creation.

- Select timeout (seconds) for py-kms with `-t0` option, for example `python3 pykms_Server.py -t0 10`.
- Option `-y` enables printing asynchronously of messages (pretty / logging).
- 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 daemonized (via [Etrigan](https://github.com/SystemRage/Etrigan)) using a command like: `python3 pykms_Server.py etrigan start` and stop it with: `python3 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: `python3 pykms_Server.py etrigan start -g`
and stop the GUI with `python3 pykms_Server.py etrigan stop` (or interact with the 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)
![pulls-docker](https://img.shields.io/docker/pulls/pykmsorg/py-kms)
![size-docker](https://img.shields.io/docker/image-size/pykmsorg/py-kms)

This project 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!_
* `python3`, which is fully configurable and equiped with SQLLite support and web interface.

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!
- For launching py-kms GUI make the file `pykms_Server.py` executable with `chmod +x /path/to/folder/py-kms/pykms_Server.py`, then simply run `pykms_Server.py` by double-clicking.

# 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.
_If you wish to learn more about using py-kms, please refer to the documentation [here](Getting Started.md)!_

# License
- _py-kms_ is [![License0](https://img.shields.io/badge/license-unlicense-lightgray.svg)](https://github.com/SystemRage/py-kms/blob/master/LICENSE)
- _py-kms GUI_ is [![License1](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/SystemRage/py-kms/blob/master/LICENSE.gui.md) © Matteo ℱan
## License
- _py-kms_ is [![Unlicense](https://img.shields.io/badge/license-unlicense-lightgray.svg)](https://github.com/SystemRage/py-kms/blob/master/LICENSE)
- _py-kms GUI_ is [![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/SystemRage/py-kms/blob/master/LICENSE.gui.md) © Matteo ℱan

0 comments on commit 27aa94a

Please sign in to comment.