List of some self hosted services you can setup on your homelab

Communication & Collaboration#

  1. Matrix.org - Une plateforme de messagerie décentralisée.
  2. Zulip - Une application de chat en groupe open source.
  3. Nextcloud - Une suite de stockage en cloud et de collaboration.
  4. ownCloud - Un serveur de synchronisation et de partage de fichiers auto-hébergé.
  5. Mattermost - Une plateforme centralisée de collaboration d’équipe open source.
  6. Freenode - Un réseau Internet Relay Chat (IRC) dédié aux projets open source.
  7. GitLab - Un gestionnaire de dépôts Git basé sur le web avec des fonctionnalités CI/CD.
  8. GitPod - Un environnement de développement IDE qui se lance avec un seul clic.

Réseaux sociaux et forums#

  1. Mastodon - Un réseau social décentralisé basé sur le logiciel de microblogging GNU social/G+/Twitter.
  2. Friendica - Une plateforme open source de communication distribuée et de réseaux sociaux.
  3. Flarum - Un logiciel de forum axé sur la simplicité, la vitesse, l’élégance et l’ergonomie.
  4. Discourse - Une plateforme moderne, open source et polyvalente pour les discussions.
  5. phpBB - Un logiciel populaire de forum open source.
  6. Fluentd - Un outil de collecte de données pour récupérer des événements provenant de diverses sources vers diverses destinations.
  7. Logstash - Une pipeline open source de traitement de données qui peut collecter des données provenant de sources diverses et les canaliser vers un format unifié.
  8. Kibana - Un outil open source de visualisation et d’exploration de données basé sur Elasticsearch.

Outils de développement#

  1. Docker - Une plateforme pour développer, distribuer et exécuter des applications.
  2. Jenkins - Un serveur d’intégration continue extensible.
  3. GitLab CI/CD - Intégration continue / déploiement continu.
  4. Travis CI - Un service cloud d’intégration continue pour les projets GitHub et Bitbucket.
  5. JIRA - Un logiciel de gestion de projet incluant la méthode Scrum, la planification de sprints, la priorisation du backlog et le suivi des versions.
  6. Redmine - Une application web open source de gestion de projet gratuite.
  7. Tuleap - Un outil intégré de gestion de projet combinant les meilleures pratiques de gestion informatique aux outils modernes et open source.

Courrier électronique et calendrier#

  1. Roundcube - Un client de messagerie web.
  2. Horde Groupware Web Application Framework - Un ensemble de logiciels de groupe.
  3. Zimbra - Un système de messagerie, de calendrier et de collaboration.
  4. Sogo - Une combinaison d’un composant serveur web pour l’accès iCalendar, vCard et SMTP, ainsi que des bibliothèques clientes pour divers clients IMAP et CalDAV.
  5. DuckDuckGo Privacy Browser - Un navigateur orienté vie privée basé sur Firefox.

Gestion des données#

  1. Elasticsearch - Un moteur de recherche et d’analyse distribué, RESTful.
  2. Kibana - Pour visualiser les données Elasticsearch en temps réel.
  3. PostgreSQL - Un système de base de données relationnelle open source puissant.
  4. MongoDB - Une base de données document orientée open source.
  5. Redis - Un magasin clé-valeur en mémoire utilisé comme base de données, cache et broker de messages.
  6. Memcached - Un système de mise en cache distribué généraliste.
  7. Neo4j - Une base de données graphique permettant des requêtes flexibles via le langage Cypher.
  8. InfluxDB - Une base de données open source pour les séries temporelles.

Bureau et productivité#

  1. LibreOffice - Une suite bureautique open source.
  2. OnlyOffice - Une plateforme combinant des éditeurs de texte en ligne, une gestion de documents et de projets, et un stockage de fichiers dans une solution unique.
  3. Apache OpenOffice - Une autre suite bureautique gratuite et open source.
  4. Zimbra Collaboration Suite - Un serveur de messagerie et de calendrier avec un client bureau optionnel.

