<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Les Technotes d'Aymen]]></title><description><![CDATA[Les Technotes d’Aymen propose des tutoriels et astuces en réseaux, systèmes et hardware. L’objectif : rendre la technique simple et accessible à tous, débutants comme pros.]]></description><link>https://blog.aymenhammache.fr</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Apr 2026 19:30:17 GMT</lastBuildDate><atom:link href="https://blog.aymenhammache.fr/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Héberger son IA avec Ollama]]></title><description><![CDATA[Payer un abonnement tous les mois juste pour taper la discute avec une IA... ça va un moment. Surtout qu'on peut faire tourner des modèles ultra-puissants directement chez soi, et gratuitement en plus]]></description><link>https://blog.aymenhammache.fr/h-berger-son-ia-avec-ollama</link><guid isPermaLink="true">https://blog.aymenhammache.fr/h-berger-son-ia-avec-ollama</guid><category><![CDATA[ollama]]></category><category><![CDATA[Docker]]></category><category><![CDATA[debian]]></category><category><![CDATA[Linux]]></category><category><![CDATA[self-hosted]]></category><category><![CDATA[Applications]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Mon, 23 Mar 2026 09:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6889bc10efff27c415669fd0/9fff6f72-1d17-4541-b859-2cbfe7dcb16e.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Payer un abonnement tous les mois juste pour taper la discute avec une IA... ça va un moment. Surtout qu'on peut faire tourner des modèles ultra-puissants directement chez soi, et gratuitement en plus. L'avantage évident, c'est que vos données restent 100 % privées.</p>
<p>Honnêtement, Ollama rend le truc ridiculement simple. Le seul passage qui m'a vraiment pris la tête au début, bizarrement, c'est le réseau. Juste le fait d'arriver à s'y connecter depuis un autre appareil.</p>
<p>Voilà comment je fais.</p>
<h2><strong>L'installation de base (sur le PC)</strong></h2>
<p>Si vous êtes sur votre ordi principal (Windows ou Mac), c'est la méthode rapide. Vous chopez la version pour votre OS sur la page de téléchargement d'Ollama. Suivant, suivant, terminer... le grand classique.</p>
<p>Sauf que voilà. Par défaut, Ollama est complètement parano. Il refuse purement et simplement les connexions qui ne viennent pas de l'ordinateur lui-même. Vous essayez de l'utiliser depuis votre téléphone ? Mur invisible.</p>
<p>Le truc pour régler ça (et c'est le détail bête que j'oublie systématiquement), c'est de lui dire d'accepter le réseau local. Il faut juste créer une variable d'environnement sur votre système : <code>OLLAMA_HOST=0.0.0.0</code>. C'est tout.</p>
<h2><strong>Ma préférence : passer par Docker</strong></h2>
<p>Perso, je fais tout tourner via Docker sur mon serveur. Déjà parce que c'est beaucoup plus propre, mais surtout parce que ça règle ce problème de réseau d'un seul coup. En publiant le port du conteneur, l'IA est exposée automatiquement sur le réseau local. Pas de variable à configurer.</p>
<p>Plus, les commandes <code>docker run</code> à rallonge qu'on perd dans l'historique du terminal, très peu pour moi. Je me suis crée un petit fichier <code>docker-compose.yml</code> et on n'en parle plus.</p>
<p>C'est super basique (j'ai laissé les lignes pour l'accélération matérielle commentées au cas où votre matériel est doté d'un GPU Nvidia) :</p>
<pre><code class="language-yaml">services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ./ollama_data:/root/.ollama
    restart: unless-stopped
    # Décommentez les lignes ci-dessous si vous avez un GPU Nvidia
    # deploy:
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: 1
    #           capabilities: [gpu]
