Self-Hosted – ConvertX, le convertisseur de fichiers universel (1000+ formats)

Internet

Self-Hosted – ConvertX, le convertisseur de fichiers universel (1000+ formats)

ConvertX est une application open source de conversion de fichiers. Accessible directement depuis votre navigateur Web, elle peut être auto-hébergée facilement sur votre ordinateur, votre serveur ou votre NAS.

Il m’arrive fréquemment de convertir des fichiers, notamment des images et des vidéos. Je ne suis probablement pas le seul. C’est une opération basique, mais indispensable pour la manipulation de fichiers. Il existe bien des convertisseurs en ligne, mais vous risquez de transmettre vos documents à des tiers, ce qui est loin d’être l’idéal en fonction de la nature de ces derniers. En contexte professionnel, c’est un cas de Shadow IT.

La bonne nouvelle, c’est qu’il existe plusieurs solutions open source pour répondre à ce besoin. Je vais en présenter deux : ConvertX (cet article) et VERT.

ConvertX auto-hébergeable prend en charge plus de 1 000 formats de fichiers différents. Elle s’appuie en réalité sur différents convertisseurs (dont des bibliothèques), avec chacun leur spécialité, pour effectuer la conversion : resvg, FFmpeg, Markitdown ou encore msgconvert.

ConvertX est capable de convertir des images, des vidéos, des documents (PDF, docx, markdown…) et même des formats plus exotiques comme les fichiers Outlook et les e-books. Pour votre boite à outils, il peut représenter un bon complément à un outil comme Bento PDF ou Stirling PDF.

Dans ce tutoriel, nous allons découvrir comment déployer ConvertX sur votre propre serveur en utilisant Docker (via Docker Compose).

Installation de ConvertX via Docker Compose

Étape 1 : création de l’arborescence

Commencez par créer un répertoire dédié à ConvertX sur votre serveur. Cela permettra d’organiser vos fichiers et de centraliser les données persistantes (nous reviendrons sur ce point par la suite). Le projet sera stocké à l’emplacement suivant (adaptez si besoin) : .

Ouvrez votre terminal et exécutez les commandes suivantes :


Un sous-dossier nommé data sera aussi créé par la même occasion. Il sert à stocker l’historique des conversions.

Étape 2 : création du fichier de configuration

Dans le répertoire racine, créez un fichier nommé en utilisant votre éditeur de texte favori :


Copiez et collez la configuration suivante dans le fichier. Cette configuration définit le service ConvertX, ses variables d’environnement et ses volumes persistants :


Si vous désirez aller plus loin dans la configuration, consultez la documentation de ConvertX. Il y a quelques options supplémentaires, y compris si vous souhaitez permettre à des utilisateurs de s’inscrire : chacun aura donc un compte.

En attendant, voici quelques explications sur les directives principales déclarées dans le fichier :

  • : indique à Docker de télécharger l’image de ConvertX depuis le registre GitHub Container Registry.
  • : associe le port 3000 de votre serveur Docker (hôte) au port 3000 du conteneur. L’interface web sera accessible via ce port.
  • : il s’agit d’une clé secrète utilisée pour sécuriser les sessions et les jetons de l’application. Je vous recommande de générer une valeur aléatoire, via ou en utilisant le générateur de token d’IT-Tools.
  • : cette variable indique à ConvertX de supprimer automatiquement les fichiers envoyés et convertis toutes les heures. Cela est intéressant en terme de privacy et cela évite la saturation de l’espace disque de votre serveur. Par défaut, la valeur est 24 heures.
  • : crée un volume persistant, donc le dossier créé précédemment sur votre serveur stockera les données de l’application.

Enfin, si vous souhaitez que ConvertX soit accessible en HTTP, vous devez ajouter cette variable d’environnement :


Il est à noter que cette application peut être publiée par l’intermédiaire d’un reverse proxy comme Traefik.

Une fois la configuration prête, enregistrez le fichier.

Vous pouvez alors démarrer le service avec la commande habituelle :


Docker va télécharger l’image, créer le réseau interne et lancer le conteneur. Vous pouvez vérifier que le conteneur est bien en cours d’exécution avec la commande suivante :


Prise en main rapide de ConvertX

Une fois le conteneur démarré, ouvrez un navigateur web et accédez à l’adresse suivante : . Sinon, utilisez le nom DNS dans le cas où l’application a été publiée en HTTPS. Vous devez commencer par créer un compte utilisateur.

L’interface n’est pas la plus belle que j’ai rencontrée, mais elle va à l’essentiel. Si vous désirez une interface plus moderne, privilégiez VERT.

Le principe est simple : vous déposez un ou plusieurs fichiers, vous sélectionnez le format de destination, vous lancez l’opération et vous téléchargez les fichiers convertis. Il est à noter que la liste des formats de destination s’adapte intelligemment en fonction du fichier source.

Pour gagner du temps, vous pouvez rechercher directement le format attendu en sortie. Dans certains cas, comme pour le format PNG, plusieurs bibliothèques peuvent être sollicitées. Parfois, vous n’aurez pas ce luxe. Cela fonctionne bien, même si j’ai eu quelques difficultés sur le traitement des fichiers vidéos, alors que ça fonctionnait bien avec VERT. Il faut dire que la conversion vidéo est surement la tâche la plus difficile à gérer pour ce type d’application.

ConvertX intègre aussi une fonction “History” où vous pourrez voir l’historique des opérations de conversion. Ce qui peut permettre de télécharger un fichier précédemment converti. Mais, attention : cet historique est éphémère : 24 heures par défaut, comme je l’ai mentionné précédemment.

Conclusion

ConvertX est une solution efficace et que l’on peut héberger soi-même facilement pour effectuer de la conversion de fichiers. Elle saura vous satisfaire si vous souhaitez une application capable de convertir de très nombreux formats de fichiers. La gestion des comptes et de l’historique sont deux fonctions différenciatrices en comparaison de VERT.

SOURCE