Infrastructure et surveillance#

  1. Nagios - Un système de surveillance des systèmes, réseaux et infrastructures.
  2. Zabbix - Une solution open source distribuée de surveillance de classe entreprise.
  3. Prometheus - Un système de surveillance et une base de données de séries temporelles.
  4. InfluxDB - Pour stocker et analyser des métriques.
  5. Kubernetes - Un système open source d’orchestration de conteneurs pour automatiser le déploiement, la mise à l’échelle et la gestion des conteneurs.
  6. OpenVPN - Une solution VPN robuste et hautement configurable.
  7. NGINX - Un serveur web haute performance et un serveur proxy inverse.
  8. Traefik - Un proxy inverse HTTP moderne et un chargeur réparti.
  9. HAProxy - Une solution fiable, efficace et flexible de répartition de charge.

Multimédia et divertissement#

  1. Plex - Une plateforme de gestion et de diffusion de médias client-serveur.
  2. Emby - Un serveur multimédia extensible et joueur avec des capacités riches de métadonnées.
  3. Radarr - Une application complémentaire à Sonarr pour télécharger de nouvelles épisodes de séries télévisées.
  4. Sonarr - Un téléchargeur de séries télévisées basé sur un index utilisant des fichiers NZB.
  5. Jackett - Un moteur d’indexation qui recherche sur de nombreux sites web.
  6. Deluge - Un client BitTorrent léger et riche en fonctionnalités.
  7. Rutorrent - Un client BitTorrent facile à utiliser avec de nombreuses fonctionnalités.
  8. Lidarr - Un indexeur automatique de musique capable de télécharger automatiquement vos albums préférés.

E-commerce#

  1. Magento Open Source - Une plateforme e-commerce flexible pour des entreprises de toutes tailles.
  2. PrestaShop - Une solution e-commerce open source.
  3. OpenCart - Un système de panier gratuit et open source.
  4. WooCommerce - Un plugin WordPress qui transforme votre site en un magasin en ligne complet.

Sécurité#

  1. fail2ban - Un outil de sécurité réseau qui analyse les fichiers journaux pour détecter les tentatives d’authentification infructueuses, puis interdit les adresses IP de ceux qui réussissent à plusieurs tentatives infructueuses.
  2. Cryptography - Des outils et bibliothèques pour le chiffrement et le déchiffrement.
  3. OSSEC - Un système d’analyse d’intrusion basé sur l’hôte puissant open source.
  4. Pulse Secure Virtual Desktop - Une plateforme de sécurité de bord d’accès sécurisé (SASE) qui permet aux organisations de fournir une sécurité intégrée pour l’accès aux applications et au réseau, en mode cloud.
  5. ClamAV - Un moteur antivirus open source pour détecter les chevaux de Troie, les virus, les logiciels malveillants et d’autres menaces malveillantes.

Cloud et stockage#

  1. OpenStack - Un système d’exploitation cloud pour fournir divers services cloud.
  2. Cloudflare - Une entreprise de performance et de sécurité internet qui fournit un réseau de serveurs distribués pour protéger les sites web contre les cyberattaques.
  3. Nextcloud - Déjà mentionné plus haut, mais mérite d’être rappelé car il s’agit également d’un service cloud complet.
  4. OpenVPN - Pour créer un accès sécurisé à votre laboratoire à distance.

Serveurs web#

  1. Apache HTTP Server - Le serveur web le plus utilisé au monde.
  2. NGINX - Un serveur HTTP haute performance et un serveur proxy inverse.
  3. Caddy - Un serveur web automatisé avec HTTPS automatique.

Outils de développement et IDEs#

  1. Visual Studio Code - Un éditeur de code repensé et optimisé pour la création et le débogage d’applications web et cloud modernes.
  2. Eclipse - Un environnement de développement intégré (IDE) open source.
  3. IntelliJ IDEA - Un IDE puissant pour les langages basés sur JVM comme Java, Kotlin, Scala et Android.

