跳轉到

Redash 本機開發環境安裝筆記(WSL2 Ubuntu + Docker Engine)

前置條件

  • Windows 11 + WSL2 + Docker Engine

1. 建立目錄與 .env(WSL2 Ubuntu 終端機)

mkdir -p ~/redash && cd ~/redash

cat > .env <<EOF
REDASH_SECRET_KEY=$(openssl rand -hex 24)
REDASH_COOKIE_SECRET=$(openssl rand -hex 24)
EOF
cat .env   # 確認內容

2. 建立 compose.yaml

cat > compose.yaml <<'EOF'
x-redash-service: &redash-service
  image: redash/redash:26.3.0
  depends_on:
    - postgres
    - redis
  env_file: .env
  environment: &redash-env
    PYTHONUNBUFFERED: 0
    REDASH_LOG_LEVEL: INFO
    REDASH_REDIS_URL: redis://redis:6379/0
    REDASH_DATABASE_URL: postgresql://postgres:postgres@postgres/postgres
    REDASH_VERSION_CHECK: "false"
  extra_hosts:
    - "version.redash.io:0.0.0.0"
    - "beacon.redash.io:0.0.0.0"
    - "redash.io:0.0.0.0"
  restart: unless-stopped

services:
  server:
    <<: *redash-service
    command: server
    ports:
      - "127.0.0.1:5000:5000"
    environment:
      <<: *redash-env
      REDASH_WEB_WORKERS: 2

  worker:
    <<: *redash-service
    command: worker
    environment:
      <<: *redash-env
      QUEUES: "queries,schemas,periodic,default"
      WORKERS_COUNT: 1

  redis:
    image: redis:7-alpine
    restart: unless-stopped

  postgres:
    image: postgres:18.4
    environment:
      POSTGRES_PASSWORD: postgres
    volumes:
      - redash-postgres:/var/lib/postgresql
    restart: unless-stopped

volumes:
  redash-postgres:
EOF

注意:

  • postgres 18 的 volume 掛載點是 /var/lib/postgresql(不是 /var/lib/postgresql/data,掛錯會一直 Restarting)
  • 不使用 internal: true 網路(WSL2 上會導致 could not translate host name "postgres" DNS 錯誤);隔離改由「redis / postgres 不發布 ports」達成
  • 不部署 scheduler 服務(不需要排程 / alert)

3. 初始化並啟動

docker compose up -d postgres redis
docker compose ps                          # 兩者皆 Up
docker compose run --rm server create_db   # 首次拉 image 約 1.5GB,需數分鐘
docker compose up -d
docker compose ps                          # server / worker / redis / postgres 皆 Up

4. 首次設定(Windows 瀏覽器)

  1. 開啟 http://localhost:5000
  2. 填寫姓名 / Email / 密碼,取消勾選 匿名使用資料分享相關選項
  3. 建立後再確認:Settings → General → 關閉 Anonymous Usage Data Tracking

5. 連接公司 MS-SQL(實測成功設定)

Settings → Data Sources → New Data Source → Microsoft SQL Server (ODBC)

欄位
Name SXX-Dev
Server DEVxxx.xxx.xxx.xx
Port 留空(預設 1433)
User user
Password (DB 密碼)
Database Name 使用的database name
Character Set 留空(預設 UTF-8)

Additional Settings:

  • Use SSL(勾選)
  • Verify SSL certificate(不勾)

Test Connection 通過 → Save

注意:使用的是 Microsoft SQL Server (ODBC) 這個 data source 類型,不是 Microsoft SQL Server(TDS 版),無需設定 TDS Version。

6. 日常操作(於 ~/redash)

docker compose stop               # 停止
docker compose start              # 啟動
docker compose down               # 移除容器(volume 資料保留)
docker compose down -v            # 移除容器 + volume(Redash 設定全部清空)
docker compose logs -f server     # 看 server 日誌
docker compose ps                 # 服務狀態

7. 檢查指令

docker images          # image 清單
docker ps -a           # 所有 container
docker volume ls       # 應有 redash_redash-postgres
docker compose run --rm --entrypoint /bin/bash server -c "getent hosts postgres; getent hosts redis"   # DNS 檢查

資安限制摘要

  • Redash UI 只綁 127.0.0.1:5000,區網其他機器無法存取
  • redis / postgres 無對外 port
  • REDASH_VERSION_CHECK=false + extra_hosts DNS 黑洞封鎖 redash.io 遙測網域
  • 不設定 REDASH_MAIL_*REDASH_SENTRY_DSN
  • UI 內關閉匿名使用資料回傳

疑難排解

症狀 解法
postgres 一直 Restarting volume 掛載點改為 /var/lib/postgresql,然後 docker compose down -v 重建
could not translate host name "postgres" 移除 internal: true 網路設定,改用預設單一網路
換 postgres 版本 docker compose down -v 清空 volume 後重新 create_db