====== Kresus ====== ===== What is it ? ===== > Kresus is a free & libre personal management software which runs on your server. In a few words, that's how we can resume the purpose of this application. Fore more details, please visit https://kresus.org/en/ You can find there all features of the app and a few tutorials. So you could ask why I am doing this web page then ? Well, because: - my use case does not really match the app design. I mean I don't use it for a personal account, I don't get automatic feed from internet but I do use it for a 4-to-8-shared-users account. - I share a few tips and give my feedback to thank people who worked on this app and still do. ===== How to test locally first ? ===== To start the app locally (on your Debian 12 laptop like me :-) ), you can reuse this tiny script which contains the strict minimum. # Create workspace folder mkdir -p ~/workspace/sandbox/kresus # Go into it cd ~/workspace/sandbox/kresus # Create compose.yaml file cat << EOF > compose.yaml services: db: image: "postgres:16.11" restart: unless-stopped env_file: - path: ./.env required: true volumes: - postgres_data:/var/lib/postgresql/data/ kresus: image: "bnjbvr/kresus:0.23.5" restart: unless-stopped ports: - 9876:9876 depends_on: - db env_file: - path: ./.env required: true volumes: postgres_data: EOF A few comments about choices I've made (quite different from [[https://framagit.org/kresusapp/kresus/-/blob/main/support/docker-compose/docker-compose.yml?ref_type=heads|official compose file]]): - I did not use apprise to notify anything because I don't need it. - I removed the traefik proxy section since I already have a proxy in my future production environment. - I do have only one persistent docker volume for the database because I don't use woob to retrieve any data from internet. - Finally I use to use environment file instead of inline variables. Here is an example below. cat << EOF > .env POSTGRES_USER=kresus POSTGRES_PASSWORD=OeSoh9Dob6phahWa POSTGRES_DB=kresus LOCAL_USER_ID=1000 KRESUS_DB_TYPE=postgres KRESUS_DB_HOST=db KRESUS_DB_PORT=5432 KRESUS_DB_USERNAME=kresus KRESUS_DB_PASSWORD=OeSoh9Dob6phahWa KRESUS_APPRISE_API_BASE_URL=http://apprise:8000 KRESUS_EMAIL_TRANSPORT=smtp KRESUS_EMAIL_FROM=kresus@domain.com KRESUS_EMAIL_HOST=localhost KRESUS_EMAIL_PORT=25 KRESUS_EMAIL_USER=kresus KRESUS_EMAIL_PASSWORD=kresus EOF Then you can start the stack and browser the app. sudo docker compose up -d firefox http://localhost:9876 ===== Feedback ===== - It works and fulfills what I was looking for. Plus it is self-hosted so I love it :-) :-) - I did quick test on smartphones and it seems to work well too. Very appreciated even if it was not on my wish list. - My main expectations for this app were: - Categorize money input/output - View account balance in different time windows. - Make queries with different criteria (dates, tags, categories...) - All those points above are present and working, that's why I put kresus into my production environment. ;-) - Some suggestions of improvement: - Be able to create accounts as we want. By default, the app creates 3 accounts that we can only delete or rename. Weird 8-o - Manage yearly budget instead or in addition to monthly budget. - Make custom views in read only and shareable mode. - Last but not least: when we setup a recurrent debit, then be able to create them for the full year in order to see the expected balance for the year, Thanks to core devs for this great tool!