User Tools

Site Tools


en:kresus:start

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:

  1. 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.
  2. 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 official compose file):

  1. I did not use apprise to notify anything because I don't need it.
  2. I removed the traefik proxy section since I already have a proxy in my future production environment.
  3. I do have only one persistent docker volume for the database because I don't use woob to retrieve any data from internet.
  4. 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

  1. It works and fulfills what I was looking for. Plus it is self-hosted so I love it :-) :-)
  2. I did quick test on smartphones and it seems to work well too. Very appreciated even if it was not on my wish list.
  3. My main expectations for this app were:
    1. Categorize money input/output
    2. View account balance in different time windows.
    3. Make queries with different criteria (dates, tags, categories…)
    4. All those points above are present and working, that's why I put kresus into my production environment. ;-)
  4. Some suggestions of improvement:
    1. 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
    2. Manage yearly budget instead or in addition to monthly budget.
    3. Make custom views in read only and shareable mode.
    4. 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!

en/kresus/start.txt · Last modified: by lonclegr