在 Linux / Docker 上跑 Grass 桌面版的無 GUI 版本。映像內不含 Grass 官方二進位檔: 第一次啟動時才向官方網址下載最新 Linux 安裝檔並解開到資料卷,因此本映像可公開分享, 也不會因為官方改版而失效。
Run the Grass desktop app headless on Linux/Docker. This image ships no Grass binary: the official Linux installer is downloaded from Grass on first start and unpacked into the data volume.
# grass.env(chmod 600)——登入憑證只在第一次登入時取得一次
GRASS_ACCESS_TOKEN=...
GRASS_REFRESH_TOKEN=...
GRASS_USER_ID=...
docker run -d --name grass-1 \
--restart unless-stopped \
--env-file grass.env \
-e GRASS_DISPLAY=99 \
-v grass-1:/data \
power14345/grass-headless:latest
看到下列日誌就代表上線 / healthy log lines:
[entrypoint] 首次啟動:向官方取得 Linux 安裝檔
identity: device registered device_id="DV..."
opening bridge tunnel bridge=45.38.56.x
| 變數 | 必填 | 說明 |
|---|---|---|
GRASS_ACCESS_TOKEN | 是 | 登入權杖(第一次以 email 驗證碼登入後取得) |
GRASS_REFRESH_TOKEN | 建議 | 換發權杖 |
GRASS_USER_ID | 建議 | 帳號編號 |
GRASS_DEVICE_ID | 否 | 不給會沿用資料卷內既有裝置,或自動產生 |
GRASS_DISPLAY | 否 | 虛擬顯示編號,同一台主機多容器請給不同值(99 / 98 / 97…) |
GRASS_LITE | 否 | 預設 1:啟動後關掉只負責畫介面的 WebKit 層 |
GRASS_LITE_DELAY | 否 | 幾秒後開始精簡,預設 45 |
GRASS_DEB_URL | 否 | 蓋掉官方下載網址(離線或鏡像時用) |
Grass 桌面版本質是 Tauri 應用,真正對外的加密通道在 Rust 主程序,GTK/WebKit 那層只負責畫介面。 啟動後把介面層關掉,實測記憶體從約 182 MB 降到 58 MB,共享完全正常:
| 狀態 | 記憶體 |
|---|---|
| 預設(含介面層) | 約 170 至 182 MB |
GRASS_LITE=1(預設) | 約 58 MB |
GRASS_LITE=0 可關閉此行為。介面層若因重新登入而重生,進入點每 30 秒會再關一次。
Xvfb 虛擬顯示,沒有對外開任何連接埠、也沒有 noVNC。Xvfb 不能移除(移除後程式會崩潰重啟)。--network=host,或把容器接到有 NAT 的自訂網路。建置流程、權杖取得、實測數據與疑難排解都寫在這裡:
https://www.i2345.me/520.html
更多可在 Linux 上掛機的項目與實測:https://www.i2345.me/586.html
還沒有帳號的話,用這個連結註冊:
Content type
Image
Digest
sha256:46229d39f…
Size
195.7 MB
Last updated
1 day ago
docker pull power14345/grass-headless