# MinIO Patcher Инструмент для патчинга MinIO бинарного файла с целью замены встроенного публичного ключа лицензии на собственный и генерации соответствующей лицензии. ## Описание Проект позволяет: - Заменить встроенный публичный ключ лицензии в бинарном файле MinIO - Сгенерировать собственную пару ключей (приватный/публичный) - Создать лицензионный файл с использованием нового приватного ключа - Запустить модифицированный MinIO с собственной лицензией ## Структура проекта ``` minio-patcher/ ├── Dockerfile # Многоэтапная сборка для патчинга MinIO ├── docker-compose.yaml # Конфигурация для запуска сервиса ├── generate-keys.sh # Скрипт генерации ключей ECDSA P-384 ├── generate-license.py # Генератор JWT лицензии ├── replace-key.py # Замена публичного ключа в бинарном файле ├── requirements.txt # Python зависимости └── storage/ # Директория для данных MinIO ``` ## Компоненты ### generate-keys.sh Генерирует пару ECDSA ключей с кривой secp384r1: - `new-private.pem` - приватный ключ - `new-public.pem` - публичный ключ ### replace-key.py Заменяет встроенный публичный ключ MinIO на новый: - Загружает оригинальный публичный ключ с subnet.min.io - Находит и заменяет его в бинарном файле MinIO - Создает патченый бинарный файл ### generate-license.py Создает JWT лицензию с параметрами: - Организация: "acme" - План: "STANDARD" - Емкость: 10TB - Срок действия: до 2033 года - Алгоритм подписи: ES384 ## Использование ### Docker Compose (рекомендуется) ```bash docker-compose up -d ``` Сервис будет доступен на: - API: http://localhost:9000 - Web UI: http://localhost:9001 ### Ручная сборка ```bash # Сборка образа docker build -t minio-patcher . # Запуск контейнера docker run -d \ -p 9000:9000 \ -p 9001:9001 \ -v ./storage:/storage \ minio-patcher server /storage ``` ### Локальное выполнение ```bash # Установка зависимостей pip install -r requirements.txt # Генерация ключей ./generate-keys.sh # Патчинг MinIO (требуется оригинальный бинарный файл) python3 replace-key.py minio minio-patched new-public.pem # Генерация лицензии python3 generate-license.py new-private.pem minio.license # Запуск с лицензией MINIO_LICENSE=./minio.license ./minio-patched server ./storage ``` ## Требования - Docker и Docker Compose - Python 3.13+ (для локального запуска) - OpenSSL (для генерации ключей) ## Безопасность ⚠️ **Внимание**: Данный инструмент предназначен исключительно для образовательных и тестовых целей. Использование в продакшене может нарушать лицензионные соглашения MinIO. ## Лицензия Проект предоставляется "как есть" без каких-либо гарантий.