meta données pour cette page
Gérer ses finances avec Kresus
Cette application rassemble et suit les mouvements des comptes en banques automatiquement. Son principe est le même que si l'on utilisait un navigateur web. Notons tout de même qu'un formulaire d'authentification est la bienvenue grâce à un htpasswd.
Pré-requis et installation
La rubrique suivante caché est théoriquement maintenue pour fonctionner dans un conteneur LXC sous Debian 9 :
La rubrique suivante est théoriquement maintenue pour fonctionner dans un conteneur LXC sous Debian 10 :
# apt install curl git make gcc build-essential python3-setuptools python3-dev python3-lxml python3-html2text python3-yaml python3-pil python3-pip # curl -sL https://deb.nodesource.com/setup_14.x | bash - # apt-get install -y nodejs # adduser kresus --disabled-password --gecos Kresus # su - kresus $ npm install kresus sqlite3 $ npm rebuild $ git clone https://gitlab.com/woob/woob -b stable-3.0 $ cd woob $ ./tools/local_install.sh ~/bin $ cd -
Il restera plus qu'a lancer le programme ainsi :
$ KRESUS_WEBOOB_DIR=~/bin NODE_ENV=production KRESUS_PYTHON_EXEC=python3 KRESUS_DB_TYPE=sqlite KRESUS_DB_SQLITE_PATH=/home/kresus/kresus.sqlite ./node_modules/kresus/bin/kresus.js
Par défaut le log applicatif se trouve ici : /home/kresus/.kresus/kresus.log
Mise à jour
Si l'instance est déjà présente et qu'il y a une nouvelle version disponible :
npm uninstall kresus npm install kresus@0.18.0 npm rebuild
Depuis l'interface, on peut lancer la mise à jour des modules Woob via https://monapp.com/#/onboarding/admin (?)
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_DB_TYPE=sqlite Environment=KRESUS_DB_SQLITE_PATH=/home/kresus/kresus.sqlite Environment=KRESUS_WEBOOB_DIR=/home/kresus/woob ExecStart=/usr/bin/node /home/kresus/node_modules/kresus/bin/kresus.js 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
Nginx
Créons notre vhost sous Nginx dont l'application devra fonctionner en HTTPS:
nano /etc/nginx/sites-enabled/monapp
En y ajoutant ces directives :
server { listen 0.0.0.0:80; # listen 0.0.0.0:443 ssl; server_name monapp.com; # ssl_certificate /etc/letsencrypt/live/monapp.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/mon-app.com.pem; access_log /var/log/nginx/monapp.com.nginx.access; error_log /var/log/nginx/monapp.com.nginx.error; # auth_basic "Restricted to access"; # auth_basic_user_file /var/www/kresus/kresus.htpasswd; 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
Apache
Sinon, il est possible d'utiliser ces directives
<VirtualHost *:80 *:443> ServerName monapp.com ServerSignature Off CustomLog /var/log/apache2/access-kresus.log combined ErrorLog /var/log/apache2/error-kresus.log <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyVia On ProxyPass / http://127.0.0.1:9876/ retry=0 <Location / > Allow from all ProxyPassReverse http://127.0.0.1/9876/ </Location> SSLProxyEngine On </IfModule> </VirtualHost>
Il vous restera à faire de votre côté la mise en place du chiffrement et de la page d'authentifiation.