<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Theopequiii</id>
	<title>Dolibarr ERP CRM Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Theopequiii"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php/Special:Contributions/Theopequiii"/>
	<updated>2026-10-29T19:36:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Two-Factor_Authentication_(2FA)&amp;diff=68071</id>
		<title>Module Two-Factor Authentication (2FA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Two-Factor_Authentication_(2FA)&amp;diff=68071"/>
		<updated>2026-10-14T22:09:41Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Version 6.0.4: Google Authenticator fix, verified on Dolibarr 16 to 24&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Double authentification (2FA)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-2FA-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194155&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 6.0.4&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=2899 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/2fa?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One stolen, guessed or reused password is enough to get into your Dolibarr, and with it into your customers, invoices and bank accounts. This module adds a second factor to the login: even with the right password, nobody gets in without the user&#039;s phone, key or fingerprint.&lt;br /&gt;
&lt;br /&gt;
== Three methods, each user picks ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TOTP app&#039;&#039;&#039;: 6-digit code renewed every 30 seconds. Works with Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Aegis, FreeOTP. The QR code is generated on your server, no third-party service.&lt;br /&gt;
* &#039;&#039;&#039;WebAuthn / FIDO2&#039;&#039;&#039;: security keys (YubiKey…) and built-in biometrics (Windows Hello, Touch ID, Face ID). One touch and you&#039;re in.&lt;br /&gt;
* &#039;&#039;&#039;Backup codes&#039;&#039;&#039;: 10 single-use codes, stored as bcrypt hashes, so a lost phone never locks anyone out.&lt;br /&gt;
&lt;br /&gt;
== Several devices per account ==&lt;br /&gt;
&lt;br /&gt;
* A user can register a phone, a security key and a laptop, and name each one.&lt;br /&gt;
* Users add, rename or revoke their own devices from the Security tab of their user card.&lt;br /&gt;
&lt;br /&gt;
== Hardened by design ==&lt;br /&gt;
&lt;br /&gt;
* TOTP secrets encrypted at rest (AES-256-CBC).&lt;br /&gt;
* Lockout after a configurable number of failures (5 by default).&lt;br /&gt;
* Anti-replay: an accepted code cannot be used twice.&lt;br /&gt;
* Audit log of every attempt: date, IP address, method, device, result.&lt;br /&gt;
* CSRF protection on every form and strict HTTP headers on the login pages.&lt;br /&gt;
&lt;br /&gt;
== For the administrator ==&lt;br /&gt;
&lt;br /&gt;
* 2FA optional or &#039;&#039;&#039;mandatory for everyone&#039;&#039;&#039;, with one checkbox.&lt;br /&gt;
* Users are prompted to set up 2FA at their next login.&lt;br /&gt;
* Dashboard: adoption rate, last 24 h activity, blocked IP addresses.&lt;br /&gt;
* Overview of all users, reset of an account&#039;s 2FA, forced re-enrollment.&lt;br /&gt;
* Responsive login pages that stay readable whatever the Dolibarr theme.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable the module. Tables are created automatically.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 17, 18, 19, 20, 21, 22, 23 and 24).&lt;br /&gt;
* PHP 7.4 to 8.4, MySQL / MariaDB, OpenSSL extension.&lt;br /&gt;
* HTTPS required for WebAuthn / FIDO2 (a browser requirement).&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-2FA-verify.png|Verification screen after the password&lt;br /&gt;
File:TheoPequignot-2FA-devices.png|Devices and backup codes on the user card&lt;br /&gt;
File:TheoPequignot-2FA-admin.png|Administration: users, devices, mandatory 2FA&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.0.4&#039;&#039;&#039; (14 October 2026): &#039;&#039;&#039;Google Authenticator rejected the QR code&#039;&#039;&#039; while other apps accepted it. The TOTP key is now 32 characters long (160 bits) instead of 20, a length Google Authenticator refused. Devices already registered keep working. When a code is right but the phone or server clock is off, the page now shows the drift instead of a plain &amp;quot;invalid code&amp;quot;. Bigger QR code and clearer scan instructions.&lt;br /&gt;
* &#039;&#039;&#039;6.0.3&#039;&#039;&#039; (3 October 2026): &#039;&#039;&#039;security fix, update recommended on Dolibarr 16 to 18&#039;&#039;&#039;. On these versions the second factor was not asked: the check relied on a Dolibarr hook that only exists from version 19. It now goes through a hook present in every version and called on every request. On every version, document downloads and exports also require the verification.&lt;br /&gt;
* &#039;&#039;&#039;6.0.2&#039;&#039;&#039; (2 October 2026): administration page fixed, interface translated into French and English.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/2fa?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Double_authentification_(2FA)&amp;diff=68070</id>
		<title>Module Double authentification (2FA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Double_authentification_(2FA)&amp;diff=68070"/>
		<updated>2026-10-14T22:09:39Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Version 6.0.4: Google Authenticator fix, verified on Dolibarr 16 to 24&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Two-Factor_Authentication_(2FA) --&amp;gt;&lt;br /&gt;
[[en:Module_Two-Factor_Authentication_(2FA)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-2FA-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194155&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 6.0.4&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=2899 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/2fa modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un mot de passe volé, deviné ou réutilisé suffit pour entrer dans votre Dolibarr, et avec lui dans vos clients, vos factures et votre banque. Ce module ajoute un second facteur à la connexion : même avec le bon mot de passe, personne n&#039;entre sans le téléphone, la clé ou l&#039;empreinte de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Trois méthodes, au choix de chaque utilisateur ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Application TOTP&#039;&#039;&#039; : code à 6 chiffres renouvelé toutes les 30 secondes. Compatible Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Aegis, FreeOTP. Le QR code est généré sur votre serveur, sans service tiers.&lt;br /&gt;
* &#039;&#039;&#039;WebAuthn / FIDO2&#039;&#039;&#039; : clés de sécurité (YubiKey…) et biométrie intégrée (Windows Hello, Touch ID, Face ID). Une touche et c&#039;est fait.&lt;br /&gt;
* &#039;&#039;&#039;Codes de secours&#039;&#039;&#039; : 10 codes à usage unique, stockés hachés en bcrypt, pour ne jamais rester bloqué après la perte d&#039;un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Plusieurs appareils par compte ==&lt;br /&gt;
&lt;br /&gt;
* Un utilisateur peut enregistrer son téléphone, une clé de sécurité et son ordinateur portable, et les nommer.&lt;br /&gt;
* Il ajoute, renomme ou révoque ses appareils lui-même, depuis l&#039;onglet Sécurité de sa fiche.&lt;br /&gt;
&lt;br /&gt;
== Sécurité renforcée ==&lt;br /&gt;
&lt;br /&gt;
* Secrets TOTP chiffrés en base (AES-256-CBC).&lt;br /&gt;
* Blocage après un nombre d&#039;échecs réglable (5 par défaut).&lt;br /&gt;
* Anti-rejeu : un code accepté ne peut pas resservir.&lt;br /&gt;
* Journal d&#039;audit de chaque tentative : date, adresse IP, méthode, appareil, résultat.&lt;br /&gt;
* Protection CSRF sur tous les formulaires et en-têtes HTTP stricts sur les pages de connexion.&lt;br /&gt;
&lt;br /&gt;
== Pour l&#039;administrateur ==&lt;br /&gt;
&lt;br /&gt;
* 2FA facultative ou &#039;&#039;&#039;obligatoire pour tous&#039;&#039;&#039;, en une case à cocher.&lt;br /&gt;
* Invitation à configurer la 2FA dès la connexion suivante.&lt;br /&gt;
* Tableau de bord : taux d&#039;adoption, activité des dernières 24 h, adresses IP bloquées.&lt;br /&gt;
* Vue de tous les utilisateurs, réinitialisation de la 2FA d&#039;un compte, ré-enrôlement forcé.&lt;br /&gt;
* Pages de connexion responsive, lisibles quel que soit le thème Dolibarr.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez le module. Les tables sont créées automatiquement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 17, 18, 19, 20, 21, 22, 23 et 24).&lt;br /&gt;
* PHP 7.4 à 8.4, MySQL / MariaDB, extension OpenSSL.&lt;br /&gt;
* HTTPS obligatoire pour WebAuthn / FIDO2 (exigence des navigateurs).&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-2FA-verify.png|Écran de vérification après le mot de passe&lt;br /&gt;
File:TheoPequignot-2FA-devices.png|Appareils et codes de secours sur la fiche utilisateur&lt;br /&gt;
File:TheoPequignot-2FA-admin.png|Administration : utilisateurs, appareils, 2FA obligatoire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.0.4&#039;&#039;&#039; (14 octobre 2026) : &#039;&#039;&#039;Google Authenticator refusait le QR code&#039;&#039;&#039; alors que les autres applications l&#039;acceptaient. La clé TOTP fait maintenant 32 caractères (160 bits) au lieu de 20, une longueur que Google Authenticator rejetait. Les appareils déjà enregistrés continuent de fonctionner. Si un code est juste mais que l&#039;heure du téléphone ou du serveur est décalée, la page indique le décalage au lieu d&#039;un simple « code invalide ». QR code plus grand et consigne de scan plus claire.&lt;br /&gt;
* &#039;&#039;&#039;6.0.3&#039;&#039;&#039; (3 octobre 2026) : &#039;&#039;&#039;correction de sécurité, mise à jour recommandée sur Dolibarr 16 à 18&#039;&#039;&#039;. Sur ces versions, le second facteur n&#039;était pas demandé : le contrôle reposait sur un point d&#039;accroche de Dolibarr qui n&#039;existe qu&#039;à partir de la version 19. Il passe désormais par un point d&#039;accroche présent dans toutes les versions et appelé à chaque requête. Sur toutes les versions, les téléchargements de documents et les exports exigent eux aussi la vérification.&lt;br /&gt;
* &#039;&#039;&#039;6.0.2&#039;&#039;&#039; (2 octobre 2026) : page d&#039;administration corrigée, interface traduite en français et en anglais.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/2fa modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Etabli_FR&amp;diff=68069</id>
		<title>Module Etabli FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Etabli_FR&amp;diff=68069"/>
		<updated>2026-10-14T22:09:36Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Établi 1.0.2, interface theme by Theo Pequignot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Etabli --&amp;gt;&lt;br /&gt;
[[en:Module_Etabli]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-Etabli-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194160&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.0.2&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3730 DoliStore] (Établi)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/etabli modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Établi est un thème d&#039;interface pour Dolibarr. Il se pose par-dessus le thème Eldy et redessine toute l&#039;interface sans toucher au cœur : les modules passent dans une colonne à gauche, le menu de chaque section devient une barre d&#039;onglets en haut, les fiches et les listes sont remises en page. Désactivez le module et l&#039;interface d&#039;origine revient aussitôt.&lt;br /&gt;
&lt;br /&gt;
== Ce que change le thème ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Rail des modules&#039;&#039;&#039; : Tiers, Commerce, Facturation, Projets… dans une colonne à gauche, avec icône et libellé. Le module ouvert est mis en avant.&lt;br /&gt;
* &#039;&#039;&#039;Barre du haut&#039;&#039;&#039; : la section où vous êtes, la recherche globale de Dolibarr et votre compte, toujours au même endroit.&lt;br /&gt;
* &#039;&#039;&#039;Onglets à la place du menu de gauche&#039;&#039;&#039; : les rubriques de la section passent en onglets, et celles qui ont des entrées (Liste, Brouillon, Impayée…) s&#039;ouvrent en menu déroulant. Toute la largeur de l&#039;écran revient au contenu.&lt;br /&gt;
* &#039;&#039;&#039;Fiches lisibles&#039;&#039;&#039; : en-tête net, champs et montants en panneaux, reste à payer mis en avant, barre d&#039;actions qui reste visible en bas de l&#039;écran. Les actions principales (valider, saisir un règlement) sont pleines, la suppression est à part, à gauche.&lt;br /&gt;
* &#039;&#039;&#039;Listes, formulaires, configuration, agenda, fenêtres de confirmation et messages&#039;&#039;&#039; sur le même modèle.&lt;br /&gt;
* &#039;&#039;&#039;Page de connexion&#039;&#039;&#039; en deux colonnes : le nom de votre société et une phrase d&#039;accueil à gauche, le formulaire à droite.&lt;br /&gt;
&lt;br /&gt;
== Réglages ==&lt;br /&gt;
&lt;br /&gt;
* Disposition : Console (rail des modules à gauche, onglets en haut) ou Classique (menu d&#039;origine en haut, avec la mise en forme du thème).&lt;br /&gt;
* Couleur d&#039;accent : bleu de Prusse, vert sapin, lie-de-vin, ocre, ardoise, ou une couleur libre. Une couleur trop claire pour du texte blanc est assombrie automatiquement.&lt;br /&gt;
* Police : IBM Plex Sans, fournie avec le module, ou police du système.&lt;br /&gt;
* Densité des listes : aérée ou compacte.&lt;br /&gt;
* Page de connexion : avec le thème ou d&#039;origine, phrase d&#039;accueil réglable.&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement ==&lt;br /&gt;
&lt;br /&gt;
* Aucune table créée, aucun fichier du cœur modifié : le module charge une feuille de style (&amp;lt;code&amp;gt;css/etabli.css.php&amp;lt;/code&amp;gt;) et un petit script (&amp;lt;code&amp;gt;js/etabli.js&amp;lt;/code&amp;gt;) qui déplace la recherche et transforme le menu de gauche en onglets.&lt;br /&gt;
* Seul le thème Eldy est concerné ; avec un autre thème, la feuille de style est vide. Mode sombre de Dolibarr : en « forcé », Établi ne s&#039;applique pas ; en « suivre le système », il ne s&#039;applique qu&#039;en clair.&lt;br /&gt;
* Sous 768 px de large, la disposition mobile d&#039;Eldy est conservée, avec les couleurs et la mise en forme des fiches.&lt;br /&gt;
* Les modules externes qui ont leur propre style le gardent.&lt;br /&gt;
* Les polices sont servies par votre serveur : aucun appel à un service externe.&lt;br /&gt;
* Désactivez le module : l&#039;interface d&#039;origine revient tout de suite. Les réglages (constantes &amp;lt;code&amp;gt;ETABLI_*&amp;lt;/code&amp;gt;) restent en base pour une réactivation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez Établi (famille Interface). Les réglages sont sur la page du module (roue dentée).&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24, vérifié sur 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0 et 24.0.&lt;br /&gt;
* PHP 7.4 à 8.4. Thème Eldy, interface claire.&lt;br /&gt;
* Français, anglais, espagnol, italien et allemand inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-Etabli-invoices.png|Liste des factures clients, avec le rail des modules et la barre d&#039;onglets&lt;br /&gt;
File:TheoPequignot-Etabli-invoice.png|Fiche facture : panneaux, reste à payer, barre d&#039;actions fixe&lt;br /&gt;
File:TheoPequignot-Etabli-menu.png|Un onglet ouvert en menu déroulant&lt;br /&gt;
File:TheoPequignot-Etabli-accent.png|Fiche tiers avec la couleur d&#039;accent vert sapin&lt;br /&gt;
File:TheoPequignot-Etabli-login.png|Page de connexion&lt;br /&gt;
File:TheoPequignot-Etabli-setup.png|Page de réglages&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.0.2&#039;&#039;&#039; (14 octobre 2026) : sur les listes de Dolibarr 24, le filtre « État » à choix multiples était plus haut que les autres champs du filtre ; corrigé.&lt;br /&gt;
* &#039;&#039;&#039;1.0.1&#039;&#039;&#039; (8 octobre 2026) : icônes des boîtes du tableau de bord à la hauteur de la boîte, recherche qui reste utilisable sans la bibliothèque Select2, bouton de connexion dans la police du thème.&lt;br /&gt;
* &#039;&#039;&#039;1.0.0&#039;&#039;&#039; (8 octobre 2026) : première version.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/etabli modules.theopequignot.fr]. L&#039;achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Etabli&amp;diff=68068</id>
		<title>Module Etabli</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Etabli&amp;diff=68068"/>
		<updated>2026-10-14T22:09:28Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Établi 1.0.2, interface theme by Theo Pequignot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Etabli FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-Etabli-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194160&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.0.2&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3730 DoliStore] (Établi)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/etabli?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Établi is an interface theme for Dolibarr. It sits on top of the Eldy theme and redesigns the whole interface without touching the core: modules move to a column on the left, each section&#039;s menu becomes a tab bar at the top, cards and lists are laid out again. Disable the module and the original interface is back at once.&lt;br /&gt;
&lt;br /&gt;
== What the theme changes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Module rail&#039;&#039;&#039;: Third parties, Commerce, Billing, Projects… in a column on the left, with icon and label. The open module stands out.&lt;br /&gt;
* &#039;&#039;&#039;Top bar&#039;&#039;&#039;: the section you are in, Dolibarr&#039;s global search and your account, always in the same place.&lt;br /&gt;
* &#039;&#039;&#039;Tabs instead of the left menu&#039;&#039;&#039;: the section&#039;s entries become tabs, and those with sub-entries (List, Draft, Unpaid…) open as drop-down menus. The full screen width goes back to the content.&lt;br /&gt;
* &#039;&#039;&#039;Readable cards&#039;&#039;&#039;: clean header, fields and amounts in panels, remaining amount to pay highlighted, an action bar that stays visible at the bottom of the screen. Main actions (validate, enter payment) are filled, delete sits apart on the left.&lt;br /&gt;
* &#039;&#039;&#039;Lists, forms, setup pages, calendar, confirmation dialogs and messages&#039;&#039;&#039; follow the same design.&lt;br /&gt;
* &#039;&#039;&#039;Login page&#039;&#039;&#039; in two columns: your company name and a welcome line on the left, the form on the right.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
* Layout: Console (module rail on the left, tabs at the top) or Classic (original top menu, with the theme&#039;s styling).&lt;br /&gt;
* Accent colour: Prussian blue, fir green, wine, ochre, slate, or any colour. A colour too light for white text is darkened automatically to stay readable.&lt;br /&gt;
* Font: IBM Plex Sans, shipped with the module, or the system font.&lt;br /&gt;
* List density: airy or compact.&lt;br /&gt;
* Login page: themed or original, with a custom welcome line.&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
* No table created, no core file changed: the module loads one stylesheet (&amp;lt;code&amp;gt;css/etabli.css.php&amp;lt;/code&amp;gt;) and a small script (&amp;lt;code&amp;gt;js/etabli.js&amp;lt;/code&amp;gt;) that moves the search box and turns the left menu into tabs.&lt;br /&gt;
* Only the Eldy theme is restyled; with another theme the stylesheet is empty. Dolibarr dark mode: when forced, Établi does not apply; when following the system, it applies to the light interface only.&lt;br /&gt;
* Below 768 px wide, Eldy&#039;s mobile layout is kept, with the colours and the card styling.&lt;br /&gt;
* External modules with their own style keep it.&lt;br /&gt;
* Fonts are served by your own server: no call to any external service.&lt;br /&gt;
* Disable the module and the original interface comes back right away. Settings (&amp;lt;code&amp;gt;ETABLI_*&amp;lt;/code&amp;gt; constants) stay in the database for a later reactivation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable Établi (Interface family). Settings are on the module page (gear icon).&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24, verified on 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0 and 24.0.&lt;br /&gt;
* PHP 7.4 to 8.4. Eldy theme, light interface.&lt;br /&gt;
* English, French, Spanish, Italian and German included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-Etabli-invoices.png|Customer invoices list, with the module rail and the tab bar&lt;br /&gt;
File:TheoPequignot-Etabli-invoice.png|Invoice card: panels, remaining amount, sticky action bar&lt;br /&gt;
File:TheoPequignot-Etabli-menu.png|A tab opened as a drop-down menu&lt;br /&gt;
File:TheoPequignot-Etabli-accent.png|Third party card with the fir green accent colour&lt;br /&gt;
File:TheoPequignot-Etabli-login.png|Login page&lt;br /&gt;
File:TheoPequignot-Etabli-setup.png|Settings page&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.0.2&#039;&#039;&#039; (14 October 2026): on Dolibarr 24 lists, the multiple-choice &amp;quot;Status&amp;quot; filter was taller than the other filter fields; fixed.&lt;br /&gt;
* &#039;&#039;&#039;1.0.1&#039;&#039;&#039; (8 October 2026): dashboard box icons follow the box height, search keeps working when the Select2 library is missing, login button uses the theme font.&lt;br /&gt;
* &#039;&#039;&#039;1.0.0&#039;&#039;&#039; (8 October 2026): first version.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots and the support form are on [https://modules.theopequignot.fr/modules/etabli?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-setup.png&amp;diff=68067</id>
		<title>File:TheoPequignot-Etabli-setup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-setup.png&amp;diff=68067"/>
		<updated>2026-10-14T22:09:25Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-login.png&amp;diff=68066</id>
		<title>File:TheoPequignot-Etabli-login.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-login.png&amp;diff=68066"/>
		<updated>2026-10-14T22:09:23Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-accent.png&amp;diff=68065</id>
		<title>File:TheoPequignot-Etabli-accent.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-accent.png&amp;diff=68065"/>
		<updated>2026-10-14T22:09:20Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-menu.png&amp;diff=68064</id>
		<title>File:TheoPequignot-Etabli-menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-menu.png&amp;diff=68064"/>
		<updated>2026-10-14T22:09:18Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-invoice.png&amp;diff=68063</id>
		<title>File:TheoPequignot-Etabli-invoice.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-invoice.png&amp;diff=68063"/>
		<updated>2026-10-14T22:09:16Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-invoices.png&amp;diff=68062</id>
		<title>File:TheoPequignot-Etabli-invoices.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-invoices.png&amp;diff=68062"/>
		<updated>2026-10-14T22:09:13Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-logo.png&amp;diff=68061</id>
		<title>File:TheoPequignot-Etabli-logo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-Etabli-logo.png&amp;diff=68061"/>
		<updated>2026-10-14T22:09:09Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr interface theme Établi 1.0.2 by Theo Pequignot (https://modules.theopequignot.fr/modules/etabli), demo data.&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_XLExport&amp;diff=67807</id>
		<title>Module XLExport</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_XLExport&amp;diff=67807"/>
		<updated>2026-10-03T18:12:23Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module XLExport FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-XLExport-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194159&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.0.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3635 DoliStore] (XLExport)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/xlexport?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Getting a list into Excel in Dolibarr means going through the Exports module: building an export set, picking fields unrelated to the displayed columns, without the filters of the screen. XLExport adds an &amp;quot;Excel&amp;quot; button on every list and exports what you have in front of you.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;A button on every list&#039;&#039;&#039;, in the title bar next to the pagination: third parties, invoices, quotes, orders, products, projects, and every list of external modules that follow the Dolibarr conventions.&lt;br /&gt;
* &#039;&#039;&#039;What the screen shows&#039;&#039;&#039;: the columns you chose, the active filters, the current sort. Three scopes: displayed rows, all rows of the filtered list (5,000 by default, up to 50,000), or only the ticked rows.&lt;br /&gt;
* &#039;&#039;&#039;Typed values&#039;&#039;&#039;: amounts become real numbers (&amp;quot;#,##0.00&amp;quot; format), dates become real Excel dates, references stay text (&amp;quot;2026-001&amp;quot; never turns into a date), status badges are read by their label.&lt;br /&gt;
* &#039;&#039;&#039;A clean file&#039;&#039;&#039;: bold header, automatic filter, frozen pane, adjusted widths, and a second sheet that records the list, the filtered address, the date, the user and the number of rows.&lt;br /&gt;
* &#039;&#039;&#039;Excel or CSV&#039;&#039;&#039;: .xlsx, or CSV in UTF-8 with BOM (opens directly in Excel), separator of your choice.&lt;br /&gt;
&lt;br /&gt;
== Built for ordinary servers ==&lt;br /&gt;
&lt;br /&gt;
* Generation relies on PhpSpreadsheet, already shipped with Dolibarr: nothing to install.&lt;br /&gt;
* Data travels in 1.5 MB chunks, within the 8 MB limit of the official image, and the file is built without ever loading the whole list in memory: above a threshold the module streams the file itself.&lt;br /&gt;
* The temporary file is tied to the user who asked for it, protected, and deleted on download or after one hour.&lt;br /&gt;
&lt;br /&gt;
== For the administrator ==&lt;br /&gt;
&lt;br /&gt;
* One permission, &amp;quot;Export a list&amp;quot;, granted by default to new users: the button only exports what the screen already shows. A &amp;quot;User access&amp;quot; card in the settings.&lt;br /&gt;
* Settings: row limit, Excel engine, CSV separator and encoding, excluded lists, button position.&lt;br /&gt;
* Export log: who exported what, when, how many rows.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable XLExport. The button shows up on the lists right away.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24, verified on 16.0, 18.0, 20.0, 22.0, 23.0 and 24.0.&lt;br /&gt;
* PHP 7.4 to 8.4, MySQL / MariaDB. eldy and md themes.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-XLExport-list.png|The Excel button in the title bar of a list&lt;br /&gt;
File:TheoPequignot-XLExport-dialog.png|The export dialog: scope, columns, format, file name&lt;br /&gt;
File:TheoPequignot-XLExport-external-list.png|The button on the list of an external module (Recycle Bin)&lt;br /&gt;
File:TheoPequignot-XLExport-setup.png|Settings page&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/xlexport?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_XLExport_FR&amp;diff=67806</id>
		<title>Module XLExport FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_XLExport_FR&amp;diff=67806"/>
		<updated>2026-10-03T18:12:23Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_XLExport --&amp;gt;&lt;br /&gt;
[[en:Module_XLExport]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-XLExport-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194159&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.0.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3635 DoliStore] (XLExport)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/xlexport modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Sortir une liste en Excel dans Dolibarr demande de passer par le module Exports : créer un jeu d&#039;export, choisir des champs sans rapport avec les colonnes affichées, sans les filtres de l&#039;écran. XLExport ajoute un bouton « Excel » sur toutes les listes et exporte ce que vous avez sous les yeux.&lt;br /&gt;
&lt;br /&gt;
== Ce que fait le module ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Un bouton sur chaque liste&#039;&#039;&#039;, dans la barre de titre à côté de la pagination : tiers, factures, devis, commandes, produits, projets, et toutes les listes des modules externes qui suivent les conventions Dolibarr.&lt;br /&gt;
* &#039;&#039;&#039;Ce que l&#039;écran montre&#039;&#039;&#039; : les colonnes que vous avez choisies, les filtres actifs, le tri en cours. Trois périmètres : lignes affichées, toutes les lignes de la liste filtrée (5 000 par défaut, réglable jusqu&#039;à 50 000), ou seulement les lignes cochées.&lt;br /&gt;
* &#039;&#039;&#039;Des valeurs typées&#039;&#039;&#039; : les montants deviennent de vrais nombres (format « # ##0,00 »), les dates de vraies dates Excel, les références restent du texte (« 2026-001 » ne devient jamais une date), les badges d&#039;état sont lus par leur libellé.&lt;br /&gt;
* &#039;&#039;&#039;Un fichier propre&#039;&#039;&#039; : en-tête en gras, filtre automatique, volet figé, largeurs ajustées, une seconde feuille qui rappelle la liste, l&#039;adresse filtrée, la date, l&#039;utilisateur et le nombre de lignes.&lt;br /&gt;
* &#039;&#039;&#039;Excel ou CSV&#039;&#039;&#039; : .xlsx, ou CSV en UTF-8 avec BOM (lisible directement par Excel), séparateur au choix.&lt;br /&gt;
&lt;br /&gt;
== Pensé pour les serveurs ordinaires ==&lt;br /&gt;
&lt;br /&gt;
* La génération utilise PhpSpreadsheet, déjà fourni par Dolibarr : rien à installer.&lt;br /&gt;
* Les données passent par morceaux de 1,5 Mo, ce qui respecte la limite de 8 Mo de l&#039;image officielle, et le fichier est produit sans jamais charger toute la liste en mémoire : au-delà d&#039;un seuil, le module écrit lui-même le fichier en flux.&lt;br /&gt;
* Le fichier temporaire est lié à l&#039;utilisateur qui l&#039;a demandé, protégé, et supprimé dès le téléchargement ou après une heure.&lt;br /&gt;
&lt;br /&gt;
== Pour l&#039;administrateur ==&lt;br /&gt;
&lt;br /&gt;
* Un seul droit, « Exporter une liste », accordé par défaut aux nouveaux utilisateurs : le bouton n&#039;exporte que ce que l&#039;écran montre déjà. Carte « Accès utilisateurs » dans les réglages.&lt;br /&gt;
* Réglages : limite de lignes, moteur Excel, séparateur et encodage CSV, listes exclues, position du bouton.&lt;br /&gt;
* Journal des exports : qui a exporté quoi, quand, combien de lignes.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez XLExport. Le bouton apparaît immédiatement sur les listes.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24, vérifié sur 16.0, 18.0, 20.0, 22.0, 23.0 et 24.0.&lt;br /&gt;
* PHP 7.4 à 8.4, MySQL / MariaDB. Thèmes eldy et md.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-XLExport-list.png|Le bouton Excel dans la barre de titre d&#039;une liste&lt;br /&gt;
File:TheoPequignot-XLExport-dialog.png|La boîte de dialogue : périmètre, colonnes, format, nom du fichier&lt;br /&gt;
File:TheoPequignot-XLExport-external-list.png|Le bouton sur la liste d&#039;un module externe (Corbeille)&lt;br /&gt;
File:TheoPequignot-XLExport-setup.png|Page de réglages&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/xlexport modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_BackupGuard&amp;diff=67805</id>
		<title>Module BackupGuard</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_BackupGuard&amp;diff=67805"/>
		<updated>2026-10-03T18:12:22Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module BackupGuard FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-BackupGuard-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194158&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 2.2.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3634 DoliStore] (BackupGuard)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/backupguard?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The native Dolibarr backup relies on the mysqldump command, which many shared hostings and containers do not have or refuse to run (&amp;quot;Failed to execute external command&amp;quot;). It is not scheduled, not encrypted, and stays on the same server as the data. BackupGuard makes a complete, scheduled, encrypted, verified backup and sends it elsewhere, without installing anything on the server.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Pure PHP database dump&#039;&#039;&#039;: every Dolibarr table is read inside a consistent InnoDB snapshot (REPEATABLE READ, START TRANSACTION WITH CONSISTENT SNAPSHOT) and streamed to a SQL file, 2,000 rows at a time, grouped INSERT statements of about 1 MB. No binary needed, constant memory. When mysqldump exists and the option is enabled, it is used instead, with automatic fallback to the PHP dump.&lt;br /&gt;
* &#039;&#039;&#039;Documents included&#039;&#039;&#039;: the documents directory (DOL_DATA_ROOT) is added file by file to a zip, with configurable exclusions (default: temp folders, cache, .tmp files). The zip holds database.sql, manifest.json and documents/.&lt;br /&gt;
* &#039;&#039;&#039;AES-256-CBC encryption&#039;&#039;&#039; in the exact format of the openssl enc command (Salted__ header, PBKDF2-SHA256 10,000 iterations, PKCS7). A backup can be decrypted on any machine with: &amp;lt;code&amp;gt;openssl enc -d -aes-256-cbc -pbkdf2 -in backup.zip.enc -out backup.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039;, several at once: local copy (always), WebDAV (Nextcloud, ownCloud, kDrive, Infomaniak, Apache or nginx DAV), S3 compatible storage (AWS, Scaleway, OVH, Backblaze B2, Wasabi, MinIO, AWS signature v4 in pure PHP), FTP/FTPS (PHP extension ftp) and SFTP (PHP extension ssh2). Streaming uploads through curl. Each destination has a &amp;quot;Test connection&amp;quot; button that writes then deletes a witness file and shows the real error message.&lt;br /&gt;
* &#039;&#039;&#039;Scheduling&#039;&#039;&#039;: a daily Dolibarr scheduled job at the chosen hour (the Scheduled jobs module is enabled at installation), a CLI script for a system cron, and a URL trigger with a secret key for hostings without any cron. &amp;quot;Back up now&amp;quot; button. A lock prevents two simultaneous runs and is released even after a fatal error.&lt;br /&gt;
* &#039;&#039;&#039;Retention&#039;&#039;&#039; per destination: keep the N most recent backups (7 by default) plus the first backup of each month for M months (6 by default). Purge happens only after a successful upload to that destination.&lt;br /&gt;
* &#039;&#039;&#039;Verification and log&#039;&#039;&#039;: SHA-256 of the final file, zip integrity, end marker inside database.sql, control decryption of the first 64 KB. Every run is logged (status, size, duration, tables, rows, files, result per destination, trigger). Email alerts on failure and when no successful backup exists for N days.&lt;br /&gt;
* &#039;&#039;&#039;Dashboard&#039;&#039;&#039; (Tools, Backups): last successful backup, scheduling state, server diagnostic (mysqldump, extensions, disk space, estimated size), destinations, last thirty runs with download and deletion of the local file.&lt;br /&gt;
* &#039;&#039;&#039;Restore from the browser&#039;&#039;&#039;: chunked upload, analysis without any change, control of every SQL statement, safety backup of the current state, restore in short steps followed live, &amp;quot;Retry&amp;quot; and &amp;quot;Go back to the previous state&amp;quot; buttons if it stops halfway. Also used to move to a fresh Dolibarr where only BackupGuard is installed. A command line script is still provided for very large databases.&lt;br /&gt;
* &#039;&#039;&#039;Dolibarr update&#039;&#039;&#039;: the latest maintenance release and the next major version are offered; the official package is checked file by file against the checksums published by Dolibarr, a full backup and a copy of the replaced files are made first, and a button puts the previous files back as long as the database has not been upgraded.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable BackupGuard. Activation creates the table llx_backupguard_run, the protected directory documents/backupguard, the daily scheduled job and the URL key. The first local backup works with no setting at all.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Content&#039;&#039;&#039;: database and documents (default) or database only; exclusion patterns; use of mysqldump when available.&lt;br /&gt;
* &#039;&#039;&#039;Encryption&#039;&#039;&#039;: on/off and passphrase (12 characters minimum, never displayed again). Without the passphrase a backup is unreadable: keep it somewhere else than on the server.&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039;: one section per type with its test button. Destinations whose PHP extension is missing are shown as unavailable with the reason.&lt;br /&gt;
* &#039;&#039;&#039;Scheduling and retention&#039;&#039;&#039;: hour of the daily backup, real state of the scheduled job (last and next run), trigger URL with its key and a cron line example, CLI command, number of backups kept, monthly retention.&lt;br /&gt;
* &#039;&#039;&#039;Alerts&#039;&#039;&#039;: email address (default: first administrator), &amp;quot;no successful backup for N days&amp;quot; delay, test email.&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Read&#039;&#039;: dashboard and log.&lt;br /&gt;
* &#039;&#039;Run&#039;&#039;: start a backup, download and delete local files. A backup contains the whole database: grant this right with care.&lt;br /&gt;
* &#039;&#039;Setup&#039;&#039;: settings (administrators only).&lt;br /&gt;
* Restoring a backup and updating Dolibarr are reserved to administrators.&lt;br /&gt;
&lt;br /&gt;
== Restore a backup ==&lt;br /&gt;
&lt;br /&gt;
=== From the browser ===&lt;br /&gt;
Tools, Backups, &amp;quot;Restore a backup&amp;quot; button.&lt;br /&gt;
# Upload the .zip or .zip.enc file (with its passphrase when encrypted), or pick a backup already on the server. The upload is sent in 2 MB chunks: the PHP upload size limit does not apply.&lt;br /&gt;
# &#039;&#039;&#039;Analysis&#039;&#039;&#039;, without changing anything: decryption, integrity, Dolibarr versions, content, modules. The restore is refused when the backup comes from a more recent Dolibarr than the installed one. Warnings (upgrade needed, different table prefix, missing modules) are shown before going on.&lt;br /&gt;
# &#039;&#039;&#039;Options&#039;&#039;&#039;: safety backup of the current state (recommended), documents, external modules. Confirm by typing the requested word.&lt;br /&gt;
# &#039;&#039;&#039;SQL control&#039;&#039;&#039;: every statement of the backup is checked before anything is written; only those of a dump, on Dolibarr tables, go through.&lt;br /&gt;
# &#039;&#039;&#039;Restore&#039;&#039;&#039; in short steps, followed live: the PHP maximum execution time is not an obstacle. Passwords encrypted by Dolibarr (SMTP, API keys) are re-encrypted for the new installation when the backup is encrypted.&lt;br /&gt;
# Log in again. When the backup comes from an older version, a button opens the Dolibarr upgrade wizard.&lt;br /&gt;
If the restore stops halfway, &amp;quot;Retry&amp;quot; resumes without duplicating anything and &amp;quot;Go back to the previous state&amp;quot; puts the safety backup back.&lt;br /&gt;
&lt;br /&gt;
=== From the command line ===&lt;br /&gt;
For very large databases, or when Dolibarr no longer starts.&lt;br /&gt;
# Get the file dolibarr-&amp;lt;database&amp;gt;-YYYY-MM-DD-HHMM.zip.enc from a destination or the dashboard.&lt;br /&gt;
# Decrypt it with openssl (see above) or let the script do it (passphrase asked on the keyboard or read from the environment variable BACKUPGUARD_ENCRYPTION_PASSWORD).&lt;br /&gt;
# Put Dolibarr in maintenance mode, then on the target server: &amp;lt;code&amp;gt;php htdocs/custom/backupguard/scripts/restore.php backup.zip.enc --documents=/path/to/documents&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Clear the Dolibarr cache (documents/admin/temp) and log in again.&lt;br /&gt;
&lt;br /&gt;
== Update Dolibarr ==&lt;br /&gt;
Tools, Backups, &amp;quot;Update Dolibarr&amp;quot; button. The page shows the installed version, the checks (web server write access, curl and zip extensions, disk space) and two offers: the latest maintenance release, and the next major version (Dolibarr is upgraded one major version at a time).&lt;br /&gt;
# &#039;&#039;&#039;Prepare&#039;&#039;&#039;, without changing anything: download of the official package, then control of every file (PHP, JavaScript, migration SQL, images) against the checksums published on dolibarr.org and, for what they do not cover, those of the release on GitHub. An altered or unknown file makes the update refused.&lt;br /&gt;
# &#039;&#039;&#039;Confirm&#039;&#039;&#039;: full safety backup, copy of the files about to be replaced, then writing of the new files. The configuration and the custom directory are never touched.&lt;br /&gt;
# &#039;&#039;&#039;Upgrade the database&#039;&#039;&#039; with the Dolibarr wizard, opened by a button (upgrade.unlock since Dolibarr 17).&lt;br /&gt;
# As long as the database has not been upgraded, a button puts the previous files back.&lt;br /&gt;
Under Docker, the Dolibarr files belong to the image: the page explains what to do (change the image version) instead of replacing files.&lt;br /&gt;
&lt;br /&gt;
== Known limits ==&lt;br /&gt;
&lt;br /&gt;
* Database dump for MySQL and MariaDB only. On PostgreSQL the module says so and backs up the documents only.&lt;br /&gt;
* Views, triggers and stored procedures are not exported (Dolibarr creates none).&lt;br /&gt;
* A backup can only be restored on the same or a more recent Dolibarr version.&lt;br /&gt;
* Updating Dolibarr requires the web server to be able to write the Dolibarr files; otherwise the page says so and nothing is changed. External modules are not updated.&lt;br /&gt;
* FTP and SFTP depend on the PHP extensions ftp and ssh2. WebDAV: Basic authentication only (Nextcloud, ownCloud, kDrive, Apache mod_dav).&lt;br /&gt;
* Encryption protects the remote copy, not the server itself: whoever reads the Dolibarr configuration reads the passphrase.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24, verified on 16.0, 18.0, 20.0, 22.0, 23.0 and 24.0.&lt;br /&gt;
* PHP 7.4 to 8.4. Extensions zip, openssl and curl required; ftp and ssh2 depending on the destination.&lt;br /&gt;
* English and French included.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-BackupGuard-dashboard.png|Dashboard after a successful backup&lt;br /&gt;
File:TheoPequignot-BackupGuard-settings.png|Settings: content and encryption&lt;br /&gt;
File:TheoPequignot-BackupGuard-destinations.png|Destinations with the connection test&lt;br /&gt;
File:TheoPequignot-BackupGuard-schedule.png|Scheduling, URL trigger and retention&lt;br /&gt;
File:TheoPequignot-BackupGuard-restore.png|Restoring a backup from the browser&lt;br /&gt;
File:TheoPequignot-BackupGuard-upgrade.png|Updating Dolibarr: checks and offered versions&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2 October 2026): &#039;&#039;&#039;update recommended for everyone&#039;&#039;&#039;. The command line scripts (scripts/backup.php and scripts/restore.php) could be called through the web server without logging in; they now only answer on the command line. Restore: every SQL statement is checked, restore across different servers (MySQL 8 and MariaDB), &amp;quot;Retry&amp;quot; and &amp;quot;Go back to the previous state&amp;quot; buttons. Dolibarr update: every file of the package is checked. Dump: BIT and JSON columns fixed.&lt;br /&gt;
* &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2 October 2026): Dolibarr update from the module.&lt;br /&gt;
* &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2 October 2026): restore from the browser, external modules included in the backup, encrypted passwords carried to the new installation.&lt;br /&gt;
* &#039;&#039;&#039;1.0.0&#039;&#039;&#039; (2 October 2026): first version.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/backupguard?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_BackupGuard_FR&amp;diff=67804</id>
		<title>Module BackupGuard FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_BackupGuard_FR&amp;diff=67804"/>
		<updated>2026-10-03T18:12:22Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_BackupGuard --&amp;gt;&lt;br /&gt;
