GitHub

Project Description: 🏔️ kms on Alpine

What is the project about?

This project provides a Docker image that runs a Key Management Service (KMS) server based on Alpine Linux. It allows users to activate various versions of Microsoft Windows and Office products.

What problem does it solve?

It provides a way to activate Microsoft Windows and Office products (volume license editions) without requiring a direct connection to Microsoft's activation servers. This is particularly useful in environments where such connections are restricted or unavailable, or for testing/development purposes. It offers a self-hosted solution for managing product activations.

What are the features of the project?

  • KMS Server: Runs a KMS server that emulates Microsoft's activation service.
  • Wide Compatibility: Supports activation of a wide range of Windows and Office versions, from Vista/2008 to the latest releases (including Server 2025 and Office 2024).
  • Dockerized: Packaged as a Docker image for easy deployment and portability.
  • Alpine Linux Based: Uses Alpine Linux as the base image, resulting in a small image size.
  • Configurable: Allows customization of various KMS parameters through environment variables (e.g., locale, client count, activation/renewal intervals, log level).
  • Persistent Storage: Uses a volume (/var) to store the activation database, ensuring persistence across container restarts.
  • Unraid Support: Includes specific tags optimized for Unraid systems.
  • Optional GUI: A separate kms-gui image is available to provide a web-based interface for monitoring activated clients.
  • Docker Compose: Provides a docker-compose.yml example for easy deployment of both the KMS server and the optional GUI.
  • Registry modification examples for Windows.

What are the technologies used in the project?

  • Docker: Containerization technology.
  • Alpine Linux: Lightweight Linux distribution.
  • py-kms: A Python-based KMS server implementation.
  • SQLite: Used for the activation database.
  • (Optional) kms-gui: Web interface for monitoring.

What are the benefits of the project?

  • Simplified Activation: Provides a centralized and self-hosted solution for activating Windows and Office products.
  • Offline Activation: Enables activation in environments without direct internet access to Microsoft servers.
  • Easy Deployment: Dockerized nature makes it easy to deploy and manage.
  • Small Footprint: Alpine Linux base keeps the image size small.
  • Customizable: Environment variables allow for configuration.
  • Persistence: Activation data is stored persistently.
  • Unraid Compatibility: Specifically tailored for Unraid users.

What are the use cases of the project?

  • Corporate Environments: Activating Windows and Office in organizations with restricted internet access or internal network policies.
  • Testing and Development: Activating software in testing or development environments without using production licenses.
  • Home Labs: Managing activations for personal servers and workstations.
  • Offline Environments: Activating systems in locations with limited or no internet connectivity.
  • Educational Institutions: Providing a way to activate software for students and staff.
  • Air-gapped networks: Activating systems that are intentionally isolated from external networks.
docker-kms screenshot