</code></pre>
<p>Un coup de <code>docker-compose up -d</code> dans le dossier. Et c'est réglé. Le serveur tourne en fond.</p>
<p><strong>Et pour s'en servir ?</strong></p>
<p>Peu importe l'installation, il faut lui donner un "cerveau". Un petit <code>ollama run llama3</code> dans le terminal, on laisse le téléchargement se faire.</p>
<p>La vraie question c'est : on fait quoi après ? Parce que discuter avec une IA dans une fenêtre noire sur le PC, c'est sympa cinq minutes, mais l'idéal c'est quand même d'y accéder depuis le canapé.</p>
<p>C'est exactement pour ça que j'ai développé FolliA.</p>
<p>C'est un petit client Android open-source que j'ai voulu ultra-léger. L'idée est bête : vous prenez votre téléphone, vous checkez que vous êtes sur le même réseau que le PC (en Wi-Fi, ou via un VPN si vous n'êtes pas chez vous), on rentre l'IP de la machine dans les paramètres... et boom.</p>
<p>Votre propre assistant privé, directement dans votre poche.</p>
<p>Pour les intéressé, cliquez <a href="https://github.com/iamtheamn/FolliA">ici</a> pour accéder au repo github. (N'hésitez pas à mettre une étoile).</p>
]]></content:encoded></item><item><title><![CDATA[Surveillez vos services avec Uptime Kuma]]></title><description><![CDATA[Uptime Kuma est un outil de supervision auto-hébergé, compatible avec de multiples plateformes telles que Windows Server, Linux ou NAS.
Cet article détaille l'installation sous Linux (réalisée ici sous Debian 12) via les 2 solutions officielles possi...]]></description><link>https://blog.aymenhammache.fr/surveillez-vos-services-avec-uptime-kuma</link><guid isPermaLink="true">https://blog.aymenhammache.fr/surveillez-vos-services-avec-uptime-kuma</guid><category><![CDATA[monitoring]]></category><category><![CDATA[debian]]></category><category><![CDATA[server]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Tue, 03 Feb 2026 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1769417163783/8053374d-5b6e-4bcb-8495-59705e6b7971.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Uptime Kuma est un outil de supervision auto-hébergé, compatible avec de multiples plateformes telles que Windows Server, Linux ou NAS.</p>
<p>Cet article détaille l'installation sous Linux (réalisée ici sous Debian 12) via les 2 solutions officielles possibles : Docker ou l'installation manuelle.</p>
<h2 id="heading-pourquoi-choisir-uptime-kuma">Pourquoi choisir Uptime Kuma ?</h2>
<p>Il s'agit de l'outil de supervision le plus simple d'utilisation, tout en restant très complet. Avec Uptime Kuma, il est possible de :</p>
<ul>
<li><p>Surveiller des services via différents protocoles et méthodes (HTTP(S), TCP, Ping...)</p>
</li>
<li><p>Surveiller des serveurs de jeux Steam et des conteneurs Docker</p>
</li>
<li><p>Être notifié en cas de dysfonctionnement des services (via Discord, Telegram, Email et bien plus)</p>
</li>
<li><p>Être alerté sur l'expiration d'un certificat TLS</p>
</li>
<li><p>Personnaliser l'intervalle de vérification d'un service</p>
</li>
<li><p>Et bien plus</p>
</li>
</ul>
<p>Cet article présente l'installation d'Uptime Kuma (via les 2 méthodes) et accompagnera la mise en place de la surveillance d'un premier service.</p>
<p>⚠️ <strong>Uptime Kuma n'utilise pas d'agent et ne s'appuie pas sur le protocole SNMP. Par conséquent, cela ne permet pas de surveiller la charge du processeur, l'espace de stockage ou la consommation de mémoire vive.</strong></p>
<h2 id="heading-i-installation-via-docker">I. Installation via Docker</h2>
<p>Tout d'abord, créer un répertoire de travail :</p>
<pre><code class="lang-bash">mkdir Uptime-Kuma
</code></pre>
<p>Ensuite, entrer dans le dossier :</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> Uptime-Kuma
</code></pre>
<p>Puis, créer le fichier docker compose :</p>
<pre><code class="lang-bash">nano docker-compose.yaml
</code></pre>
<p>Une fois dans l'éditeur nano, copier le contenu ci-dessous :</p>
<pre><code class="lang-yaml"><span class="hljs-attr">services:</span>
  <span class="hljs-attr">uptime-kuma:</span>
    <span class="hljs-attr">image:</span> <span class="hljs-string">louislam/uptime-kuma:2</span>
    <span class="hljs-attr">container_name:</span> <span class="hljs-string">uptime-kuma</span>
    <span class="hljs-attr">restart:</span> <span class="hljs-string">unless-stopped</span>
    <span class="hljs-attr">ports:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">"3001:3001"</span>
    <span class="hljs-attr">volumes:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">./uptime-kuma-data:/app/data</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">/var/run/docker.sock:/var/run/docker.sock</span>
</code></pre>
<p>⚠️ <strong>Note de sécurité :</strong> Mapper le socket Docker permet de surveiller les conteneurs nativement, mais donne des droits élevés au conteneur. En production critique, nous privilégierions l'utilisation d'une API sécurisée ou d'un proxy docker-socket.</p>
<p>Quitter nano en cliquant sur <code>Ctrl+X</code>, puis <code>Y</code>, puis sur la touche Entrée.</p>
<p>Lancer le conteneur avec :</p>
<pre><code class="lang-bash">docker compose up -d
</code></pre>
<p><strong>C'EST TOUT ! L'INTERFACE EST ACCESSIBLE EN ENTRANT</strong> <code>&lt;L'IP_DU_SERVEUR:3001&gt;</code> DANS LE NAVIGATEUR INTERNET.</p>
<h3 id="heading-pour-ajouter-un-nom-de-domaine-avec-uptime-kuma-docker">Pour ajouter un nom de domaine avec Uptime Kuma Docker :</h3>
<p>Dans cet exemple, Caddy est utilisé car il est ultra-léger et gère les certificats SSL automatiquement.</p>
<p>Tout d'abord, se rendre chez l'hébergeur de nom de domaine et créer un enregistrement de type A :</p>
<ul>
<li><p><strong>Nom :</strong> <code>status</code> (ou autre choix)</p>
</li>
<li><p><strong>Cible :</strong> l'adresse IP publique du routeur</p>
</li>
</ul>
<p>⚠️ <strong>Ne pas oublier d'ouvrir les ports 80 et 443 sur le routeur vers le serveur.</strong></p>
<p>Ensuite, créer un répertoire pour Caddy :</p>
<pre><code class="lang-bash">mkdir Caddy
</code></pre>
<p>Entrer dans le dossier et créer le fichier docker-compose.yaml :</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> Caddy
nano docker-compose.yaml
</code></pre>
<p>Copier le bloc suivant :</p>
<pre><code class="lang-yaml"><span class="hljs-attr">services:</span>
  <span class="hljs-attr">caddy:</span>
    <span class="hljs-attr">image:</span> <span class="hljs-string">caddy:2</span>
    <span class="hljs-attr">container_name:</span> <span class="hljs-string">caddy</span>
    <span class="hljs-attr">restart:</span> <span class="hljs-string">unless-stopped</span>
    <span class="hljs-attr">ports:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">"80:80"</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">"443:443"</span>
    <span class="hljs-attr">volumes:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">./Caddyfile:/etc/caddy/Caddyfile</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">caddy_data:/data</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">caddy_config:/config</span>
    <span class="hljs-attr">networks:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">caddy_net</span>

<span class="hljs-attr">volumes:</span>
  <span class="hljs-attr">caddy_data:</span>
  <span class="hljs-attr">caddy_config:</span>

<span class="hljs-attr">networks:</span>
  <span class="hljs-attr">caddy_net:</span>
    <span class="hljs-attr">driver:</span> <span class="hljs-string">bridge</span>
</code></pre>
<p>Éditer le Docker Compose d'Uptime Kuma (créé précédemment) :</p>
<pre><code class="lang-bash">nano ~/Uptime-Kuma/docker-compose.yaml
</code></pre>
<p>Ajouter les lignes suivantes à la toute fin de votre fichier (sous la partie services) :</p>
<pre><code class="lang-yaml">    <span class="hljs-attr">networks:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">caddy_net</span>

<span class="hljs-attr">networks:</span>
  <span class="hljs-attr">caddy_net:</span>
    <span class="hljs-attr">external:</span> <span class="hljs-literal">true</span>
</code></pre>
<p>Quitter nano avec <code>Ctrl+X</code>, puis <code>Y</code>, puis appuyer sur entrée.</p>
<p>Maintenant, il est nécessaire de configurer Caddy. Ouvrir le fichier de configuration :</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> ~/Caddy
nano Caddyfile
</code></pre>
<p>Et ajouter le bloc suivant :</p>
<pre><code class="lang-makefile">status.votre-domaine.fr {
    reverse_proxy uptime-kuma:3001
}
</code></pre>
<p>Quitter nano avec <code>Ctrl+X</code> puis <code>Y</code> puis appuyer sur entrée.</p>
<p>⚠️ <strong>Redémarrer les conteneurs (Caddy et Uptime Kuma)</strong> :</p>
<pre><code class="lang-bash">docker compose -f ~/Caddy/docker-compose.yaml up -d
docker compose -f ~/Uptime-Kuma/docker-compose.yaml up -d
</code></pre>
<h2 id="heading-ii-installation-manuelle">II. Installation Manuelle</h2>
<p>Bien que Docker soit le standard actuel, comprendre l'installation 'Bare Metal' est crucial pour maîtriser les dépendances systèmes et comprendre ce qui se passe “sous le capot”.</p>
<p>Tout d'abord, il faut mettre les paquets à jour :</p>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt upgrade -y
</code></pre>
<p>Installer Node.js avec la commande curl (via NVM pour obtenir la bonne version) :</p>
<pre><code class="lang-bash">curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
<span class="hljs-built_in">source</span> ~/.bashrc
nvm install --lts
</code></pre>
<p>Installer git :</p>
<pre><code class="lang-bash">sudo apt install git -y
</code></pre>
<p>Cloner le dépôt GitHub d'Uptime Kuma :</p>
<pre><code class="lang-bash">git <span class="hljs-built_in">clone</span> https://github.com/louislam/uptime-kuma.git
</code></pre>
<p>Se rendre dans le dossier où le clone du dépôt a été effectué, par exemple :</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> uptime-kuma
</code></pre>
<p>Une fois dans le dossier, installer les dépendances et PM2 (cela permet de garder Uptime Kuma actif en arrière-plan même après fermeture de la session SSH c’est ce qu’on appelle un gestionnaire de proccessus) :</p>
<pre><code class="lang-bash">npm run setup
npm install pm2 -g
</code></pre>
<p>Installer pm2-logrotate, pour obtenir les logs de débogage :</p>
<pre><code class="lang-bash">pm2 install pm2-logrotate
</code></pre>
<p>Démarrer Uptime Kuma et configurer le lancement automatique au redémarrage du serveur :</p>
<pre><code class="lang-bash">pm2 start server/server.js --name uptime-kuma
pm2 startup
<span class="hljs-comment"># (Copier-coller la commande fournie par le terminal ici)</span>
pm2 save
</code></pre>
<p>Pour accéder à Uptime Kuma via un nom de domaine, l'installation d'Apache ou Nginx est requise. La procédure officielle utilise Nginx :</p>
<pre><code class="lang-bash">sudo apt install nginx
</code></pre>
<p>Vérifier la version de Nginx :</p>
<pre><code class="lang-bash">nginx -v
</code></pre>
<p>Démarrer le service et vérifier qu'il est actif :</p>
<pre><code class="lang-bash">sudo systemctl start nginx
systemctl status nginx
</code></pre>
<p>La mention <code>active (running)</code> doit apparaître en vert.</p>
<p>Ensuite, créer un fichier de configuration pour Uptime Kuma :</p>
<pre><code class="lang-bash">sudo nano /etc/nginx/conf.d/uptime-kuma.conf
</code></pre>
<p>Coller le fichier de configuration suivant (remplacer <a target="_blank" href="http://votre.domaine.com"><code>votre.domaine.com</code></a> par le domaine concerné) :</p>
<pre><code class="lang-nginx"><span class="hljs-section">server</span> {
  <span class="hljs-attribute">listen</span> <span class="hljs-number">80</span>;
  <span class="hljs-attribute">server_name</span> votre.domaine.com;

  <span class="hljs-attribute">location</span> / {
    <span class="hljs-attribute">proxy_pass</span> http://localhost:3001;
    <span class="hljs-attribute">proxy_http_version</span> <span class="hljs-number">1</span>.<span class="hljs-number">1</span>;
    <span class="hljs-attribute">proxy_set_header</span> Upgrade <span class="hljs-variable">$http_upgrade</span>;
    <span class="hljs-attribute">proxy_set_header</span> Connection <span class="hljs-string">"upgrade"</span>;
    <span class="hljs-attribute">proxy_set_header</span> Host <span class="hljs-variable">$host</span>;
  }
}
</code></pre>
<p>Pour finir, redémarrer le service Nginx :</p>
<pre><code class="lang-bash">sudo systemctl restart nginx
</code></pre>
<p>L'accès à Uptime Kuma est désormais possible via le nom de domaine.</p>
<h2 id="heading-iii-mise-en-place-de-la-supervision-du-premier-service">III. Mise en place de la supervision du premier service</h2>
<p>Se rendre sur l'interface d'Uptime Kuma (en entrant <code>&lt;L'IP_DU_SERVEUR:3001&gt;</code> ou via le nom de domaine précédemment configuré).</p>
<p>À la première connexion, le tableau de bord est vide.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769409679707/b876e794-2972-4c75-99bc-b55018b7a2de.png" alt class="image--center mx-auto" /></p>
<p><em>Tableau de bord d'accueil d'Uptime Kuma</em></p>
<h3 id="heading-etapes-de-creation-dune-sonde">Étapes de création d'une sonde :</h3>
<ol>
<li><p><strong>Créer une nouvelle sonde :</strong> Cliquer sur le bouton vert "Ajouter une nouvelle sonde" situé en haut à gauche de l'interface.</p>
</li>
<li><p><strong>Configuration générale :</strong> Une page de configuration s'ouvre.</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769409736654/d83dad94-f939-4ada-bbba-a2fa3e7bc230.png" alt class="image--center mx-auto" /></p>
<p><em>Interface de configuration d'une nouvelle sonde</em></p>
<ol start="3">
<li><p><strong>Remplir les champs principaux :</strong></p>
<ul>
<li><p><strong>Type de sonde :</strong> Sélectionner le protocole à surveiller parmi la liste déroulante.</p>
<ul>
<li><em>Définition : C'est la méthode que Kuma utilisera pour "pinguer" le service. Choisir "HTTP(S)" pour surveiller un site web classique.</em></li>
</ul>
</li>
<li><p><strong>Nom d'affichage :</strong> Saisir le nom qui apparaîtra sur le tableau de bord (exemple : "Mon Blog Perso").</p>
</li>
<li><p><strong>URL :</strong> Renseigner le lien exact du site web ou du service à surveiller (exemple : <a target="_blank" href="https://aymenhammache.fr"><code>https://aymenhammache.fr</code></a>).</p>
</li>
</ul>
</li>
</ol>
<p>Les autres paramètres (intervalles de vérification, nombre de tentatives avant alerte) disposent de leurs propres explications contextuelles et peuvent être laissés par défaut pour un premier test.</p>
<h3 id="heading-configuration-des-notifications">Configuration des notifications :</h3>
<p>Pour être alerté en cas de panne, il est nécessaire de configurer une notification.</p>
<ol>
<li><p>Cliquer sur le bouton <strong>"Configurer une notification"</strong> (situé dans la colonne de droite).</p>
</li>
<li><p>Une fenêtre modale s'ouvre :</p>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769409986470/6013ff74-90ae-451c-af64-e688a536323d.png" alt class="image--center mx-auto" /></p>
<p><em>Configuration de l'alerte Discord</em></p>
<ol start="3">
<li><p><strong>Paramétrer l'alerte :</strong></p>
<ul>
<li><p><strong>Type de notification :</strong> Choisir le service désiré parmi les nombreuses messageries disponibles.</p>
<ul>
<li><em>Exemple : Sélectionner "Discord" pour recevoir les alertes directement dans un salon textuel.</em></li>
</ul>
</li>
<li><p><strong>Configuration :</strong> Renseigner les informations requises selon le service choisi (l'URL du Webhook pour Discord, le Token pour Telegram, etc.).</p>
</li>
<li><p><strong>Nom du robot (optionnel) :</strong> Personnaliser le nom de l'expéditeur de l'alerte.</p>
</li>
<li><p><strong>Options avancées :</strong> Laisser la case "Proxy" vide et l'authentification sur "Aucune", sauf besoin spécifique de votre infrastructure réseau.</p>
</li>
</ul>
</li>
</ol>
<p>Une fois la configuration terminée, cliquer sur <strong>"Sauvegarder"</strong> en bas de page. La surveillance démarre immédiatement.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769410029374/91ee9ce8-5d71-48b6-84db-5d6cfb6f6f13.png" alt class="image--center mx-auto" /></p>
<p><em>Le tableau de bord affiche désormais l'état du service en temps réel</em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>L'installation d'Uptime Kuma est désormais terminée. Que ce soit via Docker ou en installation manuelle, le serveur dispose maintenant d'une solution de supervision robuste et esthétique.</p>
<p>La surveillance des services critiques est une étape indispensable dans la gestion d'un Homelab ou d'une infrastructure professionnelle. Au-delà des simples sondes, Uptime Kuma offre également la possibilité de créer des <strong>"Pages de Statut"</strong> publiques (Status Pages), permettant de communiquer l'état des services aux utilisateurs en temps réel.</p>
<p>Il ne reste plus qu'à explorer les nombreuses options de personnalisation et à affiner les alertes pour garantir une réactivité optimale en cas d'incident.</p>
]]></content:encoded></item><item><title><![CDATA[🚀 2026 : Nouveau départ ! Mon Portfolio et nouvelle URL pour le Blog]]></title><description><![CDATA[Pour commencer cette année 2026, j'ai décidé de revoir mon identité numérique. Après quelques configurations DNS, je suis fier de vous présenter ma nouvelle infrastructure unifiée.
🌐 Le Portfolio : Le QG Central
Jusqu'à présent, il me manquait un po...]]></description><link>https://blog.aymenhammache.fr/2026-nouveau-depart-mon-portfolio-et-nouvelle-url-pour-le-blog</link><guid isPermaLink="true">https://blog.aymenhammache.fr/2026-nouveau-depart-mon-portfolio-et-nouvelle-url-pour-le-blog</guid><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Sun, 11 Jan 2026 21:41:54 GMT</pubDate><content:encoded><![CDATA[<p>Pour commencer cette année 2026, j'ai décidé de revoir mon identité numérique. Après quelques configurations DNS, je suis fier de vous présenter ma nouvelle infrastructure unifiée.</p>
<h2 id="heading-le-portfolio-le-qg-central">🌐 Le Portfolio : Le QG Central</h2>
<p>Jusqu'à présent, il me manquait un point central, une "carte de visite" numérique propre. C'est désormais chose faite avec <a target="_blank" href="https://www.google.com/search?q=https://aymenhammache.fr"><strong>aymenhammache.fr</strong></a>.</p>
<p>Ce site centralise :</p>
<ul>
<li><p>Mon parcours d'étudiant en <strong>SISR</strong> et mon alternance.</p>
</li>
<li><p>Mes projets et certifications.</p>
</li>
<li><p>L'ensemble de mes réseaux.</p>
</li>
</ul>
<blockquote>
<p>🕵️ <strong>Petit défi :</strong> J'ai glissé 2 "Easter Eggs" sur le site. À vous de les trouver !</p>
</blockquote>
<h2 id="heading-le-blog-change-dadresse">📝 Le Blog change d'adresse</h2>
<p>Vous lisez cet article sur la nouvelle adresse officielle : <a target="_blank" href="https://www.google.com/search?q=https://blog.aymenhammache.fr"><strong>blog.aymenhammache.fr</strong></a>.</p>
<p>Je conserve ma base habituelle (toujours propulsée par Hashnode !), mais elle est désormais accessible via mon propre nom de domaine. Cela permet de séparer la partie "Présentation Pro" (le portfolio) de la partie "Veille &amp; Partage" (le blog), tout en gardant une certaine cohérence.</p>
<h3 id="heading-les-nouvelles-series">📂 Les nouvelles "Séries"</h3>
<p>Pour faciliter la navigation, j'ai organisé le contenu en <strong>Séries thématiques</strong> :</p>
<ul>
<li><p><strong>🐧 Administration Système Linux</strong></p>
</li>
<li><p><strong>🌐 Réseaux &amp; Connectivité</strong></p>
</li>
<li><p><strong>🐳 Virtualisation &amp; Infrastructure</strong></p>
</li>
<li><p><strong>🏠 HomeLab &amp; Auto-Hébergement</strong></p>
</li>
<li><p><strong>🛠️ Boîte à Outils &amp; Conseils</strong></p>
</li>
<li><p><strong>👋 Journal de Bord &amp; Actualités</strong></p>
</li>
</ul>
<h2 id="heading-un-rythme-adapte">⏳ Un rythme adapté</h2>
<p>Je tiens à être transparent : par <strong>manque de temps</strong>, je ne peux plus assurer un rythme de publication aussi soutenu qu'avant.</p>
<p>Je passe donc à une fréquence de <strong>2 à 3 articles par mois</strong>. Cela me permettra de continuer à partager du contenu pertinent sans sacrifier la qualité.</p>
<p>Merci à tous de me suivre, et bonne lecture !</p>
<p><em>Aymen.</em></p>
]]></content:encoded></item><item><title><![CDATA[Créer un serveur d’agenda et de contacts 100 % privé, accessible partout]]></title><description><![CDATA[Avoir un agenda et des contacts synchronisés est devenu courant. Le problème, c’est que ces données passent presque toujours par des services tiers. Elles sont stockées sur des serveurs que vous ne contrôlez pas.
Dans cet article, vous allez mettre e...]]></description><link>https://blog.aymenhammache.fr/creer-un-serveur-dagenda-et-de-contacts-100-prive-accessible-partout</link><guid isPermaLink="true">https://blog.aymenhammache.fr/creer-un-serveur-dagenda-et-de-contacts-100-prive-accessible-partout</guid><category><![CDATA[Docker]]></category><category><![CDATA[carddav]]></category><category><![CDATA[caldav]]></category><category><![CDATA[debian]]></category><category><![CDATA[Ubuntu]]></category><category><![CDATA[Developer]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Mon, 05 Jan 2026 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767994488048/a2bd30a1-ea4d-4b71-86b7-f8658110e402.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Avoir un agenda et des contacts synchronisés est devenu courant. Le problème, c’est que ces données passent presque toujours par des services tiers. Elles sont stockées sur des serveurs que vous ne contrôlez pas.</p>
<p>Dans cet article, vous allez mettre en place <strong>votre propre serveur CalDAV et CardDAV</strong>, hébergé chez vous, accessible depuis n’importe où, <strong>sans ouvrir de ports sur votre box</strong>.</p>
<p>L’objectif est simple :</p>
<ul>
<li><p>garder la maîtrise de vos données,</p>
</li>
<li><p>synchroniser agenda et contacts sur téléphone et ordinateur,</p>
</li>
<li><p>utiliser une solution claire, maintenable et reproductible.</p>
</li>
</ul>
<p>La mise en place repose sur trois outils : <strong>Docker</strong>, <strong>Tailscale</strong> et <strong>Baïkal</strong>.</p>
<hr />
<h2 id="heading-base-systeme">Base système</h2>
<p>Ce tutoriel fonctionne sur une base <strong>Debian</strong> et ses dérivés (Debian, Raspberry Pi OS Lite, Ubuntu Server).</p>
<p>Le système doit être opérationnel, accessible en SSH et à jour.</p>
<hr />
<h2 id="heading-pourquoi-caldav-et-carddav">Pourquoi CalDAV et CardDAV ?</h2>
<p>CalDAV et CardDAV sont des protocoles standards.</p>
<ul>
<li><p><strong>CalDAV</strong> permet de synchroniser des agendas.</p>
</li>
<li><p><strong>CardDAV</strong> permet de synchroniser des contacts.</p>
</li>
</ul>
<p>Ils sont compatibles avec la majorité des clients actuels : Android, iOS, Thunderbird, macOS ou Linux.</p>
<p>L’avantage de ces protocoles est leur simplicité. Le serveur stocke les données. Les clients se synchronisent automatiquement.</p>
<hr />
<h2 id="heading-les-briques-utilisees">Les briques utilisées</h2>
<p>Avant de passer aux commandes, posons le rôle de chaque outil.</p>
<ul>
<li><p><strong>Docker</strong> isole le service et facilite la maintenance.</p>
</li>
<li><p><strong>Baïkal</strong> fournit le serveur CalDAV et CardDAV.</p>
</li>
<li><p><strong>Tailscale</strong> permet un accès distant sécurisé sans ouverture de ports.</p>
</li>
</ul>
<p>Chaque brique a un rôle précis. Ensemble, elles forment une solution cohérente.</p>
<hr />
<h2 id="heading-installer-docker">Installer Docker</h2>
<p>Docker permet de lancer Baïkal dans un conteneur. Le service reste isolé du système et facile à mettre à jour.</p>
<p>Installez Docker avec la commande officielle :</p>
<pre><code class="lang-bash">curl -sSL https://get.docker.com | sh
</code></pre>
<p>Cette commande télécharge un script maintenu par Docker. Il installe le moteur et ses dépendances.</p>
<p>Ajoutez ensuite votre utilisateur au groupe Docker :</p>
<pre><code class="lang-bash">sudo usermod -aG docker <span class="hljs-variable">$USER</span>
</code></pre>
<p>Cette étape évite d’utiliser <code>sudo</code> pour chaque commande Docker. Déconnectez-vous puis reconnectez-vous pour appliquer le changement.</p>
<p>Vérifiez l’installation :</p>
<pre><code class="lang-bash">docker --version
</code></pre>
<p>Si une version s’affiche, Docker fonctionne.</p>
<hr />
<h2 id="heading-installer-tailscale">Installer Tailscale</h2>
<p>Tailscale crée un réseau privé chiffré entre vos appareils. Chaque machine rejoint ce réseau après authentification.</p>
<p>Installez Tailscale :</p>
<pre><code class="lang-bash">curl -fsSL https://tailscale.com/install.sh | sh
</code></pre>
<p>Démarrez ensuite la connexion :</p>
<pre><code class="lang-bash">sudo tailscale up
</code></pre>
<p>Un lien s’affiche dans le terminal. Ouvrez-le dans votre navigateur et connectez-vous à votre compte Tailscale.</p>
<p>Une fois validé, le serveur obtient une adresse IP privée Tailscale.</p>
<p>Pour la connaître :</p>
<pre><code class="lang-bash">tailscale ip -4
</code></pre>
<p>Cette IP servira pour accéder au serveur Baïkal.</p>
<hr />
<h2 id="heading-deployer-baikal-avec-docker">Déployer Baïkal avec Docker</h2>
<p>Baïkal est un serveur léger, stable et simple à administrer.</p>
<h3 id="heading-preparer-larborescence">Préparer l’arborescence</h3>
<p>Créez un dossier dédié au service :</p>
<pre><code class="lang-bash">mkdir mon-agenda
<span class="hljs-built_in">cd</span> mon-agenda
</code></pre>
<p>Vous êtes libre de choisir le nom du dossier !</p>
<p>Cette organisation permet de séparer clairement la configuration et les données.</p>
<h3 id="heading-creer-le-fichier-docker-composeyml">Créer le fichier docker-compose.yml</h3>
<p>Créez le fichier :</p>
<pre><code class="lang-bash">nano docker-compose.yml
</code></pre>
<p>Ajoutez le contenu suivant :</p>
<pre><code class="lang-yaml"><span class="hljs-attr">version:</span> <span class="hljs-string">"2"</span>

<span class="hljs-attr">services:</span>
  <span class="hljs-attr">baikal:</span>
    <span class="hljs-attr">image:</span> <span class="hljs-string">ckulka/baikal:nginx</span>
    <span class="hljs-attr">container_name:</span> <span class="hljs-string">baikal</span>
    <span class="hljs-attr">restart:</span> <span class="hljs-string">always</span>
    <span class="hljs-attr">ports:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">"8080:80"</span>
    <span class="hljs-attr">volumes:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">./config:/var/www/baikal/config</span>
      <span class="hljs-bullet">-</span> <span class="hljs-string">./data:/var/www/baikal/Specific</span>
</code></pre>
<h3 id="heading-comprendre-cette-configuration">Comprendre cette configuration</h3>
<ul>
<li><p><code>image</code> indique l’image Docker utilisée.</p>
</li>
<li><p><code>container_name</code> fixe un nom clair.</p>
</li>
<li><p><code>ports</code> expose le service en local.</p>
</li>
<li><p><code>volumes</code> stocke les données hors du conteneur.</p>
</li>
<li><p><code>restart</code> relance le service après un redémarrage.</p>
</li>
</ul>
<p>Lancez le service :</p>
<pre><code class="lang-bash">docker compose up -d
</code></pre>
<p>Docker télécharge l’image puis démarre le conteneur.</p>
<p>Vérifiez qu’il tourne :</p>
<pre><code class="lang-bash">docker ps
</code></pre>
<hr />
<h2 id="heading-configuration-de-baikal">Configuration de Baïkal</h2>
<p>Depuis un appareil connecté à Tailscale, ouvrez un navigateur :</p>
<pre><code class="lang-text">http://IP_TAILSCALE:8080
</code></pre>
<p>Vous tomberez sur cette page, elle permet d’initialiser Baïkal :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765706667695/02ce679d-9392-4ec5-bc31-7f27aa6f7a19.png" alt class="image--center mx-auto" /></p>
<ul>
<li><p>choisissez le fuseau horaire Europe/Paris,</p>
</li>
<li><p>activez CalDAV et CardDAV,</p>
</li>
<li><p>définissez un mot de passe administrateur.</p>
</li>
</ul>
<p>Connectez-vous ensuite avec le compte admin.</p>
<p>Créez un utilisateur et ses ressources par défaut :</p>
<ul>
<li><p>un agenda.</p>
</li>
<li><p>un carnet d’adresses.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765707065934/96e4818d-3046-492d-971f-726afe7aa96f.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765707502603/c1ebf5c5-236a-43c1-b10d-40737109e866.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765708389637/98484c28-5c4a-4b67-ba9e-295427470105.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765708590826/55d9839c-150c-48d6-830d-ccd24739c4a3.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765708767301/e09693f7-3452-4794-a28a-718a0ae2248e.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1765708895495/df255887-f625-4f54-a188-e2e054327d21.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-connexion-des-clients">Connexion des clients</h2>
<h3 id="heading-sur-android">Sur Android</h3>
<p>Installez <strong>DAVx5</strong> à partir du magasin d’application F-Droid (Gratuit) ou depuis le <a target="_blank" href="https://play.google.com/store/apps/details?id=at.bitfire.davdroid&amp;hl=fr&amp;pli=1">Google PlayStore</a> (5.99€ afin de soutenir les développeurs derrière le projet)</p>
<p>Ajoutez un compte :</p>
<ul>
<li><p>URL : <a target="_blank" href="http://IP_TAILSCALE:8080/dav.php/"><code>http://IP_TAILSCALE:8080/dav.php/</code></a></p>
</li>
<li><p>utilisateur et mot de passe définis dans Baïkal.</p>
</li>
</ul>
<p>DAVx5 détecte automatiquement l’agenda et les contacts.</p>
<h3 id="heading-sur-ordinateur">Sur ordinateur</h3>
<p>Avec Thunderbird :</p>
<ul>
<li><p>Agenda : Nouvel agenda → Sur le réseau → Entrez le nom d’utilisateur et l’URL vers l’agenda : <code>http://IP_TAILSCALE:8080/dav.php/calendars/VOTRE_NOM_DUTILISATEUR/defalut</code>/ → Une fenêtre invitant à entrer le mot de passe de votre utilisateur Baïkal apparaîtra, saisissez le.</p>
</li>
<li><p>Contacts : Carnet d’adresse → Nouveau carnet CardDAV→ Entrez le nom d’utilisateur et l’URL vers le carnet d’adresse : http://IP_TAILSCALE:8080/dav.php/addressbooks/VOTRE_NOM_DUTILISATEUR/default/ → Une fenêtre invitant à entrer le mot de passe de votre utilisateur Bakaï apparaîtra , saisissez le.</p>
</li>
</ul>
<p><strong>Les URL sont basées sur la même adresse du serveur.</strong></p>
<hr />
<h2 id="heading-sauvegarde">Sauvegarde</h2>
<p>Les données de Baïkal sont stockées dans les volumes Docker.</p>
<p>Il est important de conserver une copie de ces dossiers en dehors du conteneur. Le support de sauvegarde dépend de votre environnement.</p>
<p>L’essentiel est simple : les données ne doivent pas dépendre uniquement du conteneur.</p>
<p>voici un petit script permettant de sauvegarder vos données sur une clé USB branché à votre serveur, vous pouvez utiliser crontab afin d’automatiser le processus</p>
<p><strong><em>ATTENTION : Veuillez remplacer [UTILISATEUR] par votre nom d’utilisateur :</em></strong></p>
<pre><code class="lang-bash"><span class="hljs-meta">#!/bin/bash</span>

<span class="hljs-comment"># --- CONFIGURATION ---</span>
<span class="hljs-comment"># Dossier de destination (Votre clé USB)</span>
BACKUP_DIR=<span class="hljs-string">"/mnt/usb_backup/baikal_backups"</span>

<span class="hljs-comment"># Dossiers sources (Votre installation Baïkal)</span>
<span class="hljs-comment"># Note: Utilisez le chemin absolu pour éviter les erreurs cron</span>
SOURCE_DB=<span class="hljs-string">"/home/[UTILISATEUR]/Baïkal/data/db/db.sqlite"</span>
CONFIG_DIR=<span class="hljs-string">"/home/[UTILISATEUR]/Baïkal/config"</span>

<span class="hljs-comment"># Date pour le nom du fichier</span>
DATE=$(date +%F_%H-%M)

<span class="hljs-comment"># --- EXECUTION ---</span>

<span class="hljs-comment"># 1. On vérifie que la clé USB est bien là</span>
<span class="hljs-keyword">if</span> mountpoint -q /mnt/usb_backup; <span class="hljs-keyword">then</span>

    <span class="hljs-comment"># Création du dossier s'il n'existe pas sur la clé</span>
    mkdir -p <span class="hljs-string">"<span class="hljs-variable">$BACKUP_DIR</span>"</span>

    <span class="hljs-comment"># 2. Copie de la base de données (Tes contacts et agendas)</span>
    <span class="hljs-keyword">if</span> [ -f <span class="hljs-string">"<span class="hljs-variable">$SOURCE_DB</span>"</span> ]; <span class="hljs-keyword">then</span>
        cp <span class="hljs-string">"<span class="hljs-variable">$SOURCE_DB</span>"</span> <span class="hljs-string">"<span class="hljs-variable">$BACKUP_DIR</span>/db_<span class="hljs-variable">$DATE</span>.sqlite"</span>
    <span class="hljs-keyword">else</span>
        <span class="hljs-built_in">echo</span> <span class="hljs-string">"ERREUR: Fichier db.sqlite introuvable dans <span class="hljs-variable">$SOURCE_DB</span>"</span> &gt;&gt; /home/theamn/backup_error.log
        <span class="hljs-built_in">exit</span> 1
    <span class="hljs-keyword">fi</span>

    <span class="hljs-comment"># 3. Copie de la configuration (Vos utilisateurs et réglages)</span>
    cp -r <span class="hljs-string">"<span class="hljs-variable">$CONFIG_DIR</span>"</span> <span class="hljs-string">"<span class="hljs-variable">$BACKUP_DIR</span>/config_<span class="hljs-variable">$DATE</span>"</span>

    <span class="hljs-comment"># 4. Nettoyage : Supprime les vieux fichiers de plus de 2 mois (60 jours)</span>
    find <span class="hljs-string">"<span class="hljs-variable">$BACKUP_DIR</span>"</span> -name <span class="hljs-string">"db_*.sqlite"</span> -mtime +60 -delete
    find <span class="hljs-string">"<span class="hljs-variable">$BACKUP_DIR</span>"</span> -name <span class="hljs-string">"config_*"</span> -<span class="hljs-built_in">type</span> d -mtime +60 -<span class="hljs-built_in">exec</span> rm -rf {} +

<span class="hljs-comment"># Petit log pour dire que tout va bien (optionnel)</span>
    <span class="hljs-comment"># echo "Sauvegarde OK le $DATE" &gt;&gt; /home/[UTILISATEUR]/backup.log</span>

<span class="hljs-keyword">else</span>
    <span class="hljs-comment"># Si la clé n'est pas montée, on note l'erreur</span>
    <span class="hljs-built_in">echo</span> <span class="hljs-string">"ALERTE : Clé USB non détectée le <span class="hljs-variable">$DATE</span>"</span> &gt;&gt; /home/[UTILISATEUR]/backup_error.log
<span class="hljs-keyword">fi</span>
</code></pre>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Cette configuration permet d’héberger un agenda et des contacts privés, accessibles partout, sans exposition directe de votre réseau.</p>
<p>Elle repose sur des outils simples, bien documentés et utilisés en production.</p>
<p>C’est une solution concrète pour reprendre le contrôle sur ses données et progresser en administration système.</p>
]]></content:encoded></item><item><title><![CDATA[Docker : comprendre ce changement dans notre manière de gérer les systèmes]]></title><description><![CDATA[I. Pourquoi Docker prend autant de place dans les métiers systèmes ?
Dans l’administration système, nous gérons des serveurs, des applications et souvent des machines virtuelles. Ces dernières fonctionnent encore bien, mais leur modèle montre ses lim...]]></description><link>https://blog.aymenhammache.fr/docker-comprendre-ce-changement-dans-notre-maniere-de-gerer-les-systemes</link><guid isPermaLink="true">https://blog.aymenhammache.fr/docker-comprendre-ce-changement-dans-notre-maniere-de-gerer-les-systemes</guid><category><![CDATA[Docker]]></category><category><![CDATA[Linux]]></category><category><![CDATA[IT]]></category><category><![CDATA[IT Services]]></category><category><![CDATA[IT Support]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 19 Nov 2025 07:00:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1763291906038/7d57c693-f89d-45a4-90ab-1be9d13ad2ab.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-i-pourquoi-docker-prend-autant-de-place-dans-les-metiers-systemes">I. Pourquoi Docker prend autant de place dans les métiers systèmes ?</h2>
<p>Dans l’administration système, nous gérons des serveurs, des applications et souvent des machines virtuelles. Ces dernières fonctionnent encore bien, mais leur modèle montre ses limites. Chaque VM embarque un système complet. Le poids est important. L’impact sur les ressources est fort. Le déploiement prend du temps.</p>
<p>Docker a émergé pour répondre à ce blocage. L’outil rend possible l’exécution d’applications dans un format léger. Il regroupe l’essentiel : le programme et ce dont il dépend. Rien de plus.</p>
<p>L’idée centrale est simple : faire tourner la même application, avec le même comportement, sur n’importe quelle machine. Cela évite les écarts entre les environnements et réduit les erreurs de configuration. Docker s’intègre alors comme une méthode de travail fiable et stable.</p>
<hr />
<h2 id="heading-ii-conteneur-ou-vm-une-difference-plus-profonde-quelle-nen-a-lair">II. Conteneur ou VM : une différence plus profonde qu’elle n’en a l’air</h2>
<h3 id="heading-1-une-autre-maniere-de-transporter-une-application">1. Une autre manière de transporter une application</h3>
<p>On compare souvent les conteneurs aux conteneurs maritimes. Ils servent de boîte standard. Peu importe ce que l’on met dedans, le traitement reste identique.</p>
<p>Une VM, elle, ressemble plus à un petit navire transporté dans un plus grand : elle embarque son moteur et toute sa structure.</p>
<p>Le conteneur Docker, lui, repose directement sur l’hôte. Il prend ce dont il a besoin et ne duplique pas l’ensemble du système.</p>
<h3 id="heading-2-une-isolation-qui-ne-copie-pas-los">2. Une isolation qui ne copie pas l’OS</h3>
<p>Une VM simule une machine complète. Elle nécessite donc un système invité.</p>
<p>Un conteneur ne fonctionne pas ainsi. Il repose sur le noyau de l’hôte. Grâce aux <strong>namespaces</strong>, Docker sépare les environnements (réseau, processus, stockage). Grâce aux <strong>cgroups</strong>, il limite les ressources utilisées.</p>
<p>L’avantage est clair :</p>
<ul>
<li><p>démarrage rapide,</p>
</li>
<li><p>ressources consommées réduites,</p>
</li>
<li><p>nombre de services possible sur la même machine plus élevé.</p>
</li>
</ul>
<hr />
<h2 id="heading-iii-les-elements-essentiels-de-docker">III. Les éléments essentiels de Docker</h2>
<p>Pour travailler avec Docker, il faut distinguer trois notions.</p>
<h3 id="heading-limage">• L’image</h3>
<p>C’est un modèle figé. Elle contient l’application, ses dépendances et son environnement d’exécution.</p>
<h3 id="heading-le-conteneur">• Le conteneur</h3>
<p>C’est l’image mise en route. Vous le démarrez, l’arrêtez ou le supprimez sans modifier l’image d’origine.</p>
<h3 id="heading-le-registre">• Le registre</h3>
<p>Il héberge les images. Docker Hub est le plus connu. Vous pouvez y récupérer des images publiques ou y publier les vôtres.</p>
<p>Le client Docker interagit avec le daemon, qui se charge de gérer les conteneurs et leurs ressources.</p>
<hr />
<h2 id="heading-iv-les-actions-que-vous-utiliserez-le-plus-souvent">IV. Les actions que vous utiliserez le plus souvent</h2>
<h3 id="heading-1-gerer-les-images-et-les-conteneurs">1. Gérer les images et les conteneurs</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Action</td><td>Commande</td><td>Description</td></tr>
</thead>
<tbody>
<tr>
<td>Récupérer une image</td><td><code>docker pull image:tag</code></td><td>Télécharge une image depuis un registre.</td></tr>
<tr>
<td>Voir les images</td><td><code>docker images</code></td><td>Liste les images stockées en local.</td></tr>
<tr>
<td>Créer et démarrer</td><td><code>docker run options image</code></td><td>Lance un conteneur basé sur l’image.</td></tr>
<tr>
<td>Voir les conteneurs actifs</td><td><code>docker ps</code></td><td>Affiche ceux qui tournent.</td></tr>
<tr>
<td>Arrêter ou supprimer</td><td><code>docker stop nom</code> / <code>docker rm nom</code></td><td>Gère le cycle de vie du conteneur.</td></tr>
</tbody>
</table>
</div><h3 id="heading-2-exposer-un-service">2. Exposer un service</h3>
<p>La commande suivante lance un service web Nginx :</p>
<pre><code class="lang-bash">docker run -d -p 8080:80 --name mon_service nginx
</code></pre>
<ul>
<li><p><code>-d</code> : lance le conteneur en arrière-plan.</p>
</li>
<li><p><code>-p</code> : expose le port interne du conteneur vers le port de l’hôte.</p>
</li>
<li><p><code>--name</code> : donne un nom simple à utiliser pour la gestion quotidienne.</p>
</li>
</ul>
<h3 id="heading-3-gerer-la-persistance-des-donnees-avec-les-volumes">3. Gérer la persistance des données avec les volumes</h3>
<p>Un conteneur reste temporaire. Si vous le supprimez, ses données disparaissent.<br />Pour conserver les données, vous devez utiliser des <strong>volumes</strong> :</p>
<pre><code class="lang-bash">docker run -d -v /data/nginx:/var/<span class="hljs-built_in">log</span>/nginx nginx
</code></pre>
<p>Les fichiers sont stockés sur l’hôte, indépendamment du conteneur.</p>
<p>C’est indispensable pour tout service en production.</p>
<hr />
<h2 id="heading-v-conclusion">V. Conclusion</h2>
<p>Docker simplifie la gestion des environnements. Il réduit la charge des serveurs et facilite la répétition des déploiements. La compréhension des différences avec les VMs, associée aux commandes de base, suffit pour commencer à utiliser l’outil dans des conditions réelles.</p>
<p>Installer Docker et tester les volumes est un bon premier pas. C’est aussi le point d’entrée vers des solutions plus avancées, comme l’orchestration d’infrastructures distribuées.</p>
]]></content:encoded></item><item><title><![CDATA[Ventoy : la clé USB qui simplifie l’installation de vos systèmes]]></title><description><![CDATA[Vous êtes déjà passé par là : vous voulez tester un système d’exploitation ou installer Windows sur une machine.Vous téléchargez l’image ISO, vous la copiez sur une clé USB, vous redémarrez, et parfois… ça ne fonctionne pas.
Puis vient le moment où i...]]></description><link>https://blog.aymenhammache.fr/ventoy-la-cle-usb-qui-simplifie-linstallation-de-vos-systemes</link><guid isPermaLink="true">https://blog.aymenhammache.fr/ventoy-la-cle-usb-qui-simplifie-linstallation-de-vos-systemes</guid><category><![CDATA[tools]]></category><category><![CDATA[IT]]></category><category><![CDATA[IT Support]]></category><category><![CDATA[IT Services]]></category><category><![CDATA[Ventoy]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Tue, 04 Nov 2025 23:00:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1762320113114/723ce4e1-1c09-49bd-b91d-0dce178bde70.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Vous êtes déjà passé par là : vous voulez tester un système d’exploitation ou installer Windows sur une machine.<br />Vous téléchargez l’image ISO, vous la copiez sur une clé USB, vous redémarrez, et parfois… ça ne fonctionne pas.</p>
<p>Puis vient le moment où il faut préparer une autre clé pour Linux, ou pour un outil de dépannage.<br />Vous voyez le problème : plusieurs clés, plusieurs copies, plusieurs essais.<br />Tout cela prend du temps et multiplie les risques d’erreur.</p>
<p>C’est là qu’intervient <strong><em>Ventoy.</em></strong><br />Cet outil open source change complètement la façon dont on prépare une clé USB.<br />En pratique, une seule clé peut contenir plusieurs systèmes d’exploitation, prêts à démarrer au choix.</p>
<hr />
<h2 id="heading-pourquoi-ventoy">Pourquoi Ventoy ?</h2>
<p>Avant Ventoy, chaque ISO nécessitait sa propre clé.<br />Windows, Linux, outils de dépannage : chaque fichier demandait une clé dédiée et un formatage.</p>
<p>Alors, imaginez la scène : vous devez tester trois distributions Linux différentes et installer Windows sur une autre machine.<br />Vous passez votre temps à formater des clés et à copier des fichiers.</p>
<p>Ventoy simplifie tout.<br />Il transforme une clé USB en <strong>plateforme multiboot</strong>.<br />Vous copiez vos fichiers ISO dessus, et au démarrage, un menu vous permet de choisir celui que vous voulez lancer.<br />Vous n’avez plus besoin de reformater pour chaque nouvelle ISO.<br />Simple, rapide et fiable.</p>
<hr />
<h2 id="heading-comment-fonctionne-ventoy">Comment fonctionne Ventoy ?</h2>
<p>Vous vous demandez peut-être comment ça marche.<br />C’est assez simple.<br />Ventoy installe sur la clé un petit système de démarrage.<br />Les fichiers ISO restent intacts.<br />Quand vous démarrez l’ordinateur sur la clé, Ventoy les détecte et vous montre un menu avec toutes les options disponibles.</p>
<p>Vous choisissez l’ISO à lancer, et le processus commence immédiatement.<br />Aucune transformation de fichier, aucune étape cachée.<br />En clair, vous savez exactement ce que vous lancez, et ça fonctionne sur la plupart des ordinateurs récents, avec BIOS ou UEFI.</p>
<hr />
<h2 id="heading-installer-ventoy-guide-pratique">Installer Ventoy : guide pratique</h2>
<p>Alors, comment l’utiliser ? Suivez ces étapes simples :</p>
<ol>
<li><p><strong>Téléchargez Ventoy</strong> à partir du <a target="_blank" href="https://www.ventoy.net/en/download.html">site officiel</a>.<br /> Prenez la version correspondant à votre système : Windows ou Linux.</p>
</li>
<li><p><strong>Décompressez</strong> le fichier téléchargé.</p>
</li>
<li><p><strong>Insérez votre clé USB</strong> et lancez Ventoy.<br /> Sélectionnez la clé dans la liste proposée.</p>
</li>
<li><p><strong>Cliquez sur “Installer”</strong>.<br /> La clé sera formatée et préparée pour Ventoy.<br /> ⚠️ Attention : sauvegardez vos fichiers avant cette étape.</p>
</li>
<li><p><strong>Copiez vos fichiers ISO</strong> sur la clé.<br /> Glisser-déposer suffit. Pas besoin d’outils supplémentaires.</p>
</li>
<li><p><strong>Redémarrez l’ordinateur</strong> et démarrez sur la clé USB.<br /> Le menu Ventoy s’affiche automatiquement.<br /> Sélectionnez l’ISO de votre choix. L’installation démarre immédiatement.</p>
</li>
</ol>
<p>En pratique, vous pouvez stocker <strong>plusieurs ISO</strong> sur la même clé.<br />L’outil gère tout et vous permet de changer de système rapidement.</p>
<hr />
<h2 id="heading-les-avantages-de-ventoy">Les avantages de Ventoy</h2>
<p>Vous vous demandez sûrement pourquoi tant de personnes utilisent Ventoy.<br />Voici les raisons principales :</p>
<ul>
<li><p><strong>Gain de temps</strong> : plus besoin de formater une clé à chaque nouvelle ISO.</p>
</li>
<li><p><strong>Simplicité</strong> : copier-coller suffit pour ajouter ou supprimer des systèmes.</p>
</li>
<li><p><strong>Compatibilité</strong> : BIOS, UEFI et Secure Boot sont pris en charge.</p>
</li>
<li><p><strong>Sécurité</strong> : les fichiers ISO restent intacts.</p>
</li>
<li><p><strong>Portabilité</strong> : une seule clé remplace plusieurs clés dédiées.</p>
</li>
</ul>
<p>En pratique, Ventoy est utile pour les étudiants en informatique, les techniciens ou toute personne manipulant plusieurs systèmes.<br />Vous pouvez tester plusieurs distributions Linux, installer rapidement Windows sur différentes machines ou disposer d’une clé de dépannage complète.</p>
<hr />
<h2 id="heading-bonnes-pratiques">Bonnes pratiques</h2>
<p>Pour tirer le meilleur parti de Ventoy, voici quelques conseils :</p>
<ul>
<li><p>Choisissez une clé rapide, de préférence USB 3.0 ou plus.</p>
</li>
<li><p>Organisez vos ISO dans des dossiers pour mieux les retrouver.</p>
</li>
<li><p>Maintenez Ventoy à jour, sans effacer vos fichiers.</p>
</li>
<li><p>Testez vos ISO avant de les utiliser sur des machines critiques.</p>
</li>
<li><p>Ajoutez des outils de dépannage pour transformer votre clé en véritable trousse polyvalente.</p>
</li>
</ul>
<p>Vous verrez, avec ces bonnes pratiques, votre clé devient un outil fiable et toujours prêt.</p>
<hr />
<h2 id="heading-ventoy-et-la-securite">Ventoy et la sécurité</h2>
<p>Ventoy fonctionne avec Secure Boot et prend en charge les ordinateurs récents.<br />Les ISO ne sont jamais modifiés, elles restent exactes et prêtes à être lancées.</p>
<p>Vous savez exactement ce que vous démarrez, sans surprises.<br />C’est un point essentiel, surtout lorsqu’on travaille sur des machines sensibles ou lorsqu’on teste différents systèmes.</p>
<hr />
<h2 id="heading-comparatif-rapide-ventoy-vs-outils-classiques">Comparatif rapide : Ventoy vs outils classiques</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Outil</td><td>ISO par clé</td><td>Facilité</td><td>Compatibilité UEFI</td><td>Remarque</td></tr>
</thead>
<tbody>
<tr>
<td>Rufus</td><td>1</td><td>Moyen</td><td>Oui</td><td>Formatage obligatoire pour chaque ISO</td></tr>
<tr>
<td>Etcher</td><td>1</td><td>Moyen</td><td>Oui</td><td>Une seule image à la fois</td></tr>
<tr>
<td>Ventoy</td><td>Plusieurs</td><td>Très simple</td><td>Oui</td><td>Copier-coller suffit, menu automatique</td></tr>
</tbody>
</table>
</div><p>Ventoy se distingue par sa <strong>flexibilité</strong> et son <strong>gain de temps</strong>, surtout quand vous manipulez plusieurs systèmes ou outils.</p>
<hr />
<h2 id="heading-pourquoi-ventoy-change-la-donne">Pourquoi Ventoy change la donne ?</h2>
<p>Avant, chaque ISO demandait une clé dédiée et plusieurs manipulations.<br />Avec Ventoy, vous copiez simplement l’ISO sur la clé et vous démarrez.</p>
<p>C’est fiable, rapide et accessible à tous.<br />Étudiants, techniciens ou passionnés peuvent l’utiliser facilement, sans formation particulière.</p>
<p>En pratique, vous gagnez de l’efficacité et réduisez les erreurs.</p>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Ventoy est un petit outil avec un grand impact.<br />Il permet de gérer plusieurs ISO sur une seule clé USB, de manière simple et sûre.<br />Vous pouvez tester, installer et dépanner rapidement, avec un minimum de manipulations.</p>
<p>Pour toute personne qui manipule plusieurs systèmes, Ventoy devient vite indispensable.<br />Une clé, plusieurs ISO, prêt à l’emploi.<br />Et tout fonctionne, à chaque fois.</p>
]]></content:encoded></item><item><title><![CDATA[Comprendre le DHCP : le service qui donne une IP à chaque appareil]]></title><description><![CDATA[Introduction
Vous branchez un câble, vous ouvrez votre navigateur, et tout marche.Pas besoin de taper une adresse IP ni de faire de réglages compliqués.
C’est le DHCP qui s’occupe de tout.Un petit service souvent oublié, mais sans lui, aucun appareil...]]></description><link>https://blog.aymenhammache.fr/comprendre-le-dhcp-le-service-qui-donne-une-ip-a-chaque-appareil</link><guid isPermaLink="true">https://blog.aymenhammache.fr/comprendre-le-dhcp-le-service-qui-donne-une-ip-a-chaque-appareil</guid><category><![CDATA[dhcp]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Windows]]></category><category><![CDATA[server]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[router]]></category><category><![CDATA[protocols]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Tue, 28 Oct 2025 07:00:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760871785224/8a918750-6c90-4841-b41b-54c71b3bfe03.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Vous branchez un câble, vous ouvrez votre navigateur, et tout marche.<br />Pas besoin de taper une adresse IP ni de faire de réglages compliqués.</p>
<p>C’est le DHCP qui s’occupe de tout.<br />Un petit service souvent oublié, mais sans lui, aucun appareil ne parlerait au réseau.</p>
<hr />
<h2 id="heading-a-quoi-ca-sert">À quoi ça sert</h2>
<p>Avant, chaque poste devait être configuré à la main.<br />Adresse IP, masque, passerelle, DNS… tout.<br />Et à la moindre erreur, plus rien ne fonctionnait.</p>
<p>Le <strong><em>Dynamic Host Configuration Protocol</em></strong> a simplifié tout ça.<br />Il distribue les adresses IP automatiquement et garde une trace de qui utilise quoi.<br />C’est ce qui permet à un réseau de rester clair et sans conflit.</p>
<hr />
<h2 id="heading-comment-il-fait">Comment il fait</h2>
<p>Quand un appareil se connecte, il lance un appel.<br />En gros : “Y a quelqu’un pour me donner une IP ?”</p>
<p>Le serveur DHCP répond : “Oui, j’en ai une de libre.”<br />L’appareil dit “je la prends”, et le serveur confirme.<br />Quatre échanges rapides, et c’est réglé.</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Étape</td><td>Nom</td><td>Description</td></tr>
</thead>
<tbody>
<tr>
<td>1</td><td>Discover</td><td>L’appareil cherche un serveur DHCP.</td></tr>
<tr>
<td>2</td><td>Offer</td><td>Le serveur propose une adresse libre.</td></tr>
<tr>
<td>3</td><td>Request</td><td>L’appareil accepte l’adresse.</td></tr>
<tr>
<td>4</td><td>Acknowledge</td><td>Le serveur valide la réservation.</td></tr>
</tbody>
</table>
</div><p>Tout se fait en une fraction de seconde.<br />Et l’appareil est prêt à communiquer.</p>
<hr />
<h2 id="heading-une-image-simple">Une image simple</h2>
<p>Imaginez un hôtel.<br />Chaque client arrive à la réception et reçoit une chambre libre.<br />Quand il part, la chambre redevient disponible.</p>
<p>Le DHCP, c’est la même logique.<br />Il attribue une “chambre IP” à chaque machine, puis la reprend quand elle part.</p>
<hr />
<h2 id="heading-les-avantages">Les avantages</h2>
<ul>
<li><p>Plus d’erreurs d’adresse.</p>
</li>
<li><p>Plus de perte de temps.</p>
</li>
<li><p>Une gestion centralisée et propre.</p>
</li>
</ul>
<p>Bref, tout est automatique.<br />Et la plupart du temps, on ne s’en rend même pas compte.</p>
<hr />
<h2 id="heading-et-si-le-dhcp-tombe-en-panne">Et si le DHCP tombe en panne</h2>
<p>Quand le serveur ne répond plus, les machines s’attribuent une adresse par défaut.<br />Souvent, ça commence par 169.254.<br />Et là, plus de communication possible.</p>
<p>Pour éviter ça, les pros installent un deuxième serveur DHCP.<br />S’il y a un problème, le réseau continue de fonctionner.</p>
<hr />
<h2 id="heading-en-resume">En résumé</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Élément</td><td>Fonction</td></tr>
</thead>
<tbody>
<tr>
<td>DHCP</td><td>Donne automatiquement une adresse IP</td></tr>
<tr>
<td>Serveur DHCP</td><td>Gère les adresses disponibles</td></tr>
<tr>
<td>Client DHCP</td><td>Appareil qui demande une adresse</td></tr>
<tr>
<td>Atout principal</td><td>Simplicité et fiabilité</td></tr>
</tbody>
</table>
</div><hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Le DHCP est partout, mais on ne le voit jamais.<br />Il rend le réseau simple, rapide et sans erreurs.<br />Sans lui, chaque connexion serait une galère.</p>
<p>Alors la prochaine fois que tout marche sans effort, vous saurez pourquoi !</p>
]]></content:encoded></item><item><title><![CDATA[Telnet en 2025 : pourquoi il faut l’oublier (et utiliser SSH à la place)]]></title><description><![CDATA[Introduction
Telnet, c’est un peu le dinosaure des connexions réseau.Pendant longtemps, il a été l’outil le plus simple pour prendre la main sur un routeur ou un serveur à distance.Mais aujourd’hui, il n’a plus sa place. Pas en 2025.
Pourquoi ? Parce...]]></description><link>https://blog.aymenhammache.fr/telnet-en-2025-pourquoi-il-faut-loublier-et-utiliser-ssh-a-la-place</link><guid isPermaLink="true">https://blog.aymenhammache.fr/telnet-en-2025-pourquoi-il-faut-loublier-et-utiliser-ssh-a-la-place</guid><category><![CDATA[telnet]]></category><category><![CDATA[ssh]]></category><category><![CDATA[sysadmin]]></category><category><![CDATA[IT]]></category><category><![CDATA[IT Support]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[Ubiquiti]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 22 Oct 2025 06:00:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760789622205/dd784e0b-6143-4974-b59e-a96f5b32863b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Telnet, c’est un peu le dinosaure des connexions réseau.<br />Pendant longtemps, il a été l’outil le plus simple pour prendre la main sur un routeur ou un serveur à distance.<br />Mais aujourd’hui, il n’a plus sa place. Pas en 2025.</p>
<p>Pourquoi ? Parce qu’il n’est <strong>pas sécurisé</strong>, et que ses failles sont évidentes pour quiconque intercepte le trafic.<br />SSH, lui, a remplacé Telnet pour de bonnes raisons. Voyons cela ensemble et étape par étape.</p>
<hr />
<h2 id="heading-telnet-simple-mais-depasse">Telnet : simple, mais dépassé</h2>
<p>À sa création, Telnet répondait à un vrai besoin : se connecter à une machine distante via une session texte.<br />À l’époque, la sécurité n’était pas vraiment une priorité.</p>
<p>Le problème est simple : <strong>tout passe en clair sur le réseau</strong>.<br />Vos identifiants, vos mots de passe, vos commandes… tout peut être capté facilement.<br />Pas besoin d’être un hacker confirmé pour cela : un simple outil d’analyse réseau suffit.</p>
<p>Aujourd’hui, Telnet ne sert plus qu’à deux usages :</p>
<ul>
<li><p>tester un port (<code>telnet 8.8.8.8 53</code>) ;</p>
</li>
<li><p>accéder à un matériel très ancien qui ne supporte pas SSH.</p>
</li>
</ul>
<p>Pour tout le reste, il vaut mieux l’oublier.<br />Et pas de panique, SSH couvre tous vos besoins modernes.</p>
<hr />
<h2 id="heading-ssh-securise-et-moderne">SSH : sécurisé et moderne</h2>
<p>SSH (Secure Shell) fait exactement la même chose que Telnet, mais <strong>en chiffré</strong>.<br />Même si quelqu’un intercepte votre connexion, il ne verra que des données illisibles.</p>
<p>Autres avantages :</p>
<ul>
<li><p>authentification par clé publique/privée, plus sûre qu’un mot de passe ;</p>
</li>
<li><p>compatibilité avec tous les systèmes modernes ;</p>
</li>
<li><p>possibilité de transférer des fichiers ou de lancer des scripts à distance.</p>
</li>
</ul>
<p>Aujourd’hui, SSH est <strong>le standard</strong> pour administrer :</p>
<ul>
<li><p>les routeurs et switches Cisco, Mikrotik, Juniper…</p>
</li>
<li><p>les serveurs Linux, BSD ou macOS ;</p>
</li>
<li><p>et même Windows via PowerShell.</p>
</li>
</ul>
<p>Si vous utilisez encore Telnet, c’est probablement pour du matériel très ancien.<br />Sinon, il est temps de le désactiver. Vous verrez, ce n’est pas compliqué.</p>
<hr />
<h2 id="heading-exemple-activer-ssh-sur-un-routeur-cisco">Exemple : activer SSH sur un routeur Cisco</h2>
<pre><code class="lang-bash">Router(config)<span class="hljs-comment"># hostname R1</span>
Router(config)<span class="hljs-comment"># ip domain-name technotes.local</span>
Router(config)<span class="hljs-comment"># crypto key generate rsa modulus 2048</span>
Router(config)<span class="hljs-comment"># ip ssh version 2</span>
Router(config)<span class="hljs-comment"># username admin secret monmotdepasse</span>
Router(config)<span class="hljs-comment"># line vty 0 4</span>
Router(config-line)<span class="hljs-comment"># transport input ssh</span>
Router(config-line)<span class="hljs-comment"># login local</span>
</code></pre>
<p>quelques points à retenir :</p>
<ul>
<li><p>Le domaine est nécessaire pour générer la clé RSA.</p>
</li>
<li><p>SSH version 2 est plus sûr et obligatoire aujourd’hui.</p>
</li>
<li><p>On crée un utilisateur local et on bloque Telnet sur les lignes VTY.</p>
</li>
</ul>
<p>Et voilà, votre connexion est <strong>entièrement chiffrée</strong>, sécurisée et prête pour 2025.<br />Rien de compliqué, vraiment.</p>
<hr />
<h2 id="heading-en-resume">En résumé</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Protocole</td><td>Sécurité</td><td>Utilisation</td><td>Remarque</td></tr>
</thead>
<tbody>
<tr>
<td>Telnet</td><td>Aucune</td><td>Vieux équipements, tests réseau</td><td>À désactiver</td></tr>
<tr>
<td>SSH</td><td>Chiffrement complet</td><td>Standard actuel</td><td>À privilégier</td></tr>
</tbody>
</table>
</div><hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Telnet a rendu service, mais son temps est révolu.<br />En 2025, la sécurité n’est pas optionnelle.<br />Si votre matériel supporte SSH, activez-le et désactivez Telnet.<br />Vous verrez, c’est simple, efficace et logique.</p>
]]></content:encoded></item><item><title><![CDATA[Automatisez vos tâches avec cron et rsync]]></title><description><![CDATA[J’ai longtemps repoussé la mise en place de vraies sauvegardes sur mon serveur de stockage.Je me disais toujours : « je le ferai demain ».Puis un jour, j’ai perdu des fichiers importants après une mise à jour ratée.Depuis, je ne laisse plus le hasard...]]></description><link>https://blog.aymenhammache.fr/automatisez-vos-taches-avec-cron-et-rsync</link><guid isPermaLink="true">https://blog.aymenhammache.fr/automatisez-vos-taches-avec-cron-et-rsync</guid><category><![CDATA[crontab]]></category><category><![CDATA[rsync]]></category><category><![CDATA[Linux]]></category><category><![CDATA[server]]></category><category><![CDATA[Ubuntu]]></category><category><![CDATA[automation]]></category><category><![CDATA[IT]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 15 Oct 2025 06:00:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767993962577/938c3d9b-0e8f-49a9-b189-d28713580057.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>J’ai longtemps repoussé la mise en place de vraies sauvegardes sur mon serveur de stockage.<br />Je me disais toujours : « je le ferai demain ».<br />Puis un jour, j’ai perdu des fichiers importants après une mise à jour ratée.<br />Depuis, je ne laisse plus le hasard décider.</p>
<p>Sous Linux, deux outils m’ont vraiment simplifié la vie : <strong>cron</strong> et <strong>rsync</strong>.<br />Ils sont déjà présents sur la plupart des distributions, ne coûtent rien et font exactement ce qu’on leur demande.<br />L’un planifie, l’autre copie. Pas plus compliqué.</p>
<hr />
<h2 id="heading-comprendre-leur-role">Comprendre leur rôle</h2>
<p><strong>cron</strong> agit comme une horloge.<br />On lui indique une commande, une date, une heure, et il l’exécute à la minute près.</p>
<p><strong>rsync</strong> se charge de la copie.<br />Il compare la source et la destination et ne transfère que ce qui a changé.<br />Résultat : des sauvegardes rapides, même sur un gros dossier.</p>
<hr />
<h2 id="heading-premier-essai">Premier essai</h2>
<p>Commencez par créer un dossier de sauvegarde :</p>
<pre><code class="lang-bash">mkdir -p /home/utilisateur/backup
</code></pre>
<p>Ensuite, lancez une copie simple pour tester :</p>
<pre><code class="lang-bash">rsync -av --delete /home/utilisateur/Documents/ /home/utilisateur/backup/
</code></pre>
<p>L’option <code>-a</code> conserve les droits et la structure.<br /><code>-v</code> affiche ce qui se passe.<br /><code>--delete</code> supprime dans la sauvegarde ce qui a été retiré de la source.<br />Faites un essai sans cette dernière option si vous voulez observer le résultat en douceur.</p>
<hr />
<h2 id="heading-lancer-automatiquement">Lancer automatiquement</h2>
<p>Quand la commande fonctionne, il suffit de l’ajouter à la crontab :</p>
<pre><code class="lang-bash">crontab -e
</code></pre>
<p>Par exemple, pour sauvegarder chaque nuit à deux heures :</p>
<pre><code class="lang-bash">0 2 * * * rsync -av --delete /home/utilisateur/Documents/ /home/utilisateur/backup/
</code></pre>
<p>Et c’est tout.<br />À partir de là, la copie se fera seule, même si vous oubliez.</p>
<hr />
<h2 id="heading-sauvegarde-distante">Sauvegarde distante</h2>
<p>Vous pouvez aussi envoyer vos fichiers sur un autre serveur :</p>
<pre><code class="lang-bash">rsync -av --delete /home/utilisateur/Documents/ user@serveur:/chemin/backup/
</code></pre>
<p>Une clé SSH évite de taper le mot de passe à chaque fois.<br />Pratique pour une machine hébergée ou un NAS.</p>
<hr />
<h2 id="heading-conseils-simples">Conseils simples</h2>
<ul>
<li><p>Testez toujours la commande à la main avant de l’automatiser.</p>
</li>
<li><p>Vérifiez les journaux les premiers jours pour être sûr que tout se passe bien.</p>
</li>
<li><p>Gardez une copie hors de votre réseau local (sur une clé USB par exemple) si les données sont importantes.</p>
</li>
</ul>
<hr />
<h2 id="heading-ressources-et-lectures-utiles">Ressources et lectures utiles</h2>
<ul>
<li><p><a target="_blank" href="https://crontab.guru/">crontab.guru</a> – créer la bonne syntaxe cron</p>
</li>
<li><p><a target="_blank" href="https://doc.ubuntu-fr.org/rsync">Manuel rsync (ubuntu)</a> – toutes les options expliquées</p>
</li>
</ul>
<hr />
<h2 id="heading-en-resume">En résumé</h2>
<p>Une fois configurés, <strong>cron</strong> et <strong>rsync</strong> travaillent en silence.<br />Vous n’avez plus à penser aux sauvegardes.<br />C’est simple, fiable, et ça peut vous éviter bien des sueurs froides.</p>
]]></content:encoded></item><item><title><![CDATA[VMware ESXi vs Proxmox VE : quelle solution de virtualisation choisir ?]]></title><description><![CDATA[La virtualisation est devenue un élément central des infrastructures informatiques.Elle permet d’exécuter plusieurs systèmes indépendants sur un même serveur physique, d’optimiser les ressources et de simplifier la maintenance.Deux hyperviseurs revie...]]></description><link>https://blog.aymenhammache.fr/vmware-esxi-vs-proxmox-ve-quelle-solution-de-virtualisation-choisir</link><guid isPermaLink="true">https://blog.aymenhammache.fr/vmware-esxi-vs-proxmox-ve-quelle-solution-de-virtualisation-choisir</guid><category><![CDATA[virtualization]]></category><category><![CDATA[hypervisor]]></category><category><![CDATA[vmware]]></category><category><![CDATA[esxi]]></category><category><![CDATA[proxmox]]></category><category><![CDATA[Homelab]]></category><category><![CDATA[server]]></category><category><![CDATA[clustering]]></category><category><![CDATA[KVM]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 01 Oct 2025 06:00:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767993439459/e88d73d1-6fe5-4c83-bd22-d53848b1c40f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>La virtualisation est devenue un élément central des infrastructures informatiques.<br />Elle permet d’exécuter plusieurs systèmes indépendants sur un même serveur physique, d’optimiser les ressources et de simplifier la maintenance.<br />Deux hyperviseurs reviennent systématiquement dans les comparatifs : <strong>VMware ESXi</strong>, solution historique du marché professionnel, et <strong>Proxmox VE</strong>, alternative open source en forte progression.<br />Cette analyse détaille leurs différences pour vous aider à sélectionner la plateforme adaptée à votre environnement.</p>
<hr />
<h2 id="heading-architecture-et-principes">Architecture et principes</h2>
<h3 id="heading-vmware-esxi"><strong>VMware ESXi</strong></h3>
<p>ESXi est un hyperviseur de type 1, installé directement sur le matériel.<br />Il constitue la base de l’écosystème VMware, qui inclut vCenter pour la gestion centralisée, vMotion pour la migration de machines virtuelles et d’autres modules destinés aux grandes infrastructures.</p>
<h3 id="heading-proxmox-ve"><strong>Proxmox VE</strong></h3>
<p>Proxmox repose sur Debian Linux et combine deux technologies : <strong>KVM</strong> pour les machines virtuelles complètes et <strong>LXC</strong> pour les conteneurs.<br />Cette double approche permet d’exécuter des systèmes complets ou des services isolés sur une même plateforme, sans ajouter d’outils externes.</p>
<hr />
<h2 id="heading-installation-et-configuration-initiale">Installation et configuration initiale</h2>
<ul>
<li><p><strong>ESXi</strong> : l’installation se fait à partir d’une image ISO.<br />  La configuration de base est rapide, mais certaines fonctions avancées (clusters, haute disponibilité) nécessitent vCenter, qui requiert une licence distincte.<br />  L’administration initiale se fait via un client web ou le client lourd vSphere.</p>
</li>
<li><p><strong>Proxmox VE</strong> : l’installation est simple et entièrement guidée.<br />  Dès le premier démarrage, l’interface web permet de créer des machines virtuelles, de configurer le stockage ou de mettre en place un cluster.<br />  Aucun composant supplémentaire n’est obligatoire.</p>
</li>
</ul>
<hr />
<h2 id="heading-modele-economique-et-licences">Modèle économique et licences</h2>
<h3 id="heading-vmware-esxi-1"><strong>VMware ESXi</strong></h3>
<ul>
<li><p><strong>Version gratuite</strong> : limitée à un usage basique, sans fonctions de haute disponibilité ni API complète.</p>
</li>
<li><p><strong>Licences vSphere</strong> : nécessaires pour la gestion centralisée, la sauvegarde avancée ou la réplication.</p>
</li>
<li><p><strong>Coût</strong> : augmente avec le nombre de serveurs et de processeurs.</p>
</li>
</ul>
<h3 id="heading-proxmox-ve-1"><strong>Proxmox VE</strong></h3>
<ul>
<li><p><strong>Licence communautaire</strong> : gratuite et complète.</p>
</li>
<li><p><strong>Abonnement entreprise</strong> : optionnel, donne accès à des dépôts stables et à un support professionnel.</p>
</li>
<li><p><strong>Coût</strong> : prévisible et faible, même pour plusieurs nœuds.</p>
</li>
</ul>
<hr />
<h2 id="heading-gestion-et-administration">Gestion et administration</h2>
<ul>
<li><p><strong>Interface</strong> : Proxmox propose une interface web unique pour toutes les fonctions (VM, conteneurs, stockage, sauvegardes).<br />  ESXi offre une interface web pour chaque hôte, mais la gestion multi-serveurs passe par vCenter.</p>
</li>
<li><p><strong>Sauvegardes</strong> : Proxmox intègre l’outil Vzdump pour planifier des sauvegardes complètes ou incrémentales.<br />  VMware nécessite souvent des solutions tierces ou des modules payants pour des fonctionnalités équivalentes.</p>
</li>
<li><p><strong>Mises à jour</strong> : Proxmox peut être mis à jour directement depuis l’interface, avec un contrôle précis des dépôts.<br />  VMware propose des correctifs réguliers mais impose souvent l’usage d’outils spécifiques.</p>
</li>
</ul>
<hr />
<h2 id="heading-fonctionnalites-cles">Fonctionnalités clés</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Fonction</td><td>VMware ESXi</td><td>Proxmox VE</td></tr>
</thead>
<tbody>
<tr>
<td>Virtualisation</td><td>Machines virtuelles</td><td>Machines virtuelles + conteneurs</td></tr>
<tr>
<td>Clustering</td><td>Avec vCenter (payant)</td><td>Inclus</td></tr>
<tr>
<td>Haute disponibilité</td><td>Avec licence</td><td>Inclus</td></tr>
<tr>
<td>Snapshots</td><td>Oui</td><td>Oui</td></tr>
<tr>
<td>Stockage distribué</td><td>vSAN (licence)</td><td>Ceph intégré</td></tr>
<tr>
<td>Passthrough GPU</td><td>Oui</td><td>Oui</td></tr>
</tbody>
</table>
</div><p>Les deux solutions couvrent les besoins essentiels : isolation des charges, migration à chaud, gestion fine des ressources processeur et mémoire.<br />La différence se situe surtout dans le niveau d’intégration et le coût des options.</p>
<hr />
<h2 id="heading-performances-et-compatibilite">Performances et compatibilité</h2>
<ul>
<li><p><strong>VMware ESXi</strong> : reconnu pour sa stabilité et sa compatibilité avec les serveurs professionnels certifiés (HPE, Dell, Lenovo).<br />  Idéal lorsque la charge de travail nécessite un support matériel officiel.</p>
</li>
<li><p><strong>Proxmox VE</strong> : performant sur une large gamme de matériels, y compris les configurations grand public.<br />  Quelques ajustements peuvent être requis sur du matériel très récent, notamment pour les pilotes réseau.</p>
</li>
</ul>
<p>Les deux hyperviseurs prennent en charge le stockage ZFS, le passthrough PCIe et les réseaux virtuels avancés.</p>
<p><strong><em>ZFS :</em></strong></p>
<p>ZFS est à la fois un <strong>système de fichiers</strong> et un <strong>gestionnaire de volumes</strong>.<br />Il ne se contente pas de stocker les données : il vérifie leur intégrité, détecte les erreurs et peut les corriger.<br />Il sait aussi créer des <strong>snapshots</strong>, c’est-à-dire des copies instantanées d’un volume, et agrandir un espace de stockage sans tout reformater.<br />Dans un serveur Proxmox, ZFS sert souvent à regrouper plusieurs disques pour gagner en sécurité et en performance, sans passer par un contrôleur RAID matériel.</p>
<p><strong><em>Passthrough PCIe :</em></strong></p>
<p>Le passthrough PCIe permet de <strong>faire passer un périphérique physique directement dans une machine virtuelle</strong>.<br />Au lieu d’émuler une carte graphique ou un contrôleur réseau, la VM utilise le vrai matériel branché sur le serveur.<br />Ce mode est pratique pour profiter de la puissance d’un GPU, d’une carte réseau haut débit ou d’un contrôleur de stockage comme si le système invité tournait sur une machine dédiée.</p>
<hr />
<h2 id="heading-securite">Sécurité</h2>
<ul>
<li><p><strong>VMware</strong> : mises à jour fréquentes, correctifs rapides et nombreuses options de contrôle d’accès via vCenter.</p>
</li>
<li><p><strong>Proxmox</strong> : supporte l’authentification à deux facteurs, les rôles utilisateurs et les certificats TLS.<br />  Les correctifs sont distribués rapidement, même dans le dépôt communautaire.</p>
</li>
</ul>
<hr />
<h2 id="heading-scenarios-dusage">Scénarios d’usage</h2>
<ul>
<li><p><strong>Grandes entreprises et datacenters</strong> : VMware ESXi reste privilégié lorsque la compatibilité matérielle, le support 24/7 et l’intégration avec des outils tiers sont critiques.</p>
</li>
<li><p><strong>PME, laboratoires, auto-hébergement</strong> : Proxmox VE offre une solution complète sans coût de licence, adaptée aux environnements à budget contrôlé.</p>
</li>
<li><p><strong>Formation et tests</strong> : Proxmox facilite la mise en place rapide de maquettes grâce à son interface unique et à sa flexibilité.</p>
</li>
</ul>
<hr />
<h2 id="heading-quel-solution-choisir">Quel solution choisir ?</h2>
<ul>
<li><p><strong>Choisir VMware ESXi</strong> si vous avez besoin d’un support officiel, d’une intégration poussée avec des solutions tierces ou d’une compatibilité matérielle validée par un éditeur reconnu.</p>
</li>
<li><p><strong>Choisir Proxmox VE</strong> si vous recherchez une solution ouverte, économique et capable de combiner machines virtuelles et conteneurs sans dépendre de licences coûteuses.</p>
</li>
</ul>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>VMware ESXi et Proxmox VE offrent des performances comparables et une stabilité éprouvée.<br />Leur différence majeure se situe dans le modèle économique et la philosophie de gestion.<br />Le premier s’adresse aux infrastructures critiques disposant d’un budget pour les licences et le support.<br />Le second privilégie la flexibilité et l’accessibilité tout en restant adapté à des environnements professionnels.<br />Votre décision dépendra donc du <strong>niveau de support souhaité</strong>, de la <strong>taille de l’infrastructure</strong> et du <strong>budget disponible</strong>.</p>
]]></content:encoded></item><item><title><![CDATA[Pourquoi vous apprendrez plus en pratiquant qu’en lisant : la pratique en informatique]]></title><description><![CDATA[Introduction
En informatique, surtout en administration système et réseau, la théorie explique les concepts. Mais lire ne suffit pas pour devenir efficace. C’est en installant, configurant et testant que vous transformez vos connaissances en savoir-f...]]></description><link>https://blog.aymenhammache.fr/pourquoi-vous-apprendrez-plus-en-pratiquant-quen-lisant-la-pratique-en-informatique</link><guid isPermaLink="true">https://blog.aymenhammache.fr/pourquoi-vous-apprendrez-plus-en-pratiquant-quen-lisant-la-pratique-en-informatique</guid><category><![CDATA[#TheoryAndPractice]]></category><category><![CDATA[learningbydoing]]></category><category><![CDATA[IT]]></category><category><![CDATA[it training]]></category><category><![CDATA[pedagogy]]></category><category><![CDATA[self-learning]]></category><category><![CDATA[computer networking]]></category><category><![CDATA[ITLabs]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 24 Sep 2025 06:00:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1754740023515/09d65974-241c-4b84-9775-3d9a2cccda8d.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>En informatique, surtout en administration système et réseau, la théorie explique les concepts. Mais lire ne suffit pas pour devenir efficace. C’est en installant, configurant et testant que vous transformez vos connaissances en savoir-faire.</p>
<p>Que vous soyez étudiant ou technicien, vous avez sûrement remarqué qu’apprendre en faisant est plus solide que lire. Cet article explique pourquoi, et donne des conseils pour apprendre en pratiquant.</p>
<hr />
<h2 id="heading-1-savoir-vs-savoir-faire">1. Savoir vs savoir-faire</h2>
<p>Savoir, c’est ce que vous connaissez. Savoir-faire, c’est ce que vous pouvez faire. Par exemple, connaître un serveur DHCP ne suffit pas. Il faut savoir le configurer et le dépanner.</p>
<p>Lire donne du savoir. La pratique donne du savoir-faire. C’est cette dernière étape qui permet d’être opérationnel.</p>
<hr />
<h2 id="heading-2-le-cycle-dapprentissage-de-kolb">2. Le cycle d’apprentissage de Kolb</h2>
<p>Kolb a décrit quatre étapes clés pour apprendre vraiment :</p>
<ul>
<li><p>Faire</p>
</li>
<li><p>Observer</p>
</li>
<li><p>Comprendre</p>
</li>
<li><p>Réessayer</p>
</li>
</ul>
<p>Lire sans pratiquer saute ces étapes. Installer un serveur ou configurer un réseau vous fait passer par toutes ces phases. Cela aide à mieux comprendre et mémoriser.</p>
<p><img src="https://enseigner.hec.ca/wp-content/uploads/2024/11/Cycle-Kolb.png" alt="Graphique résumant le cycle de Kolb. Vous retrouverez les différentes composantes dans le texte ci-dessous." /></p>
<hr />
<h2 id="heading-3-ce-que-disent-les-neurosciences">3. Ce que disent les neurosciences</h2>
<p>Le cerveau garde deux types de mémoire :</p>
<ul>
<li><p>La mémoire des faits et idées (déclarative)</p>
</li>
<li><p>La mémoire des gestes et savoir-faire (procédurale)</p>
</li>
</ul>
<p>On développe la mémoire déclarative en lisant. La mémoire procédurale se construit en faisant. Répéter une action crée l’habitude et l’expertise.</p>
<p>Corriger ses erreurs pendant la pratique renforce l’apprentissage plus que la lecture seule.</p>
<hr />
<h2 id="heading-4-lerreur-fait-avancer">4. L’erreur fait avancer</h2>
<p>En configurant un service, vous ferez des erreurs. Ce n’est pas un problème. C’est normal et utile.</p>
<p>Ces erreurs vous poussent à chercher pourquoi, tester des solutions, comprendre. C’est ainsi qu’on progresse.</p>
<hr />
<h2 id="heading-5-conseils-pour-apprendre-en-faisant">5. Conseils pour apprendre en faisant</h2>
<ul>
<li><p>Apprenez un concept puis appliquez-le immédiatement.</p>
</li>
<li><p>Faites des projets concrets : serveur web, VPN, réseau.</p>
</li>
<li><p>Utilisez des simulateurs comme Packet Tracer ou GNS3.</p>
</li>
<li><p>Virtualisez avec VirtualBox ou VMware.</p>
</li>
<li><p>Notez vos essais et corrections.</p>
</li>
<li><p>Partagez vos découvertes dans un blog ou une communauté.</p>
</li>
</ul>
<hr />
<h2 id="heading-6-la-pratique-un-atout-en-alternance-et-en-entreprise">6. <strong>La pratique, un atout en alternance et en entreprise</strong></h2>
<p>En entreprise, on apprend autrement.<br />Chaque journée apporte une situation réelle : un service à dépanner, un réseau à vérifier, un outil à comprendre.<br />Ces moments valent plus qu’un long cours, parce qu’ils obligent à chercher, à observer, à agir.</p>
<p>Avec le temps, on se sent plus sûr de soi.<br />On comprend mieux les concepts vus à l’école, parce qu’on les relie à des gestes concrets.<br />Cette expérience rend l’apprentissage plus solide et prépare à progresser, pas à pas, dans le métier.</p>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>La théorie est nécessaire, mais insuffisante pour devenir compétent. Installer et tester concrètement ancre les connaissances, donne confiance et facilite la résolution de problèmes.</p>
<p>L’erreur est une étape clé. En combinant théorie et pratique, vous vous préparez efficacement aux défis du métier.</p>
]]></content:encoded></item><item><title><![CDATA[Comprendre et configurer un VLAN chez soi avec un routeur Cisco]]></title><description><![CDATA[Introduction
Dans un contexte où les réseaux deviennent de plus en plus complexes, la gestion efficace et sécurisée de vos équipements passe souvent par la segmentation réseau. Le VLAN, ou réseau local virtuel, est une solution simple et puissante po...]]></description><link>https://blog.aymenhammache.fr/comprendre-et-configurer-un-vlan-chez-soi-avec-un-routeur-cisco</link><guid isPermaLink="true">https://blog.aymenhammache.fr/comprendre-et-configurer-un-vlan-chez-soi-avec-un-routeur-cisco</guid><category><![CDATA[networking]]></category><category><![CDATA[VLAN]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[Cisco Packet Tracer]]></category><category><![CDATA[IT Infrastructure]]></category><category><![CDATA[router]]></category><category><![CDATA[SWITCH]]></category><category><![CDATA[it-education]]></category><category><![CDATA[Homelab]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 17 Sep 2025 06:00:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767993698736/1fad11c8-9528-41e5-ae9a-f0d0b6505afc.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Dans un contexte où les réseaux deviennent de plus en plus complexes, la gestion efficace et sécurisée de vos équipements passe souvent par la segmentation réseau. Le VLAN, ou réseau local virtuel, est une solution simple et puissante pour diviser un réseau physique en plusieurs réseaux logiques. Cet article vous guide pas à pas pour comprendre ce qu’est un VLAN et comment configurer un trunk entre un switch et un routeur Cisco chez vous.</p>
<h2 id="heading-quest-ce-quun-vlan">Qu’est-ce qu’un VLAN ?</h2>
<p>Un VLAN permet de séparer un réseau physique en plusieurs sous-réseaux logiques. Chaque VLAN agit comme un réseau indépendant :</p>
<ul>
<li><p>Les appareils dans un même VLAN peuvent communiquer librement.</p>
</li>
<li><p>Les appareils situés dans des VLANs différents ne communiquent pas directement, sauf si un routage inter-VLAN est configuré.</p>
</li>
</ul>
<p>Cette segmentation améliore la sécurité, l’organisation du réseau et réduit le trafic inutile lié aux broadcasts.</p>
<h2 id="heading-pourquoi-utiliser-des-vlans">Pourquoi utiliser des VLANs ?</h2>
<ul>
<li><p><strong>Sécurité</strong> : Vous pouvez isoler certains équipements (par exemple, un VLAN pour les invités, un autre pour les employés).</p>
</li>
<li><p><strong>Organisation</strong> : Regroupez les machines par fonction ou département.</p>
</li>
<li><p><strong>Performance</strong> : Limitez la portée des broadcasts, ce qui réduit la charge réseau.</p>
</li>
</ul>
<h2 id="heading-materiel-necessaire-pour-cet-exemple">Matériel nécessaire pour cet exemple</h2>
<ul>
<li><p>Un switch Cisco manageable.</p>
</li>
<li><p>Un routeur Cisco.</p>
</li>
<li><p>Deux à trois ordinateurs ou machines virtuelles.</p>
</li>
<li><p>Câbles réseau standards (RJ45).</p>
</li>
</ul>
<p>Vous pouvez simuler cette configuration avec Packet Tracer ou GNS3 si vous ne disposez pas du matériel.</p>
<h2 id="heading-architecture-reseau">Architecture réseau</h2>
<p>Voici le schéma général du réseau que vous allez configurer :</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754577275068/101edbc1-0cb6-47ed-84b8-dec8d2bf4b78.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-etapes-de-configuration">Étapes de configuration</h2>
<h3 id="heading-1-creation-des-vlans-sur-le-switch">1. Création des VLANs sur le switch</h3>
<pre><code class="lang-bash">Switch&gt; <span class="hljs-built_in">enable</span>
Switch<span class="hljs-comment"># configure terminal</span>
Switch(config)<span class="hljs-comment"># vlan 10</span>
Switch(config-vlan)<span class="hljs-comment"># name Utilisateurs</span>
Switch(config)<span class="hljs-comment"># vlan 20</span>
Switch(config-vlan)<span class="hljs-comment"># name Invites</span>
Switch(config)<span class="hljs-comment"># vlan 30</span>
Switch(config-vlan)<span class="hljs-comment"># name Admin</span>
</code></pre>
<h3 id="heading-2-affectation-des-ports-aux-vlans">2. Affectation des ports aux VLANs</h3>
<pre><code class="lang-bash">Switch(config)<span class="hljs-comment"># interface fastEthernet 0/1</span>
Switch(config-if)<span class="hljs-comment"># switchport mode access</span>
Switch(config-if)<span class="hljs-comment"># switchport access vlan 10</span>