Ressources d’apprentissage et éducation#

  1. Khan Academy - Offre une éducation en ligne gratuite pour diverses matières.
  2. Moodle - Un système de gestion de cours open source pouvant être utilisé pour créer un environnement d’apprentissage en ligne.
  3. Canvas - Un système de gestion de l’appernissage basé sur le cloud (LMS).
  4. edX - Une plateforme d’apprentissage en ligne fondée par l’Université Harvard et l’Institut de technologie du Massachusetts.

Serveurs de jeux#

  1. Minecraft Server - Pour exécuter votre propre serveur Minecraft.
  2. SteamCMD - Outil de livraison de contenu de Steam pour aider à gérer les mises à jour de jeux sur des serveurs dédiqués.
  3. ARK: Survival Evolved Server - Pour héberger un serveur de jeu multijoueur de survie pour ARK.

Stockage et sauvegarde de fichiers#

  1. BorgBackup - Un programme de sauvegarde dédoublonnante qui prend en charge le stockage de fichiers et de blocs.
  2. Bacula - Un système open source de protection, de restauration et de récupération de données de niveau entreprise.
  3. Rclone - Un outil pour synchroniser des répertoires entre des fournisseurs de stockage cloud.

Diffusion multimédia et DVR#

  1. Emby - Pour une diffusion centralisée de médias dans votre réseau.
  2. MediaPortal - Un logiciel open source de centre multimédia gratuit pour Microsoft Windows.
  3. DVR-PC - Une solution complète de enregistrement télévisé, de diffusion et de visualisation en direct qui fonctionne sur des PC Linux (et Windows).

Autres outils#

  1. Mattermost - Un outil de communication d’équipe, qui inclut également un composant de suite de collaboration.
  2. GitPod - Un serveur de code basé sur le web avec des outils préconfigurés pour des environnements de développement full-stack.
  3. GitBucket - Un serveur Git compatible GitHub, facile à installer, écrit en Scala.
  4. Zabbix - Pour surveiller votre infrastructure et vos applications.

How to reduce the file size of a pdf file in linux cli

  1. Installer Ghostscript : Si ce n’est pas déjà fait, vous pouvez installer Ghostscript à l’aide du gestionnaire de paquets de votre distribution. Pour les systèmes basés sur Debian comme Ubuntu, utilisez :

    sudo apt-get update
    sudo apt-get install ghostscript

    Pour les systèmes basés sur Red Hat comme Fedora, utilisez :

    sudo dnf install ghostscript
  2. Compresser le PDF : Une fois Ghostscript installé, vous pouvez compresser votre fichier PDF en utilisant la commande suivante :

Shutdown Proxmox VM using CLI

Si vous souhaitez éteindre une machine virtuelle en cours d’exécution sur un environnement virtuel Proxmox (PVE), vous pouvez utiliser l’interface en ligne de commande (CLI) de Proxmox pour accomplir cette tâche de manière efficace. La commande pour éteindre une machine virtuelle sous Proxmox est qm shutdown, suivie de l’identifiant de la machine virtuelle que vous souhaitez éteindre. Voici la procédure à suivre :

  1. Accéder au serveur : Connectez-vous d’abord à votre serveur Proxmox via SSH.

Mastering Ansible: A Step-by-Step Tutorial

Nous allons directement plonger dans les concepts et composants fondamentaux qui vous aideront à maîtriser Ansible. Ce tutoriel suppose que vous avez déjà installé Ansible sur votre système et que vous avez une compréhension de base de ce qu’est Ansible.

Configuration de l’environnement#

Génération de clés SSH#

Si ce n’est pas déjà fait, générez une paire de clés SSH sur votre nœud de contrôle Ansible.

ssh-keygen -t rsa

Distribution des clés SSH#

Copiez la clé publique SSH sur tous vos nœuds cibles.

How to count number of words in a pdf file from Linux cli

Utilisation de pdftotext :#

  1. Installation :

    • Si ce n’est pas déjà installé, vous devrez installer le paquet poppler-utils, qui inclut pdftotext :
    sudo apt install poppler-utils

    ou

    yum install poppler-utils

    selon votre distribution.

  2. Utilisation :

    • Une fois installé, vous pouvez convertir un PDF en texte et compter les mots comme suit :
    pdftotext input.pdf - | wc -w

    Ici, input.pdf est votre fichier PDF source, et wc -w compte le nombre de mots. Le - dans pdftotext indique que la sortie doit être envoyée à stdout, qui est ensuite redirigée vers wc.

