From d17d302878f7a73bfe22aa7bb8959602ee16bbef Mon Sep 17 00:00:00 2001 From: Verum Date: Thu, 5 Mar 2026 18:46:57 +0700 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D0=BA=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..eb4e837 --- /dev/null +++ b/README.md @@ -0,0 +1,172 @@ +# MobaXterm Activator + +## 📄 Описание +**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) +1. Клонируйте репозиторий: + ``` + git clone https://git.primo.su/icysanta/MobaXterm-Activator.git + cd MobaXterm-Activator + ``` + +2. Установите зависимости backend: + ``` + cd backend + pip install -r requirements.txt + ``` + +3. Запустите сервер: + ``` + uvicorn main:app --reload --host 0.0.0.0 --port 8000 + ``` + +4. Откройте в браузере: `http://localhost:8000` — увидите frontend-форму для генерации лицензии. + +### Запуск в Docker +1. Соберите образ: + ``` + docker build -t mobaxterm-activator . + ``` + +2. Запустите контейнер: + ``` + docker run -d -p 8000:8000 mobaxterm-activator + ``` + +3. Откройте в браузере: `http://localhost:8000`. + +### Запуск в Docker Compose +1. Создайте директорию: + ``` + sudo mkdir -p /opt/mobaxterm-activator + sudo cd /opt/mobaxterm-activator + ``` + +2. Создайте 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 +``` + +3. Запустите и настройте адрессацию. +``` +docker compose up -d +``` + +## 📝 Использование +1. На главной странице (`index.html`) введите имя пользователя и версию MobaXterm (формат: X.Y, например, 25.3). +2. Нажмите "Generate" — скачается файл `Custom.mxtpro`. +3. Скопируйте файл в директорию MobaXterm для активации. + +**Примечание:** Ключи генерируются с типом "Professional" по умолчанию. Для кастомизации измените `license_service.py`. + +## 🧰 Структура проекта +```bash +/ +├── .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.