Kresus
Attention, copier-coller : https://kresus.org/fr/ est un gestionnaire de finances personnelles gratuit et libre qui tourne sur votre serveur. Il récupère automatiquement et quotidiennement toutes vos nouvelles transactions bancaires et vous permet de les catégoriser, étudier via des graphiques, et établir un budget. Pour se connecter à votre compte et récupérer les opérations bancaires, il utilise le logiciel Woob.
Le gros avantage de Kresus comparé au site de votre banque, c'est qu'il permet de conserver tout l'historique de votre compte (là où les sites de banques ne gardent que 2 ou 3 mois), permet de créer des catégories de dépenses (courses, essences, travaux, EDF, crédit, etc), de les attribuer automatiquement et de centraliser tous vos comptes en un seul site si vous avez des comptes dans plusieurs banques.
Le gros inconvénient c'est que Kresus a besoin de l'identifiant et du mot passe d'accès au site de la banque pour pouvoir fonctionner. Et les deux sont stockés dans la base de données avec le cookie de double authentification de session. Si par malheur une personne malveillante arrive à accéder à la base PostgreSQL de Kresus, il a tout ce qu'il lui faut pour accéder à votre compte en banque. Vous êtes prévenus.
Installation des dépendances
Vous allez avoir besoin de plusieurs logiciels pour l'installation :
sudo aptitude install git npm postgresql python3 python3-pdfminer
Installation de Kresus
On va créer un utilisateur qui exécutera Kresus :
sudo useradd -m kresus
Connectez vous avec cet utilisateur :
sudo -i -u kresus
Lancez l'installation :
npm install --prefix /home/kresus/ kresus
Installation de Woob
Woob est plus simple à installer. Toujours avec l'utilisateur kresus, lancez la commande suivante :
pip install --user woob
Création de la base de données
Kresus a besoin d'une base de données Postgresql pour fonctionner.
Connectez-vous avec l'utilisateur postgres :
sudo -i -u postgres
Lancez PostgreSQL :
psql
Créez l'utilisateur :
CREATE ROLE kresus LOGIN PASSWORD 'mot_de_passe';
Créez la base de données :
CREATE DATABASE kresus OWNER kresus;
Quittez PostgreSQL :
exit
Déconnectez-vous de l'utilisateur postgres :
exit
Configuration de Kresus
Dans le dossier d'installation, vous trouverez un fichier config.ini. Vous devez modifier, si besoin :
- la ligne “datadir” pour indiquer l'emplacement du dossier data (/home/kresus/database)
- la partie [email] si vous souhaitez activer les alarmes par mail
- la partie [db] pour indiquer les informations de connexion à la base (adresse, nom utilisateur, mot de passe, etc)
Configuration d’Apache2
Créez le fichier
/etc/apache2/sites-available/kresus.domaine.fr.conf
Remplacez domaine.fr par votre nom de domaine
Collez les lignes suivantes dedans (en remplaçant de nouveau domaine.fr par votre nom de domaine)
<VirtualHost *:80> ServerName kresus.domaine.fr Redirect / https://kresus.domaine.fr/ </VirtualHost> <VirtualHost *:443> ServerName kresus.domaine.fr LogLevel warn CustomLog ${APACHE_LOG_DIR}/kresus.access.log combined ErrorLog ${APACHE_LOG_DIR}/kresus.error.log SSLEngine on SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem ProxyPass / http://localhost:9876/ <Location /> ProxyPassReverse http://localhost:9876/ AuthType Digest AuthName "Kresus" AuthDigestDomain /home/kresus/kresus/ https://kresus.domaine.fr AuthDigestProvider file AuthUserFile /etc/apache2/passwords Require valid-user SetEnv R_ENV "/home/kresus/kresus" </Location> </VirtualHost>
Créez le mot de passe d'accès à Kresus (remplacez nomutilisateur) :
sudo htdigest /etc/apache2/passwords Kresus nomutilisateur
Activez le fichier de conf Apache
a2ensite kresus.nomdedomaine.fr.conf
Redémarrez Apache
systemctl restart apache2
Lancement de Kresus via Systemd
Créez le fichier
/etc/systemd/system/kresus.service
Copiez les lignes suivantes dedans
[Unit] Description=Personal finance manager After=network.target postgresql.service [Service] WorkingDirectory=/home/kresus/ Environment=NODE_ENV=production ExecStartPre=/bin/sleep 60 ExecStart=/home/kresus/node_modules/kresus/bin/kresus.js --config /home/kresus/config.ini Type=simple Restart=always User=kresus StandardOutput=journal StandardError=inherit SyslogIdentifier=kresus [Install] WantedBy=multi-user.target
Activez le service au démarrage
sudo systemctl enable kresus.service
Démarrez le service
sudo systemctl start kresus.service
Vous pouvez maintenant accéder à Kresus à l'adresse kresus.domaine.fr
Mise à jour
Lorsqu'une nouvelle version sort, pour mettre à jour Kresus, il vous suffit de relancer les étapes d'installation. Connectez vous avec l'utilisateur kresus :
sudo -i -u kresus
Lancez l'installation :
npm install --prefix /home/kresus/ kresus
S'il ne vous installe pas la dernière version disponible (voir ici pour les versions), lancez la commande en ajoutant le numéro de la dernière version. Exemple avec la version 0.19.0 :
npm install --prefix /home/kresus/ kresus@0.19.0