The Jerusalem PostUN nuclear watchdog IAEA raises alarm over uninspected Iranian uranium enrichment plant at IsfahanDaily MaverickCape Verde president eyes new term as party builds on legislative winInquirerOriental Mindoro inflation surges to 9.3% in OctoberPunchPolice arrest two over murder of motorcyclist in RiversCNN TürkMalatya’da helikopter neden düştü? Uzman isim değerlendirdi: Kazanın ardındaki 3 ihtimalХабрКэширование в Redis: типичные ошибки, которые превращают ускорение в деградациюZDF heuteAktuelle Pressemitteilungen des ZDF7sur7Ce Diable qui a impressionné Mark van Bommel en Turquie: “Il sera vendu pour un très gros montant”Observador DesportoZero propõe investimento em casas junto a transportesStraits Times SportGo with Joyful Joy in Race 11EuronewsIRGC says it destroyed US radar in Bahrain after attack on southern IranNHK 社会マイクロソフトの障害 メールの相談や課題提出できない大学も
The Daily Newsstand · Free, Always
Friday, November 13, 2026

Установка Apache Superset в Docker (Windows + WSL2): пошагово, с разбором типичных ошибок

Translate

TL;DR: ставим WSL2 и Docker Desktop, клонируем Superset, генерируем SECRET_KEY, поднимаем стек через docker compose и не наступаем на грабли с down -v, неприменяемым конфигом и занятым портом 8088.

Apache Superset — открытая BI-платформа от Apache: дашборды, SQL Lab, десятки коннекторов к базам. Если вы под Windows и не хотите портить систему пачкой зависимостей Python — самый спокойный путь это WSL2 + Docker. Ниже — рабочий рецепт от первого включения виртуализации до открытого в браузере логина, плюс ошибки, на которые я наткнулся сам.

1. Подготовка

Проверка виртуализации

Откройте Диспетчер задач → Производительность → ЦП. Параметр «Виртуализация» должен быть «Включено». Если выключен — перезагрузитесь, зайдите в BIOS (обычно Del или F2 при старте) и включите Intel VT-x / AMD SVM в разделе Advanced CPU Configuration.

Затем нажмите Win + R, введите optionalfeatures и убедитесь, что включены три компонента:

  • Hyper-V;

  • Подсистема Windows для Linux;

  • Платформа виртуальной машины.

Установка WSL

В PowerShell от администратора:

wsl --install -d Ubuntu

Если WSL уже установлен:

wsl --update

После перезагрузки Ubuntu попросит задать имя пользователя и пароль — это локальная учётка для sudo. Если автоматически в неё не перешло — закройте окно Ubuntu и откройте заново.

Установка Docker Desktop

Скачайте установщик с официального сайта . При установке отметьте Use WSL 2 based engine. После установки зайдите в Settings → Resources → WSL Integration и включите интеграцию для вашей Ubuntu.

Проверка:

docker --version
docker compose version

2. Установка Superset в Ubuntu

Создайте папку в \\wsl.localhost\Ubuntu\home\<ваш_пользователь> — у меня она называется nrk_data_stack (путь удобно открывать прямо из Проводника Windows).

Открываем терминал Ubuntu:

sudo apt update && sudo apt upgrade -y
cd ~/nrk_data_stack
git clone https://github.com/apache/superset.git
cd superset

Совет: зафиксируйтесь на конкретной версии, чтобы статья и репозиторий не разъехались со временем. Я ставил релиз 6.1.0:

В Ubuntu

git checkout tags/6.1.0

3. Создание и настройка файлов

Оба файла конфигурации лежат (и создаются) в клонированном репозитории.

Файл .env — переменные окружения, откуда приложение берёт секреты и настройки. Он находится тут: \\wsl.localhost\Ubuntu\home\<ваш_пользователь>\nrk_data_stack\superset\docker

Файл superset_config_docker.py — Python-конфиг, который монтируется внутрь контейнера и задаёт поведение приложения. Создаётся тут: ...\superset\docker\pythonpath_dev

Генерируем в Ubuntu секретный ключ:

openssl rand -base64 42

Добавляем в конец файла .env:

SUPERSET_SECRET_KEY=<ваш ключ>
SCARF_ANALYTICS=false

Той же командой можно сгенерировать ключ для GLOBAL_ASYNC_QUERIES_JWT_SECRET — он нужен для подписи JWT-токенов асинхронных запросов. Если эту функцию не используете — ключ не генерировать и соответствующие параметры в superset_config_docker.py добавлять не нужно.

Итоговый рабочий superset_config_docker.py я выложил здесь: https://github.com/NorkaOleg/nrk_data_stack/tree/main/Superset

После изменений перезапускаем стек:

docker compose -f docker/docker-compose-non-dev.yml up -d

Первый запуск занимает 5–10 минут: скачиваются образы, применяются миграции, создаётся админ по умолчанию (admin/admin).

4. Типичные ошибки и решения

«Refusing to start due to insecure SECRET_KEY» — ключ не задан или остался дефолтным. Сгенерируйте openssl rand -base64 42 и пропишите его и в .env (SUPERSET_SECRET_KEY), и в superset_config_docker.py (SECRET_KEY). Если ключ менялся уже после первого запуска — добавьте в конфиг строку PREVIOUS_SECRET_KEY = 'старый_ключ', иначе зашифрованные ранее данные не расшифруются.

Изменения в конфиге не применяются — файлы из docker/ подхватываются при старте контейнера, а не на лету. Нужен down + up. Если правили образ (например, добавляли драйвер БД в requirements-local.txt) — нужен rebuild:

docker compose -f docker/docker-compose-non-dev.yml build --no-cache superset_app

Порт 8088 занят — либо остановите процесс, либо смените порт в .env (SUPERSET_PORT / маппинг в docker-compose).

docker compose down -v удалил все данные — флаг -v сносит тома, включая метастазу Superset и ваши дашборды. Если данные нужны — просто down без -v.

Конфиг «не виден» — проверьте, что файл лежит именно в docker/superset_config_docker.py и имя не содержит опечаток: контейнер монтирует его в /app/superset_config_docker.py.

Полезная привычка при разборе проблем — смотреть логи инициализации:

docker logs superset_init

Не стесняйтесь просить помощи у нейроассистентов: я скидывал Алисе (AI-помощник Яндекса) свои логи и скриншоты — и в итоге пришли к решению, Superset запустился. Часто свежий взгляд на стектрейс экономит час гугления.

5. Проверка работы

Смотрим статус сервисов:

docker compose -f docker/docker-compose-non-dev.yml ps

Все сервисы (superset_app, postgres, redis) должны быть в состоянии Up. Если что-то не так — логи приложения:

docker compose -f docker/docker-compose-non-dev.yml logs superset_app | tail -30

Открываем в браузере http://localhost:8088, логин admin, пароль admin (в non-dev сборке создаётся автоматически — смените его в настройках профиля). Если вместо страницы «connection refused» — просто ждём ещё пару минут: миграции при первом старте идут до 10 минут.

После перезагрузки ПК

Docker Desktop должен стартовать сам (проверьте автозапуск в настройках), а дальше:

bashcd ~/nrk_data_stack/superset
docker compose -f docker/docker-compose-non-dev.yml up -d

Остановка всех контейнеров:

docker compose -f docker/docker-compose-non-dev.yml down
Проверяем localhost:8088

Проверяем localhost:8088

Проверяем Docker Desctop

Проверяем Docker Desctop

Ссылка на ВК видео с установкой Superset https://vkvideo.ru/video-242717920_456239017

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.