简单的费用跟踪系统ExpenseOwl

简介

什么是 ExpenseOwl ?

ExpenseOwl 是一个极其简单的自托管费用跟踪系统,旨在帮助用户轻松记录和管理日常开支。该应用具有现代化的用户界面,并提供直观的月度饼图可视化和现金流展示。

主要特点

  1. 简单的费用跟踪:用户只需输入基本信息(名称、日期、金额和类别)即可记录开支。
  2. 平面文件存储:所有费用数据存储在 data/expenses.json 文件中。
  3. REST API:提供 API 以便于费用管理和自动化操作。
  4. 单用户聚焦:主要设计用于家庭实验室环境,操作简单。
  5. 自定义类别和货币:用户可以通过应用设置自定义类别和货币符号。
  6. 可视化功能:主仪表板提供费用类别的饼图分解,便于用户了解支出情况。
  7. 渐进式 Web 应用(PWA):可以在桌面和移动设备上安装,方便访问。

应用场合

  • 家庭实验室:适合个人用户在家庭环境中使用,快速记录和管理开支。
  • 简单的费用管理:非常适合那些需要基本费用跟踪功能而不需要复杂预算管理的用户。
  • 自托管解决方案:适合技术用户希望在本地服务器上运行的场景。

总之,ExpenseOwl 是一个理想的工具,适合希望以简单方式管理个人开支的用户。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 expenseowl ,选择第一个 tanq16/expenseowl,版本选择 main

本文写作时, main 版本对应为 v3.16

docker 文件夹中,创建一个新文件夹 expenseowl,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/expenseowl/data /app/data 存放数据和设置文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8342 8080

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 expenseowl 和 子目录
mkdir -p /volume1/docker/expenseowl/data

# 进入 expenseowl 目录
cd /volume1/docker/expenseowl

# 运行容器
docker run -d \
--restart unless-stopped \
--name expenseowl \
-p 8342:8080 \
-v $(pwd)/data:/app/data \
tanq16/expenseowl:main

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
expenseowl:
image: tanq16/expenseowl:main
container_name: expenseowl
restart: unless-stopped
ports:
- "8342:8080"
volumes:
- ./data:/app/data

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 expenseowl 和 子目录
mkdir -p /volume1/docker/expenseowl/data

# 进入 expenseowl 目录
cd /volume1/docker/expenseowl

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8342 就能看到主界面

设置

进入设置

可以添加自己的分类,用不上的可以删掉

需保留 Income,只有 Income 会被识别为 收入

接下来修改货币单位为 CNY(¥)

费用

加下来就可以添加费用了

随便加了几项

面板

现在切换到 Dashboard 界面,有简单的统计,也可以快捷添加费用

增加一个收入项,类型必须是 Income才会被识别为收入,否则都是费用

data 中有两个文件

其中 config.json 保存了相关的设置

expenses.json 中则记录了费用情况

之所以提到这两个文件,是因为在界面上只有添加和删除,如果需要做编辑修改,直接在文件中会比较方便

参考文档

Tanq16/ExpenseOwl: Extremely simple, self-hosted expense tracker with a beautiful UI.
地址:https://github.com/Tanq16/ExpenseOwl