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é.
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