Switch(config)<span class="hljs-comment"># interface fastEthernet 0/2</span>
Switch(config-if)<span class="hljs-comment"># switchport mode access</span>
Switch(config-if)<span class="hljs-comment"># switchport access vlan 20</span>

Switch(config)<span class="hljs-comment"># interface fastEthernet 0/3</span>
Switch(config-if)<span class="hljs-comment"># switchport mode access</span>
Switch(config-if)<span class="hljs-comment"># switchport access vlan 30</span>
</code></pre>
<h3 id="heading-3-configuration-du-port-trunk-entre-le-switch-et-le-routeur">3. Configuration du port trunk entre le switch et le routeur</h3>
<pre><code class="lang-bash">Switch(config)<span class="hljs-comment"># interface fastEthernet 0/24</span>
Switch(config-if)<span class="hljs-comment"># switchport trunk encapsulation dot1q</span>
Switch(config-if)<span class="hljs-comment"># switchport mode trunk</span>
</code></pre>
<h3 id="heading-4-configuration-des-sous-interfaces-sur-le-routeur-routage-inter-vlan">4. Configuration des sous-interfaces sur le routeur (routage inter-VLAN)</h3>
<pre><code class="lang-bash">Router&gt; <span class="hljs-built_in">enable</span>
Router<span class="hljs-comment"># configure terminal</span>

