Giter Club home page Giter Club logo

ezbookkeeping's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ezbookkeeping's Issues

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

Data Import Tool

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

Import:
Accounts
Categories
Tags
Transactions

edit: specified my request.

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)

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

如何设置ssl?

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

谢谢。

Desktop view

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

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

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

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

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

同学,您这个项目引入了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

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.

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.

希望增加周期账单支持

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

交易列表内容缺失

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

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.