{"id":1652,"date":"2025-01-17T12:22:09","date_gmt":"2025-01-17T11:22:09","guid":{"rendered":"https:\/\/easybi.lu\/?p=1652"},"modified":"2025-01-17T12:22:10","modified_gmt":"2025-01-17T11:22:10","slug":"dolibarr-crm","status":"publish","type":"post","link":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/","title":{"rendered":"Dolibarr CRM"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-medium-font-size\">Introduction<\/h2>\n\n\n\n<p>It had been a long time I wanted to post about the Dolibarr CRM, especially since it has been running non-stop for almost 5 years on my production server and updating it from version 16 to version 20 was one of my New Year&rsquo;s resolutions for 2025 \ud83d\ude09<\/p>\n\n\n\n<p>When I became a freelancer, I needed a quick and easy invoicing tool, so I choose this CRM which is for me the best open source management tool that can be found on the internet. Its handling is really easy and its update is disconcerting too.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">What Dolibarr can do&#8230; and more<\/h2>\n\n\n\n<p>Management of customers, prospects, suppliers, services, products and their stocks, invoices, orders as well as all accounting in single or double-entry mode with basic reports provided such as turnover, sales statistics and profitability. You also have good surprise like project managment and <a href=\"https:\/\/www.dolibarr.org\/presentation-timesheets.php\">timesheet<\/a> or directly<a href=\"https:\/\/wiki.dolibarr.org\/index.php?title=Setup_EMails\"> sending by email<\/a> invoices and all your commercial documents.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">A bit of technique <\/h2>\n\n\n\n<p>This CRM\/ERP written in PHP has an intuitive graphical interface compatible with all types of screens such as mobile screens, the great strength of the tool is that you can activate and deactivate a module transparently, you activate it, configure it and you are good to go. <\/p>\n\n\n\n<p>Updating a CRM matters, it can be a <strong>veeeeery <\/strong>painful task, that&rsquo;s not the case with Dolibarr, the migration is incremental using automatic and out-of-the-box scripts that allow you to jump from one version to another till the target version (see demo below)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">To go further <\/h2>\n\n\n\n<p>Be aware that there are paid plugins from third-party publishers that can be found on the <a href=\"https:\/\/www.dolistore.com\/\">dolistore<\/a>, you can extend the functionalities by developing them yourself, Dolibarr has also an API for all kinds of integration.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">From scratch live demo<\/h2>\n\n\n\n<p>Launch this command to get the repository<\/p>\n\n\n\n<p><code>$ git clone <a href=\"https:\/\/github.com\/jsminet\/docker-dolibarr.git\">https:\/\/github.com\/jsminet\/docker-dolibarr.git<\/a><\/code><\/p>\n\n\n\n<p>There are two compose files in this repository <\/p>\n\n\n\n<p><strong>compose.yml <\/strong>which allows you to generate a yaml swarm file compatible with the <em>docker stack deploy<\/em> command (see <a href=\"https:\/\/github.com\/jsminet\/docker-dolibarr?tab=readme-ov-file#compose-file-for-swarm\">sed command<\/a>), it requires the activation of swarm in order to use docker secret to encrypt the database passwords, it also allows thanks to Traefik to generate and automatically renew a let&rsquo;s encrypt certificate using ACME protocol.<\/p>\n\n\n\n<p><strong>compose-test.yml<\/strong> allows us to launch a test environment with the desired version of dolibarr, version 20.0.1 in the example.<\/p>\n\n\n\n<p>Now use the command<\/p>\n\n\n\n<p> <code>$ docker compose -f .\\compose-test.yml up<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"218\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/01-dolibarr-containers-list.png\" alt=\"\" class=\"wp-image-1658\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/01-dolibarr-containers-list.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/01-dolibarr-containers-list-300x87.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Once all containers are up and running, you can navigate to <a href=\"http:\/\/dolibarr.localtest.me\">dolibarr.localtest.me<\/a>, the proxy Traefik will redirect this request to the dolibarr container frontend based on the DNS entry.<\/p>\n\n\n\n<p>Use login: <strong>admin <\/strong>and password: <strong>admin<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"377\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/02-dolibarr-main-login.png\" alt=\"\" class=\"wp-image-1660\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/02-dolibarr-main-login.png 605w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/02-dolibarr-main-login-300x187.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Complete your company informations and select\/activate required modules<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"291\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-first-setup.png\" alt=\"\" class=\"wp-image-1661\" style=\"width:840px;height:auto\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-first-setup.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-first-setup-300x115.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Click on <strong>Society\/organization<\/strong> then enter your informations and upload a logo<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"749\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-setup-company.png\" alt=\"\" class=\"wp-image-1662\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-setup-company.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-setup-company-300x297.png 300w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/03-dolibarr-setup-company-150x150.png 150w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Choosing the country will automatically select the accounting plan if you use the module as well as the VAT rates in the country in question.<br>EDIT: You must add the VAT rate which has gone from 16% to the original rate of 17% in Luxembourg, in 2023 the only country that temporary decrease VAT to help purchasing power due to inflation<\/p>\n\n\n\n<p>Go to the menu <strong>Configuration <\/strong>-> <strong>Dictionnaire <\/strong>-> <strong>Taux de TVA ou de Taxes de Ventes<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"178\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/05-dolibarr-setup-vat-1.png\" alt=\"\" class=\"wp-image-1664\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/05-dolibarr-setup-vat-1.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/05-dolibarr-setup-vat-1-300x71.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"56\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/05-dolibarr-setup-vat-2.png\" alt=\"\" class=\"wp-image-1665\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/05-dolibarr-setup-vat-2.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/05-dolibarr-setup-vat-2-300x22.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Activate these modules to create a customer invoice<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50e9a70&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"221\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1669\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-1-1.png\" alt=\"\" class=\"wp-image-1669\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-1-1.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-1-1-300x88.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ea071&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"220\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1667\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-2.png\" alt=\"\" class=\"wp-image-1667\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-2.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-2-300x87.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50eb5ad&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"161\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1668\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-3.png\" alt=\"\" class=\"wp-image-1668\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-3.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/06-dolibarr-activate-module-3-300x64.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Create yout first customer, define the customer type then click on <strong>Create customer<\/strong> button.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ebb4b&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"539\" height=\"358\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1672\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-1.png\" alt=\"\" class=\"wp-image-1672\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-1.png 539w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-1-300x199.png 300w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ebf88&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"188\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1674\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-2.png\" alt=\"\" class=\"wp-image-1674\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-2.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-2-300x75.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ec3d7&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"296\" height=\"80\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1673\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/07-dolibarr-create-customer-3.png\" alt=\"\" class=\"wp-image-1673\"\/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Create a service to sell, you can exclude it from buying.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ec8fe&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"278\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1676\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/08-dolibarr-create-service-1.png\" alt=\"\" class=\"wp-image-1676\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/08-dolibarr-create-service-1.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/08-dolibarr-create-service-1-300x110.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ecde3&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"546\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1677\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/08-dolibarr-create-service-2.png\" alt=\"\" class=\"wp-image-1677\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/08-dolibarr-create-service-2.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/08-dolibarr-create-service-2-300x217.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>You are now ready to invoice. Juste create a draft invoice by selecting the invoice date, terms and conditions. Once the draft is create, add a invoice line with the service we created prevously and define a quantity. You can now validate the invoice to finalize it  take it into consideration in accounting point of view.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50ed3df&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"308\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1681\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-1.png\" alt=\"\" class=\"wp-image-1681\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-1.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-1-300x122.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50eda0f&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"344\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1680\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-2.png\" alt=\"\" class=\"wp-image-1680\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-2.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-2-300x137.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a0bff50edf7d&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"346\" height=\"73\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" data-id=\"1679\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-3.png\" alt=\"\" class=\"wp-image-1679\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-3.png 346w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-3-300x63.png 300w\" sizes=\"auto, (max-width: 346px) 100vw, 346px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Agrandir l\u2018image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"111\" data-id=\"1682\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-4.png\" alt=\"\" class=\"wp-image-1682\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-4.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-4-300x44.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"655\" height=\"130\" data-id=\"1684\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-5.png\" alt=\"\" class=\"wp-image-1684\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-5.png 655w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-5-300x60.png 300w\" sizes=\"auto, (max-width: 655px) 100vw, 655px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"92\" data-id=\"1683\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-6.png\" alt=\"\" class=\"wp-image-1683\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-6.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/09-dolibarr-create-invoice-6-300x37.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>Let&rsquo;s see the result<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"694\" height=\"802\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/10-dolibarr-final-invoice.png\" alt=\"\" class=\"wp-image-1692\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/10-dolibarr-final-invoice.png 694w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/10-dolibarr-final-invoice-260x300.png 260w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><\/figure>\n\n\n\n<p>Clean everything<\/p>\n\n\n\n<p><code><code>$ docker compose -f .\\compose-test.yml down -v<\/code><\/code><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-medium-font-size\">Upgrading Dolibarr demo<\/h2>\n\n\n\n<p>In this part, we&rsquo;ll see how to put a MariaDB backup file and automatically inject it to the database throught the <strong>\/docker-entrypoint-initdb.d<\/strong> directory<\/p>\n\n\n\n<p>Put the compressed sql.gz backup into <strong>app\/mariadb\/dump\/in<\/strong> directory<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"304\" height=\"227\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-dump-1.png\" alt=\"\" class=\"wp-image-1696\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-dump-1.png 304w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-dump-1-300x224.png 300w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>This dump is generate automatically by the <strong>ubuntu-cron<\/strong> container<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"210\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab.png\" alt=\"\" class=\"wp-image-1699\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab.png 574w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab-300x110.png 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Change the crontab if you need to, by default the save is processed <strong>at midnight<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"895\" height=\"437\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab-2.png\" alt=\"\" class=\"wp-image-1705\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab-2.png 895w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab-2-300x146.png 300w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-crontab-2-768x375.png 768w\" sizes=\"auto, (max-width: 895px) 100vw, 895px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>You can get the dump in this volume named <strong>dolibarr-dump<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"756\" height=\"281\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-volume.png\" alt=\"\" class=\"wp-image-1698\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-volume.png 756w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-volume-300x112.png 300w\" sizes=\"auto, (max-width: 756px) 100vw, 756px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Change the <strong>DOLI_INSTALL_AUTO<\/strong> environment variable to zero in order to disable the initial load of fresh dolibarr metadata.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"565\" height=\"238\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-env-variable.png\" alt=\"\" class=\"wp-image-1697\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-env-variable.png 565w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/11-dolibarr-update-env-variable-300x126.png 300w\" sizes=\"auto, (max-width: 565px) 100vw, 565px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>The dump will automatically be injected when the MariaDB database starts, for this example I&rsquo;ll use a version 16 dump. Once you reach the interface page, a new window detects and displays the database version as well as all the prerequisites necessary for a new installation, which are obviously correct since it is the official version of the docker image \ud83d\ude09<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/12-dolibarr-update-wizard-1024x454.png\" alt=\"\" class=\"wp-image-1701\" srcset=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/12-dolibarr-update-wizard-1024x454.png 1024w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/12-dolibarr-update-wizard-300x133.png 300w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/12-dolibarr-update-wizard-768x341.png 768w, https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/12-dolibarr-update-wizard.png 1305w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You just have to click on <strong>Start <\/strong>button one by one, to switch from one version (v16) to another till the target version (v20)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>We&rsquo;ll see how it&rsquo;s easy to drive a fresh or an upgraded installation of Dolibarr, if you plan to use it on a secured remote server and need advice using docker secret and let&rsquo;s encrypt certificate for https, feel free to <a href=\"contact@easybi.lu\">contact me<\/a> <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction It had been a long time I wanted to post about the Dolibarr CRM, especially since it has been running non-stop for almost 5 years on my production server and updating it from version 16 to version 20 was one of my New Year&rsquo;s resolutions for 2025 \ud83d\ude09 When&#8230;<\/p>\n","protected":false},"author":3,"featured_media":1703,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44,45],"tags":[46,27,47,36],"class_list":["post-1652","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-crm","category-dolibarr","tag-crm","tag-docker","tag-dolibarr","tag-tips"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dolibarr CRM - EasyBI<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dolibarr CRM - EasyBI\" \/>\n<meta property=\"og:description\" content=\"Introduction It had been a long time I wanted to post about the Dolibarr CRM, especially since it has been running non-stop for almost 5 years on my production server and updating it from version 16 to version 20 was one of my New Year&rsquo;s resolutions for 2025 \ud83d\ude09 When...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\" \/>\n<meta property=\"og:site_name\" content=\"EasyBI\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-17T11:22:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-17T11:22:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"578\" \/>\n\t<meta property=\"og:image:height\" content=\"160\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"JS Minet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@easybi_org\" \/>\n<meta name=\"twitter:site\" content=\"@easybi_org\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"JS Minet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\"},\"author\":{\"name\":\"JS Minet\",\"@id\":\"https:\/\/easybi.lu\/#\/schema\/person\/3c1348f644dc92c6d1f9fde393c091f2\"},\"headline\":\"Dolibarr CRM\",\"datePublished\":\"2025-01-17T11:22:09+00:00\",\"dateModified\":\"2025-01-17T11:22:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\"},\"wordCount\":840,\"publisher\":{\"@id\":\"https:\/\/easybi.lu\/#organization\"},\"image\":{\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png\",\"keywords\":[\"CRM\",\"Docker\",\"Dolibarr\",\"Tips\"],\"articleSection\":[\"CRM\",\"Dolibarr\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\",\"url\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\",\"name\":\"Dolibarr CRM - EasyBI\",\"isPartOf\":{\"@id\":\"https:\/\/easybi.lu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png\",\"datePublished\":\"2025-01-17T11:22:09+00:00\",\"dateModified\":\"2025-01-17T11:22:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage\",\"url\":\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png\",\"contentUrl\":\"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png\",\"width\":578,\"height\":160},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/easybi.lu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dolibarr CRM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/easybi.lu\/#website\",\"url\":\"https:\/\/easybi.lu\/\",\"name\":\"EasyBI\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/easybi.lu\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/easybi.lu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/easybi.lu\/#organization\",\"name\":\"EasyBI\",\"url\":\"https:\/\/easybi.lu\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/easybi.lu\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/easybi.lu\/wp-content\/uploads\/2019\/12\/Couleur-avec-baseline-75px.png\",\"contentUrl\":\"https:\/\/easybi.lu\/wp-content\/uploads\/2019\/12\/Couleur-avec-baseline-75px.png\",\"width\":67,\"height\":75,\"caption\":\"EasyBI\"},\"image\":{\"@id\":\"https:\/\/easybi.lu\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/easybi_org\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/easybi.lu\/#\/schema\/person\/3c1348f644dc92c6d1f9fde393c091f2\",\"name\":\"JS Minet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/easybi.lu\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/04444764cc721204aee8e12a7d3ccc2d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/04444764cc721204aee8e12a7d3ccc2d?s=96&d=mm&r=g\",\"caption\":\"JS Minet\"},\"url\":\"https:\/\/easybi.lu\/index.php\/author\/jsm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dolibarr CRM - EasyBI","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/","og_locale":"fr_FR","og_type":"article","og_title":"Dolibarr CRM - EasyBI","og_description":"Introduction It had been a long time I wanted to post about the Dolibarr CRM, especially since it has been running non-stop for almost 5 years on my production server and updating it from version 16 to version 20 was one of my New Year&rsquo;s resolutions for 2025 \ud83d\ude09 When...","og_url":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/","og_site_name":"EasyBI","article_published_time":"2025-01-17T11:22:09+00:00","article_modified_time":"2025-01-17T11:22:10+00:00","og_image":[{"width":578,"height":160,"url":"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png","type":"image\/png"}],"author":"JS Minet","twitter_card":"summary_large_image","twitter_creator":"@easybi_org","twitter_site":"@easybi_org","twitter_misc":{"\u00c9crit par":"JS Minet","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#article","isPartOf":{"@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/"},"author":{"name":"JS Minet","@id":"https:\/\/easybi.lu\/#\/schema\/person\/3c1348f644dc92c6d1f9fde393c091f2"},"headline":"Dolibarr CRM","datePublished":"2025-01-17T11:22:09+00:00","dateModified":"2025-01-17T11:22:10+00:00","mainEntityOfPage":{"@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/"},"wordCount":840,"publisher":{"@id":"https:\/\/easybi.lu\/#organization"},"image":{"@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage"},"thumbnailUrl":"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png","keywords":["CRM","Docker","Dolibarr","Tips"],"articleSection":["CRM","Dolibarr"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/","url":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/","name":"Dolibarr CRM - EasyBI","isPartOf":{"@id":"https:\/\/easybi.lu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage"},"image":{"@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage"},"thumbnailUrl":"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png","datePublished":"2025-01-17T11:22:09+00:00","dateModified":"2025-01-17T11:22:10+00:00","breadcrumb":{"@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#primaryimage","url":"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png","contentUrl":"https:\/\/easybi.lu\/wp-content\/uploads\/2025\/01\/Dolibarr_logo.png","width":578,"height":160},{"@type":"BreadcrumbList","@id":"https:\/\/easybi.lu\/index.php\/2025\/01\/17\/dolibarr-crm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/easybi.lu\/"},{"@type":"ListItem","position":2,"name":"Dolibarr CRM"}]},{"@type":"WebSite","@id":"https:\/\/easybi.lu\/#website","url":"https:\/\/easybi.lu\/","name":"EasyBI","description":"","publisher":{"@id":"https:\/\/easybi.lu\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/easybi.lu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/easybi.lu\/#organization","name":"EasyBI","url":"https:\/\/easybi.lu\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/easybi.lu\/#\/schema\/logo\/image\/","url":"https:\/\/easybi.lu\/wp-content\/uploads\/2019\/12\/Couleur-avec-baseline-75px.png","contentUrl":"https:\/\/easybi.lu\/wp-content\/uploads\/2019\/12\/Couleur-avec-baseline-75px.png","width":67,"height":75,"caption":"EasyBI"},"image":{"@id":"https:\/\/easybi.lu\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/easybi_org"]},{"@type":"Person","@id":"https:\/\/easybi.lu\/#\/schema\/person\/3c1348f644dc92c6d1f9fde393c091f2","name":"JS Minet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/easybi.lu\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/04444764cc721204aee8e12a7d3ccc2d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/04444764cc721204aee8e12a7d3ccc2d?s=96&d=mm&r=g","caption":"JS Minet"},"url":"https:\/\/easybi.lu\/index.php\/author\/jsm\/"}]}},"_links":{"self":[{"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/posts\/1652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/comments?post=1652"}],"version-history":[{"count":25,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/posts\/1652\/revisions"}],"predecessor-version":[{"id":1712,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/posts\/1652\/revisions\/1712"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/media\/1703"}],"wp:attachment":[{"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/media?parent=1652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/categories?post=1652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/easybi.lu\/index.php\/wp-json\/wp\/v2\/tags?post=1652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}