Giter VIP home page Giter VIP logo

mayswind / ezbookkeeping Goto Github PK

View Code? Open in Web Editor NEW
82.0 6.0 22.0 5.84 MB

A lightweight personal bookkeeping app hosted by yourself.

Home Page: http://ezbookkeeping.mayswind.net

License: MIT License

Dockerfile 0.05% JavaScript 24.44% Shell 0.23% Go 25.20% Vue 43.06% HTML 1.01% CSS 1.39% SCSS 4.36% Batchfile 0.26%
self-hosted golang javascript vue app personal account-book money money-management personal-finance

ezbookkeeping's Issues

Statistics tab does not work using postgres database

In case I'm using postgres database, when I open the statistics tab it shows up blank. But if I use sqlite statistics tab works fine.

Error log:

postgres         | 2023-04-22 07:23:28.562 UTC [33] ERROR:  column "transaction.uid" must appear in the GROUP BY clause or be used in an aggregate function at character 8
postgres         | 2023-04-22 07:23:28.562 UTC [33] STATEMENT:  SELECT uid, category_id, account_id, SUM(amount) as amount FROM "transaction" WHERE (uid=$1 AND deleted=$2 AND (type=$3 OR type=$4) AND transaction_time>=$5 AND transaction_time<=$6) GROUP BY category_id, account_id
ezbookkeeping    | 2023-04-22 13:23:28 [REQUEST] 200 0 3612385602822995968 192.168.0.199 GET /api/v1/transactions/statistics.json?start_time=1680285600&end_time=1682877599 11ms, r=ed7d581c-5e28-5d1b-0000-0034c0a800c7

Ezbookkeeping docker image: mayswind/ezbookkeeping:SNAPSHOT-20230421
Postgres image: postgres:14.1-alpine

my docker-compose.yml
version: "2"
services:
  ezbookkeeping:
    image: mayswind/ezbookkeeping:SNAPSHOT-20230421
    container_name: ezbookkeeping
    hostname: "ezbookkeeping"
    ports:
      - "80:8080"
    networks:
      - db
    depends_on:
      - "db"
    environment:
      - "EBK_SERVER_DOMAIN=ezbookkeeping.local"
      - "EBK_SERVER_ENABLE_GZIP=true"
      - "EBK_DATABASE_TYPE=postgres"
      - "EBK_DATABASE_HOST=db:5432"
      - "EBK_DATABASE_NAME=ezbookkeeping"
      - "EBK_DATABASE_USER=ezbookkeeping"
      - "EBK_DATABASE_PASSWD=ezbookkeeping"
      - "EBK_LOG_MODE=console file"
      - "EBK_SECURITY_SECRET_KEY=my_security_code"
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/var/log/ezbookkeeping:/var/log/ezbookkeeping"
  db:
    image: postgres:14.1-alpine
    container_name: postgres
    restart: always
    environment:
      - POSTGRES_USER=ezbookkeeping
      - POSTGRES_PASSWORD=ezbookkeeping
    ports:
      - '5432:5432'
    networks:
      - db
    volumes:
      - db:/var/lib/postgresql/data
networks:
  db:
volumes:
  db:
    driver: local

Best to have extra features