[[en:Module_BackupGuard]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-BackupGuard-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194158&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 2.2.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3634 DoliStore] (BackupGuard)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/backupguard modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La sauvegarde native de Dolibarr dépend de la commande mysqldump, que beaucoup d&#039;hébergements mutualisés et de conteneurs n&#039;ont pas ou refusent d&#039;exécuter (« Échec de l&#039;exécution de commande externe »). Elle n&#039;est pas planifiée, pas chiffrée, et reste sur le même serveur que les données. BackupGuard fait une sauvegarde complète, planifiée, chiffrée, vérifiée et envoyée ailleurs, sans rien installer sur le serveur.&lt;br /&gt;
&lt;br /&gt;
== Ce que fait le module ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Export de la base en pur PHP&#039;&#039;&#039; : toutes les tables Dolibarr sont lues dans un instantané InnoDB cohérent (REPEATABLE READ, START TRANSACTION WITH CONSISTENT SNAPSHOT) et écrites en flux dans un fichier SQL, 2 000 lignes à la fois, INSERT groupés d&#039;environ 1 Mo. Aucun binaire requis, mémoire constante. Si mysqldump existe et que l&#039;option est activée, il est utilisé à la place, avec repli automatique sur l&#039;export PHP.&lt;br /&gt;
* &#039;&#039;&#039;Documents inclus&#039;&#039;&#039; : le dossier des documents (DOL_DATA_ROOT) est ajouté fichier par fichier dans un zip, avec des exclusions configurables (par défaut : dossiers temp, cache, fichiers .tmp). Le zip contient database.sql, manifest.json et documents/.&lt;br /&gt;
* &#039;&#039;&#039;Chiffrement AES-256-CBC&#039;&#039;&#039; au format exact de la commande openssl enc (en-tête Salted__, PBKDF2-SHA256 10 000 itérations, PKCS7). Une sauvegarde se déchiffre sur n&#039;importe quelle machine avec : &amp;lt;code&amp;gt;openssl enc -d -aes-256-cbc -pbkdf2 -in sauvegarde.zip.enc -out sauvegarde.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039;, plusieurs à la fois : copie locale (toujours), WebDAV (Nextcloud, ownCloud, kDrive, Infomaniak, Apache ou nginx DAV), stockage S3 compatible (AWS, Scaleway, OVH, Backblaze B2, Wasabi, MinIO, signature AWS v4 en pur PHP), FTP/FTPS (extension PHP ftp) et SFTP (extension PHP ssh2). Envoi en flux par curl. Chaque destination a un bouton « Tester la connexion » qui écrit puis supprime un fichier témoin et affiche le message d&#039;erreur réel.&lt;br /&gt;
* &#039;&#039;&#039;Planification&#039;&#039;&#039; : tâche planifiée Dolibarr quotidienne à l&#039;heure choisie (le module Travaux planifiés est activé à l&#039;installation), script CLI pour un cron système, et une URL de déclenchement avec clé secrète pour les hébergements sans aucun cron. Bouton « Sauvegarder maintenant ». Un verrou empêche deux exécutions simultanées et se libère même après une erreur fatale.&lt;br /&gt;
* &#039;&#039;&#039;Rétention&#039;&#039;&#039; par destination : garder les N dernières sauvegardes (7 par défaut) plus la première de chaque mois pendant M mois (6 par défaut). La purge n&#039;a lieu qu&#039;après un envoi réussi sur la destination concernée.&lt;br /&gt;
* &#039;&#039;&#039;Vérification et journal&#039;&#039;&#039; : SHA-256 du fichier final, intégrité du zip, marqueur de fin dans database.sql, déchiffrement de contrôle des 64 premiers Ko. Chaque exécution est consignée (statut, taille, durée, tables, lignes, fichiers, résultat par destination, déclencheur). Alertes e-mail en cas d&#039;échec et quand aucune sauvegarde n&#039;a réussi depuis N jours.&lt;br /&gt;
* &#039;&#039;&#039;Tableau de bord&#039;&#039;&#039; (Outils, Sauvegardes) : dernière sauvegarde réussie, état de la planification, diagnostic du serveur (mysqldump, extensions, espace disque, taille estimée), destinations, trente dernières exécutions avec téléchargement et suppression du fichier local.&lt;br /&gt;
* &#039;&#039;&#039;Restauration depuis le navigateur&#039;&#039;&#039; : envoi du fichier par morceaux, analyse sans rien modifier, contrôle de chaque instruction SQL, sauvegarde de sécurité de l&#039;état actuel, restauration par petites étapes suivie en direct, boutons « Réessayer » et « Revenir à l&#039;état d&#039;avant » si elle s&#039;arrête en route. Sert aussi à déménager vers un Dolibarr neuf où seul BackupGuard est installé. Un script en ligne de commande reste fourni pour les très grosses bases.&lt;br /&gt;
* &#039;&#039;&#039;Mise à jour de Dolibarr&#039;&#039;&#039; : la version corrective et la version majeure suivante sont proposées ; le paquet officiel est contrôlé fichier par fichier avec les empreintes publiées par Dolibarr, une sauvegarde complète et une copie des fichiers remplacés sont faites d&#039;abord, et un bouton remet les fichiers d&#039;avant tant que la base n&#039;est pas mise à niveau.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez BackupGuard. L&#039;activation crée la table llx_backupguard_run, le dossier protégé documents/backupguard, la tâche planifiée quotidienne et la clé d&#039;URL. La première sauvegarde locale fonctionne sans aucun réglage.&lt;br /&gt;
&lt;br /&gt;
== Réglages ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contenu&#039;&#039;&#039; : base + documents (par défaut) ou base seulement ; motifs d&#039;exclusion ; utilisation de mysqldump s&#039;il existe.&lt;br /&gt;
* &#039;&#039;&#039;Chiffrement&#039;&#039;&#039; : activation et phrase secrète (12 caractères au minimum, jamais réaffichée). Sans la phrase secrète, une sauvegarde est illisible : notez-la ailleurs que sur le serveur.&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039; : une section par type avec son bouton de test. Les destinations dont l&#039;extension PHP manque sont affichées comme non disponibles, avec la raison.&lt;br /&gt;
* &#039;&#039;&#039;Planification et rétention&#039;&#039;&#039; : heure de la sauvegarde quotidienne, état réel de la tâche planifiée (dernière et prochaine exécution), URL de déclenchement avec sa clé et un exemple de ligne cron, commande CLI, nombre de sauvegardes conservées, conservation mensuelle.&lt;br /&gt;
* &#039;&#039;&#039;Alertes&#039;&#039;&#039; : adresse e-mail (par défaut le premier administrateur), délai « aucune sauvegarde réussie depuis N jours », e-mail de test.&lt;br /&gt;
&lt;br /&gt;
== Droits ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Lire&#039;&#039; : tableau de bord et journal.&lt;br /&gt;
* &#039;&#039;Lancer&#039;&#039; : lancer une sauvegarde, télécharger et supprimer les fichiers locaux. Une sauvegarde contient toute la base : ce droit se donne avec discernement.&lt;br /&gt;
* &#039;&#039;Configurer&#039;&#039; : réglages (administrateurs uniquement).&lt;br /&gt;
* La restauration et la mise à jour de Dolibarr sont réservées aux administrateurs.&lt;br /&gt;
&lt;br /&gt;
== Restaurer une sauvegarde ==&lt;br /&gt;
&lt;br /&gt;
=== Depuis le navigateur ===&lt;br /&gt;
Outils, Sauvegardes, bouton « Restaurer une sauvegarde ».&lt;br /&gt;
# Envoyer le fichier .zip ou .zip.enc (avec sa phrase secrète s&#039;il est chiffré), ou choisir une sauvegarde déjà présente sur le serveur. L&#039;envoi se fait par morceaux de 2 Mo : la limite de taille d&#039;envoi de PHP ne s&#039;applique pas.&lt;br /&gt;
# &#039;&#039;&#039;Analyse&#039;&#039;&#039;, sans rien modifier : déchiffrement, intégrité, versions de Dolibarr, contenu, modules. La restauration est refusée si la sauvegarde vient d&#039;une version plus récente que celle installée. Les avertissements (mise à niveau à prévoir, préfixe de tables différent, modules absents) sont affichés avant de continuer.&lt;br /&gt;
# &#039;&#039;&#039;Options&#039;&#039;&#039; : sauvegarde de sécurité de l&#039;état actuel (conseillée), documents, modules externes. Confirmer en tapant le mot demandé.&lt;br /&gt;
# &#039;&#039;&#039;Contrôle du SQL&#039;&#039;&#039; : chaque instruction de la sauvegarde est vérifiée avant toute écriture ; seules passent celles d&#039;un export, sur les tables de Dolibarr.&lt;br /&gt;
# &#039;&#039;&#039;Restauration&#039;&#039;&#039; par petites étapes, suivie en direct : la durée maximale d&#039;exécution de PHP n&#039;est pas un obstacle. Les mots de passe chiffrés par Dolibarr (SMTP, clés d&#039;API) sont rechiffrés pour la nouvelle installation quand la sauvegarde est chiffrée.&lt;br /&gt;
# Se reconnecter. Si la sauvegarde vient d&#039;une version plus ancienne, un bouton ouvre l&#039;assistant de mise à niveau de Dolibarr.&lt;br /&gt;
Si la restauration s&#039;arrête en route, « Réessayer » reprend sans rien dupliquer et « Revenir à l&#039;état d&#039;avant » remet la sauvegarde de sécurité.&lt;br /&gt;
&lt;br /&gt;
=== En ligne de commande ===&lt;br /&gt;
Pour les très grosses bases, ou quand Dolibarr ne démarre plus.&lt;br /&gt;
# Récupérer le fichier dolibarr-&amp;lt;base&amp;gt;-AAAA-MM-JJ-HHMM.zip.enc depuis une destination ou le tableau de bord.&lt;br /&gt;
# Le déchiffrer avec openssl (voir plus haut) ou laisser le script le faire (phrase secrète demandée au clavier ou lue dans la variable d&#039;environnement BACKUPGUARD_ENCRYPTION_PASSWORD).&lt;br /&gt;
# Passer Dolibarr en mode maintenance, puis sur le serveur cible : &amp;lt;code&amp;gt;php htdocs/custom/backupguard/scripts/restore.php sauvegarde.zip.enc --documents=/chemin/vers/documents&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Vider le cache de Dolibarr (documents/admin/temp) et se reconnecter.&lt;br /&gt;
&lt;br /&gt;
== Mettre à jour Dolibarr ==&lt;br /&gt;
Outils, Sauvegardes, bouton « Mettre à jour Dolibarr ». La page affiche la version installée, les vérifications (droit d&#039;écriture du serveur web, extensions curl et zip, espace disque) et deux propositions : la dernière version corrective, et la version majeure suivante (Dolibarr se met à jour une version majeure à la fois).&lt;br /&gt;
# &#039;&#039;&#039;Préparer&#039;&#039;&#039;, sans rien modifier : téléchargement du paquet officiel, puis contrôle de chaque fichier (PHP, JavaScript, SQL de migration, images) avec les empreintes publiées sur dolibarr.org et, pour ce qu&#039;elles ne couvrent pas, celles de la version sur GitHub. Un fichier altéré ou inconnu fait refuser la mise à jour.&lt;br /&gt;
# &#039;&#039;&#039;Confirmer&#039;&#039;&#039; : sauvegarde de sécurité complète, copie des fichiers qui vont être remplacés, puis écriture des nouveaux fichiers. La configuration et le dossier custom ne sont jamais touchés.&lt;br /&gt;
# &#039;&#039;&#039;Mettre la base à niveau&#039;&#039;&#039; avec l&#039;assistant de Dolibarr, ouvert par un bouton (upgrade.unlock depuis Dolibarr 17).&lt;br /&gt;
# Tant que la base n&#039;est pas mise à niveau, un bouton remet les fichiers d&#039;avant.&lt;br /&gt;
Sous Docker, les fichiers de Dolibarr font partie de l&#039;image : la page donne la marche à suivre (changer la version de l&#039;image) au lieu de remplacer les fichiers.&lt;br /&gt;
&lt;br /&gt;
== Limites connues ==&lt;br /&gt;
&lt;br /&gt;
* Export de la base pour MySQL et MariaDB uniquement. Sur PostgreSQL le module l&#039;indique et ne sauvegarde que les documents.&lt;br /&gt;
* Les vues, déclencheurs et procédures stockées ne sont pas exportés (Dolibarr n&#039;en crée pas).&lt;br /&gt;
* Une sauvegarde ne se restaure que sur une version de Dolibarr identique ou plus récente.&lt;br /&gt;
* La mise à jour de Dolibarr demande que le serveur web puisse écrire dans les fichiers de Dolibarr ; sinon la page l&#039;indique et rien n&#039;est modifié. Les modules externes ne sont pas mis à jour.&lt;br /&gt;
* FTP et SFTP dépendent des extensions PHP ftp et ssh2. WebDAV : authentification Basic uniquement (Nextcloud, ownCloud, kDrive, Apache mod_dav).&lt;br /&gt;
* Le chiffrement protège la copie distante, pas le serveur lui-même : qui lit la configuration de Dolibarr lit la phrase secrète.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24, vérifié sur 16.0, 18.0, 20.0, 22.0, 23.0 et 24.0.&lt;br /&gt;
* PHP 7.4 à 8.4. Extensions zip, openssl et curl requises ; ftp et ssh2 selon la destination.&lt;br /&gt;
* Français et anglais inclus.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-BackupGuard-dashboard.png|Le tableau de bord après une sauvegarde réussie&lt;br /&gt;
File:TheoPequignot-BackupGuard-settings.png|Réglages : contenu et chiffrement&lt;br /&gt;
File:TheoPequignot-BackupGuard-destinations.png|Les destinations et le test de connexion&lt;br /&gt;
File:TheoPequignot-BackupGuard-schedule.png|Planification, URL de déclenchement et rétention&lt;br /&gt;
File:TheoPequignot-BackupGuard-restore.png|Restaurer une sauvegarde depuis le navigateur&lt;br /&gt;
File:TheoPequignot-BackupGuard-upgrade.png|Mettre à jour Dolibarr : vérifications et versions proposées&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2 octobre 2026) : &#039;&#039;&#039;mise à jour recommandée à tous&#039;&#039;&#039;. Les scripts en ligne de commande (scripts/backup.php et scripts/restore.php) pouvaient être appelés par le serveur web sans connexion ; ils ne répondent plus qu&#039;en ligne de commande. Restauration : chaque instruction SQL est contrôlée, restauration entre serveurs différents (MySQL 8 et MariaDB), boutons « Réessayer » et « Revenir à l&#039;état d&#039;avant ». Mise à jour de Dolibarr : tous les fichiers du paquet sont contrôlés. Export : colonnes BIT et JSON corrigées.&lt;br /&gt;
* &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2 octobre 2026) : mise à jour de Dolibarr depuis le module.&lt;br /&gt;
* &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2 octobre 2026) : restauration depuis le navigateur, modules externes inclus dans la sauvegarde, mots de passe chiffrés transportés vers la nouvelle installation.&lt;br /&gt;
* &#039;&#039;&#039;1.0.0&#039;&#039;&#039; (2 octobre 2026) : première version.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/backupguard modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_AutoFacture&amp;diff=67803</id>
		<title>Module AutoFacture</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_AutoFacture&amp;diff=67803"/>
		<updated>2026-10-03T18:12:22Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module AutoFacture FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-AutoFacture-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194157&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.6.2&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3631 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/autofacture?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every month the same invoices have to be made again: maintenance, hosting, backup, licences. Forget one and you lose money, send one twice and the customer is annoyed. AutoFacture takes care of it: each subscription produces its invoice on the right date, validated and as a PDF, and a dedicated screen follows what is not paid yet.&lt;br /&gt;
