Инструкция к проекту
This commit is contained in:
172
README.md
Normal file
172
README.md
Normal file
@@ -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.
|
||||||
Reference in New Issue
Block a user