Thank you bringing up an excellent, easy to use and beautiful sofeware. Appreicate that the dockerized app makes life much easier. Playing it in a few hours, I would suggest below in my wish-list:

  1. manage categories
  • recursively managable categories (it's easy to be implemented, based on your well defined database table)
  • drag-n-drop crossing at least sub-categories in UI
  1. exchange rates
  • optiions at user's choice to adpot an set of officially published exchange rates yearly from an applicable national central bank
  • options can be daily, monthly and yearly from your collected 6 countries' exchange rates
  • for example of tax return purpose, yearly exchange rates are sufficient and less-burden to the app system.
  • automatically apply exchange rate to each transaction in given date of year
  1. optionally add suppliers/payees in transaction
  • in practices, aggregation reports from suppliers/payees are pretty logical and valuable.

Desktop view

I notice the routes are start from /mobile, how to enable desktop view?

希望增加周期账单支持

非常nice的自托管记账系统!希望能支持类似房租、宽带费、物业费之类的周期账单支持,在设置的周期之间自动追加交易条目。

同学,您这个项目引入了73个开源组件,存在8个漏洞,辛苦升级一下

检测到 mayswind/ezbookkeeping 一共引入了73个开源组件,存在8个漏洞

漏洞标题:jwt-go 安全漏洞
漏洞编号:CVE-2020-26160
漏洞描述:jwt-go是个人开发者的一个Go语言的JWT实现。
jwt-go 4.0.0-preview1之前版本存在安全漏洞。攻击者可利用该漏洞在使用[]string{} for m[\"aud\"](规范允许)的情况下绕过预期的访问限制。
影响范围:(∞, 4.0.0-preview1)
最小修复版本:4.0.0-preview1
缺陷组件引入路径:github.com/mayswind/ezbookkeeping@->github.com/dgrijalva/[email protected]+incompatible

另外还有8个漏洞,详细报告:https://mofeisec.com/jr?p=n2b792

update database table structure failed on v0.4.0

2023-09-18 01:04:43 [INFO] [server.startWebServer] static root path is /ezbookkeeping/public
2023/09/18 01:04:43 Failed to run ezBookkeeping with [/ezbookkeeping/ezbookkeeping server run]: Cannot add a NOT NULL column with default value NULL
2023-09-18 01:04:43 [ERROR] [server.startWebServer] update database table structure failed, because Cannot add a NOT NULL column with default value NULL
2023-09-18 01:05:10 [INFO] [initializer.initializeSystem] will load configuration from default config path /ezbookkeeping/conf/ezbookkeeping.ini

Data Import Tool

Feature request: Data import tool for when migrating from other simple systems.

Import:
Accounts
Categories
Tags
Transactions

edit: specified my request.

Enhancement request: edit some basic CSS

Hi! I'm pretty much satisfied with this project, and I'm using it on a daily basis without any issue so far. However, it would be cool if I was able to change some basic CSS, like the color used to show positive and negative values.

For example, I'm accustomed to use green for incomes, while I keep the red for anything that's a spending. Right now it's the other way around, and I didn't find any way to change it except re-compile the entire program after editing the assets.

The deployment using docker-compose has failed

docker-compose.yml

version: "2"
services:
  ezbookkeeping:
    image: mayswind/ezbookkeeping
    container_name: ezbookkeeping
    hostname: "ezbookkeeping"
    ports:
      - "5701:8080"
    environment:
      - "EBK_SERVER_DOMAIN=mydomain"
      - "EBK_SERVER_ENABLE_GZIP=true"
      - "EBK_DATABASE_TYPE=mysql"
      - "EBK_DATABASE_HOST=localhost:3306"
      - "EBK_DATABASE_NAME=ezbookkeeping"
      - "EBK_DATABASE_USER=ezbookkeeping"
      - "EBK_DATABASE_PASSWD=password"
      - "EBK_LOG_MODE=file"
      - "EBK_SECURITY_SECRET_KEY=xxxxxxxxx"
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/var/log/ezbookkeeping:/var/log/ezbookkeeping" # 请确保 UID:GID 是 1000:1000

The error log:

2022-10-13 14:37:32 [ERROR] [server.startWebServer] update database table structure failed, because dial tcp 127.0.0.1:3306: connect: connection refused
2022/10/13 14:37:32 Failed to run ezBookkeeping with [/ezbookkeeping/ezbookkeeping server run]: dial tcp 127.0.0.1:3306: connect: connection refused

Unaligned 64-bit atomic operation on 32-bit arm machine

Trying to run docker image on Raspberry Pi 2 Model B (which has 32-bit CPU). It fails on registration attempt with following stack trace:

ezbookkeeping | 2023-04-20 14:10:49 [ERROR] System Error! because unaligned 64-bit atomic operation, r=b2e63496-63b4-89fe-0000-0004c0a800c7
ezbookkeeping | runtime/internal/atomic/unaligned.go:8 (0x1151b)
ezbookkeeping | runtime/internal/atomic/atomic_arm.s:258 (0x118a7)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/uuid/internal_generator.go:74 (0x6d86d7)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/uuid/internal_generator.go:53 (0x6d8583)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/uuid/uuid_container.go:32 (0x70b68f)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/services/base.go:46 (0x70b674)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/services/users.go:137 (0x70b668)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/api/users.go:65 (0x739e0b)
ezbookkeeping | github.com/mayswind/ezbookkeeping/cmd/webserver.go:265 (0x7469fb)
ezbookkeeping | github.com/gin-gonic/[email protected]/context.go:174 (0x73e383)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/middlewares/request_log.go:16 (0x73e360)
ezbookkeeping | github.com/mayswind/ezbookkeeping/cmd/webserver.go:258 (0x74690b)
ezbookkeeping | github.com/gin-gonic/[email protected]/context.go:174 (0x73e247)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/middlewares/request_id.go:26 (0x73e21c)
ezbookkeeping | github.com/mayswind/ezbookkeeping/cmd/webserver.go:258 (0x74690b)
ezbookkeeping | github.com/gin-gonic/[email protected]/context.go:174 (0x7117c3)
ezbookkeeping | github.com/gin-contrib/[email protected]/handler.go:60 (0x71179c)
ezbookkeeping | github.com/gin-gonic/[email protected]/context.go:174 (0x73d8b7)
ezbookkeeping | github.com/mayswind/ezbookkeeping/pkg/middlewares/recovery.go:33 (0x73d890)
ezbookkeeping | github.com/mayswind/ezbookkeeping/cmd/webserver.go:258 (0x74690b)
ezbookkeeping | github.com/gin-gonic/[email protected]/context.go:174 (0x6ae8af)
ezbookkeeping | github.com/gin-gonic/[email protected]/gin.go:620 (0x6ae5bc)
ezbookkeeping | github.com/gin-gonic/[email protected]/gin.go:576 (0x6ae17f)
ezbookkeeping | net/http/server.go:2936 (0x4a36f7)
ezbookkeeping | net/http/server.go:1995 (0x49ee7f)
ezbookkeeping | runtime/asm_arm.s:831 (0x80c37)

交易列表内容缺失

在交易列表中,按日期过滤,如果选择最近7天最近30天,那么当天记录不会显示。请问这个是设计如此还是bug导致?

如何设置ssl?

我看ini文件里有个certfile 和cert-keyfile,需要只需要配置这个路径就行了吗
比如我映射的宿主机目录是/ezbookkeeping/conf,我把证书文件放这个目录下,那么ini里面的对应路径是否是这样?
/ezbookkeeping/conf/cert.crt
/ezbookkeeping/conf/cert-key.key

谢谢。

[Feature Request] 希望增加按标签过滤汇总功能

在使用过程中,我有时会给不同类别的支出打上相同的签,比如:

类别 物品 标签
电器 冰箱 厨房
餐具 厨房
食材 牛肉 厨房

我想统计一下某年,或某个季度,我为厨房购买了哪些物品,总共支出了多少。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.