icysanta adbf40240c
Some checks failed
CI / backend (push) Failing after 8s
CI / frontend (push) Failing after 4s
Утилита кодировки
2025-12-01 11:47:20 +00:00
2025-12-01 18:33:30 +07:00
2025-12-01 11:47:20 +00:00
2025-12-01 18:15:28 +07:00
2025-12-01 18:13:47 +07:00
2025-12-01 11:27:08 +00:00

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)

  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
  1. Запустите и настройте адрессацию.
docker compose up -d

📝 Использование

  1. На главной странице (index.html) введите имя пользователя и версию MobaXterm (формат: X.Y, например, 25.3).
  2. Нажмите "Generate" — скачается файл Custom.mxtpro.
  3. Скопируйте файл в директорию 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.

Description
Активатор
Readme MIT 121 KiB
Languages
Python 58.7%
CSS 16.5%
JavaScript 7.3%
HTML 6.7%
YAML 6.2%
Other 4.6%