mirror of
				https://github.com/11notes/docker-kms.git
				synced 2025-10-31 12:03:48 +00:00 
			
		
		
		
	Removed KMS_IP and KMS_PORT
This commit is contained in:
		
							
								
								
									
										123
									
								
								.github/workflows/docker.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										123
									
								
								.github/workflows/docker.yml
									
									
									
									
										vendored
									
									
								
							| @@ -5,18 +5,34 @@ on: | |||||||
|     inputs: |     inputs: | ||||||
|       release: |       release: | ||||||
|         description: 'set WORKFLOW_GITHUB_RELEASE' |         description: 'set WORKFLOW_GITHUB_RELEASE' | ||||||
|         required: true |         required: false | ||||||
|         default: 'true' |         default: 'false' | ||||||
|  |       image: | ||||||
|  |         description: 'set IMAGE' | ||||||
|  |         required: false | ||||||
|  |       uid: | ||||||
|  |         description: 'set IMAGE_UID' | ||||||
|  |         required: false | ||||||
|  |       gid: | ||||||
|  |         description: 'set IMAGE_GID' | ||||||
|  |         required: false | ||||||
|  |       semverprefix: | ||||||
|  |         description: 'prefix for semver tags' | ||||||
|  |         required: false | ||||||
|  |       semversuffix: | ||||||
|  |         description: 'suffix for semver tags' | ||||||
|  |         required: false | ||||||
|  |       dispatch: | ||||||
|  |         description: 'run dispatch at end' | ||||||
|  |         required: false | ||||||
|  |         default: 'false' | ||||||
|   push: |   push: | ||||||
|     tags: |     tags: | ||||||
|       - 'v*' |       - 'v*' | ||||||
|  |  | ||||||
| env: |  | ||||||
|   WORKFLOW_GITHUB_RELEASE: true |  | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   build-and-push-image: |   build-and-push-image: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-22.04 | ||||||
|     permissions: |     permissions: | ||||||
|       contents: write |       contents: write | ||||||
|       packages: write |       packages: write | ||||||
| @@ -26,6 +42,14 @@ jobs: | |||||||
|       - name: init / checkout |       - name: init / checkout | ||||||
|         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 |         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | ||||||
|  |  | ||||||
|  |       - name: init / inputs to env | ||||||
|  |         if: github.event_name == 'workflow_dispatch' | ||||||
|  |         run: | | ||||||
|  |           cat << 'EOF' > .inputs | ||||||
|  |           ${{ toJSON(github.event.inputs) }} | ||||||
|  |           EOF | ||||||
|  |           for KEY in $(cat .inputs | jq --raw-output 'keys[]' | tr '\n' ' '); do echo "input_$(echo ${KEY} | tr '[:upper:]' '[:lower:]')=$(cat .inputs | jq --raw-output '.'${KEY}'')" >> $GITHUB_ENV; done | ||||||
|  |  | ||||||
|       - name: init / .json to env |       - name: init / .json to env | ||||||
|         uses: rgarcia-phi/json-to-variables@9835d537368468c4e4de5254dc3efeadda183793 |         uses: rgarcia-phi/json-to-variables@9835d537368468c4e4de5254dc3efeadda183793 | ||||||
|         with: |         with: | ||||||
| @@ -33,34 +57,38 @@ jobs: | |||||||
|  |  | ||||||
|       - name: init / setup environment |       - name: init / setup environment | ||||||
|         run: | |         run: | | ||||||
|           : # set default arch if not set |           : # set image | ||||||
|  |           LOCAL_IMAGE=${json_image} | ||||||
|  |           if [ ! -z ${input_image} ]; then LOCAL_IMAGE=${input_image}; fi | ||||||
|  |           echo "IMAGE=${LOCAL_IMAGE}" >> $GITHUB_ENV | ||||||
|  |  | ||||||
|  |           : # set defaults | ||||||
|           echo "IMAGE_ARCH=${json_arch:-linux/amd64,linux/arm64}" >> $GITHUB_ENV |           echo "IMAGE_ARCH=${json_arch:-linux/amd64,linux/arm64}" >> $GITHUB_ENV | ||||||
|  |           echo "WORKFLOW_GRYPE_SEVERITY_CUTOFF=${json_grype_severity:-high}" >> $GITHUB_ENV; | ||||||
|  |           echo "WORKFLOW_GITHUB_RELEASE=${input_release:-true}" >> $GITHUB_ENV; | ||||||
|  |           echo "WORKFLOW_DISPATCH=${input_dispatch:-true}" >> $GITHUB_ENV; | ||||||
|  |  | ||||||
|           : # create tags for semver, stable and other shenanigans |           : # create tags for semver, stable and other shenanigans | ||||||
|           export LOCAL_SHA=$(git rev-parse --short HEAD) |           LOCAL_SHA=$(git rev-parse --short HEAD) | ||||||
|           export LOCAL_SEMVER_MAJOR=$(awk -F. '{ print $1 }' <<< ${json_version}) |           LOCAL_SEMVER_MAJOR=$(awk -F. '{ print $1 }' <<< ${json_semver_version}) | ||||||
|           export LOCAL_SEMVER_MINOR=$(awk -F. '{ print $2 }' <<< ${json_version}) |           LOCAL_SEMVER_MINOR=$(awk -F. '{ print $2 }' <<< ${json_semver_version}) | ||||||
|           export LOCAL_SEMVER_PATCH=$(awk -F. '{ print $3 }' <<< ${json_version}) |           LOCAL_SEMVER_PATCH=$(awk -F. '{ print $3 }' <<< ${json_semver_version}) | ||||||
|           export LOCAL_TAGS="${json_image}:${LOCAL_SHA}" |           LOCAL_SEMVER_PREFIX="" | ||||||
|           if [ ! -z ${LOCAL_SEMVER_MAJOR} ]; then LOCAL_TAGS="${LOCAL_TAGS},${json_image}:${LOCAL_SEMVER_MAJOR}"; fi |           LOCAL_SEMVER_SUFFIX="" | ||||||
|           if [ ! -z ${LOCAL_SEMVER_MINOR} ]; then LOCAL_TAGS="${LOCAL_TAGS},${json_image}:${LOCAL_SEMVER_MAJOR}.${LOCAL_SEMVER_MINOR}"; fi |           LOCAL_TAGS="${LOCAL_IMAGE}:${LOCAL_SHA}" | ||||||
|           if [ ! -z ${LOCAL_SEMVER_PATCH} ]; then LOCAL_TAGS="${LOCAL_TAGS},${json_image}:${LOCAL_SEMVER_MAJOR}.${LOCAL_SEMVER_MINOR}.${LOCAL_SEMVER_PATCH}"; fi |           if [ ! -z ${input_semverprefix} ]; then LOCAL_SEMVER_PREFIX="${input_semverprefix}-"; fi | ||||||
|           if echo "${LOCAL_TAGS}" | grep -q "${json_stable}" ; then LOCAL_TAGS="${LOCAL_TAGS},${json_image}:stable"; fi |           if [ ! -z ${input_semversuffix} ]; then LOCAL_SEMVER_SUFFIX="-${input_semversuffix}"; fi | ||||||
|           if echo "${LOCAL_TAGS}" | grep -q "${json_latest}" ; then LOCAL_TAGS="${LOCAL_TAGS},${json_image}:latest"; fi |           if [ ! -z ${LOCAL_SEMVER_MAJOR} ]; then LOCAL_TAGS="${LOCAL_TAGS},${LOCAL_IMAGE}:${LOCAL_SEMVER_PREFIX}${LOCAL_SEMVER_MAJOR}${LOCAL_SEMVER_SUFFIX}"; fi | ||||||
|           if [ ! -z ${json_tags} ]; then SPECIAL_LOCAL_TAGS=$(echo ${json_tags} | sed 's/,/ /g'); for LOCAL_TAG in ${json_tags}; do LOCAL_TAGS="${LOCAL_TAGS},${json_image}:${LOCAL_TAG}"; done; fi |           if [ ! -z ${LOCAL_SEMVER_MINOR} ]; then LOCAL_TAGS="${LOCAL_TAGS},${LOCAL_IMAGE}:${LOCAL_SEMVER_PREFIX}${LOCAL_SEMVER_MAJOR}.${LOCAL_SEMVER_MINOR}${LOCAL_SEMVER_SUFFIX}"; fi | ||||||
|  |           if [ ! -z ${LOCAL_SEMVER_PATCH} ]; then LOCAL_TAGS="${LOCAL_TAGS},${LOCAL_IMAGE}:${LOCAL_SEMVER_PREFIX}${LOCAL_SEMVER_MAJOR}.${LOCAL_SEMVER_MINOR}.${LOCAL_SEMVER_PATCH}${LOCAL_SEMVER_SUFFIX}"; fi | ||||||
|  |           if echo "${LOCAL_TAGS}" | grep -q "${json_semver_stable}" ; then LOCAL_TAGS="${LOCAL_TAGS},${LOCAL_IMAGE}:stable"; fi | ||||||
|  |           if echo "${LOCAL_TAGS}" | grep -q "${json_semver_latest}" ; then LOCAL_TAGS="${LOCAL_TAGS},${LOCAL_IMAGE}:latest"; fi | ||||||
|  |           if [ ! -z ${json_semver_tags} ]; then SPECIAL_LOCAL_TAGS=$(echo ${json_semver_tags} | sed 's/,/ /g'); for LOCAL_TAG in ${json_semver_tags}; do LOCAL_TAGS="${LOCAL_TAGS},${LOCAL_IMAGE}:${LOCAL_TAG}"; done; fi | ||||||
|           echo "IMAGE_TAGS=${LOCAL_TAGS}" >> $GITHUB_ENV |           echo "IMAGE_TAGS=${LOCAL_TAGS}" >> $GITHUB_ENV | ||||||
|  |  | ||||||
|           : # if for whatever reason UID/GID must be changed at build time |           : # if for whatever reason UID/GID must be changed at build time | ||||||
|           echo "IMAGE_UID=${json_uid:-1000}" >> $GITHUB_ENV |           if [ ! -z ${input_uid} ]; then echo "IMAGE_UID=${input_uid}" >> $GITHUB_ENV; else echo "IMAGE_UID=${json_uid:-1000}" >> $GITHUB_ENV; fi | ||||||
|           echo "IMAGE_GID=${json_gid:-1000}" >> $GITHUB_ENV |           if [ ! -z ${input_gid} ]; then echo "IMAGE_GID=${input_gid}" >> $GITHUB_ENV; else echo "IMAGE_GID=${json_gid:-1000}" >> $GITHUB_ENV; fi | ||||||
|  |  | ||||||
|           : # echo inputs |  | ||||||
|           echo "${{ toJSON(github.event.inputs) }}" |  | ||||||
|  |  | ||||||
|       - name: github / set workflow release |  | ||||||
|         if: github.event_name == 'workflow_dispatch' |  | ||||||
|         run: | |  | ||||||
|           echo "WORKFLOW_GITHUB_RELEASE=${{ inputs.release }}" >> $GITHUB_ENV |  | ||||||
|  |  | ||||||
|       - name: docker / login to hub |       - name: docker / login to hub | ||||||
|         uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 |         uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 | ||||||
| @@ -81,35 +109,41 @@ jobs: | |||||||
|           file: arch.dockerfile |           file: arch.dockerfile | ||||||
|           push: true |           push: true | ||||||
|           platforms: ${{ env.IMAGE_ARCH }} |           platforms: ${{ env.IMAGE_ARCH }} | ||||||
|           cache-from: type=registry,ref=${{ env.json_image }}:buildcache |           cache-from: type=registry,ref=${{ env.IMAGE }}:buildcache | ||||||
|           cache-to: type=registry,ref=${{ env.json_image }}:buildcache,mode=max,compression=zstd,force-compression=true |           cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache,mode=max,compression=zstd,force-compression=true | ||||||
|           build-args: | |           build-args: | | ||||||
|             APP_IMAGE=${{ env.json_image }} |             APP_IMAGE=${{ env.IMAGE }} | ||||||
|             APP_NAME=${{ env.json_name }} |             APP_NAME=${{ env.json_name }} | ||||||
|             APP_VERSION=${{ env.json_version }} |             APP_VERSION=${{ env.json_semver_version }} | ||||||
|             APP_ROOT=${{ env.json_root }} |             APP_ROOT=${{ env.json_root }} | ||||||
|             APP_UID=${{ env.IMAGE_UID }} |             APP_UID=${{ env.IMAGE_UID }} | ||||||
|             APP_GID=${{ env.IMAGE_GID }} |             APP_GID=${{ env.IMAGE_GID }} | ||||||
|             NO_CACHE=$(date +%s) |             NO_CACHE=$(date +%s) | ||||||
|           tags: | |           tags: | | ||||||
|             ${{ env.json_image }}:grype |             ${{ env.IMAGE }}:grype | ||||||
|  |  | ||||||
|       - name: grype / scan |       - name: grype / scan | ||||||
|         id: scan |         id: scan | ||||||
|         uses: anchore/scan-action@abae793926ec39a78ab18002bc7fc45bbbd94342 |         uses: anchore/scan-action@abae793926ec39a78ab18002bc7fc45bbbd94342 | ||||||
|         with: |         with: | ||||||
|           image: ${{ env.json_image }}:grype |           image: ${{ env.IMAGE }}:grype | ||||||
|           severity-cutoff: high |           severity-cutoff: ${{ env.WORKFLOW_GRYPE_SEVERITY_CUTOFF }} | ||||||
|  |  | ||||||
|       - name: grype / report / print |       - name: grype / report / print | ||||||
|         if: success() || failure() |         if: success() || failure() | ||||||
|         run: cat ${{ steps.scan.outputs.sarif }} |         run: cat ${{ steps.scan.outputs.sarif }} | ||||||
|  |  | ||||||
|  |       - name: grype / report / annotation | ||||||
|  |         if: success() || failure() | ||||||
|  |         uses: Miragon/sarif-report-parse@f8bcc5ece9c2b9a786ff4e7392cca2bb72ae8b4b | ||||||
|  |         with: | ||||||
|  |           sarif-file: ${{ steps.scan.outputs.sarif }} | ||||||
|  |  | ||||||
|       - name: grype / delete tag |       - name: grype / delete tag | ||||||
|         if: success() || failure() |         if: success() || failure() | ||||||
|         run: | |         run: | | ||||||
|           curl --request DELETE \ |           curl --request DELETE \ | ||||||
|             --url https://hub.docker.com/v2/repositories/${{ env.json_image }}/tags/grype/ \ |             --url https://hub.docker.com/v2/repositories/${{ env.IMAGE }}/tags/grype/ \ | ||||||
|             --header 'authorization: jwt ${{ secrets.DOCKER_TOKEN }}' \ |             --header 'authorization: jwt ${{ secrets.DOCKER_TOKEN }}' \ | ||||||
|             --header 'content-type: application/json' \ |             --header 'content-type: application/json' \ | ||||||
|             --fail |             --fail | ||||||
| @@ -128,12 +162,12 @@ jobs: | |||||||
|           sbom: true |           sbom: true | ||||||
|           provenance: mode=max |           provenance: mode=max | ||||||
|           platforms: ${{ env.IMAGE_ARCH }} |           platforms: ${{ env.IMAGE_ARCH }} | ||||||
|           cache-from: type=registry,ref=${{ env.json_image }}:buildcache |           cache-from: type=registry,ref=${{ env.IMAGE }}:buildcache | ||||||
|           cache-to: type=registry,ref=${{ env.json_image }}:buildcache,mode=max,compression=zstd,force-compression=true |           cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache,mode=max,compression=zstd,force-compression=true | ||||||
|           build-args: | |           build-args: | | ||||||
|             APP_IMAGE=${{ env.json_image }} |             APP_IMAGE=${{ env.IMAGE }} | ||||||
|             APP_NAME=${{ env.json_name }} |             APP_NAME=${{ env.json_name }} | ||||||
|             APP_VERSION=${{ env.json_version }} |             APP_VERSION=${{ env.json_semver_version }} | ||||||
|             APP_ROOT=${{ env.json_root }} |             APP_ROOT=${{ env.json_root }} | ||||||
|             APP_UID=${{ env.IMAGE_UID }} |             APP_UID=${{ env.IMAGE_UID }} | ||||||
|             APP_GID=${{ env.IMAGE_GID }} |             APP_GID=${{ env.IMAGE_GID }} | ||||||
| @@ -155,7 +189,7 @@ jobs: | |||||||
|             --header 'authorization: Bearer ${{ secrets.REPOSITORY_TOKEN }}' \ |             --header 'authorization: Bearer ${{ secrets.REPOSITORY_TOKEN }}' \ | ||||||
|             --header 'content-type: application/json' \ |             --header 'content-type: application/json' \ | ||||||
|             --data '{ |             --data '{ | ||||||
|               "description":"${{ env.json_description }}", |               "description":"${{ env.json_readme_description }}", | ||||||
|               "homepage":"", |               "homepage":"", | ||||||
|               "has_issues":true, |               "has_issues":true, | ||||||
|               "has_discussions":true, |               "has_discussions":true, | ||||||
| @@ -165,18 +199,19 @@ jobs: | |||||||
|             --fail |             --fail | ||||||
|  |  | ||||||
|       - name: docker / push README.md to docker hub |       - name: docker / push README.md to docker hub | ||||||
|  |         if: hashFiles('README.md') != '' | ||||||
|         uses: christian-korneck/update-container-description-action@d36005551adeaba9698d8d67a296bd16fa91f8e8 |         uses: christian-korneck/update-container-description-action@d36005551adeaba9698d8d67a296bd16fa91f8e8 | ||||||
|         env: |         env: | ||||||
|           DOCKER_USER: 11notes |           DOCKER_USER: 11notes | ||||||
|           DOCKER_PASS: ${{ secrets.DOCKER_TOKEN }} |           DOCKER_PASS: ${{ secrets.DOCKER_TOKEN }} | ||||||
|         with: |         with: | ||||||
|           destination_container_repo: ${{ env.json_image }} |           destination_container_repo: ${{ env.IMAGE }} | ||||||
|           provider: dockerhub |           provider: dockerhub | ||||||
|           short_description: ${{ env.json_description }} |           short_description: ${{ env.json_readme_description }} | ||||||
|           readme_file: 'README.md' |           readme_file: 'README.md' | ||||||
|  |  | ||||||
|       - name: github / dispatch workflow |       - name: github / dispatch workflow | ||||||
|         if: env.json_dispatch_workflow != null |         if: env.WORKFLOW_DISPATCH == 'true' && env.json_dispatch_workflow != null | ||||||
|         uses: benc-uk/workflow-dispatch@e2e5e9a103e331dad343f381a29e654aea3cf8fc |         uses: benc-uk/workflow-dispatch@e2e5e9a103e331dad343f381a29e654aea3cf8fc | ||||||
|         with: |         with: | ||||||
|           workflow: ${{ env.json_dispatch_workflow }} |           workflow: ${{ env.json_dispatch_workflow }} | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								.json
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								.json
									
									
									
									
									
								
							| @@ -1,13 +1,20 @@ | |||||||
| { | { | ||||||
|   "image":"11notes/kms", |   "image":"11notes/kms", | ||||||
|   "description":"Activate any version of Windows and Office, forever", |  | ||||||
|   "name":"kms", |   "name":"kms", | ||||||
|   "version":"465f4d1", |  | ||||||
|   "root":"/kms", |   "root":"/kms", | ||||||
|    |    | ||||||
|  |   "semver":{ | ||||||
|  |     "version":"465f4d1", | ||||||
|     "stable":"465f4d1", |     "stable":"465f4d1", | ||||||
|   "latest":"465f4d1", |     "latest":"465f4d1" | ||||||
|   "parent":"11notes/alpine:stable", |   }, | ||||||
|  |  | ||||||
|  |   "readme":{ | ||||||
|  |     "description":"Activate any version of Windows and Office, forever", | ||||||
|  |     "parent":{ | ||||||
|  |       "image":"11notes/alpine:stable" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |  | ||||||
|   "dispatch":{ |   "dispatch":{ | ||||||
|     "workflow":"gui.yml" |     "workflow":"gui.yml" | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,15 +1,15 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| # 🏔️ kms on Alpine | # 🏔️  on Alpine | ||||||
| [<img src="https://img.shields.io/badge/github-source-blue?logo=github&color=040308">](https://github.com/11notes/docker-kms)[<img src="https://img.shields.io/github/issues/11notes/docker-kms?color=7842f5">](https://github.com/11notes/docker-kms/issues) | [<img src="https://img.shields.io/badge/github-source-blue?logo=github&color=040308">](https://github.com/11notes/docker-kms)[<img src="https://img.shields.io/github/issues/11notes/docker-kms?color=7842f5">](https://github.com/11notes/docker-kms/issues) | ||||||
|  |  | ||||||
| **Activate any version of Windows and Office, forever** | **Activate any version of Windows and Office, forever** | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # SYNOPSIS 📖 | # SYNOPSIS 📖 | ||||||
| **What can I do with this?** This image will run a KMS server you can use to activate any version of Windows and Office, forever. If you need a GUI, simply add [11notes/kms-gui](https://github.com/11notes/docker-kms-gui) to your compose. | **What can I do with this?** This image will run a KMS server you can use to activate any version of Windows and Office, forever. | ||||||
|  |  | ||||||
| Works with: | Works with: | ||||||
| - Windows Vista  | - Windows Vista  | ||||||
| @@ -34,7 +34,7 @@ Works with: | |||||||
| - Microsoft Office 2024 ( Volume License ) | - Microsoft Office 2024 ( Volume License ) | ||||||
|  |  | ||||||
| # VOLUMES 📁 | # VOLUMES 📁 | ||||||
| * **/kms/var** - Directory of the activation database | * **/var** - Directory of the activation database | ||||||
|  |  | ||||||
| # COMPOSE ✂️ | # COMPOSE ✂️ | ||||||
| ```yaml | ```yaml | ||||||
| @@ -51,7 +51,7 @@ services: | |||||||
|       - "1688:1688/tcp" |       - "1688:1688/tcp" | ||||||
|     restart: "always" |     restart: "always" | ||||||
|   kms-gui: |   kms-gui: | ||||||
|     image: "11notes/kms-gui:latest" |     image: "11notes/kms-gui:stable" | ||||||
|     container_name: "kms-gui" |     container_name: "kms-gui" | ||||||
|     environment: |     environment: | ||||||
|       TZ: "Europe/Zurich" |       TZ: "Europe/Zurich" | ||||||
| @@ -69,7 +69,7 @@ volumes: | |||||||
| ```cmd | ```cmd | ||||||
| slmgr /ipk D764K-2NDRG-47T6Q-P8T8W-YP6DF | slmgr /ipk D764K-2NDRG-47T6Q-P8T8W-YP6DF | ||||||
| ``` | ``` | ||||||
| Add your KMS server information to server | Add your KMS server information to server via registry | ||||||
| ```powershell | ```powershell | ||||||
| Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" -Name "KeyManagementServiceName" -Value "KMS_IP" | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" -Name "KeyManagementServiceName" -Value "KMS_IP" | ||||||
| Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" -Name "KeyManagementServicePort" -Value "KMS_PORT" | Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" -Name "KeyManagementServicePort" -Value "KMS_PORT" | ||||||
| @@ -95,8 +95,6 @@ slmgr /ato | |||||||
| | --- | --- | --- | | | --- | --- | --- | | ||||||
| | `TZ` | [Time Zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) | | | | `TZ` | [Time Zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) | | | ||||||
| | `DEBUG` | Will activate debug option for container image and app (if available) | | | | `DEBUG` | Will activate debug option for container image and app (if available) | | | ||||||
| | `KMS_IP` | localhost or 127.0.0.1 or a dedicated IP | 0.0.0.0 | |  | ||||||
| | `KMS_PORT` | any port > 1024 | 1688 | |  | ||||||
| | `KMS_LOCALE` | see Microsoft LICD specification | 1033 (en-US) | | | `KMS_LOCALE` | see Microsoft LICD specification | 1033 (en-US) | | ||||||
| | `KMS_CLIENTCOUNT` | client count > 25 | 26 | | | `KMS_CLIENTCOUNT` | client count > 25 | 26 | | ||||||
| | `KMS_ACTIVATIONINTERVAL` | Retry unsuccessful after N minutes | 120 (2 hours) | | | `KMS_ACTIVATIONINTERVAL` | Retry unsuccessful after N minutes | 120 (2 hours) | | ||||||
| @@ -118,6 +116,7 @@ slmgr /ato | |||||||
| * Use Let’s Encrypt DNS-01 challenge to obtain valid SSL certificates for your services | * Use Let’s Encrypt DNS-01 challenge to obtain valid SSL certificates for your services | ||||||
| * Do not expose this image to WAN! You will get notified from Microsoft via your ISP to terminate the service if you do so | * Do not expose this image to WAN! You will get notified from Microsoft via your ISP to terminate the service if you do so | ||||||
| * [Microsoft LICD](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-oe376/6c085406-a698-4e12-9d4d-c3b0ee3dbc4a) | * [Microsoft LICD](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-oe376/6c085406-a698-4e12-9d4d-c3b0ee3dbc4a) | ||||||
|  | * Use [11notes/kms-gui](https://github.com/11notes/docker-kms-gui) if you want to see the clients you activated in a nice GUI | ||||||
|    |    | ||||||
| # ElevenNotes™️ | # ElevenNotes™️ | ||||||
| This image is provided to you at your own risk. Always make backups before updating an image to a different version. Check the [releases](https://github.com/11notes/docker-kms/releases) for breaking changes. If you have any problems with using this image simply raise an [issue](https://github.com/11notes/docker-kms/issues), thanks. You can find all my repositories on [github](https://github.com/11notes?tab=repositories). | This image is provided to you at your own risk. Always make backups before updating an image to a different version. Check the [releases](https://github.com/11notes/docker-kms/releases) for breaking changes. If you have any problems with using this image simply raise an [issue](https://github.com/11notes/docker-kms/issues), thanks. If you have a question or inputs please create a new [discussion](https://github.com/11notes/docker-kms/discussions) instead of an issue. You can find all my other repositories on [github](https://github.com/11notes?tab=repositories). | ||||||
| @@ -1,3 +1,2 @@ | |||||||
| ### 🪄 Features | ### 📣 Breaking | ||||||
| * add Server 2025 KMS IDs by @ProfessorCha0s (thanks) | * Removed KMS_IP and KMS_PORT since this is done by the container networking anyway | ||||||
| * add Office LTSC 2024 KMS IDs by @MrRubberDucky (thanks) |  | ||||||
| @@ -27,8 +27,6 @@ | |||||||
|     ENV APP_VERSION=${APP_VERSION} |     ENV APP_VERSION=${APP_VERSION} | ||||||
|     ENV APP_ROOT=${APP_ROOT} |     ENV APP_ROOT=${APP_ROOT} | ||||||
|  |  | ||||||
|     ENV KMS_IP=0.0.0.0 |  | ||||||
|     ENV KMS_PORT=1688 |  | ||||||
|     ENV KMS_LOCALE=1033 |     ENV KMS_LOCALE=1033 | ||||||
|     ENV KMS_CLIENTCOUNT=26 |     ENV KMS_CLIENTCOUNT=26 | ||||||
|     ENV KMS_ACTIVATIONINTERVAL=120 |     ENV KMS_ACTIVATIONINTERVAL=120 | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ services: | |||||||
|       - "1688:1688/tcp" |       - "1688:1688/tcp" | ||||||
|     restart: "always" |     restart: "always" | ||||||
|   kms-gui: |   kms-gui: | ||||||
|     image: "11notes/kms-gui:latest" |     image: "11notes/kms-gui:stable" | ||||||
|     container_name: "kms-gui" |     container_name: "kms-gui" | ||||||
|     environment: |     environment: | ||||||
|       TZ: "Europe/Zurich" |       TZ: "Europe/Zurich" | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|     cd /opt/py-kms |     cd /opt/py-kms | ||||||
|     set -- "python3" \ |     set -- "python3" \ | ||||||
|       pykms_Server.py \ |       pykms_Server.py \ | ||||||
|       ${KMS_IP} \ |       0.0.0.0 \ | ||||||
|       ${KMS_PORT} \ |       1688 \ | ||||||
|       -l ${KMS_LOCALE} \ |       -l ${KMS_LOCALE} \ | ||||||
|       -c ${KMS_CLIENTCOUNT} \ |       -c ${KMS_CLIENTCOUNT} \ | ||||||
|       -a ${KMS_ACTIVATIONINTERVAL} \ |       -a ${KMS_ACTIVATIONINTERVAL} \ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user