跳到內容

環境、原始碼與實驗入口

方式 適合誰 需要什麼
使用現有 5090 學員做查詢與驗證 自己電腦、自己的 Agent 帳號、講師配發的 Keycloak 帳號、獲准的 Tailscale 存取
重建整套服務 講師/進階學員 自己的 Linux 或 WSL、Docker Engine 與 Compose v2、Python 3、OpenSSL、Tailscale HTTPS

不要在共用 5090 重新執行初始化或替換設定。 自建版需要獨立 Docker 環境;僅更改資料夾名稱不會隔離 Compose 專案、固定 subnet 與主機連接埠。

下載課程原始碼 ZIP · 檔案清單與 SHA-256

包含 Compose、資料表與合成資料、RLS、SSO、OpenBao、MCP、驗證腳本。不包含 private、.env、真實帳密、研究書頁、瀏覽器個人資料。 來源對應目前講師沙盒;全新主機仍須依下列步驟配置自己的網域。它不是一鍵建立 50 個隔離租戶的產品。

解壓後先檢查程式碼,再在獨立環境執行:

終端機視窗
cd textile-data-lab
docker compose version
python3 --version
openssl version
python3 scripts/prepare.py

prepare.py 產生隨機帳密及公開資料字典,不重用講師的密碼。將新產生的 .env 中 ORIGIN 改成自己的 Tailscale HTTPS origin,保留 :28100 與不帶結尾斜線的格式。此教材 Nginx 仍使用 28100;若換 port,需同步調整其 forwarded port。不要直接複製講師 hostname 當自己的服務。

在 scripts/configure_grafana.py 將固定 Host 改成自己的 origin authority;scripts/prepare.py 中 ORIGIN 也改成自己的值,讓產生的私人操作文件與入口一致。現有登入 realm 的 issuer 不宜事後任意更換。

終端機視窗
python3 scripts/prepare_sso.py
python3 scripts/prepare_openbao.py
docker compose config --quiet
docker compose up -d postgres
python3 scripts/bootstrap.py
python3 scripts/verify.py

這裡先建立後續容器所需的秘密檔與 TLS 檔案;尚未啟動 OpenBao 或簽發憑證。第三章啟動登入相關服務,第四章才啟動與配置 OpenBao。

以下連結需先連上獲准的 Tailscale 網路。手冊本身不需要 Tailscale。

服務 入口 用途
登入與 OpenBao 實驗 開啟實驗工作台 顯示身分、查詢與撤銷
Grafana 開啟儀表板 核准的跨部門摘要
pgAdmin 開啟資料表管理介面 講師查看資料表與 SQL
Keycloak 開啟身分管理 講師管理 realm/client/使用者
MCP https://claude-lab.tail747e9c.ts.net:28100/textile/mcp Agent 協定端點,不能當一般網頁

帳密由講師私下配發。sales.a、sales.b、hr.a、teacher 是四個示範身分,並非全班共用帳號方案。Grafana SSO 全部是 Viewer;pgAdmin 仍有獨立講師登入。

既有版本:PostgreSQL 18.6、Keycloak 26.7.5、OpenBao 2.7.1、Grafana 13.2.4、pgAdmin 9.18、Python MCP SDK 2.3.0。課程包附 images.env.example 的已驗證映像 digest,請合併到自己的 .env,保留自己的 ORIGIN。

Compose 設有記憶體與 CPU 上限,不用 GPU。它們共用主機與 Docker daemon,不等於 VM 隔離;尚未通過 30–50 人負載驗收。