Installer Kresus.

Avec les mains, mais sans docker

Sommaire

Édit: 29/03/2017: ATTENTION, à cette date ce tutoriel n’est plus fonctionnel.

Prérequis:

Une debian 8 toute fresh.

Vous trouverez dans ce papier: - Ma proposition de todo list pour installer Kresus avec un accès protégé et en local, - Mon avis sur le soft, en rapport à mes besoins de suivi de dépense

Suite à la lecture du papier de Benjamin Bouvier signalant la mise à jour de son application Kresus je me suis mis en tête de l’installer chez moi pour faire un petit test. Utilisateur depuis quelques mois de l’application de bureau Homebank, et cela afin de me contraindre à gérer en adulte libriste mes finances personnelles, je ne pouvais pas résister à la tentation geek de voir de quoi Kresus était capable.

Sur le papier, cette appli promet une connexion directe à ses différents comptes… Ce qui apparait comme du tout propre donc. Mais avant de voir ça, y a un peu de travail.

Edit du 21/02/2017: Je me suis emmêlé les pinceaux, le lien vers le site de Benjamin renvoyait vers le site de Karolak. Pur acte manqué - je pense - parce que je me suis très largement inspiré de son tuto pour écrire ces lignes (à César ce qui est à César).

Installation de Kresus

~$ apt install curl
~$ curl -sL https://deb.nodesource.com/setup_4.x | bash -
~$ apt-get install -y nodejs
~$ apt install git python-weboob-core python-imaging
~$ adduser kresus --disabled-password --gecos Kresus
~$ su - kresus
~$ mkdir ~/app ~/logs
~$ git clone https://framagit.org/bnjbvr/kresus.git ~/app
~$ cd ~/app
~$ npm install
~$ ./scripts/build.sh

Mettre systemd dans la boucle

~$ nano /etc/systemd/system/kresus.service
      [Unit]
      Description=Personal finance manager
      After=network.target

      [Service]
      WorkingDirectory=/home/kresus/app
      Environment=NODE_ENV=production
      ExecStart=/usr/bin/node bin/kresus.js

      Type=simple
      Restart=always

      User=kresus

      StandardOutput=journal
      StandardError=inherit
      SyslogIdentifier=kresus

      [Install]
      WantedBy=multi-user.target
~$ systemctl enable kresus
~$ systemctl start kresus
~$ systemctl status kresus

Si vous voyez du vert, vous pouvez lire la suite.

Installation de Weboob

Cette partie est issue de mes tatônnements pour faire fonctionner Kresus, en effet les tutos disponibles à cette date ne fonctionnent pas ou ne me conviennent pas (docker);
https://www.karolak.fr/blog/2016/03/18/kresus-un-gestionnaire-web-de-finances-personnelles-libre
https://framagit.org/bnjbvr/kresus/

J’ai donc cherché le nécessaire moi même. Si un expert voit une amélioration, ou une erreur: je suis preneur.

~$ apt install python-pip
~$ pip install virtualenv
~$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
~$ mkdir -p ~/.local/venvs
~$ virtualenv ~/.local/venvs/weboob
~$ source ~/.local/venvs/weboob/bin/activate
~$ pip install git+https://git.weboob.org/weboob/devel.git
~$ pip install pdfminer
~$ weboob-config updateweboob-config update
~$ pip install PyExecJS
~$ python -m pip install html2text

Les dépendances PyExecJS et html2text m’ont été nécessaires pour me connecter à ING Direct et Crédit Agricole. Je vous laisse ajuster en fonction des vôtres.

Le vhost

~$ apt install apache2
~$ a2enmod proxy_http
~$ service apache2 restart
~$ htpasswd -c /home/kresus/.htpasswd votre-nom-d-utilisateur
~$ nano /etc/apache2/sites-available/kresus.conf
      <VirtualHost *:80>

        ServerName  192.168.XXX.XXX /ou/ kresus.domain.tld #à-adapter
        ServerAdmin vous@example.net #à-adapter

        ProxyPass        "/" "http://127.0.0.1:9876/"
        ProxyPassReverse "/" "http://127.0.0.1:9876/"

        <Location />
            AuthUserFile  /home/kresus/.htpasswd
            AuthName      "Authentification"
            AuthType      Basic
            Require       valid-user
        </Location>

        </VirtualHost>

C’est vraiment la conf minimale - mais suffisante - pour un accès exclusivement local. Pour aller plus loin vous pouvez ajouter le 443 avec let’s encrypt et ouvrir l’appli au web (voir ici). Mais pour ma part Kresus étant installée sur une vm, si je décide de mettre l’appli en ligne je délèguerai la gestion du ssl à une vm qui me sert de vhost pour toutes les vm que j’héberge déjà.

~$ service apache2 reload

Vous pouvez à présent vous connecter à l’adresse ip d’installation de kresus:

192.168.XXX.XXX

Mon avis

Kresus présente dans une interface unifiée et charmante à l’oeil l’ensemble de ses comptes: gain de temps et confort indéniable. La mise en graphique est propre et sans bavure, on voit facilement où l’on dépense son argent. Les options sont claires et facilement compréhensives: la prise en main est instantanée.

Oui mais: Je trouve les options de suivi de ses dépenses trop légères: En effet il est vraiment dommage que la catégorisation des dépenses ne soient pas automatiques (chaque mois il faudra donc recommencer…).

Pour un usage basique le soft peut faire l’affaire; mais pas pour mes besoins… Du bon et du moins bon, ce sera donc à chacun de se faire son avis.