Skip to content

Latest commit

 

History

History
166 lines (119 loc) · 8.31 KB

README_EN.md

File metadata and controls

166 lines (119 loc) · 8.31 KB

简体中文

📖 Introduction

An all-in-one KMS toolbox integrating features such as KMS activation script generation, KMS server detection, and KMS server status monitoring.

This project was originally born in April 2020 and was first launched on the Hostloc Forum. It was initially just a small tool for generating KMS activation scripts. When I was in college, I was responsible for maintaining the computer equipment in the teaching buildings and computer rooms at school, and I often needed to reinstall various versions of operating systems. This small tool improved the efficiency of activating operating systems. So in June 2022, I took out this small tool, refactored it with many new technologies, and released it again on the Hostloc Forum, which received a lot of attention and support from many big shots.

Later on, I would occasionally update some features, but it was never very complete until I received two special issues "#25, #26", one of which was initiated in a non-Chinese language, I did not expect a small project to get the attention of overseas friends. As my first open-source "virgin work", I decided to continue to develop and maintain it.

The original version was a pure front-end tool. In order to implement functions such as KMS detection and KMS monitoring, I used Bun + Elysia to write a backend service, dividing the entire project into a pure front-end version and a full-stack version. The front-end version can call the API interface of kms.ikxin.com, while the full-stack version can independently deploy all functions, even including Vlmcsd as a KMS activation server.

📦 Online Usage

Full-Stack Version

Pure Front-End Version

🌈 Feature Preview

KMS Activation Script Generation KMS Server Detection KMS Server Status Monitoring

👀 Historical Versions

v1.2.0 v1.0.0 v0.1.5

✨ Technology Stack

Backend

  • Bun - An all-in-one toolkit for JavaScript and TypeScript applications
  • Drizzle ORM - The next-generation headless TypeScript ORM framework
  • Elysia - An ergonomic web framework for building backend servers with Bun

Frontend

  • Vue.js - A JavaScript framework for building user interfaces
  • Vite - The next-generation front-end build tool
  • Arco Design Vue - ByteDance's enterprise-level product design system developed by
  • Vue Router - A routing component developed by the Vue.js core team
  • Pinia - A state management library with type safety, scalability, and modular design
  • UnoCSS - An instant on-demand atomic CSS engine
  • VueUse - A collection of utility functions based on the Composition API
  • Vue I18n - I18n international language support
  • unplugin-auto-import - A plugin for automatically importing Composition API on demand
  • unplugin-vue-components - A plugin for automatically importing Vue components on demand
  • unplugin-vue-router - A Vue Router auto-import based on file-based route system
  • unplugin-vue-markdown - Markdown document support

📦 Local Build

Whether it is a full-stack version or a pure front-end version, it is necessary to rely on Bun for building. Use the following scripts to install the Bun environment locally.

Linux & macOS:

curl -fsSL https://bun.sh/install | bash

Windows:

powershell -c "irm bun.sh/install.ps1 | iex"

Next, clone the project to the local and execute the command to install dependencies

git clone https://github.com/ikxin/kms-tools.git
cd kms-tools && bun install

Full-Stack Version

  1. Create a MySQL database and use the following SQL to create the table structure
CREATE TABLE `logs` (
  `id` int AUTO_INCREMENT NOT NULL,
  `host` text NOT NULL,
  `delay` int NOT NULL DEFAULT 0,
  `content` text,
  `status` boolean NOT NULL DEFAULT false,
  `created_at` timestamp NOT NULL,
  CONSTRAINT `logs_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `server` (
  `id` int AUTO_INCREMENT NOT NULL,
  `host` text NOT NULL,
  `port` int NOT NULL DEFAULT 1688,
  `total` int NOT NULL DEFAULT 0,
  `success` int NOT NULL DEFAULT 0,
  `fail` int NOT NULL DEFAULT 0,
  `delay` float NOT NULL DEFAULT 0,
  `rate` float NOT NULL DEFAULT 0,
  `updated_at` timestamp,
  `created_at` timestamp,
  CONSTRAINT `server_id` PRIMARY KEY(`id`)
);
  1. Rename the .env.example file to .env and modify the configuration items in it
ENABLE_VLMCSD = false # Whether to enable the Vlmcsd service
PORT = 3000 # Service port
DATABASE_URL = 'mysql://root:password@localhost:3306/database' # Database connection address
  1. Run the following command to start the service
bun run service

Pure Front-End Version

  1. Use the following command to build the project
bun run build
  1. Run the following command to start the service
npx serve dist

⭐ Stars

🧑‍💻 Author

Code with ❤️ by ikxin

📜 Open Source License

MIT License Copyright (c) 2022 ~ Present