Files
minio-full/README.md
2025-10-26 12:45:35 +07:00

105 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## Лицензия
Проект предоставляется "как есть" без каких-либо гарантий.