Installer InvoiceShelf avec Docker
InvoiceShelf

Installer InvoiceShelf avec Docker

Table des matières

GitHub - InvoiceShelf/InvoiceShelf: Open Source Invoicing Solution for Individuals & Businesses
Open Source Invoicing Solution for Individuals & Businesses - InvoiceShelf/InvoiceShelf

Merci pour l'idée, à une personne, qui, probablement, se reconnaîtra si elle passe par ici. Oui, la même personne que pour Invoice Ninja. 😀

Aujourd'hui nous allons parler de InvoiceShelf! InvoiceShelf est un fork de Crater, qui a été laissé à l'abandon, à l'instar de Invoice Ninja, InvoiceShelf va vous permettre de suivre dépenses, paiements et surtout, le meilleur moment, créer des factures. InvoiceShelf inclus également la possibilité de faire des devis.

💡
Il est vivement conseillé de relier l'application à un domaine/sous-domaine.
N'étant pas du tout familier avec ce genre d'application, je vais vous expliquer les choses importantes côté "technique" et un peu de configuration élémentaire dans l'application en elle-même.

⚡ Caractéristiques

  • Devis
  • Factures
  • Factures récurrentes
  • Paiements
  • Dépenses
  • Personnalisation
  • ...
Introduction | InvoiceShelf - Open Source Documentation
InvoiceShelf is an open-source app made in Laravel, VueJS & React Native that helps you track expenses, payments & create professional invoices & estimates

💾 L'installation

On va commencer par cloner le dépôt, faites cette commande à la racine du dossier où vous avez installé vos applications:

git clone https://github.com/InvoiceShelf/docker

Cela va créer un dossier nommé docker, on va le renommer histoire que ça soit propre et qu'on puisse s'y retrouver:

mv docker/ invoiceshelf

On va créer une copie du d

sudo cp docker-compose.mysql.yml docker-compose.yml

Veillez à changer:

  • - APP_URL=http://localhost:90 => Remplacer par domaine complet ou laissez comme ça. Vous pouvez proxy l'URL plus tard de toute façon. Vous pouvez remplacer localhost par l'IP de votre serveur.
  • - DB_PASSWORD_FILE= Choisissez un mot de passe, évitez les caractères spéciaux.
  • - SESSION_DOMAIN=localhost => Indiquez le domaine, sans HTTPS, juste, par exemple: invoiceshelf.mondomaine.com.
  • - SANCTUM_STATEFUL_DOMAINS=localhost:90 => Indiquez le domaine, sans HTTPS, juste, par exemple: invoiceshelf.mondomaine.com.
  • - MYSQL_ROOT_PASSWORD=somerootpass => Choisissez un mot de passe en évitant les caractères spéciaux.
  • - MYSQL_DATABASE=invoiceshelf => Choisissez un nom de base de données en évitant les caractères spéciaux. Notez cette information dont vous aurez besoin plus tard dans le tutoriel.
  • - MYSQL_USER=invoiceshelf => Choisissez un nom d'utilisateur en évitant les caractères spéciaux. Notez cette information dont vous aurez besoin plus tard dans le tutoriel.
  • - MYSQL_PASSWORD=somepass => Choisissez un mot de passe en évitant les caractères spéciaux. Notez cette information dont vous aurez besoin plus tard dans le tutoriel.

On peut déployer l'application:

docker compose up -d

Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 90 dans mon cas:

http://ip:90/

ou votre domaine:

https://invoiceshelf.mondomaine.com

💾 Terminer l'installation

Lorsque vous lancez InvoiceShelf pour la première fois, vous devrez répondre à quelques questions. En avant! 😃

Cliquez sur Check Requirements.

Tout devrait-être au vert en principe, cliquez sur Continue.

Si tout est au vert, ce qui devrait-être le cas, cliquez Continue.

Veillez à compléter:

  • App URL => Soit vous mettez directement votre domaine ou vous laissez comme tel si vous voulez proxy plus tard avec Cosmos, NPM, ou tout autre application
  • Database Username => Mettez le même nom d'utilisateur que vous avez choisi plus haut pour MYSQL_USER
  • Database Host => invoiceshelf_db
  • Database Connection => mysql
  • Database Name => Mettez le même nom d'utilisateur que vous avez choisi plus haut pour MYSQL_DATABASE
  • Database Password => Mettez le même nom d'utilisateur que vous avez choisi plus haut pour MYSQL_PASSWORD