Router(config)<span class="hljs-comment"># interface gigabitEthernet 0/0.10</span>
Router(config-subif)<span class="hljs-comment"># encapsulation dot1Q 10</span>
Router(config-subif)<span class="hljs-comment"># ip address 192.168.10.1 255.255.255.0</span>

Router(config)<span class="hljs-comment"># interface gigabitEthernet 0/0.20</span>
Router(config-subif)<span class="hljs-comment"># encapsulation dot1Q 20</span>
Router(config-subif)<span class="hljs-comment"># ip address 192.168.20.1 255.255.255.0</span>

Router(config)<span class="hljs-comment"># interface gigabitEthernet 0/0.30</span>
Router(config-subif)<span class="hljs-comment"># encapsulation dot1Q 30</span>
Router(config-subif)<span class="hljs-comment"># ip address 192.168.30.1 255.255.255.0</span>
</code></pre>
<h2 id="heading-tests-de-connectivite">Tests de connectivité</h2>
<ul>
<li><p>Vérifiez que chaque PC reçoit une adresse IP correspondant à son VLAN (en DHCP ou statique).</p>
</li>
<li><p>Testez la communication dans un même VLAN avec un ping entre machines.</p>
</li>
<li><p>Vérifiez le routage inter-VLAN en pingant l’adresse IP d’une autre VLAN (192.168.x.1).</p>
</li>
</ul>
<h2 id="heading-bonnes-pratiques">Bonnes pratiques</h2>
<ul>
<li><p>Nommez clairement vos VLANs pour éviter toute confusion.</p>
</li>
<li><p>Désactivez les ports inutilisés ou assignez-les à un VLAN isolé.</p>
</li>
<li><p>Activez la sécurité des ports pour limiter les accès non autorisés.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>La configuration des VLANs chez soi permet d’appréhender concrètement la segmentation réseau et le routage inter-VLAN. C’est une base essentielle pour gérer des infrastructures réseau plus complexes en entreprise. Cette approche vous aide à mieux organiser et sécuriser votre réseau domestique ou vos environnements de test.</p>
]]></content:encoded></item><item><title><![CDATA[Tailscale : simplifiez la connexion de vos machines, où qu'elles soient]]></title><description><![CDATA[Introduction
Dans un contexte où les infrastructures sont souvent réparties sur plusieurs sites ou appareils, accéder à ses machines à distance peut devenir complexe. Tailscale est une solution qui permet de connecter vos équipements entre eux de man...]]></description><link>https://blog.aymenhammache.fr/tailscale-simplifiez-la-connexion-de-vos-machines-ou-quelles-soient</link><guid isPermaLink="true">https://blog.aymenhammache.fr/tailscale-simplifiez-la-connexion-de-vos-machines-ou-quelles-soient</guid><category><![CDATA[PeerToPeerVPN]]></category><category><![CDATA[tailscale]]></category><category><![CDATA[vpn]]></category><category><![CDATA[IT Infrastructure]]></category><category><![CDATA[SelfHosting]]></category><category><![CDATA[network security]]></category><category><![CDATA[linux networking ]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[Devops]]></category><category><![CDATA[networkingbasics]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 10 Sep 2025 06:00:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767993328470/3807b0a9-cbef-44bf-b99e-81bbd25edc89.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Dans un contexte où les infrastructures sont souvent réparties sur plusieurs sites ou appareils, accéder à ses machines à distance peut devenir complexe. Tailscale est une solution qui permet de connecter vos équipements entre eux de manière sécurisée, sans configuration réseau fastidieuse.</p>
<p>Ce guide présente le fonctionnement de Tailscale, son installation, ses usages concrets, et les avantages qu’il peut offrir aux étudiants, techniciens ou administrateurs réseau.</p>
<hr />
<h2 id="heading-quest-ce-que-tailscale">Qu’est-ce que Tailscale ?</h2>
<p>Tailscale est un VPN basé sur le protocole WireGuard. Il crée un réseau privé entre vos appareils (PC, serveurs, smartphones, Raspberry Pi…), où qu’ils se trouvent, sans devoir modifier votre box ou ouvrir des ports.</p>
<h3 id="heading-fonctionnalites-principales">Fonctionnalités principales</h3>
<ul>
<li><p>Connexion chiffrée de bout en bout</p>
</li>
<li><p>Détection automatique des pairs</p>
</li>
<li><p>Pas besoin d’IP publique ni de redirection de ports</p>
</li>
<li><p>Accès distant simplifié</p>
</li>
<li><p>Interface de gestion via navigateur</p>
</li>
</ul>
<hr />
<h2 id="heading-cas-dusage">Cas d’usage</h2>
<p>Tailscale s’adapte à plusieurs contextes :</p>
<ul>
<li><p>Accès à un serveur local depuis l’extérieur, sans configuration de port</p>
</li>
<li><p>Connexion à un NAS personnel lors de vos déplacements</p>
</li>
<li><p>Lien direct entre deux machines distantes comme si elles étaient en LAN</p>
</li>
<li><p>Collaboration entre étudiants sur un réseau privé sans infrastructure complexe</p>
</li>
</ul>
<hr />
<h2 id="heading-installation-et-configuration">Installation et configuration</h2>
<h3 id="heading-prerequis">Prérequis</h3>
<ul>
<li><p>Un compte Tailscale (authentification via Google, GitHub, Microsoft…)</p>
</li>
<li><p>Une machine compatible : Linux, Windows, macOS, iOS, Android</p>
</li>
</ul>
<h3 id="heading-installation-rapide-sur-ubuntu-debian">Installation rapide sur Ubuntu / Debian</h3>
<pre><code class="lang-bash">curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
</code></pre>
<p>Après exécution de ces commandes, l’appareil rejoint votre réseau privé.</p>
<h3 id="heading-interface-web">Interface Web</h3>
<p>Tous les appareils sont visibles sur :<br />🔗 <a target="_blank" href="https://login.tailscale.com/admin/machines">https://login.tailscale.com/admin/machines</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754382760677/7ff784b3-e0f8-4109-8e23-45d6d55a02d0.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-fonctions-avancees">Fonctions avancées</h2>
<h3 id="heading-sous-reseaux-subnet-routers">Sous-réseaux (Subnet Routers)</h3>
<p>Permet de rendre tout un réseau local accessible via un seul appareil Tailscale.</p>
<h3 id="heading-magicdns">MagicDNS</h3>
<p>Permet de remplacer les adresses IP par des noms de domaine internes lisibles (ex. : <code>serveur-aymen.tailnet100.ts.net</code>).</p>
<h3 id="heading-acls-access-control-lists">ACLs (Access Control Lists)</h3>
<p>Autorise ou bloque l’accès entre appareils, selon des règles précises.</p>
<hr />
<h2 id="heading-comparatif-avec-dautres-solutions-vpn">Comparatif avec d’autres solutions VPN</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754385274851/4e9f5ae5-76a3-4be8-ae00-32fe9b7d3692.jpeg" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-points-a-surveiller">Points à surveiller</h2>
<ul>
<li><p>Compte obligatoire lié à un fournisseur (Google, GitHub…)</p>
</li>
<li><p>Gratuit jusqu’à 20 appareils en usage personnel</p>
</li>
<li><p>Certaines fonctionnalités avancées sont réservées aux offres payantes (notamment en entreprise)</p>
</li>
</ul>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Tailscale, c’est un peu le VPN que beaucoup attendaient sans le savoir.</p>
<p>Facile à installer, sans prise de tête côté réseau, et suffisamment puissant pour répondre à la majorité des besoins en accès distant sécurisé. Que ce soit pour connecter vos machines perso, gérer un lab à distance ou éviter d’ouvrir des ports sur votre box, il fait le job — proprement.</p>
<p>Ajoutez à ça une interface web claire, des fonctions comme MagicDNS ou le partage de sous-réseaux, et vous obtenez un outil qu’on peut adopter aussi bien pour le boulot que pour les projets perso.</p>
<p>Si vous cherchez une solution fiable pour relier vos machines sans complications, Tailscale mérite clairement sa place dans votre boîte à outils.</p>
]]></content:encoded></item><item><title><![CDATA[CasaOS : simplifiez l’auto-hébergement grâce à une interface web intuitive]]></title><description><![CDATA[Un serveur perso, sans la complexité
Vous avez envie de créer votre propre serveur à la maison, mais la ligne de commande, Docker et les fichiers de configuration vous paraissent trop compliqués ?CasaOS est une solution pensée pour ceux qui veulent a...]]></description><link>https://blog.aymenhammache.fr/casaos-simplifiez-lauto-hebergement-grace-a-une-interface-web-intuitive</link><guid isPermaLink="true">https://blog.aymenhammache.fr/casaos-simplifiez-lauto-hebergement-grace-a-une-interface-web-intuitive</guid><category><![CDATA[Easy self-hosting]]></category><category><![CDATA[IT learning]]></category><category><![CDATA[Sysadmin tools]]></category><category><![CDATA[Casaos]]></category><category><![CDATA[SelfHosting]]></category><category><![CDATA[linux-server]]></category><category><![CDATA[Docker]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[File sharing]]></category><category><![CDATA[samba]]></category><category><![CDATA[Beginner-friendly]]></category><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[ #HomeNAS]]></category><category><![CDATA[techblog]]></category><category><![CDATA[#network-basics]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 03 Sep 2025 06:00:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767992993505/425c05ec-8276-44e8-9da8-8f7fe105d49b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-un-serveur-perso-sans-la-complexite">Un serveur perso, sans la complexité</h2>
<p>Vous avez envie de créer votre propre serveur à la maison, mais la ligne de commande, Docker et les fichiers de configuration vous paraissent trop compliqués ?<br /><strong>CasaOS</strong> est une solution pensée pour ceux qui veulent aller à l’essentiel : installer des applications, gérer leurs fichiers ou surveiller les ressources de leur machine <strong>depuis une simple interface web</strong>, sans avoir à tout faire en terminal.</p>
<hr />
<h2 id="heading-presentation-de-casaos">Présentation de CasaOS</h2>
<p>CasaOS est un système open source basé sur Linux et Docker. Il propose une interface web moderne qui sert de <strong>tableau de bord tout-en-un</strong> pour gérer :</p>
<ul>
<li><p>Vos applications</p>
</li>
<li><p>Votre stockage</p>
</li>
<li><p>Les ressources système</p>
</li>
<li><p>Vos conteneurs Docker (sans toucher à Docker)</p>
</li>
</ul>
<p>Son objectif est clair : <strong>rendre l’auto-hébergement accessible à tous</strong>, y compris aux débutants. Vous pouvez créer un cloud personnel, héberger un serveur multimédia ou bloquer les publicités réseau, <strong>le tout en quelques clics</strong>.</p>
<hr />
<h2 id="heading-pourquoi-choisir-casaos">Pourquoi choisir CasaOS ?</h2>
<ul>
<li><p><strong>Interface simple</strong> : tout se passe dans le navigateur</p>
</li>
<li><p><strong>Apps populaires intégrées</strong> : Nextcloud, Plex, Pi-hole, Jellyfin…</p>
</li>
<li><p><strong>Compatible avec les mini-PC</strong> : Raspberry Pi, Intel NUC, VM, etc.</p>
</li>
<li><p><strong>Open source</strong> : libre, évolutif, soutenu par une communauté active</p>
</li>
<li><p><strong>Idéal pour apprendre</strong> : Docker, Linux, auto-hébergement… à votre rythme</p>
</li>
</ul>
<hr />
<h2 id="heading-materiel-requis">Matériel requis</h2>
<p>Avant de commencer, assurez-vous de disposer de :</p>
<ul>
<li><p>Une machine sous <strong>Ubuntu/Debian</strong> ou un <strong>Raspberry Pi 4</strong></p>
</li>
<li><p>Une connexion réseau locale</p>
</li>
<li><p>Un accès SSH (ou physique) à la machine pour l’installation initiale</p>
</li>
</ul>
<hr />
<h2 id="heading-installation-etape-par-etape">Installation étape par étape</h2>
<p><strong>1. Mettre à jour le système</strong></p>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt upgrade -y
</code></pre>
<p><strong>2. Installer CasaOS avec le script officiel</strong></p>
<pre><code class="lang-bash">curl -fsSL https://get.casaos.io | bash
</code></pre>
<p>Ce script installe Docker, CasaOS et les services nécessaires. À la fin, CasaOS sera automatiquement lancé.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754341490800/8bdf8554-9668-455d-ba5c-4eb6cbac0846.png" alt class="image--center mx-auto" /></p>
<p><strong>3. Accéder à l’interface</strong></p>
<p>Dans votre navigateur, allez à l’adresse suivante :<br /><code>http://&lt;adresse_IP_de_votre_machine&gt;:80</code></p>
<p>Vous serez invité à créer un compte administrateur pour commencer.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754341884670/e1c84822-ff2b-4f06-9ba4-cbfa440822de.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-decouverte-de-linterface-casaos">Découverte de l’interface CasaOS</h2>
<p>L’interface est divisée en plusieurs sections :</p>
<ul>
<li><p><strong>Dashboard</strong> : suivi de l’usage CPU, RAM, disque</p>
</li>
<li><p><strong>App Store</strong> : installez des applications serveur en 1 clic</p>
</li>
<li><p><strong>Fichiers</strong> : gérez vos répertoires et fichiers, vous pouvez même créer des fichiers partagés via le réseau (utilisation de samba)</p>
</li>
<li><p><strong>Conteneurs</strong> : gérez les apps tournant sous Docker</p>
</li>
</ul>
<p>Même sans expérience, <strong>tout est lisible, logique et fluide</strong>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754341967101/b330bbcb-5905-4ee9-90a2-10c2fdc2273f.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-applications-disponibles-et-utiles">Applications disponibles (et utiles)</h2>
<p>Voici quelques applications que vous pouvez installer directement depuis l’App Store intégré :</p>
<ul>
<li><p><strong>Nextcloud</strong> : votre cloud personnel</p>
</li>
<li><p><strong>Pi-hole</strong> : bloqueur de pubs et traqueurs réseau</p>
</li>
<li><p><strong>Uptime Kuma</strong> : outil de monitoring pour vos services</p>
</li>
</ul>
<hr />
<h2 id="heading-avantages-et-limites">Avantages et limites</h2>
<h3 id="heading-avantages">Avantages</h3>
<ul>
<li><p>Installation rapide (en 1 ligne)</p>
</li>
<li><p>Interface claire et intuitive</p>
</li>
<li><p>Pas besoin de connaissances avancées</p>
</li>
<li><p>Fonctionne même sur des machines modestes</p>
</li>
</ul>
<h3 id="heading-limites">Limites</h3>
<ul>
<li><p>Moins flexible qu’une gestion Docker manuelle</p>
</li>
<li><p>Pas encore de fonctions de sauvegarde avancées</p>
</li>
<li><p>Nécessite une connexion réseau stable</p>
</li>
</ul>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>CasaOS est une excellente porte d’entrée pour se lancer dans <strong>l’auto-hébergement</strong>, sans se plonger d’emblée dans des lignes de commande complexes.<br />Si vous êtes étudiant, technicien ou simple curieux du monde serveur, c’est un très bon point de départ pour découvrir Docker, Linux et l’administration d’un serveur à domicile.</p>
]]></content:encoded></item><item><title><![CDATA[Tutoriel : Créer et gérer des machines virtuelles avec Cockpit-machines et QEMU]]></title><description><![CDATA[Introduction : pourquoi cette solution ?
La combinaison de KVM et QEMU permet une virtualisation rapide, stable et native sous Linux. En ajoutant l’interface web Cockpit-machines, vous obtenez un tableau de bord accessible depuis un navigateur pour c...]]></description><link>https://blog.aymenhammache.fr/tutoriel-creer-et-gerer-des-machines-virtuelles-avec-cockpit-machines-et-qemu</link><guid isPermaLink="true">https://blog.aymenhammache.fr/tutoriel-creer-et-gerer-des-machines-virtuelles-avec-cockpit-machines-et-qemu</guid><category><![CDATA[Linux]]></category><category><![CDATA[virtual machine]]></category><category><![CDATA[Ubuntu]]></category><category><![CDATA[debian]]></category><category><![CDATA[QEMU]]></category><category><![CDATA[KVM]]></category><category><![CDATA[sysadmin]]></category><category><![CDATA[libvirt]]></category><category><![CDATA[Devops]]></category><category><![CDATA[infrastructure]]></category><category><![CDATA[linux-server]]></category><category><![CDATA[linuxserver]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 27 Aug 2025 06:00:44 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-introduction-pourquoi-cette-solution">Introduction : pourquoi cette solution ?</h2>
<p>La combinaison de KVM et QEMU permet une virtualisation rapide, stable et native sous Linux. En ajoutant l’interface web Cockpit-machines, vous obtenez un tableau de bord accessible depuis un navigateur pour créer, gérer et superviser vos machines virtuelles.</p>
<p><em>Illustration suggérée : Interface "Machines virtuelles" de Cockpit avec plusieurs VM listées</em><br /><em>Vue d’ensemble des machines dans Cockpit-machines</em></p>
<hr />
<h2 id="heading-installation-des-composants-necessaires">Installation des composants nécessaires</h2>
<p>Avant de commencer, assurez-vous que votre système Ubuntu est à jour :</p>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt upgrade -y
</code></pre>
<p>Puis installez les paquets nécessaires à la virtualisation et à l’interface web :</p>
<pre><code class="lang-bash">sudo apt install cockpit cockpit-machines qemu-kvm libvirt-daemon-system virtinst bridge-utils -y
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754292635010/302374a5-af55-4d0f-a555-b0c48b384df6.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-activation-des-services">Activation des services</h2>
<p>Activez les services nécessaires :</p>
<pre><code class="lang-bash">sudo systemctl <span class="hljs-built_in">enable</span> --now cockpit.socket libvirtd
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754292834670/f369f9e5-3edd-4896-89c3-79a9afd73b35.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-acces-a-linterface-web">Accès à l’interface web</h2>
<p>Cockpit est accessible depuis un navigateur à l’adresse suivante :</p>
<pre><code class="lang-bash">https://&lt;adresse_IP_du_serveur&gt;:9090
</code></pre>
<p>Connectez-vous avec votre utilisateur Linux.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754292456274/b1af8556-493b-40e3-8a19-61932cbe5c75.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-preparer-une-image-iso">Préparer une image ISO</h2>
<p>Pour installer une machine virtuelle, placez votre fichier ISO dans le répertoire prévu :</p>
<pre><code class="lang-bash">sudo mv system.iso /var/lib/libvirt/images/
</code></pre>
<p><em>Vous pouvez utiliser</em> <a target="_blank" href="https://filezilla-project.org/"><em>FileZilla</em></a> <em>ou</em> <a target="_blank" href="https://winscp.net/eng/download.php"><em>WinSCP</em></a> <em>afin de faciliter le transferts des fichiers ISO</em></p>
<hr />
<h2 id="heading-creer-une-vm-depuis-cockpit">Créer une VM depuis Cockpit</h2>
<p>Dans l’onglet <em>Machines virtuelles</em> :</p>
<ul>
<li><p>Cliquez sur <em>Créer une VM</em></p>
</li>
<li><p>Choisissez l’image ISO</p>
</li>
<li><p>Définissez la mémoire, le stockage et le nombre de cœurs</p>
</li>
<li><p>Lancez l’installation</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754318518322/7ca6daa3-87a5-4ff3-93ce-9b3673d42b25.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-gerer-les-machines-virtuelles">Gérer les machines virtuelles</h2>
<p>Une fois la VM créée, vous pouvez :</p>
<ul>
<li><p>Lancer, arrêter ou redémarrer la machine</p>
</li>
<li><p>Accéder à la console graphique via VNC</p>
</li>
<li><p>Surveiller l’utilisation des ressources</p>
</li>
<li><p>Modifier la configuration à chaud ou hors ligne</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754318825340/aac57d28-8618-4c14-ba88-655b99ad23b3.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-conseils-et-bonnes-pratiques">Conseils et bonnes pratiques</h2>
<ul>
<li><p>Activez un pont réseau (<em>bridge</em>) si vous souhaitez que la VM soit visible sur le réseau local</p>
</li>
<li><p>Utilisez des périphériques VirtI0 pour de meilleures performances</p>
</li>
<li><p>Remplacez le certificat SSL auto-signé par un certificat valide pour sécuriser l’accès à Cockpit</p>
</li>
</ul>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Cockpit-machines simplifie la virtualisation sous Ubuntu. L’interface permet de créer, superviser et configurer des machines virtuelles depuis un navigateur, sans sacrifier les performances ni la maîtrise technique.</p>
]]></content:encoded></item><item><title><![CDATA[Tutoriel : Monter un Serveur Web sous Ubuntu avec Apache]]></title><description><![CDATA[Prérequis

Ubuntu Server installé (peut importe le support)

Un utilisateur avec les droits sudo

Une connexion au réseau (local ou Internet)



Installation d’Apache2
sudo apt update && sudo apt upgrade -y  
sudo apt install apache2 -y



Vérificati...]]></description><link>https://blog.aymenhammache.fr/tutoriel-monter-un-serveur-web-sous-ubuntu-avec-apache</link><guid isPermaLink="true">https://blog.aymenhammache.fr/tutoriel-monter-un-serveur-web-sous-ubuntu-avec-apache</guid><category><![CDATA[Ubuntu]]></category><category><![CDATA[debian]]></category><category><![CDATA[apache]]></category><category><![CDATA[Linux]]></category><category><![CDATA[server]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[sysadmin]]></category><category><![CDATA[webhosting]]></category><category><![CDATA[command line]]></category><category><![CDATA[ufw]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 20 Aug 2025 06:00:33 GMT</pubDate><content:encoded><![CDATA[<h3 id="heading-prerequis">Prérequis</h3>
<ul>
<li><p>Ubuntu Server installé (peut importe le support)</p>
</li>
<li><p>Un utilisateur avec les droits <code>sudo</code></p>
</li>
<li><p>Une connexion au réseau (local ou Internet)</p>
</li>
</ul>
<hr />
<h3 id="heading-installation-dapache2">Installation d’Apache2</h3>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt upgrade -y  
sudo apt install apache2 -y
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754232108236/850e8af3-327a-4168-b857-52cc137a617c.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-verification-du-service">Vérification du service</h3>
<pre><code class="lang-bash">systemctl status apache2
</code></pre>
<p>Apache doit être actif. L’état affiché doit être : <code>active (running)</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754232348262/d3747ed9-b147-4e2f-8907-d1b3296baf39.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-test-depuis-un-navigateur">Test depuis un navigateur</h3>
<p>Depuis une autre machine sur le même réseau, ouvrez l’adresse suivante :</p>
<pre><code class="lang-bash">http://&lt;adresse_IP_du_serveur&gt;
</code></pre>
<p>Vous devriez voir la page par défaut d’Apache.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754232414517/83db8d9c-00f6-4d68-adab-ea9b60c000be.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-modifier-la-page-daccueil">Modifier la page d’accueil</h3>
<pre><code class="lang-bash">sudo nano /var/www/html/index.html
</code></pre>
<p>Remplacez le contenu par votre propre HTML.<br />Enregistrez avec <code>CTRL + O</code>, puis quittez avec <code>CTRL + X</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754232645606/d51d9609-f992-4937-8ef2-76930fc81f04.png" alt class="image--center mx-auto" /></p>
<hr />
<h3 id="heading-redemarrer-le-service-si-besoin">Redémarrer le service (si besoin)</h3>
<pre><code class="lang-bash">sudo systemctl restart apache2
</code></pre>
<hr />
<h3 id="heading-pour-aller-plus-loin">Pour aller plus loin</h3>
<p>Vous pouvez maintenant :</p>
<ul>
<li><p>Installer PHP et MySQL pour créer un site dynamique</p>
</li>
<li><p>Mettre en place des hôtes virtuels pour héberger plusieurs sites</p>
</li>
<li><p>Ajouter un certificat HTTPS avec Let’s Encrypt</p>
</li>
</ul>
<hr />
<h2 id="heading-ressources-utiles">📎 Ressources utiles</h2>
<ul>
<li><p><a target="_blank" href="https://ubuntu.com/server/docs/web-servers-apache">Ubuntu Server – Apache Docs</a></p>
</li>
<li><p>Apache HTTP Server Project</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Cockpit : administrer un serveur Linux via le web]]></title><description><![CDATA[Qu’est-ce que Cockpit ?
Cockpit est une interface web libre qui permet de gérer un serveur Linux sans forcément passer par le terminal. Elle propose un tableau de bord moderne, accessible depuis un navigateur, pour surveiller et administrer le systèm...]]></description><link>https://blog.aymenhammache.fr/cockpit-administrer-un-serveur-linux-via-le-web</link><guid isPermaLink="true">https://blog.aymenhammache.fr/cockpit-administrer-un-serveur-linux-via-le-web</guid><category><![CDATA[Linux]]></category><category><![CDATA[linux for beginners]]></category><category><![CDATA[network]]></category><category><![CDATA[IT]]></category><category><![CDATA[IT Services]]></category><category><![CDATA[IT Support]]></category><category><![CDATA[French]]></category><category><![CDATA[debian]]></category><category><![CDATA[Fedora]]></category><category><![CDATA[Ubuntu]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 13 Aug 2025 06:00:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1755068052086/8d187628-59c3-46e2-9768-49a3db26c4ed.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-quest-ce-que-cockpit">Qu’est-ce que Cockpit ?</h2>
<p>Cockpit est une interface web libre qui permet de gérer un serveur Linux sans forcément passer par le terminal. Elle propose un tableau de bord moderne, accessible depuis un navigateur, pour surveiller et administrer le système en quelques clics.</p>
<hr />
<h2 id="heading-pourquoi-utiliser-cockpit">Pourquoi utiliser Cockpit ?</h2>
<p>Cockpit facilite le quotidien des admins systèmes. Avec elle, vous pouvez :</p>
<ul>
<li><p>Suivre l’état de votre machine en temps réel (CPU, mémoire, disque, réseau)</p>
</li>
<li><p>Gérer les services, les utilisateurs et consulter les journaux système</p>
</li>
<li><p>Lancer des commandes via une console intégrée</p>
</li>
<li><p>Administrer plusieurs serveurs à distance depuis une seule interface</p>
</li>
</ul>
<p>C’est un bon outil pour ceux qui veulent aller à l’essentiel, sans s’encombrer d’outils complexes ou de scripts à rallonge.</p>
<hr />
<h2 id="heading-installation-rapide-sur-ubuntu">Installation rapide sur Ubuntu</h2>
<p>Voici les étapes pour installer Cockpit sur un serveur Debian à jour.</p>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt upgrade -y

