[tuto] Installer kresus - Carmagnole

Carmagnole

Soyez résolus de ne servir plus et vous voilà libres

[tuto] Installer kresus

Rédigé par propositionjoe 2 commentaires
 
 

Edit 29/03/2017: ÀTTENTION, à cette date ce tutoriel n'est plus fonctionnel.

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


Prérequis: Une debian 8 toute fresh.

 
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
 
Installation du prérequis
~$ 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
 
Installation du soft
~$ 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

Ajout de l'application dans systemd (lancement au démarrage)
~$ su
~$ 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);
 
J'ai donc browsé 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 votres.


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 #à-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.
 

 

2 commentaires

#1  - bnjbvr a dit :

Merci d'avoir écrit ce tutoriel et pour ton retour, c'est super chouette !

Pour information, la partie d'installation du logiciel (installation du soft) peut être simplifiée, en faisant simplement, après avoir créé l'utilisateur :

npm -g install kresus

Il doit même être possible de donner un préfixe à npm pour qu'il n'installe pas dans /usr/local/bin par défaut.

Sinon, le lien au tout début de ton article ("suite à la lecture du papier") est incorrect et pointe vers le site de Karolak ;-)

Merci pour tes retours. La catégorisation automatique est prévue pour la suite, mais c'est un gros chantier ; à la fin parce que c'est beaucoup de code à rajouter, et aussi parce que le fait que l'application soit auto-hébergé implique qu'il n'est pas trivial de créer des règles automatisées, partagées entre plusieurs utilisateurs (ou tirées d'analyse de grosses quantités de données). Il y a un ticket dans notre bugtracker pour ça, c'est prévu pour la mythique V1 : https://framagit.org/bnjbvr/kresus/issues/41

J'espère qu'on arrivera à te faire changer d'avis dans le futur :-)
Bonne continuation !

#2  - propositionjoe a dit :

C'est plutôt à moi de te dire merci pour le code, pour le partage, et pour ta visite.
Je suivrai l'avancée de la V1 avec attention!
À bientôt

Les commentaires sont fermés.

Fil RSS des commentaires de cet article