跳轉至

Actual Budget

概述

Actual Budget(簡稱 Actual)是一款開源、專注於個人及家庭理財的預算軟件,目標是取代商業軟件 YNAB(You Need A Budget),同時亦常被視為 Firefly III 的輕量替代品。它由前 Mozilla 工程師 James Long 於 2019 年創建,最初以商業營運,之後於 2021 年決定開放原始碼。與 Firefly III 那種結構嚴謹、功能繁多的會計系統不同,Actual 刻意保持精簡,專注於「零基預算」(zero-based budget)方法:每一筆收入都被賦予一個用途,以及時反映真實可分配資產。

Actual 的特點是速度快、介面現代、支援離線使用,並可透過網頁、桌面應用程式(Electron)或流動裝置瀏覽器(PWA)存取。所有數據都儲存在自己的伺服器上,保障私隱。對於一個家庭用户來説,Actual 比 Firefly III 學習曲線更平滑;而 Firefly III 則更像一套完整總帳,適合需要收入/支出分類、資產負債表及規則比對的進階用户。

架構

Actual 採用典型的「伺服器—用户端」架構:

  • actual-server:以 Node.js + Express 編寫的 API 伺服器。它負責用户認證、預算資料同步、資料庫維護和靜態檔案託管。
  • actual-client:基於 React 的用户端,可作為網頁應用程式運行,亦可以 Electron 的形式打包成桌面版本。iOS/Android 等平台可透過 PWA 方式使用。
  • 資料層:伺服器使用 SQLite 儲存所有預算資料及用户記錄。同步機制採用類 JSON Patch 的協定,這樣用户端即使離線編輯,亦能在重連後合併變更。

相比之下,Firefly III 基於 PHP/Laravel + MySQL/MariaDB,部署重量較高;Actual 的 Node.js + SQLite 組合更輕巧,單一 Docker 容器即可完成部署,適合作為家中 NAS 或小型 VPS 上的自託管服務。

部署

Actual 官方提供 Docker 映像 actualbudget/actual-server,建議以 Docker Compose 部署。以下是一般範例:

services:
  actual:
    image: actualbudget/actual-server:latest
    container_name: actual
    restart: unless-stopped
    ports:
      - '5006:5006'
    volumes:
      - ./actual-data:/data

將主機上的 ./actual-data 目錄掛載至容器內的 /data,即可持久化 SQLite 資料庫。若需要對外提供服務,可透過反向代理(如 cloudflare-tunnel、Caddy 或 Nginx)把 5006 連接埠暴露出去,並啟用 HTTPS。由於 Actual 對私隱敏感,亦建議使用 VPN 或 Tailscale 等私有網絡存取,避免將介面直接公開至互聯網。

若主機本身已運行 Node.js 環境,也可從 GitHub 下載 actual-server 原始碼後以 npm 啟動,但不作正式部署建議。

配置

首次登入網頁介面時,系統會要求建立管理員帳户及密碼。登入後可建立多個「預算」檔案,每個檔案包含自己的帳户、類別、交易及規則。Actual 支援多用户,但通常以單一用户或家庭共用為主。

伺服器層面的設定主要透過環境變數完成,例如:

  • ACTUAL_HTTPS_KEY / ACTUAL_HTTPS_CERT:啟用 TLS 時指定私鑰及證書路徑,但多數情況交由反向代理處理。
  • ACTUAL_PORT:修改監聽連接埠,預設為 5006
  • ACTUAL_DATA_DIR:自訂資料目錄,預設為 /data

預算檔案可以定期匯出/匯入,支援 CSV、OFX 與 QIF 格式。若想從 Firefly III 遷移,可先由 Firefly III 匯出交易 CSV,再於 Actual 中建立相應帳户並匯入,然後手動整理類別。

維運與監控

日常維運重點是資料備份。由於所有資料存放於 SQLite 資料庫中,備份整個 /data 目錄即可。建議配合 cron 排程每日備份,並將副本存放至另一位置。SQLite 檔案在備份時最好先透過 sqlite3 .backup 或停止容器後複製,避免寫入中斷造成損壞。

監控方面,可透過 Docker 的 healthcheck 指令定期檢查連接埠回應。實際社區缺乏正式管理面板,維運主要依賴 Docker 日誌,例如 docker logs actual。升級時只需拉取新映像並重新建立容器;每次升級前務必備份。

常見問題

1. 可以自動從銀行匯入交易嗎?
Actual 沒有內建銀行連線,僅支援手動匯入 OFX/QIF/CSV 檔案。可使用第三方服務(如 SimpleFIN 或 GoCardless)從銀行取得資料,再轉換成上述格式,過程需要少量開發能力。

2. 與 Firefly III 的分別是甚麼?
Firefly III 包含完整會計帳目、統計圖專案及規則引擎,適合需要精細分類的用户;Actual 則專注預算體驗,介面更簡潔,速度更快。如果只需家庭記賬,Actual 學習成本較低。

3. 忘記管理員密碼如何重設?
需要直接操作 SQLite 資料庫,刪除 auth 表中對應用户記錄,之後重新設定密碼。但修改資料庫前必須先停用伺服器及備份。

相關鏈接

Firefly III · YNAB · SQLite · Node.js · docker · cloudflare-tunnel · pwa · litellm · proxy

來源

自動生成(2026-08-19 容器覆蓋率補完第二批)