Cliquez sur Save & Continue.

Cliquez sur Verify Now.

Notez simplement une adresse e-mail dans From Mail Name et From Mail Address, on y reviendra plus tard, en détail, dans le tutoriel. Cliquez sur Save.

Création du compte principal de l'administrateur.

Veillez à remplir:

  • Name => Choisissez un nom, prénom ou encore un pseudo.
  • Email => Indiquez votre adresse e-mail.
  • Password => Choisissez un mot de passe fort.
  • Confirm Password => Confirmez votre mot de passe fort.

Cliquez sur Save & Continue.

Concerne les informations de votre société.

  • Company Logo => Ajoutez le logo de votre enrtreprise.
  • Company Name => Ajoutez le nom de votre société.
  • Sate => Si vous habitez un état...
  • Address => Indiquez l'adresse de votre société.
  • Tax Identification Number => Ajoutez votre numéro d'identification fiscal.

Cliquez sur Save & Continue.

Concerne les préférences de votre société.

  • Currency => Indiquez la devise souhaitée.
  • Date Format => Choisissez le format de la date.
  • Financial Year => Choisissez la période d'activité de votre société.
  • Default Language => Choisissez la langue souhaitée, oui il y a le français!
  • Time Zone => Indiquez la Time Zone de votre pays.

Cliquez sur Save & Continue.

Petite confirmation à faire pour vous indiquer qu'il ne sera plus possible de changer la devise de l'entreprise. Cliquez sur Ok si vous êtes d'accord de confirmez les entrées.

Et vous voilà sur le tableau de bord! Yaouh!


✉️ Configurer le serveur mail

Si vous avez votre propre serveur mail, vous connaissez déjà les informations de celui-ci qu'il faudra indiquer plus bas.

Si vous n'avez pas votre propre serveur mail il est possible d'utiliser ceux de Gmail, Outlook, Infomaniak,.. Je vous invite à lire l'article suivant pour avoir les informations nécessaires:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

Rendez-vous dans le menu de gauche et cliquez sur Paramètres, Envoi d'emails:

Ceci est un exemple de configuration qui fonctionne avec mon serveur mail, bien entendu fiez-vous aux informations de votre serveur mail.

Veillez à remplir:

  • Fournisseur => smtp
  • Adresse du serveur => Indiquez l'adresse du serveur smtp de votre serveur mail.
  • Nom d'utilisateur => Indiquez l'adresse e-mail.
  • Mot de passe => Indiquez le mot de passe de l'adresse e-mail.
  • Port => 587.
  • Chiffrement => tsl.
  • Email de l'expéditeur => Indiquez l'adresse e-mail de l'expéditeur.
  • Nom de l'expéditeur => Indiquez votre nom ou celui qui vous plaira.

Cliquez sur:

Et maintenant testez votre configuration en cliquant sur:

Vous devrez remplir ces informations:

  • Au => Indiquez l'adresse à laquelle vous voulez envoyer le test.
  • Objet => Indiquez un objet.
  • Message => Indiquez un message. Meuh?

Cliquez sur:

Si tout va bien, vous recevrez ceci dans votre boîte mail:

Tout fonctionne!


👥 Ajouter un rôle

Si vous devez donner accès à une ou des autres personnes de votre société, il faudra éventuellement créer un rôle avec moins de privilièges car par défaut il n'y a que le rôle de super administrateur.

Cliquez dans le menu de gauche sur Paramètres, Rôles et enfin sur + Ajouter un rôle:

Ce qui vous mène ici:

Veillez à compléter:

  • Nom => Par exemple un rôle pour la secrétaire.

Cochez les options disponibles pour ce rôle et terminez en cliquant sur Enregistrer.

Ce qui donne:


👤 Ajouter un utilisateur

Si un ou des collaborateurs doivent avoir accès à InvoiceShelf, il faudra créer un utilisateur.

Dans le menu de gauche, cliquez sur Utilisateurs et sur + Nouvel utilisateur:

Vous devrez remplir une petite fiche:

  • Nom => Nommez l'utilisateur.
  • Email => Indiquez son adresse e-mail.
  • Sociétés => Sélectionnez la société.
  • Sélectionner un rôle pour belginux => Secrétaire dans mon exemple.
  • Mot de passe => Choisissez un mot de passe fort.
  • Téléphone => Indiquez le numéro de téléphone de la personne.

Cliquez sur Enregistrer l'utilisateur pour terminer. Ce qui donne:


zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.