Kresus

Installation via Docker

Attention : à lire avant de lancer une image docker (pré-construite ou non)

Par défaut docker expose le port 9876 à 0.0.0.0, rendant ainsi votre Kresus visible par tous. Si vous êtes derrière un reverse-proxy tel que nginx ou apache, préférez -p 127.0.0.1:9876:9876 pour rendre visible Kresus uniquement à votre reverse-proxy.

Cette documentation utilisera cependant -p 9876:9876 dans tous les exemples ci-dessous, afin de rester générique.

Lancez une image pré-construite

L'image Docker a l'avantage d'inclure toutes les dépendances nécessaires, dont une installation de Woob complète. A chaque redémarrage de l'image, Woob essayera de se mettre à jour ; si vous rencontrez donc un problème de modules, il est recommandé de simplement redémarrer l'image (un simple restart suffit).

L'image pré-construite expose plusieurs volumes de données. Il n'est pas obligatoire de les monter, mais cela vous permet de conserver vos données personnelles entre les redémarrages de l'image Docker.

Note : si vous clonez Woob, il vous est suggéré d'utiliser la branche master (développement) qui devrait être plus à jour que la branche stable.

La variable d'environnement suivante peut être définie :

Voici un exemple de ligne de commande pour lancer Kresus en production dans une image Docker, avec le même utilisateur UNIX que l'actuel :

mkdir -p /opt/kresus/data
mkdir -p /opt/kresus/woob
touch /opt/kresus/config.ini
# Éditez /opt/kresus/config.ini en remplissant la configuration de la base de données
git clone https://gitlab.com/woob/woob.git /opt/kresus/woob

docker run -p 9876:9876 \
    -e LOCAL_USER_ID=`id -u` \
    --restart unless-stopped \
    -v /opt/kresus/data:/home/user/data \
    -v /opt/kresus/woob:/woob \
    -v /opt/kresus/config.ini:/opt/config.ini \
    -v /etc/localtime:/etc/localtime \
    --name kresus \
    -ti -d bnjbvr/kresus

Utilisation de docker-compose

Le répertoire docker-compose comprend tous les éléments pour lancer facilement kresus :

Les fonctionnalités sont :

Prérequis :

Méthodologie

Construire l'image soi-même

Image stable

L'image correspondant à la dernière version stable de Kresus peut être téléchargée via le hub de Docker. Il s'agit de l'image accessible via bnjbvr/kresus.

Il est possible de la reconstruire à la main. Vous aurez besoin de nodejs (de préférence la version LTS ou une version plus récente) et de npm pour reconstruire l'image de zéro.

git clone https://framagit.org/kresusapp/kresus && cd kresus
docker build -t myself/kresus -f support/docker/Dockerfile-stable support/docker/.

Vous pouvez ensuite l'utiliser:

docker run -p 9876:9876 -v /opt/kresus/data:/home/user/data -ti -d myself/kresus

Image Nightly

Il existe aussi une image Nightly, avec les derniers changements, construite chaque nuit à partir du dépôt Git. Attention, cette image est expérimentale et peut contenir de nombreux bugs ou corrompre vos données, car la branche main peut être instable de temps en temps. Cette image récupèrera les dernières sources depuis le dépôt Git en ligne et n'utilisera donc pas de sources locales.

Pour construire une image Nightly compilée pour une utilisation en production (à partir de la version 0.16):

./scripts/docker/nightly.sh

Ou avant la version 0.16:

make docker-nightly

Cette commande construira une image nommée bnjbvr/kresus-nightly.

Pour la lancer ensuite, vous pouvez utiliser la même commande docker run que précédemment, en adaptant le nom de l'image:

docker run -p 9876:9876 \
    -e LOCAL_USER_ID=`id -u` \
    --restart unless-stopped \
    -v /opt/kresus/data:/home/user/data \
    -v /opt/kresus/woob:/woob \
    -v /opt/kresus/config.ini:/opt/config.ini \
    -v /etc/localtime:/etc/localtime \
    --name kresus \
    -ti -d bnjbvr/kresus-nightly