Cashbook 适合家庭部署的私人记账本!

Github:https://github.com/dingdangdog/cashbook
Docker镜像:postgres cashbook mysql mysql-armv7

数据库

  • postgres

    docker pull postgres:17.4-alpine3.21
docker run -d \
--name postgres \
--restart=always \
--shm-size 128mb \
-e POSTGRES_USER: postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-e POSTGRES_DB: cashbook \
-e /volume1/docker/postgres/data/pgdata=/var/lib/postgresql/data/pgdata \
-v /volume1/docker/postgres/data:/var/lib/postgresql/data \
-p 5432:5432 \
postgres:17.4-alpine3.21
  • mysql

    docker pull Mysql:5.7
    docker pull biarms/mysql:5.7
    docker run -d \
    -p 3306:3306 \
    --name mysql \ 
    -v /mydata/mysql/log:/var/log/mysql \ 
    -v /mydata/mysql/data:/var/lib/mysql \ 
    -v /mydata/mysql/conf:/etc/mysql \ 
    -e MYSQL_ROOT_PASSWORD=root \ 
    mysql:5.7

记账系统

  • cashbook

    docker pull dingdangdog/cashbook
  • postgres 数据库版

    docker run -d \
    --name cashbook \
    --restart: always \
    -v /volume1/docker/cashbook/data:/app/data 
    -e DATABASE_URL=postgresql://postgres:123456@localhost:5432/cashbook?schema=public" 
    -e NUXT_DATA_PATH="/app/data" 
    -e NUXT_AUTH_SECRET="auth_secret" 
    -e NUXT_ADMIN_USERNAME="admin" 
    -e NUXT_ADMIN_PASSWORD="fb35e9343a1c095ce1c1d1eb6973dc570953159441c3ee315ecfefb6ed05f4cc"
    -p 9090:9090
    dingdangdog/cashbook:latest
  • mysql 数据库版
docker run -d \
--name cashbook \
--restart: always \
-v /volume1/docker/cashbook/data:/app/data 
DATABASE_URL=mysql://root:123456@localhost:3306/cashbook
-e NUXT_DATA_PATH="/app/data" 
-e NUXT_AUTH_SECRET="auth_secret" 
-e NUXT_ADMIN_USERNAME="admin" 
-e NUXT_ADMIN_PASSWORD="fb35e9343a1c095ce1c1d1eb6973dc570953159441c3ee315ecfefb6ed05f4cc"
-p 9090:9090
dingdangdog/cashbook:latest-mysql

数据库SQL查询

因为此服务不带导出功能,可通过数据库直接下载需要的数据并导出。

bookId= '1-fw31d34L' #支付宝1
bookId= '1-fw31d34L' #支付宝2
bookId= '1-DtBsD7Br' #微信
bookId= '1-35FZe24G' #京东

这里是我个人建立的账本,只作参考!

查询手动修改归属为个人的数据

  • 查询所有记录

    SELECT *
    FROM "Flow"
    WHERE "attribution" = '个人' OR "flowType"<> '不计收支'
    ORDER BY 
      "bookId" asc,  
      day ASC ;   
  • 查询指定月份
SELECT *
FROM "Flow"
WHERE 
    "attribution" = '个人' 
    AND "flowType" <> '不计收支' 
    AND EXTRACT(YEAR FROM TO_DATE(day, 'YYYY-MM-DD')) = 2025
    AND EXTRACT(MONTH FROM TO_DATE(day, 'YYYY-MM-DD')) = 2
ORDER BY 
    "bookId" ASC, 
    day ASC; 

查询归属排除个人以外的数据

  • 查询所有记录

    SELECT *
    FROM "Flow"
    WHERE 
      "flowType" NOT IN ('不计收支') 
      AND ("attribution" <> '个人' OR "attribution" IS NULL)
    ORDER BY 
      "bookId" asc,  
      day ASC ;   
  • 查询指定月份

    SELECT *
    FROM "Flow"
    WHERE 
      "flowType" NOT IN ('不计收支') 
      AND ("attribution" <> '个人' OR "attribution" IS NULL)
      AND EXTRACT(YEAR FROM TO_DATE(day, 'YYYY-MM-DD')) = 2025
      AND EXTRACT(MONTH FROM TO_DATE(day, 'YYYY-MM-DD')) = 2
    ORDER BY 
      "bookId" ASC, 
      day ASC; 

部署指南
微信/支付宝/京东金融导出账单方法

最后修改:2025 年 10 月 12 日
如果觉得我的文章对你有用,请随意赞赏