Nous interrompons notre liste de logiciels recommandés pour expliquer ce que sont les programmes auto-hébergés et où les installer. Ces applications permettent de les utiliser sur plusieurs appareils, soit en installant une application spécifique sur chaque appareil pour communiquer avec l'application serveur, soit en utilisant un navigateur web.
Bien sûr, quand on parle de serveur, on ne dit pas qu'il faut acheter du matériel coûteux. Un vieil ordinateur ou un nano-ordinateur comme le Raspberry Pi peuvent parfaitement remplir cette fonction.
Quelques programmes GitHub à installer sur un serveur
Avant de commencer par la liste, nous devons définir quelques concepts :
Programmes auto-hébergés
Un programme auto-hébergé (parfois appelé application auto-hébergée) est une application ou un service conçu pour être installé et exécuté par l'utilisateur sur son propre serveur. C'est l'inverse d'un contrat avec un tiers pour la gestion de l'installation et de la maintenance. Il est important de comprendre que ce type de programme se distingue par le fait qu'il offre un service similaire à celui de YouTube ou Google Drive, mais que l'utilisateur est responsable de la maintenance de l'infrastructure et des mises à jour.
Ce type de logiciel présente notamment les avantages suivants :
- L'utilisateur peut choisir l'emplacement d'installation du programme.
- Le fait de ne pas partager ses données avec des tiers permet un meilleur contrôle de la confidentialité et de la sécurité.
- Un logiciel plus personnalisable, mieux adapté aux besoins des utilisateurs.
- Indépendance : L'utilisateur de ce type de programme n'est pas soumis aux caprices des sociétés de logiciels.
Bien sûr, il y a aussi des inconvénients.
- Son installation et sa maintenance requièrent plus de temps et d'expertise.
- En fonction de l'utilisation et du type d'installation, les coûts peuvent être plus élevés.
Serveur
Les serveurs sont des ordinateurs qui fournissent des services ou des données à d'autres ordinateurs via un réseau local ou Internet. Lorsqu'un ordinateur client effectue une requête, le serveur répond en envoyant les informations demandées ou en fournissant un message d'erreur. Il est important de noter que les serveurs peuvent être physiques ou virtuels.
Les serveurs physiques sont des ordinateurs dédiés qui exécutent des programmes en réponse aux requêtes d'autres ordinateurs. Il peut s'agir d'ordinateurs conçus spécifiquement à cet effet, d'ordinateurs traditionnels utilisés à cette fin, ou d'ordinateurs monocartes. Un ordinateur monocarte est un type d'ordinateur entièrement construit sur une seule carte de circuit imprimé. Il se distingue des ordinateurs traditionnels dont tous les composants sont séparés.
Les serveurs virtuels, quant à eux, sont des simulations logicielles de matériel physique. Ils fonctionnent sur du matériel réel qui alloue une partie de ses ressources à chaque serveur virtuel. On distingue généralement deux types : le serveur privé virtuel (VPS), dont les ressources allouées sont limitées, et le serveur cloud, dont les ressources sont allouées à la demande et qui, en pratique, peut être fourni par plusieurs machines physiques, même à l’insu de l’utilisateur.
Il convient de préciser que l'hébergement web classique ne répond pas aux critères car il requiert un niveau de configuration que ces solutions ne possèdent pas.
conteneurs
Un conteneur est une machine virtuelle dédiée à l'exécution d'une seule application, sans nécessiter de connexion au système d'exploitation hôte. Cette machine virtuelle inclut le code de l'application, ses bibliothèques, sa configuration et ses dépendances nécessaires.
Pour créer, exécuter et gérer des conteneurs, vous avez besoin d'une application. Docker est la plus utilisée par les développeurs GitHub.
Node.js
Node.js est une technologie utilisée par les applications auto-hébergées. Elle permet d'exécuter des programmes JavaScript sur des serveurs, autorisant de multiples connexions sans surcharge. Elle est idéale pour les applications nécessitant une exécution en temps réel.
Cet article n'a pas pour but de détailler l'installation. Celle-ci requiert un certain niveau de connaissances, mais on trouve de nombreux tutoriels en ligne expliquant la marche à suivre, et ChatGPT et les programmes similaires sont généralement assez précis. Dans le prochain article, nous présenterons quelques programmes intéressants.