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 瀏覽器)¶
- 開啟
http://localhost:5000 - 填寫姓名 / Email / 密碼,取消勾選 匿名使用資料分享相關選項
- 建立後再確認: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_hostsDNS 黑洞封鎖 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 |