Skip to content

Прод-стек: docker compose

Рекомендуемый способ развёртывания single-node продакшена. Одной командой поднимаются:

СервисПорт (host)Назначение
roxa9092 / 50051 / 9644Kafka wire / gRPC / Prometheus /metrics
roxa-admin8080веб-консоль и мониторинг (вход из admin.toml)
minio9001S3-хранилище сегментов (S3-порт 9000 — только внутри сети)
prometheus9090сбор метрик
grafana3000дашборд «Roxa — Overview» (провижинится автоматически)

Требования

  • Linux-сервер: 2+ vCPU, 4+ ГБ RAM для рабочих нагрузок (для демо — меньше).
  • Docker + Docker Compose v2.
  • Открытые наружу порты: 9092 (Kafka), 50051 (gRPC), 8080 (веб-консоль). Порт S3 (MinIO 9000) наружу не публикуется.

Запуск

Каталог deploy/onprem идёт с поставкой (запросите через поддержку, если у вас его нет) — внутри docker-compose.yml, serve.toml, admin.toml, .env.example.

bash
cd deploy/onprem
cp .env.example .env      # секреты: пароли MinIO/Grafana, лицензия (если есть)
# отредактируйте serve.toml и admin.toml: смените пароли (CHANGE_ME...), kafka_advertised_addr
docker compose up -d
docker compose ps         # все сервисы healthy/running
docker compose logs -f roxa

Секреты в трёх местах должны совпадать

  • пароль MinIO: .env (MINIO_ROOT_PASSWORD) = serve.toml ([storage.s3].secret_key);
  • пароль data-plane: serve.toml ([[auth.users]].password) = admin.toml (broker_password).

Проверка после запуска

bash
# roxactl (gRPC, с аутентификацией):
roxactl --endpoint http://SERVER:50051 --user app --password <pass> topic create demo --partitions 3
roxactl --endpoint http://SERVER:50051 --user app --password <pass> produce demo hello world
roxactl --endpoint http://SERVER:50051 --user app --password <pass> consume demo

# любой Kafka-клиент (пример kcat, SASL/PLAIN):
kcat -b SERVER:9092 -X security.protocol=SASL_PLAINTEXT -X sasl.mechanism=PLAIN \
     -X sasl.username=app -X sasl.password=<pass> -L

Дашборд: http://SERVER:3000 → «Roxa — Overview» (throughput, латентность produce/fetch, лаг записи в S3).

Что дальше