# CHAPITRE 17 — Préparer un site Dolibarr Website

Avant de pouvoir éditer un site via le module, ce site doit exister côté Dolibarr Website. Ce chapitre s'adresse au développeur qui démarre un nouveau projet : créer le site, le câbler proprement, et préparer le terrain pour le Studio.

### <span style="color: rgb(35, 111, 161);">Étape 1 — Créer le site dans Dolibarr Website</span>

1. Connectez-vous à Dolibarr en tant qu'administrateur.
2. Rendez-vous dans Accueil → Sites web.
3. <span style="white-space: pre-wrap;">Cliquez sur </span>**Nouveau site**.
4. Renseignez les informations suivantes :
    - **Référence**<span style="white-space: pre-wrap;"> : identifiant court sans espace, par exemple </span>`<span class="editor-theme-code">monsite</span>`<span style="white-space: pre-wrap;"> ou </span>`<span class="editor-theme-code">keaticweb</span>`. C'est l'identifiant interne, utilisé partout (URLs des wrappers, dossiers de données, constantes de configuration).
    - **Description**<span style="white-space: pre-wrap;"> : libellé facultatif.</span>
    - **Virtualhost principal**<span style="white-space: pre-wrap;"> : URL publique, par exemple </span>`<span class="editor-theme-code">https://monsite.com</span>`.
    - **Langue principale**<span style="white-space: pre-wrap;"> : code de la locale, par exemple </span>`<span class="editor-theme-code">fr_FR</span>`.
    - **Autres langues**<span style="white-space: pre-wrap;"> : valeurs séparées par des virgules, par exemple </span>`<span class="editor-theme-code">en_US,de_DE,es_ES</span>`.
5. Enregistrez.

<p class="callout info">**Convention de référence —**<span style="white-space: pre-wrap;"> Privilégiez un identifiant court et stable. Cette référence apparaîtra dans les chemins de fichiers, les URLs internes et les constantes de configuration. La modifier ultérieurement nécessite plusieurs ajustements.</span></p>

### <span style="color: rgb(35, 111, 161);">Étape 2 — Configurer le virtualhost Apache</span>

Le module Website ne configure pas Apache pour vous. Vous devez créer un VirtualHost qui pointe sur le docroot du site.

##### **Arborescence type**

```
/var/www/monsite/                           # docroot Apache du site
├── index.php                                # wrapper page d'accueil
├── <alias>.php                              # autres wrappers générés
├── master.inc.php                           # bootstrap (inclut DOL_DOCUMENT_ROOT)
├── medias  -> lien symbolique vers DOL_DATA_ROOT/<entity>/medias/
└── ...

DOL_DATA_ROOT/<entity>/website/monsite/      # dossier de données du site
├── page1.tpl.php                            # gabarits des pages
├── page2.tpl.php
├── ...
└── htmlheader.html                          # en-tête commun éventuel
```

##### **Exemple de VirtualHost minimal**

```
<VirtualHost *:443>
    ServerName monsite.com
    DocumentRoot /var/www/monsite

    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/monsite.com/fullchain.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/monsite.com/privkey.pem

    <Directory /var/www/monsite>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    # PHP-FPM dédié recommandé
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.2-fpm.monsite.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>
```

<p class="callout info">**Note —**<span style="white-space: pre-wrap;"> Un pool PHP-FPM dédié est recommandé pour isoler les performances et les variables d'environnement par site. Le pool peut tourner sous un utilisateur spécifique pour faciliter la gestion des permissions.</span></p>

### <span style="color: rgb(35, 111, 161);">Étape 3 — Le lien symbolique medias</span>

Pour que les images téléversées soient servies directement par Apache (mode média « native »), il faut un lien symbolique :

```
cd /var/www/monsite
ln -sfn /mnt/data/dolibarr/<entity>/medias medias
ls -la medias  # doit pointer sur le dossier de données Dolibarr
```

<p class="callout info">**Conseil —**<span style="white-space: pre-wrap;"> Si vous ne pouvez pas créer ce lien symbolique, basculez le site en mode média </span>**module**<span style="white-space: pre-wrap;"> dans la configuration du module. Les images seront servies via </span>`<span class="editor-theme-code">document.php</span>`, avec un coût de performance modéré.</p>

### <span style="color: rgb(35, 111, 161);">Étape 4 — Le master.inc.php multicompany</span>

<span style="white-space: pre-wrap;">Si votre installation Dolibarr fonctionne en multicompany, le fichier </span>`<span class="editor-theme-code">master.inc.php</span>`<span style="white-space: pre-wrap;"> du site doit définir </span>`<span class="editor-theme-code">DOLENTITY</span>`<span style="white-space: pre-wrap;"> avant le chargement :</span>

