doona
開發
示範
繁體中文

開發

送出 pull request 前先讀 CONTRIBUTING.md。修正翻譯或提議新增語言,見其中的 Translations 一節。

本文件及其網站的原始碼在 Zakkaus/doona-docs。

指令

在倉庫根目錄執行:

pnpm install --frozen-lockfile
pnpm build                       # writes dist/
pnpm check                       # types, lint, translations, formatting, unit tests, generated API types
pnpm check:size                  # gzip budgets for the dist/ build
pnpm e2e:install --with-deps     # once, for the browser tests
pnpm e2e                         # rebuild, then test against the mock at the root and under /ui/
pnpm package                     # release/doona-<version>.tar.gz, doona-fonts-<version>.tar.gz, SHA256SUMS

pnpm dev 以 Vite 開發伺服器提供模擬後端。pnpm package 使用 package.json 中的版本號;pnpm package --git-version 使用去掉開頭 v 的 git describe --tags --always 輸出。時間戳使用 SOURCE_DATE_EPOCH,未設定時使用 HEAD 提交時間。

對實際後端測試

在倉庫根目錄執行 DOONA_API=http://router:9527 DOONA_TOKEN=… pnpm e2e:live,可對實際後端執行唯讀的無障礙、行動裝置導覽與鍵盤測試。DOONA_API 必填;後端不要求身分驗證時可省略 DOONA_TOKEN。測試拒絕透過 fixture 儲存覆寫後端設定,並中止控制請求,包括 DNS 查詢。一般 pnpm e2e 測試在設定了 DOONA_API 時拒絕執行,除非明確設定 DOONA_LIVE_OBSERVE=1。

截圖

node tools/screenshots.mjs <url> docs/screenshots 擷取各語言的模擬後端頁面、配色總覽、英文主題圖庫、手機拼圖、頁面導覽靜態影格與路由動畫,輸出 WebP。需要安裝 cwebp、img2webp 與 Playwright 的 Chromium。

原始碼配置

路徑 用途
src/features/ 各頁面及其 hook 與文案,一頁一個資料夾
src/shell/ 應用程式外殼、導覽與搜尋
src/ui/ 共用元件、主題與圖示
src/api/ 用戶端、後端設定檔、引擎轉接器與產生的型別
mock/ 示範、預覽與測試使用的模擬後端
src/store/ 資源監聽、讀取快取與操作 hook
src/i18n/ 翻譯與地區設定輔助
contract/ 內嵌的 OpenAPI 契約與釘點
public/ 靜態圖示、manifest 與 service worker
e2e/ 瀏覽器測試
tools/ 建置、打包、一致性檢查與截圖工具
install/ nfpm 設定與 OpenWrt、Alpine、Gentoo、Nix 打包設定
docs/ 國旗與字型文件
node_modules/@fontsource-variable/ Vite 打包的 Noto Sans TC/SC 字型原始碼

截圖工具在執行時建立 docs/screenshots/;截圖不在原始碼樹中。

契約

SOURCE.md 記錄 openapi.yaml 的釘點。移動釘點後執行 pnpm gen:api 重新產生 src/api/types.ts。node tools/conformance.mjs http://router:9527 --token … 依契約檢查線上後端的探索端點、能力與唯讀回應,不送出任何修改。

版本變更見 CHANGELOG.md。

doona lite

doona lite 原始碼位於 apps/lite,具有獨立的鎖定檔。在 doona 儲存庫根目錄分別安裝兩組相依套件,再建置 lite:

pnpm install --frozen-lockfile
pnpm --dir apps/lite install --frozen-lockfile
pnpm --dir apps/lite build

輸出目錄為 apps/lite/dist。使用 pnpm --dir apps/lite dev 啟動開發伺服器。lite 具有獨立的介面與狀態,重用標準版的 API 用戶端與產生的型別;詳見後端要求。

doona

doona 文件

繁體中文
doona 文件首次啟動若只使用直連,請按快速入門操作。 快速入門使用僅直連的 honk 組態啟動 doona 標準版,登入後驗證閘道器本機的流量。 標準版與 doona lite標準版用於管理組態與觀測流量。 系統需求 在 Debian 或 Ubuntu 上安裝在 Debian、Ubuntu 或其他使用 APT 的系統上,從 doona-web .deb 套件安裝 doona,並從同一個發行版本安裝 honk-core。 在 Fedora 或 RHEL 上安裝在 Fedora、RHEL 或其他使用 DNF 的系統上,從 .rpm 套件安裝 doona,並從同一個發行版本安裝 honk-core。 在 Arch Linux 上安裝在 Arch Linux 或其他使用 pacman 的系統上,從 .pkg.tar.zst 套件安裝 doona,並從同一個發行版本安裝 honk-core。 在 Gentoo 上安裝在本機 ebuild 儲存庫中,用 Portage 從 doona 的 ebuild 安裝 doona,並從同一個發行版本安裝 honk-core。 在 OpenWrt 上安裝在 OpenWrt 25.12 上,從發行套件或封存檔安裝 doona,並從同一個發行版本安裝 honk-core。 在其他系統上安裝在符合以下核心需求的 x86_64 或 aarch64 Linux 系統上,從發行封存檔安裝 doona 與 honk-core。 安裝詳解先安裝 honk 並撰寫組態,再安裝 doona 並啟動 honk。 最小組態本頁撰寫能啟動 honk 並提供 doona 的最小 honk 組態,然後手動啟動 honk 檢查組態。 服務管理本頁以 systemd 或 OpenWrt procd 服務的形式運作 honk:先建立一次服務,再列出啟動、停止、重新啟動、重載 honk 以及檢視日誌的命令。 為第一條連線設定路由從快速啟動繼續,保持 honk 運作並以管理員身分登入。 首次登入本頁在瀏覽器中開啟 doona,建立管理員帳戶,並檢查 doona 是否顯示正在運作的 honk。 介面導覽用導覽開啟頁面,用頂端列搜尋或重新整理,用分頁切換檢視。 觀測流量用「活動」與「系統狀態」查看引擎健康,用「連線」「分流」與「DNS」檢查流量。 路由、節點與規則策略管理群組選擇與成員。 組態與設定「組態」頁讀取、驗證並套用 honk 的設定檔。 常見操作本頁介紹標準版;doona lite 請參閱 doona lite。 功能各項功能的前提條件與操作被停用的原因,見功能啟用條件。 doona litedoona lite 為初學者提供較小的介面,用於編輯 honk 組態。 連線 doona lite將 doona lite 連線至 honk 原生 API,或在沒有後端時開啟示範。 doona lite 常見操作使用 doona lite 匯入資源並編輯 honk 組態。 組態參考本頁列出 doona 涉及的 honk DAE 設定、預設值及生效方式。 doona 可以修改什麼doona 透過不同的控制項修改組態來源、執行期狀態、持久儲存的地理資料設定和瀏覽器偏好。 功能啟用條件在表中找到你要使用的標準版功能,再按對應章節檢查前提並啟用。 疑難排解 開發送出 pull request 前先讀 CONTRIBUTING.md。