8.6 KiB
MobaXterm Activator
Автор: icysanta
📄 Описание
MobaXterm Activator — это веб-приложение для генерации лицензий для MobaXterm. Проект сочетает backend на FastAPI (Python) для API-логики и frontend на HTML, CSS, JavaScript для пользовательского интерфейса. Используется Docker для контейнеризации, что упрощает развертывание и тестирование.
Основная цель — предоставить удобный инструмент для создания кастомных лицензий (.mxtpro) с шифрованием и кодированием, демонстрируя принципы веб-разработки, криптографии и DevOps. Backend обрабатывает генерацию ключей, а frontend — форму для ввода данных и скачивания файла.
Проект включает:
- API для генерации лицензий с использованием custom XOR-шифрования и variant Base64;
- Статический frontend с формой и JS-обработчиком;
- Конфигурацию Docker для сборки и запуска в контейнере;
- Модульную структуру backend с роутерами, сервисами и утилитами;
- Лицензию MIT для открытого использования.
Это учебный/демонстрационный проект, не предназначенный для коммерческого или незаконного использования. Рекомендуется для изучения FastAPI, криптографии и контейнеризации.
🛠️ Требования
- Python: 3.12+ (для backend).
- Docker: Для контейнеризации (опционально, но рекомендуется).
- Зависимости backend: Указаны в
backend/requirements.txt(FastAPI, Uvicorn и т.д.). - Браузер: Для тестирования frontend (Chrome, Firefox и т.д.).
🚀 Установка и запуск
Локальный запуск (без Docker)
-
Клонируйте репозиторий:
git clone https://git.primo.su/icysanta/MobaXterm-Activator.git cd MobaXterm-Activator -
Установите зависимости backend:
cd backend pip install -r requirements.txt -
Запустите сервер:
uvicorn main:app --reload --host 0.0.0.0 --port 8000 -
Откройте в браузере:
http://localhost:8000— увидите frontend-форму для генерации лицензии.
Запуск в Docker
-
Соберите образ:
docker build -t mobaxterm-activator . -
Запустите контейнер:
docker run -d -p 8000:8000 mobaxterm-activator -
Откройте в браузере:
http://localhost:8000.
Запуск в Docker Compose
-
Создайте директорию:
sudo mkdir -p /opt/mobaxterm-activator sudo cd /opt/mobaxterm-activator -
Создайте docker-compose.yml файл:
sudo tee /opt/mobaxterm-activator/docker-compose.yml > /dev/null <<'EOF'
services:
app:
image: whyverum/mobax_panel:latest
container_name: mobax_panel_app
restart: unless-stopped
environment:
HOST: 0.0.0.0
PORT: 80
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
networks: # Для использования с NGINX PROXY MANAGER
- proxy
networks:
proxy:
external: true
EOF
- Запустите и настройте адрессацию.
docker compose up -d
📝 Использование
- На главной странице (
index.html) введите имя пользователя и версию MobaXterm (формат: X.Y, например, 25.3). - Нажмите "Generate" — скачается файл
Custom.mxtpro. - Скопируйте файл в директорию MobaXterm для активации.
Примечание: Ключи генерируются с типом "Professional" по умолчанию. Для кастомизации измените license_service.py.
🧰 Структура проекта
/
├── .dockerignore # Файлы, исключённые из Docker-сборки
├── .gitattributes # Атрибуты Git
├── .gitignore # Файлы, исключённые из Git
├── Dockerfile # Инструкции для сборки Docker-образа
├── LICENSE # Лицензия проекта (MIT)
├── README.md # Описание проекта (этот файл)
│
├── .gitea/ # Настройки Gitea (workflows для CI/CD)
│ └── workflows/ # YAML-файлы для автоматизации
│
├── .idea/ # Настройки IntelliJ IDEA (можно игнорировать)
│ ├── inspectionProfiles/ # Профили инспекций кода
│ └── ... # Другие файлы IDE
│
├── backend/ # Backend на FastAPI
│ ├── config.py # Конфигурация приложения
│ ├── main.py # Точка входа FastAPI
│ ├── requirements.txt # Зависимости Python
│ ├── __init__.py # Пакетный файл
│ │
│ ├── routes/ # Роутеры API
│ │ ├── license_routes.py # Роутер для генерации лицензий
│ │ └── __init__.py # Пакетный файл
│ │
│ ├── services/ # Сервисная логика
│ │ ├── license_service.py # Генерация лицензий
│ │ └── __init__.py # Пакетный файл
│ │
│ └── utils/ # Утилиты (крипто, кодирование)
│ ├── crypto.py # Шифрование/дешифрование
│ ├── encoding.py # Custom Base64
│ └── __init__.py # Пакетный файл
│
└── frontend/ # Статический frontend
├── assets/ # Активы (изображения, шрифты и т.д.)
│ ├── audio/ # Аудиофайлы (пусто или добавьте)
│ ├── fonts/ # Шрифты
│ │ └── LCDSolid1.13-Regular.otf # Пример шрифта
│ ├── icons/ # Иконки
│ │ └── favicon.ico # Фавикон
│ ├── images/ # Изображения
│ ├── misc/ # Разное
│ └── videos/ # Видео
│
├── css/ # Стили
│ ├── style.css # Основные стили
│ └── pages/ # Стили для страниц (пусто или добавьте)
│
├── js/ # Скрипты
│ ├── main.js # Основной JS (обработка формы)
│ └── pages/ # Скрипты для страниц (пусто или добавьте)
│
└── templates/ # HTML-шаблоны
└── index.html # Главная страница с формой
📦 Зависимости
- Backend: FastAPI, Uvicorn, pathlib, zipfile, tempfile.
- Frontend: Чистый HTML/CSS/JS (без фреймворков).
- Другие: Docker для контейнеризации.
🤝 Вклад
Приветствуются pull requests! Форкните репозиторий, внесите изменения и отправьте PR. Убедитесь, что код соответствует PEP8.
⚠️ Предупреждение
Этот проект — для образовательных целей. Не используйте для нарушения лицензий ПО. Автор не несёт ответственности за misuse.