mirror of
https://github.com/11notes/docker-kms.git
synced 2025-10-23 04:52:15 +00:00
ad35b06dc05bfd2e2b852b907f98b29ac86b3335
🏔️ kms on Alpine
Activate any version of Windows and Office, forever
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 to your compose.
Works with:
- Windows Vista
- Windows 7
- Windows 8
- Windows 8.1
- Windows 10
- Windows 11
- Windows Server 2008
- Windows Server 2008 R2
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
- Windows Server 2025
- Microsoft Office 2010 ( Volume License )
- Microsoft Office 2013 ( Volume License )
- Microsoft Office 2016 ( Volume License )
- Microsoft Office 2019 ( Volume License )
- Microsoft Office 2021 ( Volume License )
- Microsoft Office 2024 ( Volume License )
VOLUMES 📁
- /kms/var - Directory of the activation database
COMPOSE ✂️
name: "kms"
services:
kms:
image: "11notes/kms:465f4d1"
container_name: "kms"
environment:
TZ: "Europe/Zurich"
volumes:
- "var:/kms/var"
ports:
- "1688:1688/tcp"
restart: "always"
kms-gui:
image: "11notes/kms-gui:latest"
container_name: "kms-gui"
environment:
TZ: "Europe/Zurich"
volumes:
- "var:/kms/var"
ports:
- "8080:8080/tcp"
restart: "always"
volumes:
var:
Windows Server 2025 Datacenter. List of GVLK
slmgr /ipk D764K-2NDRG-47T6Q-P8T8W-YP6DF
Add your KMS server information to server
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\OfficeSoftwareProtectionPlatform" -Name "KeyManagementServiceName" -Value "KMS_IP"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" -Name "KeyManagementServicePort" -Value "KMS_PORT"
Activate server
slmgr /ato
DEFAULT SETTINGS 🗃️
Parameter | Value | Description |
---|---|---|
user |
docker | user name |
uid |
1000 | user identifier |
gid |
1000 | group identifier |
home |
/kms | home directory of user docker |
database |
/kms/var/kms.db | SQlite database holding all client data |
ENVIRONMENT 📝
Parameter | Value | Default |
---|---|---|
TZ |
Time Zone | |
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_CLIENTCOUNT |
client count > 25 | 26 |
KMS_ACTIVATIONINTERVAL |
Retry unsuccessful after N minutes | 120 (2 hours) |
KMS_RENEWALINTERVAL |
re-activation after N minutes | 259200 (180 days) |
KMS_LOGLEVEL |
CRITICAL, ERROR, WARNING, INFO, DEBUG, MININFO | INFO |
SOURCE 💾
PARENT IMAGE 🏛️
BUILT WITH 🧰
GENERAL TIPS 📌
- Use a reverse proxy like Traefik, Nginx, HAproxy to terminate TLS and to protect your endpoints
- 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
- Microsoft LICD
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 for breaking changes. If you have any problems with using this image simply raise an issue, thanks. You can find all my repositories on github.
Languages
Dockerfile
88.2%
Shell
11.8%