meta données pour cette page
  •  

Ceci est une ancienne révision du document !


Gérer ses finances avec Kresus


Cette application a pour but de rassembler et suivre les mouvements de ses comptes en banques automatiquement. Le point fort de cette application est d'éviter de se connecter n'importe comment aux interfaces que proposent les banques et permet également d'éviter de s'y authentifier depuis un réseau non sécurisé.

Ce tutoriel est théoriquement maintenue pour fonctionner dans un conteneur LXC sous Debian 9

Pré-requis et installation

Commençons avec l'utilisateur root par installer NodeJS et les dépendances python :

# apt install curl git make gcc build-essential python-setuptools python-dev python-lxml python-html2text python-yaml python-pil
# curl -sL https://deb.nodesource.com/setup_12.x | bash -
# apt-get install -y nodejs
# adduser kresus --disabled-password --gecos Kresus
# su - kresus
$ npm install kresus
$ git clone https://git.weboob.org/weboob/weboob.git -b stable
$ cd weboob
$ ./tools/local_install.sh ~/bin
$ cd -

La configuration par défaut semble satisfaisante il restera plus qu'a lancer le programme ainsi :

$ KRESUS_WEBOOB_DIR=~/bin NODE_ENV=production ./node_modules/kresus/bin/kresus.js

Par défaut le log applicatif se trouve ici : /home/kresus/.kresus/kresus.log

Création d'une unité systemd

Pour que cette application soit lancé dès le démarrage du système, on peut alors créer une unité comme ci-dessous :

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

[Service]
Type=simple
Restart=always
WorkingDirectory=/home/kresus
Environment=NODE_ENV=production
Environment=KRESUS_PYTHON_EXEC=python3
Environment=KRESUS_WEBOOB_DIR=/home/kresus/weboob
Environment=KRESUS_WEBOOB_DIR=/home/kresus/app
ExecStart=/usr/bin/node /home/kresus/app/bin/kresus.js --config /home/kresus/app/config.ini
User=kresus

StandardOutput=journal
StandardError=inherit
SyslogIdentifier=kresus

[Install]
WantedBy=multi-user.target

On prend en compte cette nouvelle unité et on vérifie que ça fonctionne bien :

systemctl daemon-reload
systemctl start kresus.service

Création d'un vhost

Créons notre vhost sous Nginx dont l'application web DOIT fonctionner que via le protocole https :

nano /etc/nginx/sites-enabled/monapp

En y ajoutant ces directives :

server {
	listen 0.0.0.0:443 ssl;
	server_name monapp.com;

        location / {
              proxy_pass http://127.0.0.1:9876;
              proxy_set_header Host $host;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
	      proxy_set_header X-Forwarded-Host  $http_host;
              proxy_set_header X-Real-IP $remote_addr;
	      proxy_max_temp_file_size           0;
        }

}

On vérifie et on applique cette configuration :

nginx -t
systemctl reload nginx.service