```
<?php
// /var/www/monsite/master.inc.php
define('DOLENTITY', 2);   // l'entity correspondant au client
require_once '/var/www/dolibarr/htdocs/master.inc.php';
```

<p class="callout warning">**Avertissement —**<span style="white-space: pre-wrap;"> Sur une instance multicompany sans </span>`<span class="editor-theme-code">DOLENTITY</span>`, le site renverra une erreur 503 ou affichera les données de la mauvaise entity. C'est l'erreur la plus fréquemment rencontrée lors de la mise en service.</p>

### <span style="color: rgb(35, 111, 161);">Étape 5 — Créer la page d'accueil</span>

Toujours dans le module Website Dolibarr :

1. Sélectionnez votre site.
2. <span style="white-space: pre-wrap;">Cliquez sur </span>**Nouvelle page**.
3. Renseignez :
    - **Page URL**<span style="white-space: pre-wrap;"> : </span>`<span class="editor-theme-code">home</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">index</span>`<span style="white-space: pre-wrap;"> ou autre.</span>
    - **Title**<span style="white-space: pre-wrap;"> : Accueil.</span>
    - **Type container**<span style="white-space: pre-wrap;"> : </span>`<span class="editor-theme-code">page</span>`.
    - **Lang**<span style="white-space: pre-wrap;"> : </span>`<span class="editor-theme-code">fr_FR</span>`.
    - **Status**<span style="white-space: pre-wrap;"> : Brouillon (le passage à Publié interviendra plus tard).</span>
4. Enregistrez.
5. <span style="white-space: pre-wrap;">Dolibarr crée automatiquement les fichiers </span>`<span class="editor-theme-code">/var/www/monsite/home.php</span>`<span style="white-space: pre-wrap;"> et </span>`<span class="editor-theme-code">page<N>.tpl.php</span>`.

### <span style="color: rgb(35, 111, 161);">Étape 6 — Activer le site dans le module</span>

La procédure complète est détaillée au Chapitre 7. En résumé :

1. Outils → InfraSStudio → Configuration.
2. Cochez votre site dans la liste.
3. Choisissez le mode média (**native**<span style="white-space: pre-wrap;"> recommandé).</span>
4. Enregistrez.

### <span style="color: rgb(35, 111, 161);">Étape 7 — Annoter les premières pages avec des slots</span>

<span style="white-space: pre-wrap;">Cette étape fait l'objet du Chapitre 18. En quelques mots : modifiez le fichier </span>`<span class="editor-theme-code">page<N>.tpl.php</span>`<span style="white-space: pre-wrap;"> pour ajouter des tokens </span>`<span class="editor-theme-code">{{slot:nom|type=...}}</span>`<span style="white-space: pre-wrap;"> aux endroits que vous souhaitez rendre éditables.</span>

### <span style="color: rgb(35, 111, 161);">Étape 8 — Vérifier avec la page Diagnostic</span>

Avant de livrer le site au client, lancez le diagnostic (Outils → InfraSStudio → Diagnostic) :

- Tous les voyants verts dans Environnement, Schéma SQL, Stockage et Intégration Dolibarr.
- Le site géré apparaît dans la section Sites avec docroot résolu, mode média correct et dossier de données accessible en écriture.

### <span style="color: rgb(35, 111, 161);">Récapitulatif</span>

**Votre site est prêt si :**

- Le site est créé dans Dolibarr Website (référence, virtualhost, langues).
- Le VirtualHost Apache pointe sur le bon docroot.
- <span style="white-space: pre-wrap;">Le lien symbolique </span>`<span class="editor-theme-code">medias</span>`<span style="white-space: pre-wrap;"> est en place (mode native), ou la constante </span>`<span class="editor-theme-code">INFRASSTUDIO_SITE_<id>_MEDIA_MODE=module</span>`<span style="white-space: pre-wrap;"> est définie.</span>
- <span style="white-space: pre-wrap;">Le fichier </span>`<span class="editor-theme-code">master.inc.php</span>`<span style="white-space: pre-wrap;"> définit </span>`<span class="editor-theme-code">DOLENTITY</span>`<span style="white-space: pre-wrap;"> en multicompany.</span>
- Au moins une page existe (l'accueil).
- Le site est coché dans la configuration du module.
- La page Diagnostic est entièrement verte.

Le chapitre suivant aborde l'annotation des templates avec des slots.