---
title: "Gérer son blog avec Confluence."
canonical: "https://blog.kaptus.net/space/BKAP/blog/178716673/G%C3%A9rer%20son%20blog%20avec%20Confluence."
format: markdown
---
> Macro (toc)

# 1. Introduction.

Depuis maintenant plus de 20 ans, j’essaie de trouver un outil (**OpenSource**) me permettant de gérer la connaissance acquise au cours du temps et de partager certaines parties **pertinentes et non confidentielles** avec la communauté.

Pour la gestion des connaissances, j’avais commencé avec les outils suivant : 

| **Application** | **Période** | **Commentaire** |
| --- | --- | --- |
| [OpenCMS](http://www.opencms.org/en/) | **2004-2013** | Excellent [CMS](https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_contenu) en Java, mais la courbe d’apprentissage est très longues et les problèmes de mise à jours de version ont été une des raisons de l’abandon de cette solution. |
| [XWIKI](https://xwiki.com/fr/#) | **2012-2017** | Excellent [ECM](https://fr.wikipedia.org/wiki/Gestion_de_contenu_d%27entreprise) en Java. Une courbe d’apprentissage un peu moins longue, mais d’une grande flexibilité permettant même de développer ses propres contenus structurés de manière assez simple.  
Mais là aussi, la mise à jours dans une version supérieur a eu raison de son utilisation. |
| [BLOGGER](https://www.blogger.com/) | **2010-2014** | Un outil en ligne qui a été très satisfaisant dans les années 2010. Mais lorsque j’ai voulu insérer des parties de codes, de graphiques et autres, l'écriture d’un article commençait à être compliqué. De plus **BLOGGER** ne me permettait par de gérer ma base de connaissances techniques. |

En 2010, je découvre les outils **ATLASSIAN**. Lors d’une mission, j’utilise [JIRA](https://www.atlassian.com/software/jira) pour gérer les demandes d’interventions sur une application JAVA. Ce qui m’amène à m’intéresser à [CONFLUENCE](https://www.atlassian.com/software/confluence).

> 📝 Ce n’est pas **OpenSource**, mais **ATLASSIAN** proposait **un modèle de licence très avantageux pour des comptes de moins de 10 utilisateurs**.

J’ai donc monté un serveur sur notre infrastructure et j’ai installé le trio : 

- JIRA
- CONFLUENCE
- BITBUCKET

J’ai commencé à publier des posts sur un blog en mode **CONFLUENCE Server**, mais avec la nouvelle politique d’ATLASSIAN qui est **de ne plus commercialiser des licences Server à partir du **2/14/2024** **, j’ai du donc migrer sur **CONFLUENCE Cloud** et repenser la structure de mon blog. 

Ce document a pour objectif de faire un retour d’expérience sur la mis en place de ce blog en essayant de décrire les difficultés que j’ai rencontré, comment je les ai résolue, ainsi que les bénéfices et les limites de la solution mis en place.

> 📝 Pour information, voici les différents liens sur mes blogs :
> 📝 
> 📝 1. [BLOGGER Blog](http://www.blogintouch.com) → n’est plus maintenu
> 📝 2. [CONFLUENCE Server](https://blog.kaptus.fr) → n’est plus maintenu
> 📝 3. [CONFLUENCE Cloud](https://blog.kaptus.net) → **le blog officiel**

# 2. Côté add-ons.

Dans un premier temps, je vais lister les principaux **add-ons CONFLUENCE Cloud** que j’utilise pour mon blog.

| **AddOn** | **Description** |
| --- | --- |
| [DRAW IO](https://marketplace.atlassian.com/apps/1210933/draw-io-diagrams-whiteboards?tab=overview&hosting=cloud) | Un plugin incroyable pour dessiner pratiquement n’importe quel graphiques, schémas et bien plus encore. **Indispensable**. |
| [Numbered Headings](https://marketplace.atlassian.com/apps/16063/numbered-headings?hosting=cloud&tab=overview) | Un excellent plugin permettant de numéroter les titres d’un document :<br>![image](media://ff596ce4-d80d-4efa-9ee0-88730293d66a) |
| [Refined for Confluence Cloud](https://marketplace.atlassian.com/apps/1221322/refined-for-confluence-cloud?hosting=cloud&tab=overview) | Un plugin qui me permet de personnaliser les pages HTML de mon blog. |

# 3. Structure Confluence.

Mon CONFLUENCE est constitué de plusieurs espaces. Concernant le blog, j’en utilise 2 :

1. **Blog KAPTUS** → espace public dédié aux partage des connaissances.
2. **KAPTUS** → espace privé dédié à la gestion de notre base de connaissances. Je pars de certains articles écrits dans cette espace pour les copier dans l’espace du blog.

![image](media://3dd9de95-bbb3-404c-9aab-b977bf5f9410)

Sur l’espace public, j’ai appliqué les droits d’affichages pour tout le monde afin que le blog soit accessible **sans avoir à ce connecter à un compte ATLASSIAN**.

![image](media://78bca9ec-7aad-466d-a32f-22d90fb08fd1)

Sur le blog, je n’utilise que des fichiers de type blog-post, ce qui permet à CONFLUENCE de gérer de manière automatique la présentation par date de la mise en ligne des documents : 

![image](media://659bca6f-cfb2-4986-a314-3ea90859cbf5)

J’ai de plus, créée des fichiers de catégories afin de ranger les articles en fonction du sujet principal qu’ils abordent :

![image](media://93617032-4aa0-4e3c-832c-4c4959188024)

Chaque rubrique est configurée pour afficher les articles suivants une étiquette spécifique.

![image](media://d2626b21-b633-4fa7-936b-9da24e7bb585)

> 📝 Ce n’est peut-être pas parfait, mais c’est la structure que j’ai choisi pour l’instant.

# 4. Design du site.

On s’attaque au design du blog. En restant sur la présentation par défaut CONFLUENCE (avec un peu de custom quand même), on a :

![image](media://e1bd3668-2eb0-4d66-9961-6e574cd3ef77)

Ce n’est pas très satisfaisant pour plusieurs raisons :

1. Le look est un peu austère et même avec plus de paramétrages de CONFLUENCE, ça ne sera beaucoup mieux.
2. Pas très simple de gérer l’entête de la page et la mise en page.
3. Pas simple aussi de personnaliser l’URL d’accès.

Pour palier à ces problèmes, j’ai décidé d’utiliser le plugin [Refined for Confluence Cloud](https://marketplace.atlassian.com/apps/1221322/refined-for-confluence-cloud?hosting=cloud&tab=overview). Appliqué à un espace, ce plugin permet de gérer pas mal d’aspect de la présentation et du design. Au final, j’ai obtenu le résultat suivant :

![image](media://1274669a-d303-478e-bba2-6ff909a64b09)

## 4.1. Configuration du look and feel.

Dans un premier temps, il faut définir les paramètres du site au niveau de l’interface d’administration du plugin. On accède à l’interface depuis la barre de menu de CONFLUENCE :

![image](media://2ab3b251-4830-43d7-a23c-c8b04f90c8f2)


![image](media://6ffc7cd1-c1fd-46f1-8843-8c6b6f361c7c)


Le plugin Refined propose des thèmes par défauts : 

![image](media://8e9531c5-e8fa-4faa-8a52-00d14cc07dae)

Dans mon cas, j’ai choisi de dupliquer le thème “**Radiant**” et de l’adapter.  


![image](media://99397ba7-fcc4-4b32-b5bd-7b59aed450b4)

![image](media://f84e6131-0537-4a6f-bdc1-285c17be9743)

Il faut ajouter le contenu que vous souhaitez afficher dans le site. Dans mon cas, c’est le contenu qui se trouve dans l’espace “Blog KAPTUS” de Confluence : 

> Macro (drawio)

Et ajouter le contenu de l’espace :

![image](media://42f867e2-3c1c-48d3-88ce-2632fbb4b916)

![image](media://5eef7a88-cc0b-4aa7-9114-c972bc5e1df8)

![image](media://8384054e-fa14-4035-9114-73ee02305d8a)

Ensuite, il faut créer le menu de navigation que l’on va vouloir mettre en place. Dans mon cas, j’ai voulu ranger mes rubriques dans des catégories car elles étaient trop nombreuses pour être afficher dans un seul menu. J’ai choisi de les répartir de la manière suivante :

|  |  |
| --- | --- |
| ![image](media://f0470ac3-2398-4334-8610-7e80ebf775b3) | ![image](media://e60dc594-3015-4293-8036-c5cbb74919ff) |
| ![image](media://d2cb9836-9de8-4751-a55a-e94b1fb048bb) |  |

Pour créer un menu principal :

![image](media://01bfaef3-ecab-4533-adfd-1e3f146c76d0)

![image](media://0f158817-b068-4c8c-8cac-6e9efd8d6020)

Pour créer un menu qui pointe sur un contenu :

![image](media://96d9ca99-3e49-40b1-9b17-5f4df16c35d5)

![image](media://c43e68b4-50ad-436d-af39-2e86e07cad22)

> ⚠️ Là, c’est un peu laborieux car il faut aller directement récupérer le lien sur le site.

Un fois l’ensemble paramétré, on obtient le résultat suivant : 

![image](media://337f464f-04d0-4b77-922b-75b12a476fad)

## 4.2. Google Analytics.

Le paramétrage du plugin Refined, permet de personnaliser le domaine :

![image](media://c04a6bf0-8754-4991-b90e-d418f6e0bbab)

Ce qui est très intéressant pour :

- avoir une URL en relation avec la société du blog
- pouvoir plus facilement référencer le blog (voir le chapitre suivant).

Avant de rentrer le nom du domaine personnalisé, il faut mettre à jour sont DNS (dans mon cas c’est assez simple car la gestion des DNS sont sur mes serveurs) et ajouter l’enregistrement suivant :

```plaintext
blog                    	IN CNAME	custom.domain.refined.site.
```

Et vérifier que le domaine est bien accessible :

![image](media://e09c351a-8136-4f15-b8f5-a5e484ad90f7)

Puis valider la configuration Refined. 

![image](media://153895db-7d7d-4bf2-982d-a05ed2b39e1c)

Après quelques minutes d’attente, le site est configuré est accessible avec l’adresse renseignée :

![image](media://50e0be0a-c64b-427b-bb66-c8795a85c091)

Le certificat SSL/TLS est émis par Let’s Encrypt.

![image](media://757f5c1a-6309-42f1-aa69-fd49db5405d0)

Il faut à présent configurer Google Analytics créer une nouvelle propriété et créer le flux de données associé :

> Macro (drawio)

> Macro (drawio)

Il faut ensuite renseigner l’ID dans le plugin Refined :

> Macro (drawio)

On a ainsi les statistiques de consultations du blog avec très peu d’effort :

![image](media://77e2e7f7-096d-4302-9185-e7c7a305ed2f)

## 4.3. Côté référencement.

Pour la partie référencement, pour l’instant, je me suis consacré essentiellement à Google. Le plugin Refined, propose la génération d’un sitemaps.xml. Je vais donc profiter de cette fonctionnalité pour l’enregistrer au niveau de la console Google.

On ajoute une nouvelle propriété :

![image](media://cd2a858c-d474-4c86-9aaf-7604d5d431c1)

Lors de la création de la propriété, il faut montrer patte blanche et ajouter un enregistrement TXT dans le DNS pour confirmer à Google qu’on est bien le propriétaire du domaine : 

```plaintext
; google site verification
kaptus.net. IN TXT "google-site-verification=zDQXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxO4A"
```

Un fois que c’est valider :

![image](media://4f527af5-b545-4c5d-8eec-3999af76df3e)

on récupérer le lien de la sitemap :

![image](media://948064b8-381a-438b-9c0a-d5a1a5c5dbf5)

Et on l’ajoute dans la console Google 

![image](media://5e46d059-c3f4-4c9e-bf28-ba50eca292ff)

Ensuite il faut être patient pour que l’indexation Google se fasse : 

![image](media://95a60aa8-695c-4fec-8f6a-e0627e50fe0e)

# 5. Mode de fonctionnement.

Je décris ici le mode de fonctionnement que j’ai adopté pour gérer mon blog. J'écris régulièrement des articles de dépannages dans notre espace privé. Par exemple je vais traiter l’article ci-dessous.

![image](media://fb2075d2-fe59-41c9-9712-62428712fe85)

Lorsque je pense que je peux publier l’article dans le blog, je copie l’article dans l’espace du blog :

![image](media://a8b90291-5270-451b-895f-84edb70e985d)

Je retravaille l’article ci-nécessaire :   


![image](media://bdd5bda3-65f0-47ed-ac66-a6390ce82a20)

Et ensuite je convertie le fichier en type blog-post :

![image](media://3870f803-c915-44c9-bb6f-d428f6807bfb)

> ⚠️ Au moment de la création d’un fichier au format blog, je peux choisir une date de publication dans le futur mais pas si je fais une conversion.

Ensuite je vais éditer la page dans le plugin Refined pour y ajouter le logo :

![image](media://46b2da2f-487c-47d1-ab89-6319c740baaf)

![image](media://f261034f-e649-4d69-8b72-12b9406a8137)

Et voilà le résultat final :

![image](media://5bffb013-3730-4a3e-b658-12f5b1717d17)

# 6. En conclusion.

La mise en place et le paramétrage ont demandé pas mal de travail, mais le résultat est plutôt sympathique (de mon point de vu bien sur 🙂 ).

## 6.1. Avantages

Ce que j’apprécie plus particulièrement **c’est la simplicité de création d’un article et d’avoir tous les outils qui vont bien pour la rédaction** :

- Gestion automatique du sommaire/table des matières
- Ajout de lignes de code dans différents langages
- Insertion d’images par copier/coller et redimensionnement dans la page
- Création de tableaux
- Création de schémas et de graphes
- …

Du coup ça me permet de me concentrer sur le côté rédaction et pas trop sur le côté publication.

J’aimerai aller plus loin dans le design du site… **A suivre.**

## 6.2. Inconvénients.

Un des inconvénients que je trouve, c’est **de ne pas pouvoir choisir la date de l’article au format blog dans le passé**. Du coup lorsque je copie un article que j’ai écrit il y a quelque temps dans le blog, il va avoir la date du jour et ne reflétera pas la date de la rédaction dudit article.

La mise en place technique est un peu compliqué et demande d’avoir pas mal de cordes à son arc :

- Configuration du DNS
- Configuration Google Analytics + Search Console
- Configuration du thème Refined
- …

**Un autre point négatif est la gestion multi-langue du site**. Pour l’instant je n’ai pas trouve de moyen simple de le faire et c’est encore à l'étude.

## 6.3. Pour conclure.

**La solution mis en place est une excellente solution collaborative**. Simple à utiliser une fois que le travail de configuration a été effectué. On verra à l’usage si cette solution tient la route en terme de performance et de disponibilité lorsque les articles seront beaucoup plus nombreux.