目 录CONTENT

文章目录
Nas

飞牛 NAS 上“好用的记账”推荐:Cashbook

过客
2026-01-19 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

飞牛 NAS 上“好用的记账”推荐:Cashbook:

  • 完全 ​自托管​,数据存在你自己的 NAS 上。
  • 支持 Web 访问,电脑、手机浏览器都比较适配。
  • 界面简洁,支持:
    • 多账本管理;
    • 日历视图、流水记录、数据分析;
    • 导入支付宝 / 微信 / 京东账单 / 自定义的CSV、JSON格式账单
  • 中文界面,操作直观。
  • 有完整的Docker Compose 部署方案,也可以在飞牛系统中Docker UI部署。

效果预览

可以先看一下效果和功能是否满足需求,如果还行可以继续向下看安装部署,如果感觉未达预期,可以关闭走人不用浪费时间了。

  • 日历

  • 数据分析

  • 流水

  • 导入

  • 筛选

  • 手机页面

部署

先讲一下在飞牛Docker中使用UI部署,最后附上完整的docker-compose。

创建自定义网络

当两个容器处理同一个自定义bridge网络时,可以直接通过「容器名」作为主机名互相访问,默认 bridge 网络不启用内置 DNS无法用容器名访问,只能用IP,这里为了方便cashbook访问数据库,创建自定义网络。

安装Postgre 数据库

  • 进入Docker应用,选择镜像仓库 -> 搜索 postgres -> 安装。

  • 等待安装完成,进入 本地镜像 -> 创建容器

  • 高级设置中添加环境变量:
    • 端口改一下,5433。原因是飞牛Nas已经安装了postgres切使用了默认的5432端口。
    • POSTGRES_USER: 数据库登录用户名
    • POSTGRES_PASSWORD: 数据库密码
    • POSTGRES_DB: 数据库
    • TZ:Asia/Shanghai设置时区

  • 下拉到网络,选择mynet

  • 创建容器 postgre 容器

安装Cashbook

  • 同样的方式搜索 cashbook 安装镜像

  • 配置环境变量
    • DATABASE_URL:数据库链接,修改为真实数据链接:postgresql://postgres:123456@postgres:5432/cashbook?schema=public
    • NUXT_DATA_PATH:容器内数据存储未知,现在只有小票图片了
    • NUXT_AUTH_SECRET:前台登录加密使用的密钥 (注意:不能是纯数字)
    • NUXT_ADMIN_USERNAME:后台登录用户名,默认:admin
    • NUXT_ADMIN_PASSWORD:后台登录密码,密码是加密后的,与账号有关联!默认:admin123456
    • 网络同样选择 mynet

使用

  • 使用浏览器访问 http://ip:9090,第一次需要进入管理后台设置用户。

  • 登录管理后台,账号:admin,密码:admin123456

  • 登录管理后台

  • 添加用户

  • 回到登录页面,使用添加的用户来登录到前端

  • 登录后,需要添加账本

  • 就可以使用了

  • 如果要修改后台管理员账号和密码,需要用 http://ip:9090/admin/GetPassword,设置账号密码,生成加密密码,复制,替换docker环境变量中的NUXT_ADMIN_USERNAMENUXT_ADMIN_PASSWORD

docker-compose.yaml 示例

如果只安装cashbook,后面db部分删了,再调整数据库链接就可以了。

services:
  main:
    container_name: cashbook
    depends_on: 
      - "db"
    image: dingdangdog/cashbook:latest
    restart: always
    volumes:
      - ./data:/app/data
    environment:
      # 环境变量详解请查阅:https://doc.cashbook.oldmoon.top/deploy/#cashbook环境变量详解
      NUXT_DATA_PATH: "/app/data"
      DATABASE_URL: "postgresql://postgres:123456@postgres:5432/cashbook?schema=public"
      NUXT_AUTH_SECRET: "auth_secret"
      NUXT_ADMIN_USERNAME: "admin"
      NUXT_ADMIN_PASSWORD: "fb35e9343a1c095ce1c1d1eb6973dc570953159441c3ee315ecfefb6ed05f4cc"
    ports:
      - 9090:9090
  db:
    container_name: postgres
    image: postgres:17.4-alpine3.21
    restart: always
    # set shared memory limit when using docker-compose
    shm_size: 128mb
    # or set shared memory limit when deploy via swarm stack
    volumes:
      - ./db:/var/lib/postgresql/data 
    environment:
      POSTGRES_USER: postgres # 数据库用户名
      POSTGRES_PASSWORD: 123456 # 数据库密码 
      POSTGRES_DB: cashbook
    ports:
      - 5433:5432 #开发数据库端口
0
nas
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区