---
title: "Deploy KMS Tools"
description: "Manages, monitors, and generates activation scripts for Windows & Office."
category: "Observability"
url: https://railway.com/deploy/kms-tools
---

# Deploy KMS Tools

Manages, monitors, and generates activation scripts for Windows & Office.

**[Deploy KMS Tools on Railway](https://railway.com/template/kms-tools)**

- **Category:** Observability

## Template content

### kms-tools

- **Image:** ikxin/kms-tools:latest
- **Public domain:** Yes

## Documentation

# Deploy and Host KMS Tools on Railway

KMS Tools is an all-in-one KMS toolbox that provides KMS server detection and status monitoring, along with activation script generation for Windows, Windows Server, and Office. It includes regular server monitoring and supports English, Simplified Chinese, and Traditional Chinese interfaces.

## About Hosting KMS Tools

Hosting KMS Tools on Railway involves deploying the application from its Dockerfile or the `ikxin/kms-tools:latest` Docker image. The application listens on port `3000` and binds to `0.0.0.0` so it can receive Railway traffic. A persistent Railway Volume is required at `/app/.data` to preserve application data across deployments and restarts. The application also uses configurable monitoring variables to define KMS servers and the monitoring interval. Railway's public networking exposes the application through an HTTPS domain, while Docker handles the application build and runtime configuration. No external database service is documented for this deployment.

## Common Use Cases

* Monitoring the availability and status of configured KMS servers
* Generating KMS-related activation scripts for supported Microsoft products
* Operating a multilingual KMS server detection and monitoring dashboard

## Dependencies for KMS Tools

* Docker image or GitHub repository containing the KMS Tools application
* Persistent Railway Volume mounted at `/app/.data`
* Configured KMS server monitoring list

### Deployment Dependencies

* [KMS Tools GitHub Repository](https://github.com/ikxin/kms-tools)
* [KMS Tools Documentation](https://github.com/ikxin/kms-tools)

### Implementation Details

#### Docker

KMS Tools can be deployed using the provided Docker image:

```docker
ikxin/kms-tools:latest
```

The repository also includes a Dockerfile at:

```text
./Dockerfile
```

When deploying from the GitHub repository, Railway can automatically build the application using this Dockerfile.

#### Public Networking

The application listens on port `3000`:

| Protocol | Proxy Type | Target Port | Purpose                 |
| -------- | ---------- | ----------: | ----------------------- |
| HTTP     | HTTP Proxy |        3000 | KMS Tools web interface |

The application should bind to all interfaces:

```env
PORT=3000
HOST=0.0.0.0
```

After deployment, generate a Railway domain under **Settings → Networking** to access the application over HTTPS.

#### Environment Variables

| Variable                | Required | Description                                                               |
| ----------------------- | -------- | ------------------------------------------------------------------------- |
| `PORT`                  | Yes      | Internal application listening port. Set to `3000`.                       |
| `HOST`                  | Yes      | Network interface the application binds to. Set to `0.0.0.0` for Railway. |
| `NUXT_MONITOR_LIST`     | Yes      | Comma-separated list of KMS servers to monitor.                           |
| `NUXT_MONITOR_INTERVAL` | Yes      | Interval between KMS server monitoring checks, in seconds.                |

Raw Editor example:

```env
PORT=3000
HOST=0.0.0.0
NUXT_MONITOR_LIST=kms.org.cn,win.freekms.cn
NUXT_MONITOR_INTERVAL=10
```

Customize `NUXT_MONITOR_LIST` with the KMS servers you want the application to monitor.

#### Persistent Storage

Persistent storage is required for KMS Tools.

To add the volume:

1. Open the KMS Tools service in Railway.
2. Go to **Settings**.
3. Open **Volumes**.
4. Add a volume.
5. Set the mount path to:

```text
/app/.data
```

The volume preserves application data stored by KMS Tools across service restarts and redeployments.

#### Build & Start

When deploying from the supplied GitHub repository, configure Railway to use:

```text
Builder: Dockerfile
Root Directory: /
Dockerfile Path: ./Dockerfile
Runtime: Docker
```

The documented start command is:

```bash
node .output/server/index.mjs
```

If the Docker image already defines the appropriate runtime configuration, no additional build configuration is required beyond the supplied Docker deployment settings.

#### Accessing the Application

1. Deploy KMS Tools as a Railway service.
2. Configure the required environment variables.
3. Add a Railway Volume mounted at `/app/.data`.
4. Deploy the service using the Dockerfile or `ikxin/kms-tools:latest`.
5. Open **Settings → Networking**.
6. Generate a Railway domain for port `3000`.
7. Open the generated HTTPS URL to access KMS Tools.

The application provides a web interface for KMS server detection, monitoring, and the other documented toolbox features.

## Why Deploy KMS Tools on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying KMS Tools on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Pyroscope profiling](https://railway.com/deploy/pyroscope-profiling) — Protected continuous profiling with durable Pyroscope storage.
- [SigOnly](https://railway.com/deploy/sigonly) — Deploy SigNoz with a working demo app & config in one click
- [Unwrapped Spotify Music Stats](https://railway.com/deploy/wide-bold) — Unwrapped Spotify Music Stats, Estatísticas de músicas disponíveis

Open this page in a browser: https://railway.com/deploy/kms-tools
