本目錄包含 Antigravity Manager 的原生 Headless Docker 部署方案。該方案支持完整的 Web 管理界面、API 反代以及數據持久化,無需複雜的 VNC 或桌面環境。
適用於「前端近期不改、後端經常調整」的場景。思路是先在本地生成 dist/,Docker 只編譯後端並直接拷貝 dist/,大幅縮短構建時間並降低前端構建風險。
步驟
- 本地生成前端靜態資源:
npm ci --legacy-peer-deps
npm run build- 使用本方案構建與啟動(後端-only + 復用
dist/):
docker compose -f docker/docker-compose.yml -f docker/docker-compose.localdist.yml build
docker compose -f docker/docker-compose.yml -f docker/docker-compose.localdist.yml up -d或合併為單條命令:
docker compose -f docker/docker-compose.yml -f docker/docker-compose.localdist.yml up -d --build啟動後動態查看日誌:
docker compose -f docker/docker-compose.yml -f docker/docker-compose.localdist.yml logs -f --tail=200更新方式
- 後端有改動:重跑上面的
build+up -d - 前端有改動:先在本地重新
npm run build,再重跑build+up -d
Git 部署提醒
- 若服務器不在本地構建前端,請確保
dist/已提交到倉庫(本版本已從.gitignore移除)。
您可以直接從 Docker Hub 拉取已構建好的鏡像並啟动,無需獲取源碼:
Important
安全警告:從 v4.0.3 開始,Docker 版支持 管理密碼與 API Key 分離:
- API Key:通過
-e API_KEY=xxx設置,用於所有 AI 協議的 API 調用鑒權。 - Web 管理密碼:通過
-e WEB_PASSWORD=xxx設置,僅用於 Web UI 登錄。 - 默認行為:若未設置
WEB_PASSWORD,系統會自動回退使用API_KEY作為登錄密碼。若兩者皆未設置,則生成隨機 Key。 - 查看方式:執行
docker logs antigravity-manager尋找Current API Key或Web UI Password,或執行grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json查看。
# 啟動容器 (請替换 your-secret-key 為強密鑰)
docker run -d \
--name antigravity-manager \
-p 8045:8045 \
-e API_KEY=your-api-key \
-e WEB_PASSWORD=your-login-password \
-e ABV_MAX_BODY_SIZE=104857600 \
-v ~/.antigravity_tools:/root/.antigravity_tools \
lbjlaq/antigravity-manager:latest- 場景 A:僅設置了
API_KEY- Web 登錄:使用
API_KEY即可進入後台。 - API 調用:使用
API_KEY進行 AI 請求鑒權。
- Web 登錄:使用
- 場景 B:同時設置了
API_KEY和WEB_PASSWORD(推薦)- Web 登錄:必須使用
WEB_PASSWORD。此時輸入 API Key 將被拒絕,確保管理權限與調用權限隔離。 - API 調用:繼續使用
API_KEY。您可以放心地將 API Key 分發給團隊成員,而保留密碼僅供管理員使用。
- Web 登錄:必須使用
如果您是從舊版本升級,默認沒有設置 WEB_PASSWORD。您可以通過以下方式添加:
- Web UI (推薦):使用原有的
API_KEY登錄,在 API 反代 設置頁面中設置新的管理密碼。 - 環境變量:停止舊容器,啟動新容器時增加
-e WEB_PASSWORD=您的新密碼。
Tip
優先級邏輯 (Priority):
- 環境變量 (
ABV_WEB_PASSWORD/WEB_PASSWORD) 具有最高優先級。如果設置了環境變量,程序將始終使用它,忽略配置文件中的值。 - 配置文件 (
gui_config.json) 用於持久化存儲。當您通過 Web UI 修改密碼並保存時,新密碼會寫入此文件(JSON 字段名為admin_password)。 - 回退機制: 如果上述兩者皆未設置,則回退使用
API_KEY;若連API_KEY也未設置,則隨機生成。
在 docker 目錄下執行:
docker compose up -d如果您需要修改代碼或自定義構建,請在項目根目錄下執行:
# 默認構建最新標籤
docker build -t antigravity-manager:latest -f docker/Dockerfile .本鏡像支持自動鏡像源切換,以提升国内構建速度:
USE_MIRROR:auto(默認): 自動檢測網絡環境,若無法訪問 Google 則切換至国内镜像(阿里云/NPM Mirror)。true: 強制使用国内镜像源。false: 強制使用官方默認源。
示例:
# 強制使用国内镜像加速構建
docker build --build-arg USE_MIRROR=true -t antigravity-manager:latest -f docker/Dockerfile .| 變量名 | 默認值 | 說明 |
|---|---|---|
PORT |
8045 |
容器內服務監聽端口 |
ABV_API_KEY |
- | [重要] 代理 API 密鑰。客戶端(如 Claude Code)訪問時需提供的 Key |
ABV_WEB_PASSWORD |
- | [安全] Web 管理後台登錄密碼。若不設置則回退使用 API Key |
ABV_MAX_BODY_SIZE |
104857600 |
[性能] 最大請求體限制 (Byte)。默認 100MB,用於解決大圖傳輸 413 錯誤 |
LOG_LEVEL |
info |
日志等級 (debug, info, warn, error) |
ABV_DIST_PATH |
/app/dist |
前端靜態資源託管路徑 (Dockerfile 已內置) |
ABV_PUBLIC_URL |
- | 用於遠程 OAuth 回調的公網 URL (可選) |
請務必將宿主機目錄掛載至容器內的 /root/.antigravity_tools,否則賬號和配置在容器重啟後會丟失。
- 管理界面: http://localhost:8045
- API Base: http://localhost:8045/v1
若要推送至你的倉庫:
# 打上版本標籤並推送
docker tag antigravity-manager:latest lbjlaq/antigravity-manager:latest
docker tag antigravity-manager:latest lbjlaq/antigravity-manager:4.1.20
docker push lbjlaq/antigravity-manager:latest
docker push lbjlaq/antigravity-manager:4.1.20