sudo apt install cockpit -y
</code></pre>
<p>Le service est automatiquement activé à la fin de l’installation.</p>
<hr />
<h2 id="heading-lancement-et-acces-a-linterface-web">Lancement et accès à l’interface web</h2>
<p>Rendez-vous à l’adresse suivante :<br /><code>https://&lt;adresse_IP_du_serveur&gt;:9090</code></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754211138149/5e16ede8-04cc-4451-950f-ddd2ddae848b.png" alt class="image--center mx-auto" /></p>
<p>Identifiez-vous avec vos identifiants Linux habituels. Rien à configurer, tout fonctionne dès la première connexion.</p>
<hr />
<h2 id="heading-utilisation-detaillee">Utilisation détaillée</h2>
<h3 id="heading-surveillance-des-ressources">Surveillance des ressources</h3>
<p>Depuis l’onglet <em>Services</em>, vous pouvez démarrer, arrêter ou redémarrer un service, et voir son état actuel.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754211373794/8c694e75-b51f-4fd5-b5e0-0c4bbbd27e4a.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-gestion-des-services-systeme">Gestion des services système</h3>
<p>Depuis l’onglet Services, vous pouvez démarrer, arrêter ou redémarrer un service, et voir son état actuel.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754211544129/499b2204-09cf-4063-95e1-44ae0d4b0dd2.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-comptes">Comptes</h3>
<p>Ajoutez, modifiez ou supprimez des comptes directement via l’interface, sans taper de commande.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754213060627/5842c66c-0ba6-4998-a4f3-e316c6918eee.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-journaux">Journaux</h3>
<p>Cockpit permet de consulter les logs en direct. Il est possible de filtrer les entrées par service ou niveau de gravité.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754212174274/9479ad52-b56c-4810-b1a2-acb3fda071df.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-console-interactive">Console interactive</h3>
<p>Vous avez besoin de lancer une commande ponctuelle ? La console embarquée vous permet de le faire sans quitter l’interface.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1754212262036/4a77f62f-729f-4e8d-ae1c-defbe5791abe.png" alt class="image--center mx-auto" /></p>
<hr />
<h2 id="heading-astuces-et-bonnes-pratiques">Astuces et bonnes pratiques</h2>
<ul>
<li><p><strong>Sécurisez l’accès</strong> : pensez à configurer un pare-feu et à utiliser un certificat SSL valide.</p>
</li>
<li><p><strong>Mettez à jour régulièrement</strong> : un simple <code>sudo apt upgrade</code> permet de rester à jour.</p>
</li>
<li><p><strong>Centralisez la gestion</strong> : vous pouvez connecter plusieurs serveurs à un seul tableau de bord Cockpit.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Cockpit est un outil simple, fiable et bien pensé pour gérer un serveur Linux sans se compliquer la tâche. Il ne remplace pas les solutions d’automatisation ou de supervision à grande échelle, mais il rend les opérations courantes beaucoup plus accessibles. Que vous soyez étudiant, technicien ou admin confirmé, il mérite clairement qu’on s’y intéresse.</p>
<h2 id="heading-ressources-utiles">Ressources utiles</h2>
<ul>
<li><p><a target="_blank" href="https://cockpit-project.org/">Documentation officielle du projet</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/cockpit-project/cockpit">Dépôt GitHub Cockpit</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Créer un fichier swap sous linux]]></title><description><![CDATA[Introduction
Le swap, aussi appelé fichier d’échange, est une zone du disque utilisée lorsque la mémoire RAM est pleine. C’est un mécanisme de gestion mémoire essentiel dans les systèmes Linux.
À quoi sert le swap ?
Quand la RAM ne suffit plus, le sy...]]></description><link>https://blog.aymenhammache.fr/creer-un-fichier-swap-sous-linux</link><guid isPermaLink="true">https://blog.aymenhammache.fr/creer-un-fichier-swap-sous-linux</guid><category><![CDATA[Linux]]></category><category><![CDATA[linux for beginners]]></category><category><![CDATA[linux-basics]]></category><category><![CDATA[IT]]></category><category><![CDATA[IT Support]]></category><category><![CDATA[fr]]></category><category><![CDATA[French]]></category><category><![CDATA[French Language]]></category><dc:creator><![CDATA[Aymen Hammache]]></dc:creator><pubDate>Wed, 30 Jul 2025 11:38:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1753875465386/9fb1ed09-1ef4-47ad-9f0d-c7ebd62ed3a7.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>Le swap, aussi appelé fichier d’échange, est une zone du disque utilisée lorsque la mémoire RAM est pleine. C’est un mécanisme de gestion mémoire essentiel dans les systèmes Linux.</p>
<h3 id="heading-a-quoi-sert-le-swap"><em>À quoi sert le swap ?</em></h3>
<p>Quand la RAM ne suffit plus, le système déplace des données peu actives vers le swap. Cela permet de continuer à faire fonctionner les applications sans plantage. Le swap agit donc comme une extension lente de la mémoire.</p>
<h3 id="heading-deux-formes-de-swap"><em>Deux formes de swap</em></h3>
<ul>
<li><p><strong>Fichier de swap temporaire</strong> : facile à mettre en place, il utilise de l’espace libre sur le disque sans le réserver. Idéal quand l’espace est limité.</p>
</li>
<li><p><strong>Fichier ou partition de swap permanente</strong> : plus rapide car il utilise un espace dédié et contigu sur le disque. Recommandé si tu veux de meilleures performances.</p>
</li>
</ul>
<h3 id="heading-pourquoi-cest-important"><em>Pourquoi c’est important</em></h3>
<ul>
<li><p><strong>Mémoire virtuelle</strong> : Linux combine la RAM et le swap pour former une mémoire virtuelle plus grande.</p>
</li>
<li><p><strong>Stabilité du système</strong> : le swap évite les blocages quand la RAM est saturée.</p>
</li>
<li><p><strong>Support des logiciels gourmands</strong> : certaines applications exigent plus de mémoire que ce que la RAM offre seule.</p>
</li>
</ul>
<h3 id="heading-quelle-taille-choisir"><em>Quelle taille choisir ?</em></h3>
<p>La règle classique : le swap doit faire environ deux fois la taille de la RAM. Ce n’est pas obligatoire, mais c’est une bonne base. Si tu as un SSD rapide et de l’espace, une partition de swap permanente reste le meilleur choix.</p>
<hr />
<h2 id="heading-tutoriel">Tutoriel</h2>
<h3 id="heading-verification-de-lespace-dechange-existant"><em>Vérification de l’espace d’échange existant :</em></h3>
<p>Avant de créer un nouveau swap, vérifiez si vous avez déjà de l’espace d’échange sur votre système. Vous pouvez utiliser la commande free pour cela :</p>
<pre><code class="lang-bash">free -h
</code></pre>
<p>Si vous n’avez pas d’espace d’échange, la sortie affichera :</p>
<pre><code class="lang-bash">Swap: 0B
</code></pre>
<h3 id="heading-creation-du-fichier-dechange"><em>Création du fichier d’échange :</em></h3>
<p>Tout d’abord, créez un fichier avec la taille d’espace d’échange souhaitée (par exemple, 2 Go)</p>
<pre><code class="lang-bash">sudo fallocate -l 2G /swapfile
</code></pre>
<p>Ensuite, marquez ce fichier comme espace d’échange :</p>
<pre><code class="lang-bash">sudo mkswap /swapfile
</code></pre>
<h3 id="heading-activez-le-fichier-dechange"><em>Activez le fichier d’échange :</em></h3>
<pre><code class="lang-bash">sudo swapon /swapfile
</code></pre>
<h3 id="heading-rendre-les-modifications-permanentes"><em>Rendre les modifications permanentes :</em></h3>
<p>Pour que le fichier d’échange soit utilisé à chaque démarrage, ajoutez-le au fichier /etc/fstab. Faites d’abord une copie de sauvegarde du fichier :</p>
<pre><code class="lang-bash">sudo cp /etc/fstab /etc/fstab.back
</code></pre>
<p>Ensuite, ajoutez la ligne suivante à la fin du fichier /etc/fstab :</p>
<pre><code class="lang-bash">/swapfile none swap sw 0 0
</code></pre>
<p>Après avoir effectué ces étapes, redémarrez votre système pour que les modifications prennent effet.</p>
<hr />
<h2 id="heading-conclusion">Conclusion</h2>
<p>Le swap améliore la gestion de la mémoire sous Linux. Sur les machines avec peu de RAM, il réduit les risques de plantage et rend le système plus stable. Savoir le configurer fait partie des bases en administration système.</p>
]]></content:encoded></item></channel></rss>