&lt;br /&gt;
== Subscriptions and automatic generation ==&lt;br /&gt;
&lt;br /&gt;
* Monthly, bimonthly, quarterly, half-yearly or yearly subscriptions, billed at the start or end of the period, with an optional end date.&lt;br /&gt;
* Invoices created, validated and turned into PDF on their own, with the month or period written in the lines (&amp;lt;code&amp;gt;__AF_PERIOD__&amp;lt;/code&amp;gt; tag).&lt;br /&gt;
* &#039;&#039;&#039;Never the same invoice twice&#039;&#039;&#039;: one invoice per subscription and period, guaranteed by a unique key in the database.&lt;br /&gt;
* Works with or without a scheduled job: without cron, due invoices are generated while users browse.&lt;br /&gt;
* &#039;&#039;&#039;Invoice author of your choice&#039;&#039;&#039;: a setting names the account that signs generated invoices, whatever triggers the generation.&lt;br /&gt;
* &#039;&#039;&#039;Billing day of your choice&#039;&#039;&#039;: the invoice is dated on the day of the month you want (1 to 28), at the start or end of the period.&lt;br /&gt;
* &#039;&#039;&#039;Automation status&#039;&#039;&#039; on the dashboard, with the exact crontab line; on-demand generation, line by line or for everything due.&lt;br /&gt;
* &#039;&#039;&#039;Always a PDF&#039;&#039;&#039;: if the PDF template inherited from the template invoice is no longer available, the module falls back to the default invoice template, then to an active one, and records it in the journal.&lt;br /&gt;
&lt;br /&gt;
== Three ways to create a subscription ==&lt;br /&gt;
&lt;br /&gt;
* From scratch, on one card: a control sentence states the first invoice date and the period covered before you confirm.&lt;br /&gt;
* From an existing invoice: the module finds the period in the lines (&amp;quot;November 2026&amp;quot;, &amp;quot;from 01/11 to 30/11&amp;quot;…) and makes it dynamic.&lt;br /&gt;
* With the &#039;&#039;&#039;analyzer&#039;&#039;&#039;, which finds recurring series among your manual invoices and converts them in one click.&lt;br /&gt;
&lt;br /&gt;
== Unpaid invoices and reminders ==&lt;br /&gt;
&lt;br /&gt;
* Aged balance: outstanding amounts by age bracket, and for each invoice the real amount due (payments, credit notes and deposits deducted).&lt;br /&gt;
* Tiered reminders (30, 60 and 180 days by default), each with its own email template.&lt;br /&gt;
* &#039;&#039;&#039;No reminder is sent without your approval&#039;&#039;&#039;: the module proposes, you decide.&lt;br /&gt;
* Grouped reminders from the unpaid screen and multiple selection in the journal; subject and message of each step editable in the settings.&lt;br /&gt;
&lt;br /&gt;
== Payment terms under control ==&lt;br /&gt;
&lt;br /&gt;
* By default the customer&#039;s terms; a choice per subscription; or a term enforced on every generated invoice from the settings.&lt;br /&gt;
* &#039;&#039;&#039;Fixed day of the month&#039;&#039;&#039;: &amp;quot;on the 10th of the month&amp;quot; or any other day from 1 to 28, picked straight from the list. The due date falls on that day in the invoice month, or the next month if the day has passed.&lt;br /&gt;
* The due date is recalculated before validation: the PDF and the aged balance show the right date.&lt;br /&gt;
&lt;br /&gt;
== Sending and journal ==&lt;br /&gt;
&lt;br /&gt;
* Invoice emailed with your templates, after your review or automatically, your choice. Nothing is sent if the invoice is still a draft; a missing PDF is generated when the email is sent.&lt;br /&gt;
* Full journal: every invoice generated or failed, every reminder proposed, sent or dismissed.&lt;br /&gt;
* An invoice without PDF is flagged « PDF missing » in the journal and on the subscription card, with a « Generate the PDF » button.&lt;br /&gt;
&lt;br /&gt;
== Built on the native engine ==&lt;br /&gt;
Each subscription relies on a native Dolibarr template invoice: lines, amounts, VAT and terms stay managed by the core, and templates remain visible even if the module is disabled.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable AutoFacture. The scheduled job is created on activation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module. Subscriptions, journal, settings and permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.6.2&#039;&#039;&#039; (3 October 2026): the module icon is shown again in the Dolibarr module list.&lt;br /&gt;
* &#039;&#039;&#039;1.6.1&#039;&#039;&#039; (2 October 2026): the module menus are shown again on Dolibarr 23 and 24.&lt;br /&gt;
* &#039;&#039;&#039;1.6.0&#039;&#039;&#039; (2 October 2026): invoice author of your choice, billing day, automation status and on-demand generation, grouped reminders and editable reminder messages; with some PDF template modules only the first invoice of a run had its PDF, fixed.&lt;br /&gt;
* &#039;&#039;&#039;1.5.0&#039;&#039;&#039; (2 October 2026): due date on a fixed day of the month (&amp;quot;on the 10th&amp;quot;…), chosen in the settings or on the subscription card; the &amp;quot;Payment terms&amp;quot; line is shown again on the PDF of generated invoices.&lt;br /&gt;
* &#039;&#039;&#039;1.4.1&#039;&#039;&#039; (2 October 2026): invoices generated with a PDF template that was no longer available had no PDF; fallback generation, PDF built when the email is sent, catch-up button in the journal.&lt;br /&gt;
* &#039;&#039;&#039;1.4.0&#039;&#039;&#039; (2 October 2026): configurable payment terms (per subscription or enforced), new module id 194157.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 22, 23 and 24).&lt;br /&gt;
* PHP 7.0 and above, MySQL / MariaDB.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-AutoFacture-dashboard.png|Dashboard: subscriptions, monthly equivalent revenue, next invoices, on-demand generation&lt;br /&gt;
File:TheoPequignot-AutoFacture-card.png|Subscription card&lt;br /&gt;
File:TheoPequignot-AutoFacture-create.png|Creating a subscription, control sentence and billing day&lt;br /&gt;
File:TheoPequignot-AutoFacture-analyzer.png|Analyzer: recurring series found among manual invoices&lt;br /&gt;
File:TheoPequignot-AutoFacture-unpaid.png|Unpaid invoices: aged balance and grouped reminders&lt;br /&gt;
File:TheoPequignot-AutoFacture-journal.png|Generation journal and sending queue&lt;br /&gt;
File:TheoPequignot-AutoFacture-reminders.png|Reminders to approve, multiple selection&lt;br /&gt;
File:TheoPequignot-AutoFacture-automation.png|Automation status and immediate generation&lt;br /&gt;
File:TheoPequignot-AutoFacture-author.png|Author of generated invoices&lt;br /&gt;
File:TheoPequignot-AutoFacture-payment-terms.png|Payment terms: those of each subscription, a term from the dictionary, or a fixed day of the month&lt;br /&gt;
File:TheoPequignot-AutoFacture-dunning.png|Reminder steps, editable subject and message&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/autofacture?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_AutoFacture_FR&amp;diff=67802</id>
		<title>Module AutoFacture FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_AutoFacture_FR&amp;diff=67802"/>
		<updated>2026-10-03T18:12:21Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_AutoFacture --&amp;gt;&lt;br /&gt;