How to install Postgresql Client using Homebrew

Psql est une interface en ligne de commande pour interagir avec PostgreSQL, un système de base de données relationnelle puissant et open source. Brew est un gestionnaire de paquets pour macOS qui facilite l’installation et la gestion des logiciels. Voici les étapes à suivre pour installer psql avec brew :

  • Tout d’abord, installez le gestionnaire de paquets brew si vous ne l’avez pas déjà. Vous pouvez le faire en exécutant la commande suivante dans votre terminal :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Ensuite, mettez à jour brew en exécutant les commandes suivantes :
brew doctor
brew update
  • Troisièmement, installez libpq en exécutant la commande suivante :
brew install libpq

Libpq est une bibliothèque qui contient psql et d’autres utilitaires clients PostgreSQL.

How to avoid other pods from being scheduled on your node in Kubernetes

Kubernetes est une plateforme puissante pour gérer des applications conteneurisées sur un cluster de nœuds. Cependant, il arrive parfois que vous souhaitiez avoir un contrôle plus fin sur lesquels pods sont planifiés sur quels nœuds, pour diverses raisons telles que les performances, la sécurité ou les coûts.

Qu’est-ce que les taints et les tolerations ?#

Les taints et les tolerations sont une fonctionnalité de Kubernetes qui vous permet de marquer des nœuds avec certains attributs ou conditions, puis de préciser quels pods peuvent ou ne peuvent pas être planifiés sur ces nœuds en fonction de ces attributs ou conditions. Les taints sont appliqués aux nœuds, et les tolerations sont appliquées aux pods.

Kubernetes Tolerations

Les tolérances Kubernetes sont une manière de permettre à des pods d’être planifiés sur des nœuds possédant des taints, qui sont des marqueurs repoussant les pods par défaut. Les tolérances vous permettent de contrôler quels pods peuvent s’exécuter sur quels nœuds, en fonction des besoins du pod et des caractéristiques du nœud.

Qu’est-ce que les tolérances Kubernetes ?#

Les tolérances Kubernetes sont une propriété d’un pod qui permet à ce pod d’être planifié sur un nœud ayant un taint correspondant. Les taints sont l’inverse de l’affinité de nœud, qui est une manière d’attirer les pods vers un ensemble de nœuds. Les taints sont appliqués aux nœuds et agissent comme une barrière répulsive contre les nouveaux pods. Les nœuds taintés n’accepteront que les pods marqués d’une tolérance correspondante.

How to erase line in files containing string recursively in Linux

find . -name "*.md" -type f -exec sed -i '/line of text/d' {} \;

Cette commande utilise find pour localiser tous les fichiers .md dans le répertoire courant et ses sous-répertoires de manière récursive. L’option -exec est utilisée pour exécuter la commande sed sur chaque fichier trouvé. Le {} est remplacé par le nom de chaque fichier trouvé, et \; est utilisé pour terminer l’option -exec.

La commande sed supprime toute ligne contenant la chaîne de caractères “line of text” de chaque fichier trouvé.

How to install PhantomJS on Ubuntu 22.10

PhantomJS est un navigateur web headless pour automatiser les interactions avec les pages web.

Pour installer PhantomJS sur Ubuntu 22.10, suivez ces étapes :

  • Mettez à jour les paquets système avec sudo apt update && sudo apt upgrade
  • Installez les paquets requis avec sudo apt install build-essential chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
  • Téléchargez le fichier binaire de PhantomJS depuis son site officiel avec wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
  • Extrayez le fichier dans /usr/local/share/ avec sudo tar xvjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/share/
  • Créez un lien symbolique vers le fichier binaire avec sudo ln -sf /usr/local/share/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
  • Vérifiez l’installation avec phantomjs --version