在數字時代,消費與支付因網購而變得無比便捷,金錢也隨之漸漸抽象為屏幕上冰冷的數字,失去了曾經真實可握的温度。過去用現金交易時,每一張紙幣的遞出都伴隨着複雜的心緒——或許是計劃,是猶豫,抑或是不捨。那種實實在在的“付出感”,無形中讓人更懂衡量、更知節制。

如今,手機一掃、一鍵即付,消費變得輕而易舉,人與金錢之間的情感聯結卻日益稀薄。支付動作的簡化,也在不知不覺間削弱了我們對支出的敏感。就像從前用現金吃飯,人們會下意識地根據錢包裏的餘額約束開銷;而數字支付讓人難以感知“失去”,更容易在無聲無息中越過原本的界限。

於是我不禁思考:既然我們享受着快捷支付的便利,是否也能找到一種方式,讓消費重新變得可感知?我曾嘗試手動記賬,但不僅難以統計,賬本也容易丟失;又試過一些記賬軟件,可它們往往太過“便捷”,依然無法幫我找回那份對消費的真實感知。直到最近在 GitHub 上發現了一個開源項目——它恰好滿足了我所有這些期待。今天,就想把它介紹給大家。

ezbookkeeping-192.png

什麼是ezBookkeeping?

ezBookkeeping 是一款輕量、自託管 (self-hosted) 的個人記賬應用,擁有用户友好的界面和強大的記賬功能。它部署簡單,藉助 Docker 只需一行命令即可啓動。同時對系統資源佔用低、可擴展性高,既可運行在樹莓派等輕量設備上,也能擴展到 NAS、MicroServer 甚至集羣環境。

ezBookkeeping 為移動端和桌面端提供了各自原生的界面設計。藉助 PWA (漸進式網頁應用) 技術,您還可以將它 添加到手機主屏幕,像原生 App 一樣使用。

github 地址: https://github.com/mayswind/ezbookkeeping

文檔地址: https://ezbookkeeping.mayswind.net/zh_Hans

在線演示:https://ezbookkeeping-demo.mayswind.net

該項目在github已有3.2k star

_20251206_054722.png

Docker私有化部署

我使用的是docker-compose 進行私有化部署的,步驟如下:

  • 創建docker-compose.yml 文件

在我們的服務器上創建部署目錄ezbookkeeping,在此目錄下創建 docker-compose.yml 文件,內容如下:

services:
  ezbookkeeping:
    image: mayswind/ezbookkeeping:latest
    container_name: ezbookkeeping
    hostname: "ezbookkeeping"
    ports:
      - "7080:8080"
    # 默認數據庫類型是 sqlite3,若使用默認數據庫,註釋掉以下環境變量
    environment:
      - "EBK_SERVER_ENABLE_GZIP=true"
      - "EBK_DATABASE_TYPE=mysql"
      - "EBK_DATABASE_HOST=192.168.31.195:3306"
      - "EBK_DATABASE_NAME=ezbookkeeping"
      - "EBK_DATABASE_USER=root"
      - "EBK_DATABASE_PASSWD=xj123456"
      - "EBK_LOG_MODE=file"
      - "EBK_SECURITY_SECRET_KEY=its_should_be_a_random_string"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./storage:/ezbookkeeping/storage # 請確保 UID:GID 是 1000:1000
      - ./log:/ezbookkeeping/log # 請確保 UID:GID 是 1000:1000
        #      - ./ezbookkeeping.ini:/ezbookkeeping/conf/ezbookkeeping.ini
        #      - ./data:/ezbookkeeping/data # 默認使用sqlite3數據庫掛載目錄

ezbookkeeping 默認數據庫類型是 sqlite3,數據庫文件存儲在容器中的 /ezbookkeeping/data/ezbookkeeping.db,若使用默認數據庫,並持久化保存這些數據,你需要使用 Docker 持久化數據卷或掛載宿主機的路徑到容器內。

若想使用mysql或PostgreSQL,則需現在對應的數據庫中創建好數據庫,在環境變量中配置好相應的環境變量即可,我此處使用的是mysql數據庫。

  • 啓動服務

在docker-compose.yml的同級目錄下使用以下命令啓動服務

docker-compose up -d 

啓動之後彙報權限錯誤的日誌,需要給掛載目錄修改權限

給掛載目錄授權

sudo chmod -R 777 storage log

重啓服務

docker-compose restart

到此,我們服務就部署好了

使用

  • 註冊

在瀏覽器中打開服務地址,首次的話我們先需要註冊用户

_20251206_063538.png

_20251206_063650.png

註冊的時候我們可以預設分類 _20251206_063732.png

  • 創建賬户、分類

我們需要先創建好賬户,根據自己記錄的維度創建好消費及收入分類

_20251206_064953.png

  • 添加交易、常看統計

然後我們可以記錄我們的每一筆消費、收入了

_20251206_065454.png

_20251206_065547.png

  • 移動端使用

在手機瀏覽器中打開網址http://ip:port/ 或者掃碼,使用用户名登錄之後就可以在手機端使用了,如果不想每次進瀏覽器,可以在瀏覽器中將頁面發送到手機桌面。

_20251206_070326.png

結語

在眾多個人財務應用中,ezBookkeeping以其開源特性、隱私保護、輕量高效和易部署的優勢脱穎而出。無論你是技術愛好者想在樹莓派上搭建服務,還是普通用户想在NAS上自建財務系統,ezBookkeeping都是一個值得嘗試的優秀選擇。

它的設計哲學很明確:給用户完全的控制權,同時提供專業級的記賬體驗。在這個數據隱私日益重要的時代,這樣的應用顯得尤為珍貴。

如果你正在尋找一個可靠、私密、功能全面的記賬解決方案,不妨試試ezBookkeeping。只需幾分鐘的部署時間,你就能擁有一個完全屬於自己的專業財務管理系統。