[[en:Module_AutoFacture]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-AutoFacture-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194157&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.6.2&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3631 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/autofacture modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Chaque mois, il faut refaire les mêmes factures : maintenance, hébergement, sauvegarde, licences. Un oubli et c&#039;est de l&#039;argent perdu, un doublon et c&#039;est un client agacé. AutoFacture s&#039;en charge : chaque abonnement produit sa facture à la bonne date, validée et en PDF, et un écran dédié suit ce qui n&#039;est pas encore payé.&lt;br /&gt;
&lt;br /&gt;
== Abonnements et génération automatique ==&lt;br /&gt;
&lt;br /&gt;
* Abonnements mensuels, bimestriels, trimestriels, semestriels ou annuels, facturés en début ou en fin de période, avec date de fin facultative.&lt;br /&gt;
* Factures créées, validées et mises en PDF toutes seules, le mois ou la période écrits dans les libellés (balise &amp;lt;code&amp;gt;__AF_PERIOD__&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;Jamais deux fois la même facture&#039;&#039;&#039; : une seule facture par abonnement et par période, garanti par une clé unique en base.&lt;br /&gt;
* Fonctionne avec ou sans tâche planifiée : sans cron, les factures dues sont générées pendant la navigation.&lt;br /&gt;
* &#039;&#039;&#039;Auteur des factures au choix&#039;&#039;&#039; : un réglage nomme le compte qui signe les factures générées, quel que soit le déclencheur.&lt;br /&gt;
* &#039;&#039;&#039;Jour de facturation au choix&#039;&#039;&#039; : la facture est datée le jour du mois que vous voulez (1 à 28), en début ou en fin de période.&lt;br /&gt;
* &#039;&#039;&#039;État de l&#039;automatisation&#039;&#039;&#039; affiché sur le tableau de bord, avec la ligne de crontab exacte ; génération à la demande, ligne par ligne ou pour tout ce qui est dû.&lt;br /&gt;
* &#039;&#039;&#039;Toujours un PDF&#039;&#039;&#039; : si le modèle PDF hérité de la facture modèle n&#039;est plus disponible, le module bascule sur le modèle par défaut des factures puis sur un modèle actif, et le note au journal.&lt;br /&gt;
&lt;br /&gt;
== Trois façons de créer un abonnement ==&lt;br /&gt;
&lt;br /&gt;
* De zéro, en une fiche : une phrase de contrôle annonce la date de la première facture et la période couverte avant de valider.&lt;br /&gt;
* Depuis une facture existante : le module repère la période dans les libellés (« novembre 2026 », « du 01/11 au 30/11 »…) et la rend dynamique.&lt;br /&gt;
* Avec l’&#039;&#039;&#039;analyseur&#039;&#039;&#039;, qui retrouve dans vos factures manuelles les séries récurrentes et les convertit en un clic.&lt;br /&gt;
&lt;br /&gt;
== Impayés et relances ==&lt;br /&gt;
&lt;br /&gt;
* Balance âgée : l&#039;encours par tranche d&#039;ancienneté, et pour chaque facture le reste dû réel (règlements, avoirs et acomptes déduits).&lt;br /&gt;
* Relances par paliers (30, 60 et 180 jours par défaut), chacune avec son modèle d&#039;e-mail.&lt;br /&gt;
* &#039;&#039;&#039;Aucune relance ne part sans votre validation&#039;&#039;&#039; : le module propose, vous décidez.&lt;br /&gt;
* Relances groupées depuis l&#039;écran des impayés et sélection multiple dans le journal ; sujet et message de chaque palier modifiables dans les réglages.&lt;br /&gt;
&lt;br /&gt;
== Conditions de règlement maîtrisées ==&lt;br /&gt;
&lt;br /&gt;
* Par défaut, celles du client ; un choix propre à chaque abonnement ; ou une condition imposée à toutes les factures générées depuis les réglages.&lt;br /&gt;
* &#039;&#039;&#039;Échéance à jour fixe&#039;&#039;&#039; : « le 10 du mois » ou tout autre jour de 1 à 28, choisi directement dans la liste. L&#039;échéance tombe ce jour-là dans le mois de la facture, ou le mois suivant si le jour est passé.&lt;br /&gt;
* L&#039;échéance est recalculée avant la validation : le PDF et la balance âgée portent la bonne date.&lt;br /&gt;
&lt;br /&gt;
== Envoi au client et journal ==&lt;br /&gt;
&lt;br /&gt;
* Envoi de la facture par e-mail avec vos modèles, après votre relecture ou automatiquement, au choix. Rien ne part si la facture est en brouillon ; un PDF manquant est généré au moment de l&#039;envoi.&lt;br /&gt;
* Journal complet : chaque facture générée ou en erreur, chaque relance proposée, envoyée ou écartée.&lt;br /&gt;
* Une facture sans PDF est signalée « PDF manquant » dans le journal et sur la fiche de l&#039;abonnement, avec un bouton « Générer le PDF ».&lt;br /&gt;
&lt;br /&gt;
== Construit sur le moteur natif ==&lt;br /&gt;
Chaque abonnement s&#039;appuie sur une facture modèle native de Dolibarr : lignes, montants, TVA et conditions restent gérés par le cœur, et les modèles restent visibles même si le module est désactivé.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez AutoFacture. La tâche planifiée est créée à l&#039;activation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module. Abonnements, journal, réglages et droits sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.6.2&#039;&#039;&#039; (3 octobre 2026) : l&#039;icône du module s&#039;affiche de nouveau dans la liste des modules de Dolibarr.&lt;br /&gt;
* &#039;&#039;&#039;1.6.1&#039;&#039;&#039; (2 octobre 2026) : les menus du module s&#039;affichent de nouveau sur Dolibarr 23 et 24.&lt;br /&gt;
* &#039;&#039;&#039;1.6.0&#039;&#039;&#039; (2 octobre 2026) : auteur des factures au choix, jour de facturation, état de l&#039;automatisation et génération à la demande, relances groupées et messages de relance modifiables ; avec certains modules de modèles PDF, seule la première facture d&#039;un passage avait son PDF, corrigé.&lt;br /&gt;
* &#039;&#039;&#039;1.5.0&#039;&#039;&#039; (2 octobre 2026) : échéance à jour fixe du mois (« le 10 du mois »…), choisie dans les réglages ou sur la fiche de l&#039;abonnement ; la ligne « Conditions de règlement » apparaît de nouveau sur le PDF des factures générées.&lt;br /&gt;
* &#039;&#039;&#039;1.4.1&#039;&#039;&#039; (2 octobre 2026) : les factures générées avec un modèle PDF devenu indisponible restaient sans PDF ; génération de secours, PDF créé à l&#039;envoi du mail, bouton de rattrapage dans le journal.&lt;br /&gt;
* &#039;&#039;&#039;1.4.0&#039;&#039;&#039; (2 octobre 2026) : conditions de règlement réglables (par abonnement ou imposées), nouvel identifiant 194157.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 22, 23 et 24).&lt;br /&gt;
* PHP 7.0 et plus, MySQL / MariaDB.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-AutoFacture-dashboard.png|Tableau de bord : abonnements, revenu mensuel équivalent, prochaines factures, génération à la demande&lt;br /&gt;
File:TheoPequignot-AutoFacture-card.png|Fiche d&#039;un abonnement&lt;br /&gt;
File:TheoPequignot-AutoFacture-create.png|Création d&#039;un abonnement, phrase de contrôle et jour de facturation&lt;br /&gt;
File:TheoPequignot-AutoFacture-analyzer.png|Analyseur : séries récurrentes retrouvées dans les factures manuelles&lt;br /&gt;
File:TheoPequignot-AutoFacture-unpaid.png|Impayés : balance âgée et relances groupées&lt;br /&gt;
File:TheoPequignot-AutoFacture-journal.png|Journal des générations et file d&#039;envoi&lt;br /&gt;
File:TheoPequignot-AutoFacture-reminders.png|Relances à valider, sélection multiple&lt;br /&gt;
File:TheoPequignot-AutoFacture-automation.png|État de l&#039;automatisation et génération immédiate&lt;br /&gt;
File:TheoPequignot-AutoFacture-author.png|Auteur des factures générées&lt;br /&gt;
File:TheoPequignot-AutoFacture-payment-terms.png|Conditions de règlement : celles de chaque abonnement, une condition du dictionnaire, ou un jour fixe du mois&lt;br /&gt;
File:TheoPequignot-AutoFacture-dunning.png|Paliers de relance, sujet et message modifiables&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/autofacture modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_PDF_Protect&amp;diff=67801</id>
		<title>Module PDF Protect</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_PDF_Protect&amp;diff=67801"/>
		<updated>2026-10-03T18:12:21Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module PDF Protect FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-PDFProtect-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194156&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 5.13.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 14 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3102 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/pdfprotect?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A quote sent as a PDF can be copied, edited and sent back under another name. PDF Protect automatically locks quote and invoice PDFs as soon as Dolibarr generates them.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Automatic protection&#039;&#039;&#039; on every PDF generation, for quotes, invoices or both.&lt;br /&gt;
* &#039;&#039;&#039;Opens freely by default&#039;&#039;&#039;: your customer opens the document with a double-click, but editing, extraction and assembly are blocked. Printing and text copying are allowed or not, your choice.&lt;br /&gt;
* &#039;&#039;&#039;Optional opening password&#039;&#039;&#039;: the PDF is then truly encrypted and unreadable without it.&lt;br /&gt;
* &#039;&#039;&#039;Works with online signature&#039;&#039;&#039;: your customer can sign the protected quote online, then both the original and the signed PDF are protected again.&lt;br /&gt;
* &#039;&#039;&#039;Signature placed in the box&#039;&#039;&#039;: your customer&#039;s online signature lands in the &amp;quot;Bon pour accord&amp;quot; box of the quote, even when that box moves up or down from one document to the next (InfraS PackPlus templates included), and the &amp;quot;Signature: date - name&amp;quot; line stays readable. When no box is recognized, Dolibarr keeps its usual position.&lt;br /&gt;
* &#039;&#039;&#039;Works with bulk merge&#039;&#039;&#039;: the &amp;quot;Generate document&amp;quot; bulk action on quote and invoice lists keeps working.&lt;br /&gt;
* Audit log of every protected document, built-in settings page.&lt;br /&gt;
&lt;br /&gt;
== Nothing to install on the server ==&lt;br /&gt;
The built-in engine (AES-256) runs everywhere, including the official Dolibarr Docker image. If your server has qpdf, pikepdf, GhostScript or pypdf, the module can use them too.&lt;br /&gt;
&lt;br /&gt;
== Good to know ==&lt;br /&gt;
&lt;br /&gt;
* Without an opening password, copy and edit restrictions are honored by common readers (Adobe Acrobat, Foxit…), but a specialised tool can remove them. For real confidentiality, set an opening password.&lt;br /&gt;
* Factur-X PDFs (with an embedded XML file) are protected with qpdf or pikepdf; with the built-in engine they are left as they are so the XML is not lost.&lt;br /&gt;
* An encrypted PDF is no longer PDF/A compliant.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip, enable PDF Protect and tick the documents to protect.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 14 to 24 (verified on 16, 23 and 24, including Docker).&lt;br /&gt;
* PHP 7.4 to 8.4, MySQL / MariaDB.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-PDFProtect-setup.png|Settings: documents, permissions, engine&lt;br /&gt;
File:TheoPequignot-PDFProtect-password-prompt.png|A quote protected with an opening password&lt;br /&gt;
File:TheoPequignot-PDFProtect-passwords.png|Opening and edit passwords&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/pdfprotect?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_PDF_Protect_FR&amp;diff=67800</id>
		<title>Module PDF Protect FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_PDF_Protect_FR&amp;diff=67800"/>
		<updated>2026-10-03T18:12:21Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_PDF_Protect --&amp;gt;&lt;br /&gt;
[[en:Module_PDF_Protect]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-PDFProtect-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194156&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 5.13.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 14 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3102 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/pdfprotect modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un devis envoyé en PDF peut être copié, retouché et renvoyé sous un autre nom. PDF Protect verrouille automatiquement les PDF de devis et de factures dès que Dolibarr les génère.&lt;br /&gt;
&lt;br /&gt;
== Ce que fait le module ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Protection automatique&#039;&#039;&#039; à chaque génération de PDF, pour les devis, les factures ou les deux.&lt;br /&gt;
* &#039;&#039;&#039;Ouverture libre par défaut&#039;&#039;&#039; : votre client ouvre le document d&#039;un double-clic, mais la modification, l&#039;extraction et l&#039;assemblage sont bloqués. L&#039;impression et la copie de texte sont autorisées ou non, à votre choix.&lt;br /&gt;
* &#039;&#039;&#039;Mot de passe d&#039;ouverture en option&#039;&#039;&#039; : le PDF est alors réellement chiffré et illisible sans le mot de passe.&lt;br /&gt;
* &#039;&#039;&#039;Signature en ligne compatible&#039;&#039;&#039; : le devis protégé peut être signé en ligne par votre client, puis le PDF d&#039;origine et le PDF signé sont protégés à nouveau.&lt;br /&gt;
* &#039;&#039;&#039;Signature posée dans le cadre&#039;&#039;&#039; : la signature en ligne de votre client est placée dans le cadre « Bon pour accord » du devis, même quand ce cadre monte ou descend selon le document (modèles InfraS PackPlus compris), et la ligne « Signature : date - nom » reste lisible. Sans cadre reconnu, Dolibarr garde sa position habituelle.&lt;br /&gt;
* &#039;&#039;&#039;Fusion en masse compatible&#039;&#039;&#039; : l&#039;action « Générer document » des listes de devis et de factures continue de fonctionner.&lt;br /&gt;
* Journal d&#039;audit de chaque document protégé, page de configuration intégrée.&lt;br /&gt;
&lt;br /&gt;
== Aucune installation sur le serveur ==&lt;br /&gt;
Le moteur intégré (AES-256) fonctionne partout, y compris dans l&#039;image Docker officielle de Dolibarr. Si votre serveur dispose de qpdf, pikepdf, GhostScript ou pypdf, le module sait aussi les utiliser.&lt;br /&gt;
&lt;br /&gt;
== À savoir ==&lt;br /&gt;
&lt;br /&gt;
* Sans mot de passe d&#039;ouverture, les restrictions de copie et de modification sont respectées par les lecteurs courants (Adobe Acrobat, Foxit…), mais un outil spécialisé peut les retirer. Pour une confidentialité réelle, définissez un mot de passe d&#039;ouverture.&lt;br /&gt;
* Les PDF Factur-X (avec fichier XML embarqué) sont protégés avec qpdf ou pikepdf ; avec le moteur intégré, ils sont laissés tels quels pour ne pas perdre le XML.&lt;br /&gt;
* Un PDF chiffré n&#039;est plus conforme PDF/A.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip, activez PDF Protect puis cochez les documents à protéger.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 14 à 24 (vérifié sur 16, 23 et 24, y compris en Docker).&lt;br /&gt;
* PHP 7.4 à 8.4, MySQL / MariaDB.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-PDFProtect-setup.png|Configuration : documents, permissions, moteur&lt;br /&gt;
File:TheoPequignot-PDFProtect-password-prompt.png|Un devis protégé par un mot de passe d&#039;ouverture&lt;br /&gt;
File:TheoPequignot-PDFProtect-passwords.png|Mots de passe d&#039;ouverture et de modification&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/pdfprotect modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_DocFinder&amp;diff=67799</id>
		<title>Module DocFinder</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_DocFinder&amp;diff=67799"/>
		<updated>2026-10-03T18:12:21Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module DocFinder FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-DocFinder-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194154&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.8.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3207 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/docfinder?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The invoice with the lift pump&amp;quot;, &amp;quot;that €2,400 quote for Martin &amp;amp; Co&amp;quot;: in Dolibarr, finding that kind of document means stacking filters and opening records one by one. The native search doesn&#039;t look inside line items or notes. DocFinder adds a single search page that does.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Searches every useful field&#039;&#039;&#039;: document number, customer name, line descriptions, product reference and label, public and private notes. Each field can be switched on or off.&lt;br /&gt;
* &#039;&#039;&#039;Search by phone, email or contact&#039;&#039;&#039;: type a number as you have it (&amp;quot;06 12 34 56 78&amp;quot;, &amp;quot;06.12.34.56.78&amp;quot;, &amp;quot;+33 6…&amp;quot;) or a contact name, and find the customer&#039;s quotes and invoices. The matching contact is shown under the customer name.&lt;br /&gt;
* &#039;&#039;&#039;Several words&#039;&#039;&#039;: &amp;quot;dupont backup&amp;quot; finds the documents that contain both, in any field.&lt;br /&gt;
* &#039;&#039;&#039;Amount filter&#039;&#039;&#039;: minimum and maximum, excl. or incl. tax, alone or combined with a keyword.&lt;br /&gt;
* &#039;&#039;&#039;Matching lines&#039;&#039;&#039; shown under each document, keyword highlighted, with quantity and net total. You see why a result comes up.&lt;br /&gt;
* &#039;&#039;&#039;Real status&#039;&#039;&#039; of each document, including partially paid invoices.&lt;br /&gt;
* &#039;&#039;&#039;Clickable examples&#039;&#039;&#039; taken from your recent data when the search is empty.&lt;br /&gt;
* Keyboard shortcut &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; to jump back to the search, one click to open the record.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
* Scope (quotes, invoices or both), searched fields, tax base, line display, maximum number of results.&lt;br /&gt;
* A &amp;quot;User access&amp;quot; card to grant or revoke the permission without opening each user card.&lt;br /&gt;
* Accent color of your choice, with live preview.&lt;br /&gt;
&lt;br /&gt;
== Security and comfort ==&lt;br /&gt;
&lt;br /&gt;
* Each user only sees the documents they are allowed to read. Multicompany supported.&lt;br /&gt;
* 100% local: no dependency, no network call. Isolated CSS, your theme is left alone.&lt;br /&gt;
* Fully keyboard-usable, screen-reader labels, WCAG AA contrasts.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable DocFinder. The entry shows up in the top menu, ready to use.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 22, 23 and 24).&lt;br /&gt;
* PHP 7.2 and above, MySQL / MariaDB.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-DocFinder-search.png|Keyword search with matching lines highlighted&lt;br /&gt;
File:TheoPequignot-DocFinder-amount.png|Amount filter&lt;br /&gt;
File:TheoPequignot-DocFinder-setup.png|Settings page&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/docfinder?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_DocFinder_FR&amp;diff=67798</id>
		<title>Module DocFinder FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_DocFinder_FR&amp;diff=67798"/>
		<updated>2026-10-03T18:12:20Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_DocFinder --&amp;gt;&lt;br /&gt;
[[en:Module_DocFinder]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-DocFinder-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194154&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.8.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3207 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/docfinder modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
« La facture avec la pompe de relevage », « le devis à 2 400 € du cabinet Martin » : dans Dolibarr, retrouver ce genre de document veut dire empiler les filtres et ouvrir les fiches une par une. La recherche native ne regarde ni dans les lignes ni dans les notes. DocFinder ajoute une page de recherche unique qui le fait.&lt;br /&gt;
&lt;br /&gt;
== Ce que fait le module ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Recherche dans tous les champs utiles&#039;&#039;&#039; : numéro du document, nom du client, désignation des lignes, référence et libellé produit, notes publiques et privées. Chaque champ s&#039;active ou non.&lt;br /&gt;
* &#039;&#039;&#039;Recherche par téléphone, e-mail ou contact&#039;&#039;&#039; : tapez un numéro tel que vous l&#039;avez (« 06 12 34 56 78 », « 06.12.34.56.78 », « +33 6… ») ou le nom d&#039;un contact, et retrouvez les devis et factures du client. Le contact qui correspond s&#039;affiche sous le nom du client.&lt;br /&gt;
* &#039;&#039;&#039;Plusieurs mots&#039;&#039;&#039; : « dupont sauvegarde » trouve les documents qui contiennent les deux, dans n&#039;importe quel champ.&lt;br /&gt;
* &#039;&#039;&#039;Filtre par montant&#039;&#039;&#039; : minimum et maximum, sur le HT ou le TTC, seul ou combiné au mot-clé.&lt;br /&gt;
* &#039;&#039;&#039;Les lignes qui correspondent&#039;&#039;&#039; s&#039;affichent sous chaque document, mot-clé surligné, avec quantité et total HT. Vous voyez pourquoi un résultat sort.&lt;br /&gt;
* &#039;&#039;&#039;Statut réel&#039;&#039;&#039; de chaque document, y compris les factures partiellement payées.&lt;br /&gt;
* &#039;&#039;&#039;Exemples cliquables&#039;&#039;&#039; tirés de vos données récentes quand la recherche est vide.&lt;br /&gt;
* Raccourci clavier &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; pour revenir à la recherche, un clic pour ouvrir la fiche.&lt;br /&gt;
&lt;br /&gt;
== Réglages ==&lt;br /&gt;
&lt;br /&gt;
* Périmètre (devis, factures ou les deux), champs interrogés, base HT ou TTC, affichage des lignes, nombre maximum de résultats.&lt;br /&gt;
* Carte « Accès utilisateurs » pour accorder ou retirer le droit sans ouvrir chaque fiche utilisateur.&lt;br /&gt;
* Couleur d&#039;accent au choix, avec aperçu en direct.&lt;br /&gt;
&lt;br /&gt;
== Sécurité et confort ==&lt;br /&gt;
&lt;br /&gt;
* Chaque utilisateur ne voit que les documents qu&#039;il a le droit de lire. Multi-société géré.&lt;br /&gt;
* 100 % local : aucune dépendance, aucun appel réseau. CSS isolé, votre thème n&#039;est pas touché.&lt;br /&gt;
* Utilisable entièrement au clavier, libellés pour lecteurs d&#039;écran, contrastes WCAG AA.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip et activez DocFinder. L&#039;entrée apparaît dans le menu du haut, c&#039;est prêt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 22, 23 et 24).&lt;br /&gt;
* PHP 7.2 et plus, MySQL / MariaDB.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-DocFinder-search.png|Recherche par mot-clé, lignes trouvées surlignées&lt;br /&gt;
File:TheoPequignot-DocFinder-amount.png|Filtre par montant&lt;br /&gt;
File:TheoPequignot-DocFinder-setup.png|Page de réglages&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/docfinder modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Recycle_Bin&amp;diff=67797</id>
		<title>Module Recycle Bin</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Recycle_Bin&amp;diff=67797"/>
		<updated>2026-10-03T18:12:20Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Corbeille (Recycle Bin)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194153&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3321 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/recyclebin?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In Dolibarr, deleting a third party, a product or an invoice is permanent. The only way back is restoring a full database backup, and the whole team loses the day&#039;s work. This module sets the deleted record aside instead of erasing it, and puts it back in one click.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Where to find the recycle bin? ==&lt;br /&gt;
Three ways in, from every page: the &amp;quot;Undo this deletion&amp;quot; link in the message after a deletion, the bin icon at the top right with the number of recoverable items, and the Tools → Recycle bin menu. A tab in the top bar can be added in the module settings (off by default since 1.2.2).&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-where.png|720px]]&lt;br /&gt;
&lt;br /&gt;
== What is protected ==&lt;br /&gt;
&lt;br /&gt;
* Ten record types: third parties, contacts, products and services, quotes, sales orders, customer invoices, projects, tasks, interventions, attached files. Each type can be switched on separately.&lt;br /&gt;
* The copy runs in the same transaction as the deletion: if it fails, the deletion is cancelled. Nothing goes without a copy.&lt;br /&gt;
&lt;br /&gt;
== One-click restore ==&lt;br /&gt;
&lt;br /&gt;
* The record comes back with its lines, extra fields, categories, links to other objects and attached files, under its original ID when still free.&lt;br /&gt;
* A dry run replays every check without touching the database: reference available, linked objects present, files intact, permissions. Conflicts show up before you confirm.&lt;br /&gt;
* If a linked object is also in the bin, it is restored in cascade.&lt;br /&gt;
&lt;br /&gt;
== Always within reach ==&lt;br /&gt;
&lt;br /&gt;
* An &amp;quot;Undo this deletion&amp;quot; link in the message that follows the deletion.&lt;br /&gt;
* The bin icon at the top right of every page, with the number of recoverable items.&lt;br /&gt;
* A bin you can filter by type, user and date, plus a dashboard.&lt;br /&gt;
&lt;br /&gt;
== Safeguards ==&lt;br /&gt;
&lt;br /&gt;
* Retention per record type (30 days by default) and a daily automatic purge.&lt;br /&gt;
* Bulk deletions blocked or requiring a second confirmation above a threshold (25 by default).&lt;br /&gt;
* Log of every deletion, restore and purge (date, user, IP), exportable to CSV.&lt;br /&gt;
* Access rights per user and per group, set directly from the module settings.&lt;br /&gt;
&lt;br /&gt;
== What it does not do ==&lt;br /&gt;
&lt;br /&gt;
* It restores the invoice, not its payments, accounting entries or stock movements. The screen says so before you confirm.&lt;br /&gt;
* It cannot see deletions made in direct SQL or by a module that bypasses Dolibarr triggers. The settings page lists such installed modules by name.&lt;br /&gt;
* It is a recycle bin, not a version history: it captures on deletion, not on every change.&lt;br /&gt;
* Not covered yet: supplier documents, members, shipments, contracts, expense reports, tickets.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable Recycle Bin. Two tables added, no core file modified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24, tested screen by screen on every version from 16 to 23, and verified on 24.&lt;br /&gt;
* PHP 7.4 to 8.3, MySQL / MariaDB and PostgreSQL.&lt;br /&gt;
* Multi-company: every screen, counter, export and purge is scoped to the entity.&lt;br /&gt;
* 100% local: no external service, nothing leaves your server. English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-RecycleBin-items.png|Deleted items waiting in the bin&lt;br /&gt;
File:TheoPequignot-RecycleBin-restore-check.png|Check before restoring, nothing is written&lt;br /&gt;
File:TheoPequignot-RecycleBin-dashboard.png|Recycle bin dashboard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.2.3&#039;&#039;&#039; (3 October 2026): on Dolibarr 16, the &amp;quot;view&amp;quot; icon of the recycle bin list was shown as a broken image.&lt;br /&gt;
* &#039;&#039;&#039;1.2.2&#039;&#039;&#039; (2 October 2026): the top bar tab becomes optional (the icon at the top right leads to the same screens), accented names fixed in messages.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/recyclebin?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Corbeille_(Recycle_Bin)&amp;diff=67796</id>
		<title>Module Corbeille (Recycle Bin)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Corbeille_(Recycle_Bin)&amp;diff=67796"/>
		<updated>2026-10-03T18:12:20Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Recycle_Bin --&amp;gt;&lt;br /&gt;
[[en:Module_Recycle_Bin]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194153&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3321 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/recyclebin modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dans Dolibarr, supprimer un tiers, un produit ou une facture est définitif. Le seul retour en arrière est la restauration d&#039;une sauvegarde complète de la base, et toute l&#039;équipe perd le travail de la journée. Ce module met l&#039;élément supprimé de côté au lieu de l&#039;effacer, et le remet en place en un clic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Où trouver la corbeille ? ==&lt;br /&gt;
Trois accès sur toutes les pages : le lien « Annuler cette suppression » dans le message qui suit une suppression, l&#039;icône corbeille en haut à droite avec le nombre d&#039;éléments récupérables, et le menu Outils → Corbeille. Un onglet dans la barre du haut peut être ajouté dans les réglages du module (désactivé par défaut depuis la 1.2.2).&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-where.png|720px]]&lt;br /&gt;
&lt;br /&gt;
== Ce qui est protégé ==&lt;br /&gt;
&lt;br /&gt;
* Dix types d&#039;éléments : tiers, contacts, produits et services, devis, commandes clients, factures clients, projets, tâches, interventions, fichiers joints. Chaque type s&#039;active séparément.&lt;br /&gt;
* La copie se fait dans la même transaction que la suppression : si elle échoue, la suppression est annulée. Rien ne disparaît sans copie.&lt;br /&gt;
&lt;br /&gt;
== Restauration en un clic ==&lt;br /&gt;
&lt;br /&gt;
* L&#039;élément revient avec ses lignes, ses champs supplémentaires, ses catégories, ses liens vers d&#039;autres objets et ses fichiers joints, sous son identifiant d&#039;origine quand il est libre.&lt;br /&gt;
* Une vérification préalable rejoue tous les contrôles sans toucher à la base : référence disponible, objets liés présents, fichiers intacts, droits. Les conflits s&#039;affichent avant confirmation.&lt;br /&gt;
* Si un objet lié est lui aussi dans la corbeille, la restauration se fait en cascade.&lt;br /&gt;
&lt;br /&gt;
== Toujours à portée de main ==&lt;br /&gt;
&lt;br /&gt;
* Un lien « Annuler cette suppression » dans le message qui suit la suppression.&lt;br /&gt;
* L&#039;icône corbeille en haut à droite de chaque page, avec le nombre d&#039;éléments récupérables.&lt;br /&gt;
* Une corbeille filtrable par type, par utilisateur et par date, et un tableau de bord.&lt;br /&gt;
&lt;br /&gt;
== Garde-fous ==&lt;br /&gt;
&lt;br /&gt;
* Durée de conservation par type (30 jours par défaut) et purge automatique quotidienne.&lt;br /&gt;
* Suppressions en masse bloquées ou soumises à une seconde confirmation au-delà d&#039;un seuil (25 par défaut).&lt;br /&gt;
* Journal de chaque suppression, restauration et purge (date, utilisateur, IP), exportable en CSV.&lt;br /&gt;
* Droits d&#039;accès réglables par utilisateur et par groupe directement depuis les réglages du module.&lt;br /&gt;
&lt;br /&gt;
== Ce que le module ne fait pas ==&lt;br /&gt;
&lt;br /&gt;
* Il restaure la facture, pas ses paiements, ses écritures comptables ni ses mouvements de stock. L&#039;écran le rappelle avant validation.&lt;br /&gt;
* Il ne voit pas les suppressions faites en SQL direct ou par un module qui contourne les triggers Dolibarr. La page de réglages liste les modules installés concernés.&lt;br /&gt;
* C&#039;est une corbeille, pas un historique de versions : il capture à la suppression, pas à chaque modification.&lt;br /&gt;
* Pas encore couverts : documents fournisseurs, adhérents, expéditions, contrats, notes de frais, tickets.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez Recycle Bin. Deux tables ajoutées, aucun fichier du cœur modifié.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24, testé écran par écran sur chaque version de 16 à 23, et vérifié sur 24.&lt;br /&gt;
* PHP 7.4 à 8.3, MySQL / MariaDB et PostgreSQL.&lt;br /&gt;
* Multi-société : chaque écran, compteur, export et purge est propre à l&#039;entité.&lt;br /&gt;
* 100 % local : aucun service externe, rien ne sort de votre serveur. Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-RecycleBin-items.png|Éléments supprimés en attente dans la corbeille&lt;br /&gt;
File:TheoPequignot-RecycleBin-restore-check.png|Vérification avant restauration, sans rien écrire&lt;br /&gt;
File:TheoPequignot-RecycleBin-dashboard.png|Tableau de bord de la corbeille&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.2.3&#039;&#039;&#039; (3 octobre 2026) : sur Dolibarr 16, l&#039;icône « voir » de la liste de la corbeille s&#039;affichait comme une image cassée.&lt;br /&gt;
* &#039;&#039;&#039;1.2.2&#039;&#039;&#039; (2 octobre 2026) : l&#039;onglet de la barre du haut devient facultatif (l&#039;icône en haut à droite mène aux mêmes écrans), noms accentués corrigés dans les messages.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/recyclebin modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Login_Guard&amp;diff=67795</id>
		<title>Module Login Guard</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Login_Guard&amp;diff=67795"/>
		<updated>2026-10-03T18:12:19Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Login Guard FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-LoginGuard-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194152&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.8.1&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3320 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/loginguard?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dolibarr&#039;s login page is exposed to the Internet and does not limit password attempts. Login Guard protects it and tells you as soon as something unusual happens on an account.&lt;br /&gt;
&lt;br /&gt;
== Progressive brute-force blocking ==&lt;br /&gt;
&lt;br /&gt;
* After several wrong passwords, the IP address is paused: 5 minutes the first time, longer at each repeat, up to the ceiling you set.&lt;br /&gt;
* Allow-list of addresses and ranges (IPv4 and IPv6) with an &amp;quot;add my current IP&amp;quot; button: you never lock yourself out.&lt;br /&gt;
* Current blocks screen with manual unblocking.&lt;br /&gt;
&lt;br /&gt;
== Suspicious-login alerts ==&lt;br /&gt;
&lt;br /&gt;
* Login from a new device or a new country: the user gets an email with the city, IP address, browser and a &#039;&#039;&#039;map of the area&#039;&#039;&#039;. Optional copy to an administrator.&lt;br /&gt;
* Each user&#039;s first login is learned silently: no false alarm on day one.&lt;br /&gt;
* &#039;&#039;&#039;Connection source&#039;&#039;&#039;: network operator and network type (fixed line, mobile, hosting/VPN), so you can tell at a glance whether the displayed city can be trusted.&lt;br /&gt;
&lt;br /&gt;
== Login map and journal ==&lt;br /&gt;
&lt;br /&gt;
* Interactive world map: zoom, pan, click a point to see the accounts and IP addresses behind it.&lt;br /&gt;
* Journal of every attempt (date, account, IP, country, browser), filterable, sortable, CSV export, purged automatically after the retention you choose (GDPR).&lt;br /&gt;
* &amp;quot;Declared places&amp;quot;: set the true position of an address range (office, site, VPN); it overrides public databases.&lt;br /&gt;
* Security dashboard.&lt;br /&gt;
&lt;br /&gt;
== Passwords and sessions ==&lt;br /&gt;
&lt;br /&gt;
* Password policy: minimum length, character classes, no reuse of previous passwords. Optional expiry with advance notice by email.&lt;br /&gt;
* Active sessions: who is connected right now, one-click logout of any session, optional idle logout.&lt;br /&gt;
&lt;br /&gt;
== Nothing leaves your server ==&lt;br /&gt;
Geolocation uses a database installed locally in one click (free DB-IP Lite, or MaxMind GeoLite2 with your key). Email maps are drawn on your server. No API key, no subscription, no IP address sent to a third party.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable the module. Protection starts right away with safe defaults; the more intrusive features (password expiry, idle logout) ship disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 18, 20, 22, 23 and 24).&lt;br /&gt;
* PHP 7.4 to 8.3, MySQL / MariaDB and PostgreSQL. GD extension for maps in emails.&lt;br /&gt;
* Multi-company: each entity only sees its own activity.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-LoginGuard-map.png|Interactive login map&lt;br /&gt;
File:TheoPequignot-LoginGuard-alert-email.png|Alert email on a login from a new country&lt;br /&gt;
File:TheoPequignot-LoginGuard-dashboard.png|Security dashboard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/loginguard?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Login_Guard_FR&amp;diff=67794</id>
		<title>Module Login Guard FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Login_Guard_FR&amp;diff=67794"/>
		<updated>2026-10-03T18:12:19Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Login_Guard --&amp;gt;&lt;br /&gt;
[[en:Module_Login_Guard]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-LoginGuard-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194152&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.8.1&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3320 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/loginguard modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La page de connexion de Dolibarr est exposée sur Internet et ne limite pas les essais de mots de passe. Login Guard la protège et vous prévient dès qu&#039;il se passe quelque chose d&#039;inhabituel sur un compte.&lt;br /&gt;
&lt;br /&gt;
== Anti-brute-force progressif ==&lt;br /&gt;
&lt;br /&gt;
* Après plusieurs mauvais mots de passe, l&#039;adresse IP est mise en pause : 5 minutes la première fois, plus longtemps à chaque récidive, jusqu&#039;au plafond que vous fixez.&lt;br /&gt;
* Liste blanche d&#039;adresses et de plages (IPv4 et IPv6) avec un bouton « ajouter mon IP actuelle » : vous ne vous bloquez jamais vous-même.&lt;br /&gt;
* Écran des blocages en cours, avec déblocage manuel.&lt;br /&gt;
&lt;br /&gt;
== Alertes de connexion suspecte ==&lt;br /&gt;
&lt;br /&gt;
* Connexion depuis un nouvel appareil ou un nouveau pays : l&#039;utilisateur reçoit un e-mail avec la ville, l&#039;adresse IP, le navigateur et une &#039;&#039;&#039;carte de la zone&#039;&#039;&#039;. Copie possible à un administrateur.&lt;br /&gt;
* La première connexion de chacun est apprise en silence : aucune fausse alerte le premier jour.&lt;br /&gt;
* &#039;&#039;&#039;Source de connexion&#039;&#039;&#039; : opérateur (SFR, Free, Scaleway…) et type de réseau (fixe, mobile, hébergeur/VPN), pour juger d&#039;un coup d&#039;œil si la ville affichée est fiable.&lt;br /&gt;
&lt;br /&gt;
== Carte et journal des connexions ==&lt;br /&gt;
&lt;br /&gt;
* Carte du monde interactive : zoom, déplacement, clic sur un point pour voir les comptes et adresses IP derrière.&lt;br /&gt;
* Journal de chaque tentative (date, compte, IP, pays, navigateur), filtrable, triable, exportable en CSV, purgé automatiquement après la durée choisie (RGPD).&lt;br /&gt;
* « Lieux déclarés » : indiquez la vraie position d&#039;une plage d&#039;adresses (bureau, site, VPN), elle prime sur les bases publiques.&lt;br /&gt;
* Tableau de bord de sécurité.&lt;br /&gt;
&lt;br /&gt;
== Mots de passe et sessions ==&lt;br /&gt;
&lt;br /&gt;
* Politique de mots de passe : longueur minimale, types de caractères, interdiction de réutiliser les anciens. Expiration avec préavis par e-mail en option.&lt;br /&gt;
* Sessions actives : qui est connecté en ce moment, déconnexion d&#039;une session en un clic, déconnexion après inactivité en option.&lt;br /&gt;
&lt;br /&gt;
== Rien ne sort de votre serveur ==&lt;br /&gt;
La géolocalisation utilise une base installée localement en un clic (DB-IP Lite gratuite, ou MaxMind GeoLite2 avec votre clé). Les cartes des e-mails sont dessinées sur votre serveur. Pas de clé d&#039;API, pas d&#039;abonnement, aucune adresse IP envoyée à un tiers.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip et activez le module. La protection démarre tout de suite avec des réglages sûrs ; les fonctions plus contraignantes (expiration des mots de passe, déconnexion après inactivité) sont livrées désactivées.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 18, 20, 22, 23 et 24).&lt;br /&gt;
* PHP 7.4 à 8.3, MySQL / MariaDB et PostgreSQL. Extension GD pour les cartes dans les e-mails.&lt;br /&gt;
* Multi-société : chaque entité ne voit que sa propre activité.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-LoginGuard-map.png|Carte interactive des connexions&lt;br /&gt;
File:TheoPequignot-LoginGuard-alert-email.png|E-mail d&#039;alerte lors d&#039;une connexion depuis un nouveau pays&lt;br /&gt;
File:TheoPequignot-LoginGuard-dashboard.png|Tableau de bord de sécurité&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/loginguard modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Two-Factor_Authentication_(2FA)&amp;diff=67793</id>
		<title>Module Two-Factor Authentication (2FA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Two-Factor_Authentication_(2FA)&amp;diff=67793"/>
		<updated>2026-10-03T18:12:19Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Link to the full presentation and support of the module (purchase on the DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Double authentification (2FA)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-2FA-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194155&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 6.0.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=2899 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Presentation and support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/2fa?lang=en modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One stolen, guessed or reused password is enough to get into your Dolibarr, and with it into your customers, invoices and bank accounts. This module adds a second factor to the login: even with the right password, nobody gets in without the user&#039;s phone, key or fingerprint.&lt;br /&gt;
&lt;br /&gt;
== Three methods, each user picks ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TOTP app&#039;&#039;&#039;: 6-digit code renewed every 30 seconds. Works with Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Aegis, FreeOTP. The QR code is generated on your server, no third-party service.&lt;br /&gt;
* &#039;&#039;&#039;WebAuthn / FIDO2&#039;&#039;&#039;: security keys (YubiKey…) and built-in biometrics (Windows Hello, Touch ID, Face ID). One touch and you&#039;re in.&lt;br /&gt;
* &#039;&#039;&#039;Backup codes&#039;&#039;&#039;: 10 single-use codes, stored as bcrypt hashes, so a lost phone never locks anyone out.&lt;br /&gt;
&lt;br /&gt;
== Several devices per account ==&lt;br /&gt;
&lt;br /&gt;
* A user can register a phone, a security key and a laptop, and name each one.&lt;br /&gt;
* Users add, rename or revoke their own devices from the Security tab of their user card.&lt;br /&gt;
&lt;br /&gt;
== Hardened by design ==&lt;br /&gt;
&lt;br /&gt;
* TOTP secrets encrypted at rest (AES-256-CBC).&lt;br /&gt;
* Lockout after a configurable number of failures (5 by default).&lt;br /&gt;
* Anti-replay: an accepted code cannot be used twice.&lt;br /&gt;
* Audit log of every attempt: date, IP address, method, device, result.&lt;br /&gt;
* CSRF protection on every form and strict HTTP headers on the login pages.&lt;br /&gt;
&lt;br /&gt;
== For the administrator ==&lt;br /&gt;
&lt;br /&gt;
* 2FA optional or &#039;&#039;&#039;mandatory for everyone&#039;&#039;&#039;, with one checkbox.&lt;br /&gt;
* Users are prompted to set up 2FA at their next login.&lt;br /&gt;
* Dashboard: adoption rate, last 24 h activity, blocked IP addresses.&lt;br /&gt;
* Overview of all users, reset of an account&#039;s 2FA, forced re-enrollment.&lt;br /&gt;
* Responsive login pages that stay readable whatever the Dolibarr theme.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable the module. Tables are created automatically.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 18, 20, 22, 23 and 24).&lt;br /&gt;
* PHP 7.4 to 8.4, MySQL / MariaDB, OpenSSL extension.&lt;br /&gt;
* HTTPS required for WebAuthn / FIDO2 (a browser requirement).&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-2FA-verify.png|Verification screen after the password&lt;br /&gt;
File:TheoPequignot-2FA-devices.png|Devices and backup codes on the user card&lt;br /&gt;
File:TheoPequignot-2FA-admin.png|Administration: users, devices, mandatory 2FA&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.0.3&#039;&#039;&#039; (3 October 2026): &#039;&#039;&#039;security fix, update recommended on Dolibarr 16 to 18&#039;&#039;&#039;. On these versions the second factor was not asked: the check relied on a Dolibarr hook that only exists from version 19. It now goes through a hook present in every version and called on every request. On every version, document downloads and exports also require the verification.&lt;br /&gt;
* &#039;&#039;&#039;6.0.2&#039;&#039;&#039; (2 October 2026): administration page fixed, interface translated into French and English.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase. The full presentation of the module, its screenshots, frequently asked questions and the support form are on [https://modules.theopequignot.fr/modules/2fa?lang=en modules.theopequignot.fr]. Purchases are made on the DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Double_authentification_(2FA)&amp;diff=67792</id>
		<title>Module Double authentification (2FA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Double_authentification_(2FA)&amp;diff=67792"/>
		<updated>2026-10-03T18:12:16Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Lien vers la présentation complète et le support du module (achat sur le DoliStore)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Two-Factor_Authentication_(2FA) --&amp;gt;&lt;br /&gt;
[[en:Module_Two-Factor_Authentication_(2FA)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-2FA-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194155&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 6.0.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=2899 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|-&lt;br /&gt;
! Présentation et support&lt;br /&gt;
| [https://modules.theopequignot.fr/modules/2fa modules.theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un mot de passe volé, deviné ou réutilisé suffit pour entrer dans votre Dolibarr, et avec lui dans vos clients, vos factures et votre banque. Ce module ajoute un second facteur à la connexion : même avec le bon mot de passe, personne n&#039;entre sans le téléphone, la clé ou l&#039;empreinte de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Trois méthodes, au choix de chaque utilisateur ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Application TOTP&#039;&#039;&#039; : code à 6 chiffres renouvelé toutes les 30 secondes. Compatible Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Aegis, FreeOTP. Le QR code est généré sur votre serveur, sans service tiers.&lt;br /&gt;
* &#039;&#039;&#039;WebAuthn / FIDO2&#039;&#039;&#039; : clés de sécurité (YubiKey…) et biométrie intégrée (Windows Hello, Touch ID, Face ID). Une touche et c&#039;est fait.&lt;br /&gt;
* &#039;&#039;&#039;Codes de secours&#039;&#039;&#039; : 10 codes à usage unique, stockés hachés en bcrypt, pour ne jamais rester bloqué après la perte d&#039;un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Plusieurs appareils par compte ==&lt;br /&gt;
&lt;br /&gt;
* Un utilisateur peut enregistrer son téléphone, une clé de sécurité et son ordinateur portable, et les nommer.&lt;br /&gt;
* Il ajoute, renomme ou révoque ses appareils lui-même, depuis l&#039;onglet Sécurité de sa fiche.&lt;br /&gt;
&lt;br /&gt;
== Sécurité renforcée ==&lt;br /&gt;
&lt;br /&gt;
* Secrets TOTP chiffrés en base (AES-256-CBC).&lt;br /&gt;
* Blocage après un nombre d&#039;échecs réglable (5 par défaut).&lt;br /&gt;
* Anti-rejeu : un code accepté ne peut pas resservir.&lt;br /&gt;
* Journal d&#039;audit de chaque tentative : date, adresse IP, méthode, appareil, résultat.&lt;br /&gt;
* Protection CSRF sur tous les formulaires et en-têtes HTTP stricts sur les pages de connexion.&lt;br /&gt;
&lt;br /&gt;
== Pour l&#039;administrateur ==&lt;br /&gt;
&lt;br /&gt;
* 2FA facultative ou &#039;&#039;&#039;obligatoire pour tous&#039;&#039;&#039;, en une case à cocher.&lt;br /&gt;
* Invitation à configurer la 2FA dès la connexion suivante.&lt;br /&gt;
* Tableau de bord : taux d&#039;adoption, activité des dernières 24 h, adresses IP bloquées.&lt;br /&gt;
* Vue de tous les utilisateurs, réinitialisation de la 2FA d&#039;un compte, ré-enrôlement forcé.&lt;br /&gt;
* Pages de connexion responsive, lisibles quel que soit le thème Dolibarr.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez le module. Les tables sont créées automatiquement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 18, 20, 22, 23 et 24).&lt;br /&gt;
* PHP 7.4 à 8.4, MySQL / MariaDB, extension OpenSSL.&lt;br /&gt;
* HTTPS obligatoire pour WebAuthn / FIDO2 (exigence des navigateurs).&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-2FA-verify.png|Écran de vérification après le mot de passe&lt;br /&gt;
File:TheoPequignot-2FA-devices.png|Appareils et codes de secours sur la fiche utilisateur&lt;br /&gt;
File:TheoPequignot-2FA-admin.png|Administration : utilisateurs, appareils, 2FA obligatoire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.0.3&#039;&#039;&#039; (3 octobre 2026) : &#039;&#039;&#039;correction de sécurité, mise à jour recommandée sur Dolibarr 16 à 18&#039;&#039;&#039;. Sur ces versions, le second facteur n&#039;était pas demandé : le contrôle reposait sur un point d&#039;accroche de Dolibarr qui n&#039;existe qu&#039;à partir de la version 19. Il passe désormais par un point d&#039;accroche présent dans toutes les versions et appelé à chaque requête. Sur toutes les versions, les téléchargements de documents et les exports exigent eux aussi la vérification.&lt;br /&gt;
* &#039;&#039;&#039;6.0.2&#039;&#039;&#039; (2 octobre 2026) : page d&#039;administration corrigée, interface traduite en français et en anglais.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore. La présentation complète du module, ses captures, ses questions fréquentes et le formulaire de support sont sur [https://modules.theopequignot.fr/modules/2fa modules.theopequignot.fr]. L’achat se fait sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-BackupGuard-dashboard.png&amp;diff=67755</id>
		<title>File:TheoPequignot-BackupGuard-dashboard.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-BackupGuard-dashboard.png&amp;diff=67755"/>
		<updated>2026-10-03T00:49:33Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Theopequiii uploaded a new version of File:TheoPequignot-BackupGuard-dashboard.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr module BackupGuard by Theo Pequignot (https://theopequignot.fr).&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_BackupGuard_FR&amp;diff=67753</id>
		<title>Module BackupGuard FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_BackupGuard_FR&amp;diff=67753"/>
		<updated>2026-10-03T00:48:39Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_BackupGuard --&amp;gt;&lt;br /&gt;
[[en:Module_BackupGuard]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-BackupGuard-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194158&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 2.2.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3634 DoliStore] (BackupGuard)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La sauvegarde native de Dolibarr dépend de la commande mysqldump, que beaucoup d&#039;hébergements mutualisés et de conteneurs n&#039;ont pas ou refusent d&#039;exécuter (« Échec de l&#039;exécution de commande externe »). Elle n&#039;est pas planifiée, pas chiffrée, et reste sur le même serveur que les données. BackupGuard fait une sauvegarde complète, planifiée, chiffrée, vérifiée et envoyée ailleurs, sans rien installer sur le serveur.&lt;br /&gt;
&lt;br /&gt;
== Ce que fait le module ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Export de la base en pur PHP&#039;&#039;&#039; : toutes les tables Dolibarr sont lues dans un instantané InnoDB cohérent (REPEATABLE READ, START TRANSACTION WITH CONSISTENT SNAPSHOT) et écrites en flux dans un fichier SQL, 2 000 lignes à la fois, INSERT groupés d&#039;environ 1 Mo. Aucun binaire requis, mémoire constante. Si mysqldump existe et que l&#039;option est activée, il est utilisé à la place, avec repli automatique sur l&#039;export PHP.&lt;br /&gt;
* &#039;&#039;&#039;Documents inclus&#039;&#039;&#039; : le dossier des documents (DOL_DATA_ROOT) est ajouté fichier par fichier dans un zip, avec des exclusions configurables (par défaut : dossiers temp, cache, fichiers .tmp). Le zip contient database.sql, manifest.json et documents/.&lt;br /&gt;
* &#039;&#039;&#039;Chiffrement AES-256-CBC&#039;&#039;&#039; au format exact de la commande openssl enc (en-tête Salted__, PBKDF2-SHA256 10 000 itérations, PKCS7). Une sauvegarde se déchiffre sur n&#039;importe quelle machine avec : &amp;lt;code&amp;gt;openssl enc -d -aes-256-cbc -pbkdf2 -in sauvegarde.zip.enc -out sauvegarde.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039;, plusieurs à la fois : copie locale (toujours), WebDAV (Nextcloud, ownCloud, kDrive, Infomaniak, Apache ou nginx DAV), stockage S3 compatible (AWS, Scaleway, OVH, Backblaze B2, Wasabi, MinIO, signature AWS v4 en pur PHP), FTP/FTPS (extension PHP ftp) et SFTP (extension PHP ssh2). Envoi en flux par curl. Chaque destination a un bouton « Tester la connexion » qui écrit puis supprime un fichier témoin et affiche le message d&#039;erreur réel.&lt;br /&gt;
* &#039;&#039;&#039;Planification&#039;&#039;&#039; : tâche planifiée Dolibarr quotidienne à l&#039;heure choisie (le module Travaux planifiés est activé à l&#039;installation), script CLI pour un cron système, et une URL de déclenchement avec clé secrète pour les hébergements sans aucun cron. Bouton « Sauvegarder maintenant ». Un verrou empêche deux exécutions simultanées et se libère même après une erreur fatale.&lt;br /&gt;
* &#039;&#039;&#039;Rétention&#039;&#039;&#039; par destination : garder les N dernières sauvegardes (7 par défaut) plus la première de chaque mois pendant M mois (6 par défaut). La purge n&#039;a lieu qu&#039;après un envoi réussi sur la destination concernée.&lt;br /&gt;
* &#039;&#039;&#039;Vérification et journal&#039;&#039;&#039; : SHA-256 du fichier final, intégrité du zip, marqueur de fin dans database.sql, déchiffrement de contrôle des 64 premiers Ko. Chaque exécution est consignée (statut, taille, durée, tables, lignes, fichiers, résultat par destination, déclencheur). Alertes e-mail en cas d&#039;échec et quand aucune sauvegarde n&#039;a réussi depuis N jours.&lt;br /&gt;
* &#039;&#039;&#039;Tableau de bord&#039;&#039;&#039; (Outils, Sauvegardes) : dernière sauvegarde réussie, état de la planification, diagnostic du serveur (mysqldump, extensions, espace disque, taille estimée), destinations, trente dernières exécutions avec téléchargement et suppression du fichier local.&lt;br /&gt;
* &#039;&#039;&#039;Restauration depuis le navigateur&#039;&#039;&#039; : envoi du fichier par morceaux, analyse sans rien modifier, contrôle de chaque instruction SQL, sauvegarde de sécurité de l&#039;état actuel, restauration par petites étapes suivie en direct, boutons « Réessayer » et « Revenir à l&#039;état d&#039;avant » si elle s&#039;arrête en route. Sert aussi à déménager vers un Dolibarr neuf où seul BackupGuard est installé. Un script en ligne de commande reste fourni pour les très grosses bases.&lt;br /&gt;
* &#039;&#039;&#039;Mise à jour de Dolibarr&#039;&#039;&#039; : la version corrective et la version majeure suivante sont proposées ; le paquet officiel est contrôlé fichier par fichier avec les empreintes publiées par Dolibarr, une sauvegarde complète et une copie des fichiers remplacés sont faites d&#039;abord, et un bouton remet les fichiers d&#039;avant tant que la base n&#039;est pas mise à niveau.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez BackupGuard. L&#039;activation crée la table llx_backupguard_run, le dossier protégé documents/backupguard, la tâche planifiée quotidienne et la clé d&#039;URL. La première sauvegarde locale fonctionne sans aucun réglage.&lt;br /&gt;
&lt;br /&gt;
== Réglages ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contenu&#039;&#039;&#039; : base + documents (par défaut) ou base seulement ; motifs d&#039;exclusion ; utilisation de mysqldump s&#039;il existe.&lt;br /&gt;
* &#039;&#039;&#039;Chiffrement&#039;&#039;&#039; : activation et phrase secrète (12 caractères au minimum, jamais réaffichée). Sans la phrase secrète, une sauvegarde est illisible : notez-la ailleurs que sur le serveur.&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039; : une section par type avec son bouton de test. Les destinations dont l&#039;extension PHP manque sont affichées comme non disponibles, avec la raison.&lt;br /&gt;
* &#039;&#039;&#039;Planification et rétention&#039;&#039;&#039; : heure de la sauvegarde quotidienne, état réel de la tâche planifiée (dernière et prochaine exécution), URL de déclenchement avec sa clé et un exemple de ligne cron, commande CLI, nombre de sauvegardes conservées, conservation mensuelle.&lt;br /&gt;
* &#039;&#039;&#039;Alertes&#039;&#039;&#039; : adresse e-mail (par défaut le premier administrateur), délai « aucune sauvegarde réussie depuis N jours », e-mail de test.&lt;br /&gt;
&lt;br /&gt;
== Droits ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Lire&#039;&#039; : tableau de bord et journal.&lt;br /&gt;
* &#039;&#039;Lancer&#039;&#039; : lancer une sauvegarde, télécharger et supprimer les fichiers locaux. Une sauvegarde contient toute la base : ce droit se donne avec discernement.&lt;br /&gt;
* &#039;&#039;Configurer&#039;&#039; : réglages (administrateurs uniquement).&lt;br /&gt;
* La restauration et la mise à jour de Dolibarr sont réservées aux administrateurs.&lt;br /&gt;
&lt;br /&gt;
== Restaurer une sauvegarde ==&lt;br /&gt;
&lt;br /&gt;
=== Depuis le navigateur ===&lt;br /&gt;
Outils, Sauvegardes, bouton « Restaurer une sauvegarde ».&lt;br /&gt;
# Envoyer le fichier .zip ou .zip.enc (avec sa phrase secrète s&#039;il est chiffré), ou choisir une sauvegarde déjà présente sur le serveur. L&#039;envoi se fait par morceaux de 2 Mo : la limite de taille d&#039;envoi de PHP ne s&#039;applique pas.&lt;br /&gt;
# &#039;&#039;&#039;Analyse&#039;&#039;&#039;, sans rien modifier : déchiffrement, intégrité, versions de Dolibarr, contenu, modules. La restauration est refusée si la sauvegarde vient d&#039;une version plus récente que celle installée. Les avertissements (mise à niveau à prévoir, préfixe de tables différent, modules absents) sont affichés avant de continuer.&lt;br /&gt;
# &#039;&#039;&#039;Options&#039;&#039;&#039; : sauvegarde de sécurité de l&#039;état actuel (conseillée), documents, modules externes. Confirmer en tapant le mot demandé.&lt;br /&gt;
# &#039;&#039;&#039;Contrôle du SQL&#039;&#039;&#039; : chaque instruction de la sauvegarde est vérifiée avant toute écriture ; seules passent celles d&#039;un export, sur les tables de Dolibarr.&lt;br /&gt;
# &#039;&#039;&#039;Restauration&#039;&#039;&#039; par petites étapes, suivie en direct : la durée maximale d&#039;exécution de PHP n&#039;est pas un obstacle. Les mots de passe chiffrés par Dolibarr (SMTP, clés d&#039;API) sont rechiffrés pour la nouvelle installation quand la sauvegarde est chiffrée.&lt;br /&gt;
# Se reconnecter. Si la sauvegarde vient d&#039;une version plus ancienne, un bouton ouvre l&#039;assistant de mise à niveau de Dolibarr.&lt;br /&gt;
Si la restauration s&#039;arrête en route, « Réessayer » reprend sans rien dupliquer et « Revenir à l&#039;état d&#039;avant » remet la sauvegarde de sécurité.&lt;br /&gt;
&lt;br /&gt;
=== En ligne de commande ===&lt;br /&gt;
Pour les très grosses bases, ou quand Dolibarr ne démarre plus.&lt;br /&gt;
# Récupérer le fichier dolibarr-&amp;lt;base&amp;gt;-AAAA-MM-JJ-HHMM.zip.enc depuis une destination ou le tableau de bord.&lt;br /&gt;
# Le déchiffrer avec openssl (voir plus haut) ou laisser le script le faire (phrase secrète demandée au clavier ou lue dans la variable d&#039;environnement BACKUPGUARD_ENCRYPTION_PASSWORD).&lt;br /&gt;
# Passer Dolibarr en mode maintenance, puis sur le serveur cible : &amp;lt;code&amp;gt;php htdocs/custom/backupguard/scripts/restore.php sauvegarde.zip.enc --documents=/chemin/vers/documents&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Vider le cache de Dolibarr (documents/admin/temp) et se reconnecter.&lt;br /&gt;
&lt;br /&gt;
== Mettre à jour Dolibarr ==&lt;br /&gt;
Outils, Sauvegardes, bouton « Mettre à jour Dolibarr ». La page affiche la version installée, les vérifications (droit d&#039;écriture du serveur web, extensions curl et zip, espace disque) et deux propositions : la dernière version corrective, et la version majeure suivante (Dolibarr se met à jour une version majeure à la fois).&lt;br /&gt;
# &#039;&#039;&#039;Préparer&#039;&#039;&#039;, sans rien modifier : téléchargement du paquet officiel, puis contrôle de chaque fichier (PHP, JavaScript, SQL de migration, images) avec les empreintes publiées sur dolibarr.org et, pour ce qu&#039;elles ne couvrent pas, celles de la version sur GitHub. Un fichier altéré ou inconnu fait refuser la mise à jour.&lt;br /&gt;
# &#039;&#039;&#039;Confirmer&#039;&#039;&#039; : sauvegarde de sécurité complète, copie des fichiers qui vont être remplacés, puis écriture des nouveaux fichiers. La configuration et le dossier custom ne sont jamais touchés.&lt;br /&gt;
# &#039;&#039;&#039;Mettre la base à niveau&#039;&#039;&#039; avec l&#039;assistant de Dolibarr, ouvert par un bouton (upgrade.unlock depuis Dolibarr 17).&lt;br /&gt;
# Tant que la base n&#039;est pas mise à niveau, un bouton remet les fichiers d&#039;avant.&lt;br /&gt;
Sous Docker, les fichiers de Dolibarr font partie de l&#039;image : la page donne la marche à suivre (changer la version de l&#039;image) au lieu de remplacer les fichiers.&lt;br /&gt;
&lt;br /&gt;
== Limites connues ==&lt;br /&gt;
&lt;br /&gt;
* Export de la base pour MySQL et MariaDB uniquement. Sur PostgreSQL le module l&#039;indique et ne sauvegarde que les documents.&lt;br /&gt;
* Les vues, déclencheurs et procédures stockées ne sont pas exportés (Dolibarr n&#039;en crée pas).&lt;br /&gt;
* Une sauvegarde ne se restaure que sur une version de Dolibarr identique ou plus récente.&lt;br /&gt;
* La mise à jour de Dolibarr demande que le serveur web puisse écrire dans les fichiers de Dolibarr ; sinon la page l&#039;indique et rien n&#039;est modifié. Les modules externes ne sont pas mis à jour.&lt;br /&gt;
* FTP et SFTP dépendent des extensions PHP ftp et ssh2. WebDAV : authentification Basic uniquement (Nextcloud, ownCloud, kDrive, Apache mod_dav).&lt;br /&gt;
* Le chiffrement protège la copie distante, pas le serveur lui-même : qui lit la configuration de Dolibarr lit la phrase secrète.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24, vérifié sur 16.0, 18.0, 20.0, 22.0, 23.0 et 24.0.&lt;br /&gt;
* PHP 7.4 à 8.4. Extensions zip, openssl et curl requises ; ftp et ssh2 selon la destination.&lt;br /&gt;
* Français et anglais inclus.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-BackupGuard-dashboard.png|Le tableau de bord après une sauvegarde réussie&lt;br /&gt;
File:TheoPequignot-BackupGuard-settings.png|Réglages : contenu et chiffrement&lt;br /&gt;
File:TheoPequignot-BackupGuard-destinations.png|Les destinations et le test de connexion&lt;br /&gt;
File:TheoPequignot-BackupGuard-schedule.png|Planification, URL de déclenchement et rétention&lt;br /&gt;
File:TheoPequignot-BackupGuard-restore.png|Restaurer une sauvegarde depuis le navigateur&lt;br /&gt;
File:TheoPequignot-BackupGuard-upgrade.png|Mettre à jour Dolibarr : vérifications et versions proposées&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2 octobre 2026) : &#039;&#039;&#039;mise à jour recommandée à tous&#039;&#039;&#039;. Les scripts en ligne de commande (scripts/backup.php et scripts/restore.php) pouvaient être appelés par le serveur web sans connexion ; ils ne répondent plus qu&#039;en ligne de commande. Restauration : chaque instruction SQL est contrôlée, restauration entre serveurs différents (MySQL 8 et MariaDB), boutons « Réessayer » et « Revenir à l&#039;état d&#039;avant ». Mise à jour de Dolibarr : tous les fichiers du paquet sont contrôlés. Export : colonnes BIT et JSON corrigées.&lt;br /&gt;
* &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2 octobre 2026) : mise à jour de Dolibarr depuis le module.&lt;br /&gt;
* &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2 octobre 2026) : restauration depuis le navigateur, modules externes inclus dans la sauvegarde, mots de passe chiffrés transportés vers la nouvelle installation.&lt;br /&gt;
* &#039;&#039;&#039;1.0.0&#039;&#039;&#039; (2 octobre 2026) : première version.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_BackupGuard&amp;diff=67752</id>
		<title>Module BackupGuard</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_BackupGuard&amp;diff=67752"/>
		<updated>2026-10-03T00:48:36Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module BackupGuard FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-BackupGuard-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194158&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 2.2.0&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3634 DoliStore] (BackupGuard)&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The native Dolibarr backup relies on the mysqldump command, which many shared hostings and containers do not have or refuse to run (&amp;quot;Failed to execute external command&amp;quot;). It is not scheduled, not encrypted, and stays on the same server as the data. BackupGuard makes a complete, scheduled, encrypted, verified backup and sends it elsewhere, without installing anything on the server.&lt;br /&gt;
&lt;br /&gt;
== What it does ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Pure PHP database dump&#039;&#039;&#039;: every Dolibarr table is read inside a consistent InnoDB snapshot (REPEATABLE READ, START TRANSACTION WITH CONSISTENT SNAPSHOT) and streamed to a SQL file, 2,000 rows at a time, grouped INSERT statements of about 1 MB. No binary needed, constant memory. When mysqldump exists and the option is enabled, it is used instead, with automatic fallback to the PHP dump.&lt;br /&gt;
* &#039;&#039;&#039;Documents included&#039;&#039;&#039;: the documents directory (DOL_DATA_ROOT) is added file by file to a zip, with configurable exclusions (default: temp folders, cache, .tmp files). The zip holds database.sql, manifest.json and documents/.&lt;br /&gt;
* &#039;&#039;&#039;AES-256-CBC encryption&#039;&#039;&#039; in the exact format of the openssl enc command (Salted__ header, PBKDF2-SHA256 10,000 iterations, PKCS7). A backup can be decrypted on any machine with: &amp;lt;code&amp;gt;openssl enc -d -aes-256-cbc -pbkdf2 -in backup.zip.enc -out backup.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039;, several at once: local copy (always), WebDAV (Nextcloud, ownCloud, kDrive, Infomaniak, Apache or nginx DAV), S3 compatible storage (AWS, Scaleway, OVH, Backblaze B2, Wasabi, MinIO, AWS signature v4 in pure PHP), FTP/FTPS (PHP extension ftp) and SFTP (PHP extension ssh2). Streaming uploads through curl. Each destination has a &amp;quot;Test connection&amp;quot; button that writes then deletes a witness file and shows the real error message.&lt;br /&gt;
* &#039;&#039;&#039;Scheduling&#039;&#039;&#039;: a daily Dolibarr scheduled job at the chosen hour (the Scheduled jobs module is enabled at installation), a CLI script for a system cron, and a URL trigger with a secret key for hostings without any cron. &amp;quot;Back up now&amp;quot; button. A lock prevents two simultaneous runs and is released even after a fatal error.&lt;br /&gt;
* &#039;&#039;&#039;Retention&#039;&#039;&#039; per destination: keep the N most recent backups (7 by default) plus the first backup of each month for M months (6 by default). Purge happens only after a successful upload to that destination.&lt;br /&gt;
* &#039;&#039;&#039;Verification and log&#039;&#039;&#039;: SHA-256 of the final file, zip integrity, end marker inside database.sql, control decryption of the first 64 KB. Every run is logged (status, size, duration, tables, rows, files, result per destination, trigger). Email alerts on failure and when no successful backup exists for N days.&lt;br /&gt;
* &#039;&#039;&#039;Dashboard&#039;&#039;&#039; (Tools, Backups): last successful backup, scheduling state, server diagnostic (mysqldump, extensions, disk space, estimated size), destinations, last thirty runs with download and deletion of the local file.&lt;br /&gt;
* &#039;&#039;&#039;Restore from the browser&#039;&#039;&#039;: chunked upload, analysis without any change, control of every SQL statement, safety backup of the current state, restore in short steps followed live, &amp;quot;Retry&amp;quot; and &amp;quot;Go back to the previous state&amp;quot; buttons if it stops halfway. Also used to move to a fresh Dolibarr where only BackupGuard is installed. A command line script is still provided for very large databases.&lt;br /&gt;
* &#039;&#039;&#039;Dolibarr update&#039;&#039;&#039;: the latest maintenance release and the next major version are offered; the official package is checked file by file against the checksums published by Dolibarr, a full backup and a copy of the replaced files are made first, and a button puts the previous files back as long as the database has not been upgraded.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable BackupGuard. Activation creates the table llx_backupguard_run, the protected directory documents/backupguard, the daily scheduled job and the URL key. The first local backup works with no setting at all.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Content&#039;&#039;&#039;: database and documents (default) or database only; exclusion patterns; use of mysqldump when available.&lt;br /&gt;
* &#039;&#039;&#039;Encryption&#039;&#039;&#039;: on/off and passphrase (12 characters minimum, never displayed again). Without the passphrase a backup is unreadable: keep it somewhere else than on the server.&lt;br /&gt;
* &#039;&#039;&#039;Destinations&#039;&#039;&#039;: one section per type with its test button. Destinations whose PHP extension is missing are shown as unavailable with the reason.&lt;br /&gt;
* &#039;&#039;&#039;Scheduling and retention&#039;&#039;&#039;: hour of the daily backup, real state of the scheduled job (last and next run), trigger URL with its key and a cron line example, CLI command, number of backups kept, monthly retention.&lt;br /&gt;
* &#039;&#039;&#039;Alerts&#039;&#039;&#039;: email address (default: first administrator), &amp;quot;no successful backup for N days&amp;quot; delay, test email.&lt;br /&gt;
&lt;br /&gt;
== Permissions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Read&#039;&#039;: dashboard and log.&lt;br /&gt;
* &#039;&#039;Run&#039;&#039;: start a backup, download and delete local files. A backup contains the whole database: grant this right with care.&lt;br /&gt;
* &#039;&#039;Setup&#039;&#039;: settings (administrators only).&lt;br /&gt;
* Restoring a backup and updating Dolibarr are reserved to administrators.&lt;br /&gt;
&lt;br /&gt;
== Restore a backup ==&lt;br /&gt;
&lt;br /&gt;
=== From the browser ===&lt;br /&gt;
Tools, Backups, &amp;quot;Restore a backup&amp;quot; button.&lt;br /&gt;
# Upload the .zip or .zip.enc file (with its passphrase when encrypted), or pick a backup already on the server. The upload is sent in 2 MB chunks: the PHP upload size limit does not apply.&lt;br /&gt;
# &#039;&#039;&#039;Analysis&#039;&#039;&#039;, without changing anything: decryption, integrity, Dolibarr versions, content, modules. The restore is refused when the backup comes from a more recent Dolibarr than the installed one. Warnings (upgrade needed, different table prefix, missing modules) are shown before going on.&lt;br /&gt;
# &#039;&#039;&#039;Options&#039;&#039;&#039;: safety backup of the current state (recommended), documents, external modules. Confirm by typing the requested word.&lt;br /&gt;
# &#039;&#039;&#039;SQL control&#039;&#039;&#039;: every statement of the backup is checked before anything is written; only those of a dump, on Dolibarr tables, go through.&lt;br /&gt;
# &#039;&#039;&#039;Restore&#039;&#039;&#039; in short steps, followed live: the PHP maximum execution time is not an obstacle. Passwords encrypted by Dolibarr (SMTP, API keys) are re-encrypted for the new installation when the backup is encrypted.&lt;br /&gt;
# Log in again. When the backup comes from an older version, a button opens the Dolibarr upgrade wizard.&lt;br /&gt;
If the restore stops halfway, &amp;quot;Retry&amp;quot; resumes without duplicating anything and &amp;quot;Go back to the previous state&amp;quot; puts the safety backup back.&lt;br /&gt;
&lt;br /&gt;
=== From the command line ===&lt;br /&gt;
For very large databases, or when Dolibarr no longer starts.&lt;br /&gt;
# Get the file dolibarr-&amp;lt;database&amp;gt;-YYYY-MM-DD-HHMM.zip.enc from a destination or the dashboard.&lt;br /&gt;
# Decrypt it with openssl (see above) or let the script do it (passphrase asked on the keyboard or read from the environment variable BACKUPGUARD_ENCRYPTION_PASSWORD).&lt;br /&gt;
# Put Dolibarr in maintenance mode, then on the target server: &amp;lt;code&amp;gt;php htdocs/custom/backupguard/scripts/restore.php backup.zip.enc --documents=/path/to/documents&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Clear the Dolibarr cache (documents/admin/temp) and log in again.&lt;br /&gt;
&lt;br /&gt;
== Update Dolibarr ==&lt;br /&gt;
Tools, Backups, &amp;quot;Update Dolibarr&amp;quot; button. The page shows the installed version, the checks (web server write access, curl and zip extensions, disk space) and two offers: the latest maintenance release, and the next major version (Dolibarr is upgraded one major version at a time).&lt;br /&gt;
# &#039;&#039;&#039;Prepare&#039;&#039;&#039;, without changing anything: download of the official package, then control of every file (PHP, JavaScript, migration SQL, images) against the checksums published on dolibarr.org and, for what they do not cover, those of the release on GitHub. An altered or unknown file makes the update refused.&lt;br /&gt;
# &#039;&#039;&#039;Confirm&#039;&#039;&#039;: full safety backup, copy of the files about to be replaced, then writing of the new files. The configuration and the custom directory are never touched.&lt;br /&gt;
# &#039;&#039;&#039;Upgrade the database&#039;&#039;&#039; with the Dolibarr wizard, opened by a button (upgrade.unlock since Dolibarr 17).&lt;br /&gt;
# As long as the database has not been upgraded, a button puts the previous files back.&lt;br /&gt;
Under Docker, the Dolibarr files belong to the image: the page explains what to do (change the image version) instead of replacing files.&lt;br /&gt;
&lt;br /&gt;
== Known limits ==&lt;br /&gt;
&lt;br /&gt;
* Database dump for MySQL and MariaDB only. On PostgreSQL the module says so and backs up the documents only.&lt;br /&gt;
* Views, triggers and stored procedures are not exported (Dolibarr creates none).&lt;br /&gt;
* A backup can only be restored on the same or a more recent Dolibarr version.&lt;br /&gt;
* Updating Dolibarr requires the web server to be able to write the Dolibarr files; otherwise the page says so and nothing is changed. External modules are not updated.&lt;br /&gt;
* FTP and SFTP depend on the PHP extensions ftp and ssh2. WebDAV: Basic authentication only (Nextcloud, ownCloud, kDrive, Apache mod_dav).&lt;br /&gt;
* Encryption protects the remote copy, not the server itself: whoever reads the Dolibarr configuration reads the passphrase.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24, verified on 16.0, 18.0, 20.0, 22.0, 23.0 and 24.0.&lt;br /&gt;
* PHP 7.4 to 8.4. Extensions zip, openssl and curl required; ftp and ssh2 depending on the destination.&lt;br /&gt;
* English and French included.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-BackupGuard-dashboard.png|Dashboard after a successful backup&lt;br /&gt;
File:TheoPequignot-BackupGuard-settings.png|Settings: content and encryption&lt;br /&gt;
File:TheoPequignot-BackupGuard-destinations.png|Destinations with the connection test&lt;br /&gt;
File:TheoPequignot-BackupGuard-schedule.png|Scheduling, URL trigger and retention&lt;br /&gt;
File:TheoPequignot-BackupGuard-restore.png|Restoring a backup from the browser&lt;br /&gt;
File:TheoPequignot-BackupGuard-upgrade.png|Updating Dolibarr: checks and offered versions&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;2.2.0&#039;&#039;&#039; (2 October 2026): &#039;&#039;&#039;update recommended for everyone&#039;&#039;&#039;. The command line scripts (scripts/backup.php and scripts/restore.php) could be called through the web server without logging in; they now only answer on the command line. Restore: every SQL statement is checked, restore across different servers (MySQL 8 and MariaDB), &amp;quot;Retry&amp;quot; and &amp;quot;Go back to the previous state&amp;quot; buttons. Dolibarr update: every file of the package is checked. Dump: BIT and JSON columns fixed.&lt;br /&gt;
* &#039;&#039;&#039;2.1.0&#039;&#039;&#039; (2 October 2026): Dolibarr update from the module.&lt;br /&gt;
* &#039;&#039;&#039;2.0.0&#039;&#039;&#039; (2 October 2026): restore from the browser, external modules included in the backup, encrypted passwords carried to the new installation.&lt;br /&gt;
* &#039;&#039;&#039;1.0.0&#039;&#039;&#039; (2 October 2026): first version.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_AutoFacture&amp;diff=67751</id>
		<title>Module AutoFacture</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_AutoFacture&amp;diff=67751"/>
		<updated>2026-10-03T00:48:34Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module AutoFacture FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-AutoFacture-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194157&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.6.2&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3631 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every month the same invoices have to be made again: maintenance, hosting, backup, licences. Forget one and you lose money, send one twice and the customer is annoyed. AutoFacture takes care of it: each subscription produces its invoice on the right date, validated and as a PDF, and a dedicated screen follows what is not paid yet.&lt;br /&gt;
&lt;br /&gt;
== Subscriptions and automatic generation ==&lt;br /&gt;
&lt;br /&gt;
* Monthly, bimonthly, quarterly, half-yearly or yearly subscriptions, billed at the start or end of the period, with an optional end date.&lt;br /&gt;
* Invoices created, validated and turned into PDF on their own, with the month or period written in the lines (&amp;lt;code&amp;gt;__AF_PERIOD__&amp;lt;/code&amp;gt; tag).&lt;br /&gt;
* &#039;&#039;&#039;Never the same invoice twice&#039;&#039;&#039;: one invoice per subscription and period, guaranteed by a unique key in the database.&lt;br /&gt;
* Works with or without a scheduled job: without cron, due invoices are generated while users browse.&lt;br /&gt;
* &#039;&#039;&#039;Invoice author of your choice&#039;&#039;&#039;: a setting names the account that signs generated invoices, whatever triggers the generation.&lt;br /&gt;
* &#039;&#039;&#039;Billing day of your choice&#039;&#039;&#039;: the invoice is dated on the day of the month you want (1 to 28), at the start or end of the period.&lt;br /&gt;
* &#039;&#039;&#039;Automation status&#039;&#039;&#039; on the dashboard, with the exact crontab line; on-demand generation, line by line or for everything due.&lt;br /&gt;
* &#039;&#039;&#039;Always a PDF&#039;&#039;&#039;: if the PDF template inherited from the template invoice is no longer available, the module falls back to the default invoice template, then to an active one, and records it in the journal.&lt;br /&gt;
&lt;br /&gt;
== Three ways to create a subscription ==&lt;br /&gt;
&lt;br /&gt;
* From scratch, on one card: a control sentence states the first invoice date and the period covered before you confirm.&lt;br /&gt;
* From an existing invoice: the module finds the period in the lines (&amp;quot;November 2026&amp;quot;, &amp;quot;from 01/11 to 30/11&amp;quot;…) and makes it dynamic.&lt;br /&gt;
* With the &#039;&#039;&#039;analyzer&#039;&#039;&#039;, which finds recurring series among your manual invoices and converts them in one click.&lt;br /&gt;
&lt;br /&gt;
== Unpaid invoices and reminders ==&lt;br /&gt;
&lt;br /&gt;
* Aged balance: outstanding amounts by age bracket, and for each invoice the real amount due (payments, credit notes and deposits deducted).&lt;br /&gt;
* Tiered reminders (30, 60 and 180 days by default), each with its own email template.&lt;br /&gt;
* &#039;&#039;&#039;No reminder is sent without your approval&#039;&#039;&#039;: the module proposes, you decide.&lt;br /&gt;
* Grouped reminders from the unpaid screen and multiple selection in the journal; subject and message of each step editable in the settings.&lt;br /&gt;
&lt;br /&gt;
== Payment terms under control ==&lt;br /&gt;
&lt;br /&gt;
* By default the customer&#039;s terms; a choice per subscription; or a term enforced on every generated invoice from the settings.&lt;br /&gt;
* &#039;&#039;&#039;Fixed day of the month&#039;&#039;&#039;: &amp;quot;on the 10th of the month&amp;quot; or any other day from 1 to 28, picked straight from the list. The due date falls on that day in the invoice month, or the next month if the day has passed.&lt;br /&gt;
* The due date is recalculated before validation: the PDF and the aged balance show the right date.&lt;br /&gt;
&lt;br /&gt;
== Sending and journal ==&lt;br /&gt;
&lt;br /&gt;
* Invoice emailed with your templates, after your review or automatically, your choice. Nothing is sent if the invoice is still a draft; a missing PDF is generated when the email is sent.&lt;br /&gt;
* Full journal: every invoice generated or failed, every reminder proposed, sent or dismissed.&lt;br /&gt;
* An invoice without PDF is flagged « PDF missing » in the journal and on the subscription card, with a « Generate the PDF » button.&lt;br /&gt;
&lt;br /&gt;
== Built on the native engine ==&lt;br /&gt;
Each subscription relies on a native Dolibarr template invoice: lines, amounts, VAT and terms stay managed by the core, and templates remain visible even if the module is disabled.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable AutoFacture. The scheduled job is created on activation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module. Subscriptions, journal, settings and permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.6.2&#039;&#039;&#039; (3 October 2026): the module icon is shown again in the Dolibarr module list.&lt;br /&gt;
* &#039;&#039;&#039;1.6.1&#039;&#039;&#039; (2 October 2026): the module menus are shown again on Dolibarr 23 and 24.&lt;br /&gt;
* &#039;&#039;&#039;1.6.0&#039;&#039;&#039; (2 October 2026): invoice author of your choice, billing day, automation status and on-demand generation, grouped reminders and editable reminder messages; with some PDF template modules only the first invoice of a run had its PDF, fixed.&lt;br /&gt;
* &#039;&#039;&#039;1.5.0&#039;&#039;&#039; (2 October 2026): due date on a fixed day of the month (&amp;quot;on the 10th&amp;quot;…), chosen in the settings or on the subscription card; the &amp;quot;Payment terms&amp;quot; line is shown again on the PDF of generated invoices.&lt;br /&gt;
* &#039;&#039;&#039;1.4.1&#039;&#039;&#039; (2 October 2026): invoices generated with a PDF template that was no longer available had no PDF; fallback generation, PDF built when the email is sent, catch-up button in the journal.&lt;br /&gt;
* &#039;&#039;&#039;1.4.0&#039;&#039;&#039; (2 October 2026): configurable payment terms (per subscription or enforced), new module id 194157.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 22, 23 and 24).&lt;br /&gt;
* PHP 7.0 and above, MySQL / MariaDB.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-AutoFacture-dashboard.png|Dashboard: subscriptions, monthly equivalent revenue, next invoices, on-demand generation&lt;br /&gt;
File:TheoPequignot-AutoFacture-card.png|Subscription card&lt;br /&gt;
File:TheoPequignot-AutoFacture-create.png|Creating a subscription, control sentence and billing day&lt;br /&gt;
File:TheoPequignot-AutoFacture-analyzer.png|Analyzer: recurring series found among manual invoices&lt;br /&gt;
File:TheoPequignot-AutoFacture-unpaid.png|Unpaid invoices: aged balance and grouped reminders&lt;br /&gt;
File:TheoPequignot-AutoFacture-journal.png|Generation journal and sending queue&lt;br /&gt;
File:TheoPequignot-AutoFacture-reminders.png|Reminders to approve, multiple selection&lt;br /&gt;
File:TheoPequignot-AutoFacture-automation.png|Automation status and immediate generation&lt;br /&gt;
File:TheoPequignot-AutoFacture-author.png|Author of generated invoices&lt;br /&gt;
File:TheoPequignot-AutoFacture-payment-terms.png|Payment terms: those of each subscription, a term from the dictionary, or a fixed day of the month&lt;br /&gt;
File:TheoPequignot-AutoFacture-dunning.png|Reminder steps, editable subject and message&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_AutoFacture_FR&amp;diff=67750</id>
		<title>Module AutoFacture FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_AutoFacture_FR&amp;diff=67750"/>
		<updated>2026-10-03T00:48:31Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_AutoFacture --&amp;gt;&lt;br /&gt;
[[en:Module_AutoFacture]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-AutoFacture-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194157&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.6.2&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3631 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Chaque mois, il faut refaire les mêmes factures : maintenance, hébergement, sauvegarde, licences. Un oubli et c&#039;est de l&#039;argent perdu, un doublon et c&#039;est un client agacé. AutoFacture s&#039;en charge : chaque abonnement produit sa facture à la bonne date, validée et en PDF, et un écran dédié suit ce qui n&#039;est pas encore payé.&lt;br /&gt;
&lt;br /&gt;
== Abonnements et génération automatique ==&lt;br /&gt;
&lt;br /&gt;
* Abonnements mensuels, bimestriels, trimestriels, semestriels ou annuels, facturés en début ou en fin de période, avec date de fin facultative.&lt;br /&gt;
* Factures créées, validées et mises en PDF toutes seules, le mois ou la période écrits dans les libellés (balise &amp;lt;code&amp;gt;__AF_PERIOD__&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;Jamais deux fois la même facture&#039;&#039;&#039; : une seule facture par abonnement et par période, garanti par une clé unique en base.&lt;br /&gt;
* Fonctionne avec ou sans tâche planifiée : sans cron, les factures dues sont générées pendant la navigation.&lt;br /&gt;
* &#039;&#039;&#039;Auteur des factures au choix&#039;&#039;&#039; : un réglage nomme le compte qui signe les factures générées, quel que soit le déclencheur.&lt;br /&gt;
* &#039;&#039;&#039;Jour de facturation au choix&#039;&#039;&#039; : la facture est datée le jour du mois que vous voulez (1 à 28), en début ou en fin de période.&lt;br /&gt;
* &#039;&#039;&#039;État de l&#039;automatisation&#039;&#039;&#039; affiché sur le tableau de bord, avec la ligne de crontab exacte ; génération à la demande, ligne par ligne ou pour tout ce qui est dû.&lt;br /&gt;
* &#039;&#039;&#039;Toujours un PDF&#039;&#039;&#039; : si le modèle PDF hérité de la facture modèle n&#039;est plus disponible, le module bascule sur le modèle par défaut des factures puis sur un modèle actif, et le note au journal.&lt;br /&gt;
&lt;br /&gt;
== Trois façons de créer un abonnement ==&lt;br /&gt;
&lt;br /&gt;
* De zéro, en une fiche : une phrase de contrôle annonce la date de la première facture et la période couverte avant de valider.&lt;br /&gt;
* Depuis une facture existante : le module repère la période dans les libellés (« novembre 2026 », « du 01/11 au 30/11 »…) et la rend dynamique.&lt;br /&gt;
* Avec l’&#039;&#039;&#039;analyseur&#039;&#039;&#039;, qui retrouve dans vos factures manuelles les séries récurrentes et les convertit en un clic.&lt;br /&gt;
&lt;br /&gt;
== Impayés et relances ==&lt;br /&gt;
&lt;br /&gt;
* Balance âgée : l&#039;encours par tranche d&#039;ancienneté, et pour chaque facture le reste dû réel (règlements, avoirs et acomptes déduits).&lt;br /&gt;
* Relances par paliers (30, 60 et 180 jours par défaut), chacune avec son modèle d&#039;e-mail.&lt;br /&gt;
* &#039;&#039;&#039;Aucune relance ne part sans votre validation&#039;&#039;&#039; : le module propose, vous décidez.&lt;br /&gt;
* Relances groupées depuis l&#039;écran des impayés et sélection multiple dans le journal ; sujet et message de chaque palier modifiables dans les réglages.&lt;br /&gt;
&lt;br /&gt;
== Conditions de règlement maîtrisées ==&lt;br /&gt;
&lt;br /&gt;
* Par défaut, celles du client ; un choix propre à chaque abonnement ; ou une condition imposée à toutes les factures générées depuis les réglages.&lt;br /&gt;
* &#039;&#039;&#039;Échéance à jour fixe&#039;&#039;&#039; : « le 10 du mois » ou tout autre jour de 1 à 28, choisi directement dans la liste. L&#039;échéance tombe ce jour-là dans le mois de la facture, ou le mois suivant si le jour est passé.&lt;br /&gt;
* L&#039;échéance est recalculée avant la validation : le PDF et la balance âgée portent la bonne date.&lt;br /&gt;
&lt;br /&gt;
== Envoi au client et journal ==&lt;br /&gt;
&lt;br /&gt;
* Envoi de la facture par e-mail avec vos modèles, après votre relecture ou automatiquement, au choix. Rien ne part si la facture est en brouillon ; un PDF manquant est généré au moment de l&#039;envoi.&lt;br /&gt;
* Journal complet : chaque facture générée ou en erreur, chaque relance proposée, envoyée ou écartée.&lt;br /&gt;
* Une facture sans PDF est signalée « PDF manquant » dans le journal et sur la fiche de l&#039;abonnement, avec un bouton « Générer le PDF ».&lt;br /&gt;
&lt;br /&gt;
== Construit sur le moteur natif ==&lt;br /&gt;
Chaque abonnement s&#039;appuie sur une facture modèle native de Dolibarr : lignes, montants, TVA et conditions restent gérés par le cœur, et les modèles restent visibles même si le module est désactivé.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez AutoFacture. La tâche planifiée est créée à l&#039;activation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module. Abonnements, journal, réglages et droits sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.6.2&#039;&#039;&#039; (3 octobre 2026) : l&#039;icône du module s&#039;affiche de nouveau dans la liste des modules de Dolibarr.&lt;br /&gt;
* &#039;&#039;&#039;1.6.1&#039;&#039;&#039; (2 octobre 2026) : les menus du module s&#039;affichent de nouveau sur Dolibarr 23 et 24.&lt;br /&gt;
* &#039;&#039;&#039;1.6.0&#039;&#039;&#039; (2 octobre 2026) : auteur des factures au choix, jour de facturation, état de l&#039;automatisation et génération à la demande, relances groupées et messages de relance modifiables ; avec certains modules de modèles PDF, seule la première facture d&#039;un passage avait son PDF, corrigé.&lt;br /&gt;
* &#039;&#039;&#039;1.5.0&#039;&#039;&#039; (2 octobre 2026) : échéance à jour fixe du mois (« le 10 du mois »…), choisie dans les réglages ou sur la fiche de l&#039;abonnement ; la ligne « Conditions de règlement » apparaît de nouveau sur le PDF des factures générées.&lt;br /&gt;
* &#039;&#039;&#039;1.4.1&#039;&#039;&#039; (2 octobre 2026) : les factures générées avec un modèle PDF devenu indisponible restaient sans PDF ; génération de secours, PDF créé à l&#039;envoi du mail, bouton de rattrapage dans le journal.&lt;br /&gt;
* &#039;&#039;&#039;1.4.0&#039;&#039;&#039; (2 octobre 2026) : conditions de règlement réglables (par abonnement ou imposées), nouvel identifiant 194157.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 22, 23 et 24).&lt;br /&gt;
* PHP 7.0 et plus, MySQL / MariaDB.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-AutoFacture-dashboard.png|Tableau de bord : abonnements, revenu mensuel équivalent, prochaines factures, génération à la demande&lt;br /&gt;
File:TheoPequignot-AutoFacture-card.png|Fiche d&#039;un abonnement&lt;br /&gt;
File:TheoPequignot-AutoFacture-create.png|Création d&#039;un abonnement, phrase de contrôle et jour de facturation&lt;br /&gt;
File:TheoPequignot-AutoFacture-analyzer.png|Analyseur : séries récurrentes retrouvées dans les factures manuelles&lt;br /&gt;
File:TheoPequignot-AutoFacture-unpaid.png|Impayés : balance âgée et relances groupées&lt;br /&gt;
File:TheoPequignot-AutoFacture-journal.png|Journal des générations et file d&#039;envoi&lt;br /&gt;
File:TheoPequignot-AutoFacture-reminders.png|Relances à valider, sélection multiple&lt;br /&gt;
File:TheoPequignot-AutoFacture-automation.png|État de l&#039;automatisation et génération immédiate&lt;br /&gt;
File:TheoPequignot-AutoFacture-author.png|Auteur des factures générées&lt;br /&gt;
File:TheoPequignot-AutoFacture-payment-terms.png|Conditions de règlement : celles de chaque abonnement, une condition du dictionnaire, ou un jour fixe du mois&lt;br /&gt;
File:TheoPequignot-AutoFacture-dunning.png|Paliers de relance, sujet et message modifiables&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Recycle_Bin&amp;diff=67749</id>
		<title>Module Recycle Bin</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Recycle_Bin&amp;diff=67749"/>
		<updated>2026-10-03T00:48:29Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Corbeille (Recycle Bin)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194153&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3321 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In Dolibarr, deleting a third party, a product or an invoice is permanent. The only way back is restoring a full database backup, and the whole team loses the day&#039;s work. This module sets the deleted record aside instead of erasing it, and puts it back in one click.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Where to find the recycle bin? ==&lt;br /&gt;
Three ways in, from every page: the &amp;quot;Undo this deletion&amp;quot; link in the message after a deletion, the bin icon at the top right with the number of recoverable items, and the Tools → Recycle bin menu. A tab in the top bar can be added in the module settings (off by default since 1.2.2).&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-where.png|720px]]&lt;br /&gt;
&lt;br /&gt;
== What is protected ==&lt;br /&gt;
&lt;br /&gt;
* Ten record types: third parties, contacts, products and services, quotes, sales orders, customer invoices, projects, tasks, interventions, attached files. Each type can be switched on separately.&lt;br /&gt;
* The copy runs in the same transaction as the deletion: if it fails, the deletion is cancelled. Nothing goes without a copy.&lt;br /&gt;
&lt;br /&gt;
== One-click restore ==&lt;br /&gt;
&lt;br /&gt;
* The record comes back with its lines, extra fields, categories, links to other objects and attached files, under its original ID when still free.&lt;br /&gt;
* A dry run replays every check without touching the database: reference available, linked objects present, files intact, permissions. Conflicts show up before you confirm.&lt;br /&gt;
* If a linked object is also in the bin, it is restored in cascade.&lt;br /&gt;
&lt;br /&gt;
== Always within reach ==&lt;br /&gt;
&lt;br /&gt;
* An &amp;quot;Undo this deletion&amp;quot; link in the message that follows the deletion.&lt;br /&gt;
* The bin icon at the top right of every page, with the number of recoverable items.&lt;br /&gt;
* A bin you can filter by type, user and date, plus a dashboard.&lt;br /&gt;
&lt;br /&gt;
== Safeguards ==&lt;br /&gt;
&lt;br /&gt;
* Retention per record type (30 days by default) and a daily automatic purge.&lt;br /&gt;
* Bulk deletions blocked or requiring a second confirmation above a threshold (25 by default).&lt;br /&gt;
* Log of every deletion, restore and purge (date, user, IP), exportable to CSV.&lt;br /&gt;
* Access rights per user and per group, set directly from the module settings.&lt;br /&gt;
&lt;br /&gt;
== What it does not do ==&lt;br /&gt;
&lt;br /&gt;
* It restores the invoice, not its payments, accounting entries or stock movements. The screen says so before you confirm.&lt;br /&gt;
* It cannot see deletions made in direct SQL or by a module that bypasses Dolibarr triggers. The settings page lists such installed modules by name.&lt;br /&gt;
* It is a recycle bin, not a version history: it captures on deletion, not on every change.&lt;br /&gt;
* Not covered yet: supplier documents, members, shipments, contracts, expense reports, tickets.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable Recycle Bin. Two tables added, no core file modified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24, tested screen by screen on every version from 16 to 23, and verified on 24.&lt;br /&gt;
* PHP 7.4 to 8.3, MySQL / MariaDB and PostgreSQL.&lt;br /&gt;
* Multi-company: every screen, counter, export and purge is scoped to the entity.&lt;br /&gt;
* 100% local: no external service, nothing leaves your server. English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-RecycleBin-items.png|Deleted items waiting in the bin&lt;br /&gt;
File:TheoPequignot-RecycleBin-restore-check.png|Check before restoring, nothing is written&lt;br /&gt;
File:TheoPequignot-RecycleBin-dashboard.png|Recycle bin dashboard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.2.3&#039;&#039;&#039; (3 October 2026): on Dolibarr 16, the &amp;quot;view&amp;quot; icon of the recycle bin list was shown as a broken image.&lt;br /&gt;
* &#039;&#039;&#039;1.2.2&#039;&#039;&#039; (2 October 2026): the top bar tab becomes optional (the icon at the top right leads to the same screens), accented names fixed in messages.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Corbeille_(Recycle_Bin)&amp;diff=67748</id>
		<title>Module Corbeille (Recycle Bin)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Corbeille_(Recycle_Bin)&amp;diff=67748"/>
		<updated>2026-10-03T00:48:27Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Recycle_Bin --&amp;gt;&lt;br /&gt;
[[en:Module_Recycle_Bin]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194153&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.2.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3321 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dans Dolibarr, supprimer un tiers, un produit ou une facture est définitif. Le seul retour en arrière est la restauration d&#039;une sauvegarde complète de la base, et toute l&#039;équipe perd le travail de la journée. Ce module met l&#039;élément supprimé de côté au lieu de l&#039;effacer, et le remet en place en un clic.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Où trouver la corbeille ? ==&lt;br /&gt;
Trois accès sur toutes les pages : le lien « Annuler cette suppression » dans le message qui suit une suppression, l&#039;icône corbeille en haut à droite avec le nombre d&#039;éléments récupérables, et le menu Outils → Corbeille. Un onglet dans la barre du haut peut être ajouté dans les réglages du module (désactivé par défaut depuis la 1.2.2).&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-RecycleBin-where.png|720px]]&lt;br /&gt;
&lt;br /&gt;
== Ce qui est protégé ==&lt;br /&gt;
&lt;br /&gt;
* Dix types d&#039;éléments : tiers, contacts, produits et services, devis, commandes clients, factures clients, projets, tâches, interventions, fichiers joints. Chaque type s&#039;active séparément.&lt;br /&gt;
* La copie se fait dans la même transaction que la suppression : si elle échoue, la suppression est annulée. Rien ne disparaît sans copie.&lt;br /&gt;
&lt;br /&gt;
== Restauration en un clic ==&lt;br /&gt;
&lt;br /&gt;
* L&#039;élément revient avec ses lignes, ses champs supplémentaires, ses catégories, ses liens vers d&#039;autres objets et ses fichiers joints, sous son identifiant d&#039;origine quand il est libre.&lt;br /&gt;
* Une vérification préalable rejoue tous les contrôles sans toucher à la base : référence disponible, objets liés présents, fichiers intacts, droits. Les conflits s&#039;affichent avant confirmation.&lt;br /&gt;
* Si un objet lié est lui aussi dans la corbeille, la restauration se fait en cascade.&lt;br /&gt;
&lt;br /&gt;
== Toujours à portée de main ==&lt;br /&gt;
&lt;br /&gt;
* Un lien « Annuler cette suppression » dans le message qui suit la suppression.&lt;br /&gt;
* L&#039;icône corbeille en haut à droite de chaque page, avec le nombre d&#039;éléments récupérables.&lt;br /&gt;
* Une corbeille filtrable par type, par utilisateur et par date, et un tableau de bord.&lt;br /&gt;
&lt;br /&gt;
== Garde-fous ==&lt;br /&gt;
&lt;br /&gt;
* Durée de conservation par type (30 jours par défaut) et purge automatique quotidienne.&lt;br /&gt;
* Suppressions en masse bloquées ou soumises à une seconde confirmation au-delà d&#039;un seuil (25 par défaut).&lt;br /&gt;
* Journal de chaque suppression, restauration et purge (date, utilisateur, IP), exportable en CSV.&lt;br /&gt;
* Droits d&#039;accès réglables par utilisateur et par groupe directement depuis les réglages du module.&lt;br /&gt;
&lt;br /&gt;
== Ce que le module ne fait pas ==&lt;br /&gt;
&lt;br /&gt;
* Il restaure la facture, pas ses paiements, ses écritures comptables ni ses mouvements de stock. L&#039;écran le rappelle avant validation.&lt;br /&gt;
* Il ne voit pas les suppressions faites en SQL direct ou par un module qui contourne les triggers Dolibarr. La page de réglages liste les modules installés concernés.&lt;br /&gt;
* C&#039;est une corbeille, pas un historique de versions : il capture à la suppression, pas à chaque modification.&lt;br /&gt;
* Pas encore couverts : documents fournisseurs, adhérents, expéditions, contrats, notes de frais, tickets.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez Recycle Bin. Deux tables ajoutées, aucun fichier du cœur modifié.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24, testé écran par écran sur chaque version de 16 à 23, et vérifié sur 24.&lt;br /&gt;
* PHP 7.4 à 8.3, MySQL / MariaDB et PostgreSQL.&lt;br /&gt;
* Multi-société : chaque écran, compteur, export et purge est propre à l&#039;entité.&lt;br /&gt;
* 100 % local : aucun service externe, rien ne sort de votre serveur. Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-RecycleBin-items.png|Éléments supprimés en attente dans la corbeille&lt;br /&gt;
File:TheoPequignot-RecycleBin-restore-check.png|Vérification avant restauration, sans rien écrire&lt;br /&gt;
File:TheoPequignot-RecycleBin-dashboard.png|Tableau de bord de la corbeille&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.2.3&#039;&#039;&#039; (3 octobre 2026) : sur Dolibarr 16, l&#039;icône « voir » de la liste de la corbeille s&#039;affichait comme une image cassée.&lt;br /&gt;
* &#039;&#039;&#039;1.2.2&#039;&#039;&#039; (2 octobre 2026) : l&#039;onglet de la barre du haut devient facultatif (l&#039;icône en haut à droite mène aux mêmes écrans), noms accentués corrigés dans les messages.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Two-Factor_Authentication_(2FA)&amp;diff=67747</id>
		<title>Module Two-Factor Authentication (2FA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Two-Factor_Authentication_(2FA)&amp;diff=67747"/>
		<updated>2026-10-03T00:48:25Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module Double authentification (2FA)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-2FA-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194155&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 6.0.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=2899 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
One stolen, guessed or reused password is enough to get into your Dolibarr, and with it into your customers, invoices and bank accounts. This module adds a second factor to the login: even with the right password, nobody gets in without the user&#039;s phone, key or fingerprint.&lt;br /&gt;
&lt;br /&gt;
== Three methods, each user picks ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TOTP app&#039;&#039;&#039;: 6-digit code renewed every 30 seconds. Works with Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Aegis, FreeOTP. The QR code is generated on your server, no third-party service.&lt;br /&gt;
* &#039;&#039;&#039;WebAuthn / FIDO2&#039;&#039;&#039;: security keys (YubiKey…) and built-in biometrics (Windows Hello, Touch ID, Face ID). One touch and you&#039;re in.&lt;br /&gt;
* &#039;&#039;&#039;Backup codes&#039;&#039;&#039;: 10 single-use codes, stored as bcrypt hashes, so a lost phone never locks anyone out.&lt;br /&gt;
&lt;br /&gt;
== Several devices per account ==&lt;br /&gt;
&lt;br /&gt;
* A user can register a phone, a security key and a laptop, and name each one.&lt;br /&gt;
* Users add, rename or revoke their own devices from the Security tab of their user card.&lt;br /&gt;
&lt;br /&gt;
== Hardened by design ==&lt;br /&gt;
&lt;br /&gt;
* TOTP secrets encrypted at rest (AES-256-CBC).&lt;br /&gt;
* Lockout after a configurable number of failures (5 by default).&lt;br /&gt;
* Anti-replay: an accepted code cannot be used twice.&lt;br /&gt;
* Audit log of every attempt: date, IP address, method, device, result.&lt;br /&gt;
* CSRF protection on every form and strict HTTP headers on the login pages.&lt;br /&gt;
&lt;br /&gt;
== For the administrator ==&lt;br /&gt;
&lt;br /&gt;
* 2FA optional or &#039;&#039;&#039;mandatory for everyone&#039;&#039;&#039;, with one checkbox.&lt;br /&gt;
* Users are prompted to set up 2FA at their next login.&lt;br /&gt;
* Dashboard: adoption rate, last 24 h activity, blocked IP addresses.&lt;br /&gt;
* Overview of all users, reset of an account&#039;s 2FA, forced re-enrollment.&lt;br /&gt;
* Responsive login pages that stay readable whatever the Dolibarr theme.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable the module. Tables are created automatically.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module (Setup → Modules). Settings, data and user permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 18, 20, 22, 23 and 24).&lt;br /&gt;
* PHP 7.4 to 8.4, MySQL / MariaDB, OpenSSL extension.&lt;br /&gt;
* HTTPS required for WebAuthn / FIDO2 (a browser requirement).&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-2FA-verify.png|Verification screen after the password&lt;br /&gt;
File:TheoPequignot-2FA-devices.png|Devices and backup codes on the user card&lt;br /&gt;
File:TheoPequignot-2FA-admin.png|Administration: users, devices, mandatory 2FA&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.0.3&#039;&#039;&#039; (3 October 2026): &#039;&#039;&#039;security fix, update recommended on Dolibarr 16 to 18&#039;&#039;&#039;. On these versions the second factor was not asked: the check relied on a Dolibarr hook that only exists from version 19. It now goes through a hook present in every version and called on every request. On every version, document downloads and exports also require the verification.&lt;br /&gt;
* &#039;&#039;&#039;6.0.2&#039;&#039;&#039; (2 October 2026): administration page fixed, interface translated into French and English.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Double_authentification_(2FA)&amp;diff=67746</id>
		<title>Module Double authentification (2FA)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Double_authentification_(2FA)&amp;diff=67746"/>
		<updated>2026-10-03T00:48:22Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Module update (editor: Theo Pequignot)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Two-Factor_Authentication_(2FA) --&amp;gt;&lt;br /&gt;
[[en:Module Two-Factor Authentication (2FA)]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-2FA-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194155&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 6.0.3&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=2899 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Un mot de passe volé, deviné ou réutilisé suffit pour entrer dans votre Dolibarr, et avec lui dans vos clients, vos factures et votre banque. Ce module ajoute un second facteur à la connexion : même avec le bon mot de passe, personne n&#039;entre sans le téléphone, la clé ou l&#039;empreinte de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Trois méthodes, au choix de chaque utilisateur ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Application TOTP&#039;&#039;&#039; : code à 6 chiffres renouvelé toutes les 30 secondes. Compatible Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Aegis, FreeOTP. Le QR code est généré sur votre serveur, sans service tiers.&lt;br /&gt;
* &#039;&#039;&#039;WebAuthn / FIDO2&#039;&#039;&#039; : clés de sécurité (YubiKey…) et biométrie intégrée (Windows Hello, Touch ID, Face ID). Une touche et c&#039;est fait.&lt;br /&gt;
* &#039;&#039;&#039;Codes de secours&#039;&#039;&#039; : 10 codes à usage unique, stockés hachés en bcrypt, pour ne jamais rester bloqué après la perte d&#039;un téléphone.&lt;br /&gt;
&lt;br /&gt;
== Plusieurs appareils par compte ==&lt;br /&gt;
&lt;br /&gt;
* Un utilisateur peut enregistrer son téléphone, une clé de sécurité et son ordinateur portable, et les nommer.&lt;br /&gt;
* Il ajoute, renomme ou révoque ses appareils lui-même, depuis l&#039;onglet Sécurité de sa fiche.&lt;br /&gt;
&lt;br /&gt;
== Sécurité renforcée ==&lt;br /&gt;
&lt;br /&gt;
* Secrets TOTP chiffrés en base (AES-256-CBC).&lt;br /&gt;
* Blocage après un nombre d&#039;échecs réglable (5 par défaut).&lt;br /&gt;
* Anti-rejeu : un code accepté ne peut pas resservir.&lt;br /&gt;
* Journal d&#039;audit de chaque tentative : date, adresse IP, méthode, appareil, résultat.&lt;br /&gt;
* Protection CSRF sur tous les formulaires et en-têtes HTTP stricts sur les pages de connexion.&lt;br /&gt;
&lt;br /&gt;
== Pour l&#039;administrateur ==&lt;br /&gt;
&lt;br /&gt;
* 2FA facultative ou &#039;&#039;&#039;obligatoire pour tous&#039;&#039;&#039;, en une case à cocher.&lt;br /&gt;
* Invitation à configurer la 2FA dès la connexion suivante.&lt;br /&gt;
* Tableau de bord : taux d&#039;adoption, activité des dernières 24 h, adresses IP bloquées.&lt;br /&gt;
* Vue de tous les utilisateurs, réinitialisation de la 2FA d&#039;un compte, ré-enrôlement forcé.&lt;br /&gt;
* Pages de connexion responsive, lisibles quel que soit le thème Dolibarr.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez le module. Les tables sont créées automatiquement.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module (Configuration → Modules). Réglages, données et droits des utilisateurs sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 18, 20, 22, 23 et 24).&lt;br /&gt;
* PHP 7.4 à 8.4, MySQL / MariaDB, extension OpenSSL.&lt;br /&gt;
* HTTPS obligatoire pour WebAuthn / FIDO2 (exigence des navigateurs).&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-2FA-verify.png|Écran de vérification après le mot de passe&lt;br /&gt;
File:TheoPequignot-2FA-devices.png|Appareils et codes de secours sur la fiche utilisateur&lt;br /&gt;
File:TheoPequignot-2FA-admin.png|Administration : utilisateurs, appareils, 2FA obligatoire&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;6.0.3&#039;&#039;&#039; (3 octobre 2026) : &#039;&#039;&#039;correction de sécurité, mise à jour recommandée sur Dolibarr 16 à 18&#039;&#039;&#039;. Sur ces versions, le second facteur n&#039;était pas demandé : le contrôle reposait sur un point d&#039;accroche de Dolibarr qui n&#039;existe qu&#039;à partir de la version 19. Il passe désormais par un point d&#039;accroche présent dans toutes les versions et appelé à chaque requête. Sur toutes les versions, les téléchargements de documents et les exports exigent eux aussi la vérification.&lt;br /&gt;
* &#039;&#039;&#039;6.0.2&#039;&#039;&#039; (2 octobre 2026) : page d&#039;administration corrigée, interface traduite en français et en anglais.&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-BackupGuard-upgrade.png&amp;diff=67745</id>
		<title>File:TheoPequignot-BackupGuard-upgrade.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-BackupGuard-upgrade.png&amp;diff=67745"/>
		<updated>2026-10-03T00:48:19Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr module BackupGuard 2.2.0 by Theo Pequignot (https://theopequignot.fr).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr module BackupGuard 2.2.0 by Theo Pequignot (https://theopequignot.fr).&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-BackupGuard-restore.png&amp;diff=67744</id>
		<title>File:TheoPequignot-BackupGuard-restore.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-BackupGuard-restore.png&amp;diff=67744"/>
		<updated>2026-10-03T00:48:11Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Screenshot of the Dolibarr module BackupGuard 2.2.0 by Theo Pequignot (https://theopequignot.fr).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr module BackupGuard 2.2.0 by Theo Pequignot (https://theopequignot.fr).&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_AutoFacture&amp;diff=67743</id>
		<title>Module AutoFacture</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_AutoFacture&amp;diff=67743"/>
		<updated>2026-10-02T17:19:41Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1 : captures et nouveautes / screenshots and new features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN origin interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments&lt;br /&gt;
     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt;&lt;br /&gt;
[[fr:Module AutoFacture FR]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-AutoFacture-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Editor&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Module ID&lt;br /&gt;
| 194157&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.6.1&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 to 24&lt;br /&gt;
|-&lt;br /&gt;
! Where to get it&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3631 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Every month the same invoices have to be made again: maintenance, hosting, backup, licences. Forget one and you lose money, send one twice and the customer is annoyed. AutoFacture takes care of it: each subscription produces its invoice on the right date, validated and as a PDF, and a dedicated screen follows what is not paid yet.&lt;br /&gt;
&lt;br /&gt;
== Subscriptions and automatic generation ==&lt;br /&gt;
&lt;br /&gt;
* Monthly, bimonthly, quarterly, half-yearly or yearly subscriptions, billed at the start or end of the period, with an optional end date.&lt;br /&gt;
* Invoices created, validated and turned into PDF on their own, with the month or period written in the lines (&amp;lt;code&amp;gt;__AF_PERIOD__&amp;lt;/code&amp;gt; tag).&lt;br /&gt;
* &#039;&#039;&#039;Never the same invoice twice&#039;&#039;&#039;: one invoice per subscription and period, guaranteed by a unique key in the database.&lt;br /&gt;
* Works with or without a scheduled job: without cron, due invoices are generated while users browse.&lt;br /&gt;
* &#039;&#039;&#039;Invoice author of your choice&#039;&#039;&#039;: a setting names the account that signs generated invoices, whatever triggers the generation.&lt;br /&gt;
* &#039;&#039;&#039;Billing day of your choice&#039;&#039;&#039;: the invoice is dated on the day of the month you want (1 to 28), at the start or end of the period.&lt;br /&gt;
* &#039;&#039;&#039;Automation status&#039;&#039;&#039; on the dashboard, with the exact crontab line; on-demand generation, line by line or for everything due.&lt;br /&gt;
* &#039;&#039;&#039;Always a PDF&#039;&#039;&#039;: if the PDF template inherited from the template invoice is no longer available, the module falls back to the default invoice template, then to an active one, and records it in the journal.&lt;br /&gt;
&lt;br /&gt;
== Three ways to create a subscription ==&lt;br /&gt;
&lt;br /&gt;
* From scratch, on one card: a control sentence states the first invoice date and the period covered before you confirm.&lt;br /&gt;
* From an existing invoice: the module finds the period in the lines (&amp;quot;November 2026&amp;quot;, &amp;quot;from 01/11 to 30/11&amp;quot;…) and makes it dynamic.&lt;br /&gt;
* With the &#039;&#039;&#039;analyzer&#039;&#039;&#039;, which finds recurring series among your manual invoices and converts them in one click.&lt;br /&gt;
&lt;br /&gt;
== Unpaid invoices and reminders ==&lt;br /&gt;
&lt;br /&gt;
* Aged balance: outstanding amounts by age bracket, and for each invoice the real amount due (payments, credit notes and deposits deducted).&lt;br /&gt;
* Tiered reminders (30, 60 and 180 days by default), each with its own email template.&lt;br /&gt;
* &#039;&#039;&#039;No reminder is sent without your approval&#039;&#039;&#039;: the module proposes, you decide.&lt;br /&gt;
* Grouped reminders from the unpaid screen and multiple selection in the journal; subject and message of each step editable in the settings.&lt;br /&gt;
&lt;br /&gt;
== Payment terms under control ==&lt;br /&gt;
&lt;br /&gt;
* By default the customer&#039;s terms; a choice per subscription; or a term enforced on every generated invoice from the settings.&lt;br /&gt;
* &#039;&#039;&#039;Fixed day of the month&#039;&#039;&#039;: &amp;quot;on the 10th of the month&amp;quot; or any other day from 1 to 28, picked straight from the list. The due date falls on that day in the invoice month, or the next month if the day has passed.&lt;br /&gt;
* The due date is recalculated before validation: the PDF and the aged balance show the right date.&lt;br /&gt;
&lt;br /&gt;
== Sending and journal ==&lt;br /&gt;
&lt;br /&gt;
* Invoice emailed with your templates, after your review or automatically, your choice. Nothing is sent if the invoice is still a draft; a missing PDF is generated when the email is sent.&lt;br /&gt;
* Full journal: every invoice generated or failed, every reminder proposed, sent or dismissed.&lt;br /&gt;
* An invoice without PDF is flagged « PDF missing » in the journal and on the subscription card, with a « Generate the PDF » button.&lt;br /&gt;
&lt;br /&gt;
== Built on the native engine ==&lt;br /&gt;
Each subscription relies on a native Dolibarr template invoice: lines, amounts, VAT and terms stay managed by the core, and templates remain visible even if the module is disabled.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Home → Setup → Modules → &amp;quot;Deploy/install external app/module&amp;quot;, upload the zip and enable AutoFacture. The scheduled job is created on activation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upgrading from a previous version:&#039;&#039;&#039; replace the files, then disable and re-enable the module. Subscriptions, journal, settings and permissions are kept.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.6.1&#039;&#039;&#039; (2 October 2026): the module menus are shown again on Dolibarr 23 and 24.&lt;br /&gt;
* &#039;&#039;&#039;1.6.0&#039;&#039;&#039; (2 October 2026): invoice author of your choice, billing day, automation status and on-demand generation, grouped reminders and editable reminder messages; with some PDF template modules only the first invoice of a run had its PDF, fixed.&lt;br /&gt;
* &#039;&#039;&#039;1.5.0&#039;&#039;&#039; (2 October 2026): due date on a fixed day of the month (&amp;quot;on the 10th&amp;quot;…), chosen in the settings or on the subscription card; the &amp;quot;Payment terms&amp;quot; line is shown again on the PDF of generated invoices.&lt;br /&gt;
* &#039;&#039;&#039;1.4.1&#039;&#039;&#039; (2 October 2026): invoices generated with a PDF template that was no longer available had no PDF; fallback generation, PDF built when the email is sent, catch-up button in the journal.&lt;br /&gt;
* &#039;&#039;&#039;1.4.0&#039;&#039;&#039; (2 October 2026): configurable payment terms (per subscription or enforced), new module id 194157.&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 to 24 (verified on 16, 22, 23 and 24).&lt;br /&gt;
* PHP 7.0 and above, MySQL / MariaDB.&lt;br /&gt;
* English and French included. Email support and updates for 2 years.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-AutoFacture-dashboard.png|Dashboard: subscriptions, monthly equivalent revenue, next invoices, on-demand generation&lt;br /&gt;
File:TheoPequignot-AutoFacture-card.png|Subscription card&lt;br /&gt;
File:TheoPequignot-AutoFacture-create.png|Creating a subscription, control sentence and billing day&lt;br /&gt;
File:TheoPequignot-AutoFacture-analyzer.png|Analyzer: recurring series found among manual invoices&lt;br /&gt;
File:TheoPequignot-AutoFacture-unpaid.png|Unpaid invoices: aged balance and grouped reminders&lt;br /&gt;
File:TheoPequignot-AutoFacture-journal.png|Generation journal and sending queue&lt;br /&gt;
File:TheoPequignot-AutoFacture-reminders.png|Reminders to approve, multiple selection&lt;br /&gt;
File:TheoPequignot-AutoFacture-automation.png|Automation status and immediate generation&lt;br /&gt;
File:TheoPequignot-AutoFacture-author.png|Author of generated invoices&lt;br /&gt;
File:TheoPequignot-AutoFacture-payment-terms.png|Payment terms: those of each subscription, a term from the dictionary, or a fixed day of the month&lt;br /&gt;
File:TheoPequignot-AutoFacture-dunning.png|Reminder steps, editable subject and message&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Questions before buying, installation or update issues: write to [mailto:contact@theopequignot.fr contact@theopequignot.fr]. I am the developer of this module and I answer myself. Support and updates are included for 2 years with the DoliStore purchase.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_AutoFacture_FR&amp;diff=67742</id>
		<title>Module AutoFacture FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_AutoFacture_FR&amp;diff=67742"/>
		<updated>2026-10-02T17:19:30Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1 : captures et nouveautes / screenshots and new features&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_AutoFacture --&amp;gt;&lt;br /&gt;
[[en:Module_AutoFacture]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;br /&gt;
&lt;br /&gt;
[[File:TheoPequignot-AutoFacture-logo.png|right|180px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Éditeur&lt;br /&gt;
| Theo Pequignot ([https://theopequignot.fr theopequignot.fr])&lt;br /&gt;
|-&lt;br /&gt;
! Identifiant du module&lt;br /&gt;
| 194157&lt;br /&gt;
|-&lt;br /&gt;
! Version&lt;br /&gt;
| 1.6.1&lt;br /&gt;
|-&lt;br /&gt;
! Dolibarr&lt;br /&gt;
| 16 à 24&lt;br /&gt;
|-&lt;br /&gt;
! Où l&#039;obtenir&lt;br /&gt;
| [https://www.dolistore.com/product.php?id=3631 DoliStore]&lt;br /&gt;
|-&lt;br /&gt;
! Support&lt;br /&gt;
| [mailto:contact@theopequignot.fr contact@theopequignot.fr]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Chaque mois, il faut refaire les mêmes factures : maintenance, hébergement, sauvegarde, licences. Un oubli et c&#039;est de l&#039;argent perdu, un doublon et c&#039;est un client agacé. AutoFacture s&#039;en charge : chaque abonnement produit sa facture à la bonne date, validée et en PDF, et un écran dédié suit ce qui n&#039;est pas encore payé.&lt;br /&gt;
&lt;br /&gt;
== Abonnements et génération automatique ==&lt;br /&gt;
&lt;br /&gt;
* Abonnements mensuels, bimestriels, trimestriels, semestriels ou annuels, facturés en début ou en fin de période, avec date de fin facultative.&lt;br /&gt;
* Factures créées, validées et mises en PDF toutes seules, le mois ou la période écrits dans les libellés (balise &amp;lt;code&amp;gt;__AF_PERIOD__&amp;lt;/code&amp;gt;).&lt;br /&gt;
* &#039;&#039;&#039;Jamais deux fois la même facture&#039;&#039;&#039; : une seule facture par abonnement et par période, garanti par une clé unique en base.&lt;br /&gt;
* Fonctionne avec ou sans tâche planifiée : sans cron, les factures dues sont générées pendant la navigation.&lt;br /&gt;
* &#039;&#039;&#039;Auteur des factures au choix&#039;&#039;&#039; : un réglage nomme le compte qui signe les factures générées, quel que soit le déclencheur.&lt;br /&gt;
* &#039;&#039;&#039;Jour de facturation au choix&#039;&#039;&#039; : la facture est datée le jour du mois que vous voulez (1 à 28), en début ou en fin de période.&lt;br /&gt;
* &#039;&#039;&#039;État de l&#039;automatisation&#039;&#039;&#039; affiché sur le tableau de bord, avec la ligne de crontab exacte ; génération à la demande, ligne par ligne ou pour tout ce qui est dû.&lt;br /&gt;
* &#039;&#039;&#039;Toujours un PDF&#039;&#039;&#039; : si le modèle PDF hérité de la facture modèle n&#039;est plus disponible, le module bascule sur le modèle par défaut des factures puis sur un modèle actif, et le note au journal.&lt;br /&gt;
&lt;br /&gt;
== Trois façons de créer un abonnement ==&lt;br /&gt;
&lt;br /&gt;
* De zéro, en une fiche : une phrase de contrôle annonce la date de la première facture et la période couverte avant de valider.&lt;br /&gt;
* Depuis une facture existante : le module repère la période dans les libellés (« novembre 2026 », « du 01/11 au 30/11 »…) et la rend dynamique.&lt;br /&gt;
* Avec l’&#039;&#039;&#039;analyseur&#039;&#039;&#039;, qui retrouve dans vos factures manuelles les séries récurrentes et les convertit en un clic.&lt;br /&gt;
&lt;br /&gt;
== Impayés et relances ==&lt;br /&gt;
&lt;br /&gt;
* Balance âgée : l&#039;encours par tranche d&#039;ancienneté, et pour chaque facture le reste dû réel (règlements, avoirs et acomptes déduits).&lt;br /&gt;
* Relances par paliers (30, 60 et 180 jours par défaut), chacune avec son modèle d&#039;e-mail.&lt;br /&gt;
* &#039;&#039;&#039;Aucune relance ne part sans votre validation&#039;&#039;&#039; : le module propose, vous décidez.&lt;br /&gt;
* Relances groupées depuis l&#039;écran des impayés et sélection multiple dans le journal ; sujet et message de chaque palier modifiables dans les réglages.&lt;br /&gt;
&lt;br /&gt;
== Conditions de règlement maîtrisées ==&lt;br /&gt;
&lt;br /&gt;
* Par défaut, celles du client ; un choix propre à chaque abonnement ; ou une condition imposée à toutes les factures générées depuis les réglages.&lt;br /&gt;
* &#039;&#039;&#039;Échéance à jour fixe&#039;&#039;&#039; : « le 10 du mois » ou tout autre jour de 1 à 28, choisi directement dans la liste. L&#039;échéance tombe ce jour-là dans le mois de la facture, ou le mois suivant si le jour est passé.&lt;br /&gt;
* L&#039;échéance est recalculée avant la validation : le PDF et la balance âgée portent la bonne date.&lt;br /&gt;
&lt;br /&gt;
== Envoi au client et journal ==&lt;br /&gt;
&lt;br /&gt;
* Envoi de la facture par e-mail avec vos modèles, après votre relecture ou automatiquement, au choix. Rien ne part si la facture est en brouillon ; un PDF manquant est généré au moment de l&#039;envoi.&lt;br /&gt;
* Journal complet : chaque facture générée ou en erreur, chaque relance proposée, envoyée ou écartée.&lt;br /&gt;
* Une facture sans PDF est signalée « PDF manquant » dans le journal et sur la fiche de l&#039;abonnement, avec un bouton « Générer le PDF ».&lt;br /&gt;
&lt;br /&gt;
== Construit sur le moteur natif ==&lt;br /&gt;
Chaque abonnement s&#039;appuie sur une facture modèle native de Dolibarr : lignes, montants, TVA et conditions restent gérés par le cœur, et les modèles restent visibles même si le module est désactivé.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Accueil → Configuration → Modules → « Déployer/installer un module externe », envoyez le zip puis activez AutoFacture. La tâche planifiée est créée à l&#039;activation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mise à jour depuis une version précédente :&#039;&#039;&#039; remplacez les fichiers, puis désactivez et réactivez le module. Abonnements, journal, réglages et droits sont conservés.&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1.6.1&#039;&#039;&#039; (2 octobre 2026) : les menus du module s&#039;affichent de nouveau sur Dolibarr 23 et 24.&lt;br /&gt;
* &#039;&#039;&#039;1.6.0&#039;&#039;&#039; (2 octobre 2026) : auteur des factures au choix, jour de facturation, état de l&#039;automatisation et génération à la demande, relances groupées et messages de relance modifiables ; avec certains modules de modèles PDF, seule la première facture d&#039;un passage avait son PDF, corrigé.&lt;br /&gt;
* &#039;&#039;&#039;1.5.0&#039;&#039;&#039; (2 octobre 2026) : échéance à jour fixe du mois (« le 10 du mois »…), choisie dans les réglages ou sur la fiche de l&#039;abonnement ; la ligne « Conditions de règlement » apparaît de nouveau sur le PDF des factures générées.&lt;br /&gt;
* &#039;&#039;&#039;1.4.1&#039;&#039;&#039; (2 octobre 2026) : les factures générées avec un modèle PDF devenu indisponible restaient sans PDF ; génération de secours, PDF créé à l&#039;envoi du mail, bouton de rattrapage dans le journal.&lt;br /&gt;
* &#039;&#039;&#039;1.4.0&#039;&#039;&#039; (2 octobre 2026) : conditions de règlement réglables (par abonnement ou imposées), nouvel identifiant 194157.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
&lt;br /&gt;
* Dolibarr 16 à 24 (vérifié sur 16, 22, 23 et 24).&lt;br /&gt;
* PHP 7.0 et plus, MySQL / MariaDB.&lt;br /&gt;
* Français et anglais inclus. Support par e-mail et mises à jour pendant 2 ans.&lt;br /&gt;
&lt;br /&gt;
== Captures ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot; heights=&amp;quot;220px&amp;quot;&amp;gt;&lt;br /&gt;
File:TheoPequignot-AutoFacture-dashboard.png|Tableau de bord : abonnements, revenu mensuel équivalent, prochaines factures, génération à la demande&lt;br /&gt;
File:TheoPequignot-AutoFacture-card.png|Fiche d&#039;un abonnement&lt;br /&gt;
File:TheoPequignot-AutoFacture-create.png|Création d&#039;un abonnement, phrase de contrôle et jour de facturation&lt;br /&gt;
File:TheoPequignot-AutoFacture-analyzer.png|Analyseur : séries récurrentes retrouvées dans les factures manuelles&lt;br /&gt;
File:TheoPequignot-AutoFacture-unpaid.png|Impayés : balance âgée et relances groupées&lt;br /&gt;
File:TheoPequignot-AutoFacture-journal.png|Journal des générations et file d&#039;envoi&lt;br /&gt;
File:TheoPequignot-AutoFacture-reminders.png|Relances à valider, sélection multiple&lt;br /&gt;
File:TheoPequignot-AutoFacture-automation.png|État de l&#039;automatisation et génération immédiate&lt;br /&gt;
File:TheoPequignot-AutoFacture-author.png|Auteur des factures générées&lt;br /&gt;
File:TheoPequignot-AutoFacture-payment-terms.png|Conditions de règlement : celles de chaque abonnement, une condition du dictionnaire, ou un jour fixe du mois&lt;br /&gt;
File:TheoPequignot-AutoFacture-dunning.png|Paliers de relance, sujet et message modifiables&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
Une question avant l&#039;achat, un souci d&#039;installation ou de mise à jour : écrivez à [mailto:contact@theopequignot.fr contact@theopequignot.fr]. Je suis le développeur du module et je réponds moi-même. Support et mises à jour inclus pendant 2 ans avec l&#039;achat sur le DoliStore.&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-dunning.png&amp;diff=67741</id>
		<title>File:TheoPequignot-AutoFacture-dunning.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-dunning.png&amp;diff=67741"/>
		<updated>2026-10-02T17:19:29Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-payment-terms.png&amp;diff=67740</id>
		<title>File:TheoPequignot-AutoFacture-payment-terms.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-payment-terms.png&amp;diff=67740"/>
		<updated>2026-10-02T17:19:27Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Theopequiii uploaded a new version of File:TheoPequignot-AutoFacture-payment-terms.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr module AutoFacture by Theo Pequignot (https://theopequignot.fr).&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-author.png&amp;diff=67739</id>
		<title>File:TheoPequignot-AutoFacture-author.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-author.png&amp;diff=67739"/>
		<updated>2026-10-02T17:19:27Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-automation.png&amp;diff=67738</id>
		<title>File:TheoPequignot-AutoFacture-automation.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-automation.png&amp;diff=67738"/>
		<updated>2026-10-02T17:19:25Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-reminders.png&amp;diff=67737</id>
		<title>File:TheoPequignot-AutoFacture-reminders.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-reminders.png&amp;diff=67737"/>
		<updated>2026-10-02T17:19:24Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-journal.png&amp;diff=67736</id>
		<title>File:TheoPequignot-AutoFacture-journal.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-journal.png&amp;diff=67736"/>
		<updated>2026-10-02T17:19:22Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-unpaid.png&amp;diff=67735</id>
		<title>File:TheoPequignot-AutoFacture-unpaid.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-unpaid.png&amp;diff=67735"/>
		<updated>2026-10-02T17:19:19Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Theopequiii uploaded a new version of File:TheoPequignot-AutoFacture-unpaid.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr module AutoFacture by Theo Pequignot (https://theopequignot.fr).&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-analyzer.png&amp;diff=67734</id>
		<title>File:TheoPequignot-AutoFacture-analyzer.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-analyzer.png&amp;diff=67734"/>
		<updated>2026-10-02T17:19:19Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-create.png&amp;diff=67733</id>
		<title>File:TheoPequignot-AutoFacture-create.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-create.png&amp;diff=67733"/>
		<updated>2026-10-02T17:19:16Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: Theopequiii uploaded a new version of File:TheoPequignot-AutoFacture-create.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Dolibarr module AutoFacture by Theo Pequignot (https://theopequignot.fr).&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-card.png&amp;diff=67732</id>
		<title>File:TheoPequignot-AutoFacture-card.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:TheoPequignot-AutoFacture-card.png&amp;diff=67732"/>
		<updated>2026-10-02T17:19:16Z</updated>

		<summary type="html">&lt;p&gt;Theopequiii: AutoFacture 1.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AutoFacture 1.6.1&lt;/div&gt;</summary>
		<author><name>Theopequiii</name></author>
	</entry>
</feed>