All checks were successful
docker-build / Build image (push) Successful in 48s
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 (рекомендуется)
docker-compose up -d
Сервис будет доступен на:
- API: http://localhost:9000
- Web UI: http://localhost:9001
Ручная сборка
# Сборка образа
docker build -t minio-patcher .
# Запуск контейнера
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
-v ./storage:/storage \
minio-patcher server /storage
Локальное выполнение
# Установка зависимостей
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.
Лицензия
Проект предоставляется "как есть" без каких-либо гарантий.
Description
Languages
Python
71.7%
Dockerfile
23.5%
Shell
4.8%