Memories / 文件

本頁目錄

桌面設定(Windows、Linux 及 macOS)

Memories 讀取 UTF-8 TOML 檔案,以取得非祕密的本機設定。CLI、daemon、Windows 系統匣、macOS 選單列應用程式及 WebUI 使用相同的設定載入器。發布壓縮檔包含 memories.example.toml;原始碼範本位於 crates/cli/assets/memories.example.toml。

建立與檢查

memories config path
memories config init
memories config show

config init 會在一般設定位置建立附註解的範例。它絕不覆寫既有檔案。config path 回報實際選定的位置,而 config show 顯示有效設定值,不會開啟或建立加密儲存區。若要維持獨立的開發設定:

memories config init --output ./development.toml
memories --config ./development.toml config show
memories --config ./development.toml daemon
memories --config ./development.toml tray

設定檔選擇順序為 --config,接著是 MEMORIES_CONFIG,最後是作業系統預設值。絕不隱含探索目前目錄中的檔案。明確選定的檔案不存在時會報錯,使用 config init 建立它的情況除外。

平台 預設設定檔
Windows %APPDATA%\memories\memories\config\config.toml
Linux $XDG_CONFIG_HOME/memories/config.toml,或 ~/.config/memories/config.toml
macOS ~/Library/Application Support/app.memories.memories/config.toml

目前帳號的權威路徑請以 memories config path 為準。僅安裝或啟動發布版本不會建立個人設定。

設定項目

# Windows example: storage_dir = "D:/MemoriesData"
storage_dir = "~/MemoriesData"
relay_url = "wss://relay.example.com"

[desktop]
port = 0
open_browser = true
鍵 意義 環境變數覆寫 命令列覆寫
storage_dir 包含加密儲存區及本機狀態的目錄 MEMORIES_HOME --home PATH
relay_url sync send 及 sync receive 的預設中繼基底 URL MEMORIES_RELAY_URL --relay URL
desktop.port 回送儀表板連接埠;0 選擇可用連接埠 MEMORIES_WEBUI_PORT tray/webui --port PORT
desktop.open_browser 啟動系統匣/WebUI 時開啟瀏覽器 MEMORIES_OPEN_BROWSER(true/false 或 1/0) --open 或 --no-open

每個設定項目都依命令列選項、環境變數、TOML 值、內建預設值的順序決定優先權。未設定 storage_dir 時,既有作業系統資料目錄不變。沒有內建公開中繼。開啟瀏覽器預設為 true,儀表板連接埠預設為零。

相對 storage_dir 路徑以設定檔所在位置解析,而非 Shell 工作目錄。開頭的 ~/ 會展開為目前使用者的家目錄。Windows 路徑請使用正斜線或 TOML 字面字串。變更此設定會選擇不同的儲存區;不會移轉或複製既有資料。變更儲存或桌面設定後,請一起重新啟動 daemon 及系統匣。系統匣會將選定設定及已解析的儲存區轉送給子行程探測及 daemon 啟動。

語言仍由既有 --lang、MEMORIES_LANG 及 memories language 設定控制。已儲存的語言會從設定的儲存區目錄讀取。WebUI 也有自己的瀏覽器語言選擇器。

中繼範例

memories --config ./development.toml sync receive --room ROOM
memories --config ./development.toml sync send VAULT_ID RECIPIENT_DEVICE_PUBLIC_KEY --room ROOM
memories sync receive --relay wss://another-relay.example.com --room ROOM

遠端中繼只接受 wss://。回送開發允許 ws://(localhost、127.0.0.1 或 ::1)。URL 不能包含使用者名稱/密碼。既有中繼協定根據房間及槽位決定通道路徑。設定中繼不會啟用自動中繼同步,也不會啟動中繼伺服器;它提供明確傳送/接收操作的預設位址。

此檔案未加密。儲存區密碼、私鑰、OAuth 權杖及 MCP 授權應存放於既有受保護機制,絕不放在此檔案中。未知鍵、無效值及格式錯誤的 TOML 會拒絕操作,而非靜默切換至另一個儲存區。設定錯誤訊息不會回顯 TOML 原始值。

檢索與模型設定

相同檔案接受 [rag]、[rag.http] 及選用的 [rag.embedding]、[rag.generation]、[rag.rerank] 區段。它們設定行程內 EmbeddingGemma 模型目錄/CPU 執行緒、客戶選定的 API URL 及模型名稱、API 金鑰環境變數名稱、代理、逾時及重試。生成沒有預設端點;嵌入預設使用本機模型。完整設定請參閱檢索與 RAG 及隨附範例。變更這些設定後請重新啟動 daemon。系統匣啟動 daemon 時會轉送設定路徑;模型金鑰必須存在於其環境中。

遠端 daemon 監聽(不使用 TOML)

HTTP/中繼 RPC 監聽權杖不得放入設定檔。只使用旗標或環境變數:

用途 旗標 環境變數
Daemon HTTP/WS 監聽 daemon --listen http(s)://HOST:PORT —
選用 TLS daemon --tls-cert PATH --tls-key PATH —
Daemon 監聽權杖 daemon --listen-token MEMORIES_LISTEN_TOKEN
非回送繫結 daemon --allow-non-loopback —
Daemon 中繼主機 daemon --relay-host URL --room ROOM —
CLI 直接連接 --daemon URL(http(s)://,包含主機及連接埠) MEMORIES_DAEMON
CLI 中繼連接 --daemon-relay URL --daemon-room ROOM MEMORIES_DAEMON_RELAY / MEMORIES_DAEMON_ROOM
CLI 連接權杖 --daemon-token MEMORIES_DAEMON_TOKEN

HTTP/WebSocket 監聽詳情請參閱遠端 daemon。

授權 Center

此區段設定桌面 daemon 及 CLI。手機的 Standalone、Center 及 SaaS 選項是獨立的應用程式設定;請參閱行動模式選擇。

選用的 [[centers]] 項目(id、url、public_key、選用 mode)使端點受 Center 管理:拒絕 init/restore 及本機 MCP 授權。mode = "ticket" 是預設值:使用 memories center enroll/import-grant 搭配已簽署票證。也可以改用恰好一個 mode = "saas" 項目,透過 MEMORIES_CENTER_TOKEN 將 daemon 內容連接至託管 Center;不會建立平行的本機註冊/內容路徑。直接 Center CLI 呼叫使用 MEMORIES_CENTER_URL/MEMORIES_CENTER_TOKEN,管理操作則使用 MEMORIES_CENTER_ADMIN_TOKEN。簽署祕密及 bearer 權杖保留在環境中,絕不放入 TOML。請參閱 Center。

省略授權範圍時,現在預設為 read,包括 Center 票證及靜態託管授權規格。本機 Admin/Owner 授權簽發及票證匯入需要已解鎖的保存庫,但不需要終端機權限提升。簽發受保存庫角色及任何父授權的範圍與到期時間限制;只有 Owner 可以明確選擇 allow_all。Bearer 仍須放在 TOML 之外。成員資格變更會撤銷受影響的委派授權,而鎖定會清除所有本機授權。RPC 名稱、權限請求、存取清單、稽核相容性及行為變更請參閱授權。

在託管模式下,memories-center --data DIR(環境變數 MEMORIES_CENTER_DATA)也會將持久請求中繼資料儲存在 DIR/requests.json,並將僅附加的 SHA-256 稽核鏈儲存在 DIR/audit.jsonl;兩者使用 Unix 模式 0600,而 DIR 模式為 0700。既有 DIR/members.json 仍包含明文長期 bearer 憑證。請保護這三個檔案及其備份;絕不提交至版本控制。不應在 TOML 中新增密碼、權杖或稽核設定。稽核/請求/成員儲存失敗會鎖定伺服器並設定 restart_required;遠端解鎖不能繞過該狀態。請修復後使用營運者持有的密碼重新啟動。

託管成員 HTTP 本文接受選用的 role=reader|editor|admin|owner;省略角色會保留既有範圍至角色的對應關係。POST /v1/grants 預設為 scope=read、duration_minutes=30(別名 minutes),並要求 Admin/Owner。POST /v1/requests 使用 duration_minutes(別名 duration)及選用 approvers;GET /v1/requests 列出待處理工作。GET /v1/access/{vault} 及 GET /v1/grants 公開不含權杖的存取中繼資料。GET /v1/audit?vault=NAME 篩選已驗證項目,GET /v1/audit?format=jsonl 匯出營運者可見的完整記錄。這些授權路由使用既有託管/管理員 bearer,不使用新的環境變數。移除成員/變更範圍會透過凍結的簽發世代使所有先前簽發的授權失效;靜態/長期憑證會在轉換時重新建立。精確路由、回應欄位及稽核鏈限制請參閱 Center。

行動模式選擇

首次啟動時選擇模式,之後使用主工具列的切換模式。變更此選擇時,應用程式不會讀取 MEMORIES_CENTER_URL/MEMORIES_CENTER_TOKEN,也不會編輯 [[centers]]。

應用程式模式 端點 儲存內容
Standalone 透過 FFI 使用本機 Rust 服務 手機上既有的加密資料收藏
Center 使用者輸入的託管 Center 來源 該伺服器的託管儲存區
SaaS 固定 https://memories.ivjn.us SaaS 託管儲存區

非回送 Center URL 必須使用 HTTPS,且不能包含使用者名稱、密碼、非根路徑、查詢或片段。請輸入伺服器來源,而非 /v1/rpc。手機的回送位址指向手機本身,不是開發電腦。

非祕密偏好設定 memories.app-mode.v1 儲存 standalone、center 或 saas。值不存在或未知時會顯示模式選擇器。連線設定檔是 JSON 物件,透過 flutter_secure_storage 儲存於 memories.hosted.center.connection.v2 及 memories.hosted.saas.connection.v2;每個設定檔將 url 綁定至其 bearer。成功的新連線只會在能載入請求清單後儲存這組資料。中斷連線會移除 bearer,但保留 URL;切換模式會保留兩個設定檔供稍後使用。

升級時,只有在該模式沒有新設定檔的情況下,才會匯入舊版 memories.hosted.url.v1/memories.hosted.bearer.v1 配對。完全相符的 https://memories.ivjn.us URL(可有結尾斜線)屬於 SaaS;其他 URL 屬於 Center。移轉後會移除舊版配對。SaaS 不會重新連接 URL 指向其他位置的已儲存權杖。

開啟託管模式時,若有已儲存的連線便會還原。進入背景後,目前頁面需要使用重新連接已儲存的工作階段或重新登入。切換絕不會移轉資料收藏內容、變更伺服器成員資格或撤銷伺服器簽發的權杖。功能比較及連線疑難排解請參閱行動使用方式。

用戶端 CLI 預設值

與 config.toml 分開,CLI 將選用、非祕密的命令預設值儲存在 defaults.json,位於 Memories 家目錄(storage_dir/MEMORIES_HOME/--home)下:

memories default set KEY VALUE
memories default get [KEY]
memories default delete KEY

鍵:persona、vault、type、category、daemon、daemon_relay、daemon_room。這些絕不能是保存庫祕密;請勿在此放入密碼或 MCP 授權權杖。