Cashbook
适合家庭部署的私人记账本!
github:https://github.com/dingdangdog/cashbook
Docker镜像:postgrescashbook
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
docker pull dingdangdog/cashbook
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
数据库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;