<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>docker Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/docker/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Sun, 23 Feb 2025 15:52:22 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>docker Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/docker/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pi-Hole migration v5 vers v6</title>
		<link>https://www.monlinux.net/2025/02/pi-hole-migration-v5-vers-v6/</link>
					<comments>https://www.monlinux.net/2025/02/pi-hole-migration-v5-vers-v6/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 23 Feb 2025 15:51:30 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[pihole]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=2014</guid>

					<description><![CDATA[<p>La version 6 de Pi-hole a &#233;t&#233; enti&#232;rement repens&#233;e et contient de nombreux changement radicaux, pouvant casser une configuration 5 existante! Modifications Pi-Hole Pour &#233;viter les probl&#232;me de migration entre la v5 et la v6, voici ce qui a &#233;t&#233;... <a class="more-link" href="https://www.monlinux.net/2025/02/pi-hole-migration-v5-vers-v6/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2025/02/pi-hole-migration-v5-vers-v6/">Pi-Hole migration v5 vers v6</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>La version 6 de Pi-hole a été entièrement repensée et contient de nombreux changement radicaux, pouvant casser une configuration 5 existante!</p>



<h2 class="wp-block-heading">Modifications Pi-Hole</h2>



<p>Pour éviter les problème de migration entre la v5 et la v6, voici ce qui a été utile de faire dans mon cas :</p>



<ol class="wp-block-list">
<li>Suppression du secret pour la page web<br>Dans le service retirer :</li>
</ol>



<pre class="wp-block-code"><code class="">secrets:
      - 'webpass'</code></pre>



<ol start="2" class="wp-block-list">
<li>Retirer les lignes secrets</li>
</ol>



<pre class="wp-block-code"><code class="">secrets:
  webpass:
    file: "./webpass.secret"</code></pre>



<ol start="3" class="wp-block-list">
<li>supprimer les fichiers de base de données de statistique afin d&rsquo;éviter un docker qui ne boot pas correctement et l&rsquo;erreur suivante : <code>ERROR: SQLite3: recovered 3 frames from WAL file /etc/<mark>pihole</mark>/<mark>pihole</mark>-FTL.db-wal (283)</code><br><mark>pihole</mark>-FTL.db<br><mark>pihole</mark>-FTL.db-shm<br><mark>pihole</mark>-FTL.db-wal</li>



<li>Mettre à jour :&nbsp;<code>docker compose pull &amp;&amp; docker compose down -v &amp;&amp; docker compose up -d</code></li>



<li>Définir le mot de passe de l&rsquo;admin web :&nbsp;<code>docker exec -it votre_container&nbsp;<mark>pihole</mark>&nbsp;setpassword</code></li>
</ol>



<p>Exemple d&rsquo;un docker-compose simple :</p>



<pre class="wp-block-code"><code class="">services:
  <mark>pihole</mark>:
    image: <mark>pihole</mark>/<mark>pihole</mark>:latest
    container_name: <mark>pihole</mark>
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      <em>#- "67:67/udp"</em>
      - "2080:80/tcp"
      <em>#- "2443:443/tcp"</em>
    volumes:
      - '/var/lib/docker/data/<mark>pihole</mark>/etc-<mark>pihole</mark>/:/etc/<mark>pihole</mark>/'
      - '/var/lib/docker/data/<mark>pihole</mark>/etc-dnsmasq.d/:/etc/dnsmasq.d/'
    environment:
      TZ: 'Europe/Paris'

    restart: unless-stopped</code></pre>



<p>Pour le reste des <a href="https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/">options docker pour Pi-Hole, référencez vous à mon article précédent</a>, ainsi que la <a href="https://docs.pi-hole.net/docker/" target="_blank" rel="noreferrer noopener">documentation officielle</a> est très bien faite.</p>



<h2 class="wp-block-heading">Liste d&rsquo;url de backlist perso</h2>



<p>Voici ma list d&rsquo;url avec leur description : </p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="717" height="1024" src="https://www.monlinux.net/wp-content/uploads/image-61-717x1024.png" alt="" class="wp-image-2016" srcset="https://www.monlinux.net/wp-content/uploads/image-61-717x1024.png 717w, https://www.monlinux.net/wp-content/uploads/image-61-210x300.png 210w, https://www.monlinux.net/wp-content/uploads/image-61-768x1097.png 768w, https://www.monlinux.net/wp-content/uploads/image-61-600x857.png 600w, https://www.monlinux.net/wp-content/uploads/image-61.png 812w" sizes="(max-width: 717px) 100vw, 717px" /></figure>



<p>Et pour copier ces blacklists : </p>



<pre class="wp-block-code"><code class="">https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts	
https://raw.githubusercontent.com/StevenBlack/hosts/master/extensions/fakenews/hosts
https://v.firebog.net/hosts/static/w3kbl.txt	
https://adaway.org/hosts.txt	
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt	
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt	
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext	
https://v.firebog.net/hosts/Easyprivacy.txt	
https://v.firebog.net/hosts/Prigent-Ads.txt	
https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts	
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt	
https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt
https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts	
https://raw.githubusercontent.com/kevle1/Windows-telemetry-blocklist/master/windowsblock.txt	
https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/domains/native.winoffice.txt	
https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/domains/native.amazon.txt	
https://raw.githubusercontent.com/lassekongo83/Frellwits-filter-lists/master/Frellwits-Swedish-Hosts-File.txt	
https://v.firebog.net/hosts/AdguardDNS.txt	
https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/rpz/tif.mini.txt</code></pre>



<p>Le <a href="https://github.com/mullvad/dns-blocklists?tab=readme-ov-file#lists" target="_blank" rel="noreferrer noopener">projet github de mullvad</a> d&rsquo;où vient quelques listes.</p>
<p>L’article <a href="https://www.monlinux.net/2025/02/pi-hole-migration-v5-vers-v6/">Pi-Hole migration v5 vers v6</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2025/02/pi-hole-migration-v5-vers-v6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fredium &#8211; interface d&#8217;application web auto-hébergée</title>
		<link>https://www.monlinux.net/2023/04/fredium-interface-dapplication-web-auto-hebergee/</link>
					<comments>https://www.monlinux.net/2023/04/fredium-interface-dapplication-web-auto-hebergee/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 02 Apr 2023 18:01:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[traefik]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1813</guid>

					<description><![CDATA[<p>Fredium est une alternative &#224; MeetFranz ou Rambox pour vous permettre d&#8217;avoir une interface claire de vos applications web pr&#233;f&#233;r&#233;es. Elle a l&#8217;avantage d&#8217;&#234;tre open-sources, multiplateforme, vous n&#8217;avez pas de limitation de workspace, pas de limitation du nombre d&#8217;applications, etc.... <a class="more-link" href="https://www.monlinux.net/2023/04/fredium-interface-dapplication-web-auto-hebergee/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/04/fredium-interface-dapplication-web-auto-hebergee/">Fredium &#8211; interface d&rsquo;application web auto-hébergée</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Fredium est une alternative à MeetFranz ou Rambox pour vous permettre d&rsquo;avoir une interface claire de vos applications web préférées. Elle a l&rsquo;avantage d&rsquo;être open-sources, multiplateforme, vous n&rsquo;avez pas de limitation de workspace, pas de limitation du nombre d&rsquo;applications, etc. Elle est compatible avec les « recettes » de MeetFranz également. Vous pouvez très bien installer l&rsquo;application en local sans rien de plus.</p>



<p>Cependant, vous pouvez faire plus avec Fredium, synchroniser ces espaces de travail sur vos différentes machines! Vous avez 2 choix : </p>



<ul class="wp-block-list">
<li>Vous créez facilement un compte en ligne</li>



<li>Vous auto-hébergé la partie serveur de synchronisation Fredium</li>
</ul>



<p>Je vais partir sur l&rsquo;auto-hébergement comme pour le reste, surtout que c&rsquo;est très léger&#8230;</p>



<p>Fredium est aussi bénéfique dans le milieu professionnel : elle permet d&rsquo;avoir plusieurs instances Teams en parallèles, de recevoir des alertes de monitoring avec Telegram, etc.</p>



<h2 class="wp-block-heading">Fredium-server</h2>



<h3 class="wp-block-heading">Simple docker-compose</h3>



<p>Je vous libre le docker-file simple avec l&rsquo;utilisation d&rsquo;un mapping de port si vous n&rsquo;avez pas encore de service <a href="https://www.monlinux.net/tag/traefik/">Traefik</a>. Vous pouvez vous en service avec <a href="https://www.monlinux.net/2023/02/minimal-docker-desktop-stack-de-developpement-sous-windows/">docker Desktop</a> pour le tester.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: '3.7'

services:
  ferdium-server:
    image: ferdium/ferdium-server:latest
    container_name: ferdium-server
    mem_limit: 500M
    environment:
      - NODE_ENV=development
      - IS_CREATION_ENABLED=true
      - IS_DASHBOARD_ENABLED=true
      - IS_REGISTRATION_ENABLED=true
      - CONNECT_WITH_FRANZ=false
      - DATA_DIR=/data
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    env_file:
      - .env
    volumes:
      - /var/lib/docker/data/ferdium/data:/data
      - ferdium-recipes-vol:/app/recipes
    ports:
      - 3333:3333
    restart: unless-stopped

volumes:
  ferdium-recipes-vol:</code></pre>



<h3 class="wp-block-heading">Docker-compose pour Traefik</h3>



<p>Si vous avez déjà un Traefik, voici la configuration. Veuillez à remplacer le nom du réseau et l&rsquo;url.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: '3.7'

networks:
  proxy-net:
    external: true

services:
  ferdium-server:
    image: ferdium/ferdium-server:latest
    container_name: ferdium-server
    mem_limit: 500M
    environment:
      - NODE_ENV=development
      - IS_CREATION_ENABLED=true
      - IS_DASHBOARD_ENABLED=true
      - IS_REGISTRATION_ENABLED=true
      - CONNECT_WITH_FRANZ=false
      - DATA_DIR=/data
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    env_file:
      - .env
    volumes:
      - /var/lib/docker/data/ferdium/data:/data
      - ferdium-recipes-vol:/app/recipes
    networks:
      - proxy-net
    restart: unless-stopped
    labels:
      - traefik.enable=true
      #redirect http de base dans configuration
      #https entry
      - "traefik.http.routers.ferdium.rule=Host(`ferdium.xxx`)"
      - traefik.http.services.ferdium.loadbalancer.server.port=3333
      - traefik.http.routers.ferdium.tls.certresolver=le
      - traefik.http.routers.ferdium.entrypoints=websecure
      - "traefik.http.routers.ferdium.middlewares=secure-headers@file"

volumes:
  ferdium-recipes-vol:</code></pre>



<h3 class="wp-block-heading">Fichier d&rsquo;environement</h3>



<p>Pour les données de configuration de mail, il est préférable de mettre dans  un fichier .env si l&rsquo;utilisation de secrets est possible avec l&rsquo;image. Pour Ferdium en local ce sera suffisant.</p>



<p>Ainsi, remplacez l&rsquo;url par celle définie pour Traefik, remplacez les données d&#8217;email par ceux de votre fournisseur ou relais si vous voulez la récupération de compte en cas de mot de passe perdu.</p>



<pre class="wp-block-code"><code lang="json" class="language-json">APP_URL=https://ferdium.xxx
DB_CONNECTION=sqlite
MAIL_CONNECTION=smtp
SMTP_HOST=mail.infomaniak.com
SMTP_PORT=587
MAIL_SSL=true
MAIL_USERNAME="se&#110;der&#64;x&#120;&#120;&#46;&#99;om"
MAIL_PASSWORD="xxx
MAIL_SENDER="&#115;e&#110;&#100;e&#114;&#64;&#120;xx&#46;&#99;&#111;m"</code></pre>



<p>Plus d&rsquo;info sur les variables d&rsquo;environnement de&nbsp;<a href="https://github.com/ferdium/ferdium-server/tree/main/docker">ferdium-server</a>.</p>



<h2 class="wp-block-heading">Créer votre ou vos comptes avec l&rsquo;application Fredium</h2>



<p>Une fois&nbsp;<a href="https://ferdium.org/download">l&rsquo;application Fredium téléchargée</a>, vous devez changer de serveurs pour ne pas utiliser les officiels et être en auto-hébergement pur pour organiser vos app!<br>Cliquez sur « change here »</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://www.monlinux.net/wp-content/uploads/fredium-1.png" alt="" class="wp-image-1817" width="452" height="390" srcset="https://www.monlinux.net/wp-content/uploads/fredium-1.png 603w, https://www.monlinux.net/wp-content/uploads/fredium-1-300x259.png 300w, https://www.monlinux.net/wp-content/uploads/fredium-1-600x517.png 600w" sizes="(max-width: 452px) 100vw, 452px" /></figure>



<p>Sélectionnez un server de type custom, entrez le dns utilisé sur votre Traefik pour Ferdium.</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://www.monlinux.net/wp-content/uploads/fredium-2.png" alt="" class="wp-image-1818" width="426" height="438" srcset="https://www.monlinux.net/wp-content/uploads/fredium-2.png 568w, https://www.monlinux.net/wp-content/uploads/fredium-2-292x300.png 292w" sizes="(max-width: 426px) 100vw, 426px" /></figure>



<p>Une fois branché sur votre serveur, vous pouvez créer un compte :</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/fredium-3.png" alt="" class="wp-image-1819" width="452" height="390" srcset="https://www.monlinux.net/wp-content/uploads/fredium-3.png 603w, https://www.monlinux.net/wp-content/uploads/fredium-3-300x259.png 300w, https://www.monlinux.net/wp-content/uploads/fredium-3-600x517.png 600w" sizes="auto, (max-width: 452px) 100vw, 452px" /></figure>



<p>Pour terminer, vous rentrez vos données, l&#8217;email est en cas de récupération de mot de passe perdu :</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/fredium-4.png" alt="" class="wp-image-1820" width="386" height="587" srcset="https://www.monlinux.net/wp-content/uploads/fredium-4.png 515w, https://www.monlinux.net/wp-content/uploads/fredium-4-198x300.png 198w" sizes="auto, (max-width: 386px) 100vw, 386px" /></figure>



<h2 class="wp-block-heading">Interdire l&rsquo;enregistrement d&rsquo;un nouvel utilisateur</h2>



<p>Si vous utilisez Fredium personnellement, vous n&rsquo;avez pas besoin de laisser la possibilité de s&rsquo;enregistrer. Il n&rsquo;y a pas de possibilité d&rsquo;avoir une « acceptation » des enregistrement, seul point que l&rsquo;on pourrait reprocher à Fredium-server.</p>



<p>Il faut changer la variable d&rsquo;environement :</p>



<pre class="wp-block-code"><code lang="json" class="language-json">IS_REGISTRATION_ENABLED=true</code></pre>



<p>Par :</p>



<pre class="wp-block-code"><code lang="json" class="language-json">IS_REGISTRATION_ENABLED=false</code></pre>



<p>Et faire un <code>docker-compose up -d</code></p>
<p>L’article <a href="https://www.monlinux.net/2023/04/fredium-interface-dapplication-web-auto-hebergee/">Fredium &#8211; interface d&rsquo;application web auto-hébergée</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/04/fredium-interface-dapplication-web-auto-hebergee/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Notification Telegram &#8211; Pushbullet &#8211; mail d&#8217;une image Docker mise à jour</title>
		<link>https://www.monlinux.net/2023/02/notification-telegram-pushbullet-mail-dune-image-docker-mise-a-jour/</link>
					<comments>https://www.monlinux.net/2023/02/notification-telegram-pushbullet-mail-dune-image-docker-mise-a-jour/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 26 Feb 2023 20:23:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[telegram]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1774</guid>

					<description><![CDATA[<p>J&#8217;ai longtemps utilis&#233; un service en ligne pour la notification mail de mises &#224; jour d&#8217;image Docker. Mais je n&#8217;ai plus de notifications depuis un moment. Je suis parti en qu&#234;te d&#8217;une solution locale pour les notifications d&#8217;une nouvelle image... <a class="more-link" href="https://www.monlinux.net/2023/02/notification-telegram-pushbullet-mail-dune-image-docker-mise-a-jour/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/02/notification-telegram-pushbullet-mail-dune-image-docker-mise-a-jour/">Notification Telegram &#8211; Pushbullet &#8211; mail d&rsquo;une image Docker mise à jour</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>J&rsquo;ai longtemps utilisé <a href="https://docker-notify.com/" target="_blank" rel="noreferrer noopener nofollow">un service en ligne</a> pour la notification mail de mises à jour d&rsquo;image Docker. Mais je n&rsquo;ai plus de notifications depuis un moment. Je suis parti en quête d&rsquo;une solution locale pour les notifications d&rsquo;une nouvelle image Docker disponible. Je cherchais une fonction mail ainsi qu&rsquo;un webhook utilisable&#8230; Ce que propose <a href="https://github.com/Schlabbi/docker-notify" target="_blank" rel="noreferrer noopener">docker-notify de schlabbi</a> et qui me permet des notifications vers Telegram! Ce qui me convient parfaitement! La solution est simple à maintenir également.</p>



<p>Une autre solution est <a href="https://github.com/containrrr/watchtower" target="_blank" rel="noreferrer noopener nofollow">Watchtower</a> qui peut fonctionner en notification ou mettre à jour les containers directement. Mais il nécessite une interaction avec les containers, ce que je veux éviter.</p>



<p>Je suis donc parti sur docker-notify. L&rsquo;image docker sur le docker hub n&rsquo;est plus maintenue. Je suis donc parti du github et un build local. Le github n&rsquo;est plus trop maintenu actuellement, mais l&rsquo;on voit des utilisateurs actifs autour et un CI/CD est en place pour mettre à jour les dépendances, ce qui permet d&rsquo;être à jour sans avoir de nouvelles features. D&rsquo;autres forks sont actif aussi, surtout celui de TonyRL qui passe par une refonte du dockerFile, utilisation de yarn au lieu de npm, une feature pour utiliser ses identifiants dockerhub, mais la compatibilité avec le fichier de configuration de schlabbi semble cassé, le dernier commit de TonyRL compatible étant le 228513a8.</p>



<p>Création des dossiers : </p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">mkdir -p /etc/docker/docker-notify/conf &amp;&amp; cd /etc/docker/docker-notify</code></pre>



<p>Création du fichier d&rsquo;environnement vim <code>.env</code> :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">CONFIG_DIR=/etc/docker/docker-notify/conf</code></pre>



<p>Cloner la dernière version du projet git de Schlabbi :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">git clone https://github.com/Schlabbi/docker-notify</code></pre>



<h2 class="wp-block-heading">Docker-compose de Docker-notify</h2>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: '3.7'
services:
  docker-notify:
    build: ./docker-notify
    mem_limit: 300m
    container_name: docker-notify
    restart: unless-stopped
    volumes:
      - $CONFIG_DIR/config.json:/usr/src/app/config.json:ro
      - cache:/usr/src/app/cache

volumes:
  cache:</code></pre>



<p>Explication du docker-compose : </p>



<ul class="wp-block-list">
<li>Je met une limite mémoire sur le container de 300 Mo</li>



<li>Je nomme le container car je suis en docker « classique » pas de swarm</li>



<li>Le container démarre automatiquement au démarrage sauf si je l&rsquo;éteins manuellement</li>



<li>Le fichier de configuration est monté en bind RO car il n&rsquo;a pas besoin d&rsquo;être édité</li>



<li>Le container à besoin d&rsquo;avoir un cache. Celui-ci pouvant être perdu, j&rsquo;utilise un volume temporaire déclaré</li>
</ul>



<h2 class="wp-block-heading">Le fichier de configuration json avec notification Telegram</h2>



<p>Vous aurez besoin de votre clé API Telegram ainsi que de générer un chatID. Je parle de ces étapes <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">dans l&rsquo;article sur les notifications Telegram pour les serveurs linux</a>. Suivez donc ces étages pour avoir les identifiants Telegram nécessaire pour faire les notifications en cas de mise à jour d&rsquo;une image docker particulièrement critique. Pour toutes, ce serait de trop.</p>



<p>Voici le fichier <code>config.json</code> d&rsquo;exemple à mettre dans <code>/etc/docker/docker-notify/conf</code> :</p>



<pre class="wp-block-code"><code lang="json" class="language-json">{
  "checkInterval": 1440,
  "notifyServices":[
      {
          "image": "nextcloud:24",
          "actions": [
              {
                  "type": "mailHook",
                  "instance": "generalMail",
                  "recipient": "&#98;e&#108;g&#111;tu&#120;&#64;m&#111;n&#100;omain&#46;net"
              },
              {
                  "type": "webHook",
                  "instance": "telegram"
              }
          ]
      },
      {
          "image": "nextcloud:latest",
          "actions": [
              {
                  "type": "mailHook",
                  "instance": "generalMail",
                  "recipient": "&#98;&#101;&#108;&#103;&#111;&#116;ux&#64;&#109;o&#110;&#100;o&#109;&#97;&#105;n&#46;&#110;&#101;&#116;"
              },
			        {
                  "type": "webHook",
                  "instance": "pushbullet"
              }
          ]
      },
      {
          "image": "redis:5-alpine",
          "actions": [
              {
                  "type": "mailHook",
                  "instance": "generalMail",
                  "recipient": "&#98;e&#108;&#103;otux&#64;&#109;&#111;ndm&#97;&#105;&#110;&#46;&#110;et"
              }
          ]
      }
  ],
  "smtpServer": {
      "generalMail": {
          "host": "mail.infomaniak.com",
          "port": 465,
          "secure": true,
          "username": "votreuserouvotremail",
          "password": "votrepass",
          "sendername": "Docker-Notify",
          "senderadress": "votremail"
      }
  },
  "webHooks":{
      "telegram": {
          "reqUrl": "https://api.telegram.org/botVOTRE_CLE_API/sendMessage",
          "httpMethod": "GET",
          "httpBody": {
              "text": "$msg",
              "chat_id": "VOTRE_CHAT_ID"
          }
      },
      "pushbullet": {
        "reqUrl": "https://api.pushbullet.com/v2/pushes",
        "httpMethod": "POST",
        "httpHeaders": {
            "Access-Token": "VOTRE_TOKEN",
            "Content-Type": "application/json"
        },
        "httpBody": {
            "type": "note",
            "title": "docker-notify",
            "body": "$msg"
        }
  }
}</code></pre>



<p>Explications : </p>



<ul class="wp-block-list">
<li>checkInterval : le temps de vérification exprimé en minutes, ici toutes les 24h</li>



<li>notifyServices : la liste de nos images à vérifier ainsi que l&rsquo;action ou les actions à utiliser. Dans mon cas j&rsquo;ai les mail et le webHooks telegram</li>



<li>smtpServer : vous renseignez le serveur mail à utiliser, attention qu&rsquo;il faut du TLS explicite (port 465) et pas du startTLS (pour 587). Ou alors en claire vers votre relais interne (dans ce cas mettre <code>"secure":  false</code>)</li>



<li>webHooks: permet de faire appel à un mécanisme CI/CD pour recompiler automatiquement votre image perso avec la mise à jour de l&rsquo;image parent par exemple. Dans mon cas, c&rsquo;est de cette manière que Telegram est utilisé pour m&rsquo;avertir de la mise à jour d&rsquo;une image importante</li>
</ul>



<p></p>
<p>L’article <a href="https://www.monlinux.net/2023/02/notification-telegram-pushbullet-mail-dune-image-docker-mise-a-jour/">Notification Telegram &#8211; Pushbullet &#8211; mail d&rsquo;une image Docker mise à jour</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/02/notification-telegram-pushbullet-mail-dune-image-docker-mise-a-jour/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Minimal Docker Desktop stack de développement sous windows</title>
		<link>https://www.monlinux.net/2023/02/minimal-docker-desktop-stack-de-developpement-sous-windows/</link>
					<comments>https://www.monlinux.net/2023/02/minimal-docker-desktop-stack-de-developpement-sous-windows/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Wed, 15 Feb 2023 21:58:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[traefik]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1739</guid>

					<description><![CDATA[<p>Configuration rapide de Docker Desktop sous Windows 10 avec une stack Portainer traefik et mailhog comme setup de développement web minimal</p>
<p>L’article <a href="https://www.monlinux.net/2023/02/minimal-docker-desktop-stack-de-developpement-sous-windows/">Minimal Docker Desktop stack de développement sous windows</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Installation de docker avec un reverse-proxy Traefik sans aucune ligne de commande. Configuration rapide de Docker Desktop sous Windows 10 avec une stack Portainer, Traefik et Mailhog. C&rsquo;est un setup de développement web minimal.</p>



<p>Installer docker Desktop : <a href="https://docs.docker.com/desktop/install/windows-install/">Documentation</a> et <a href="https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe">téléchargement direct</a>.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/image-41.png" alt="Installation Docker Desktop sous Windows" class="wp-image-1752" width="530" height="367" srcset="https://www.monlinux.net/wp-content/uploads/image-41.png 706w, https://www.monlinux.net/wp-content/uploads/image-41-300x208.png 300w, https://www.monlinux.net/wp-content/uploads/image-41-600x416.png 600w" sizes="auto, (max-width: 530px) 100vw, 530px" /></figure>



<p>Commencer par installer le plugin Portainer, cela vous permettra de travailler proprement avec des docker-compose plutôt que de simple container. Il est évidemment possible de faire en ligne de commande, mais l&rsquo;interface est plus convivial pour du développement.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="254" src="https://www.monlinux.net/wp-content/uploads/image-29-1024x254.png" alt="Ajout de l'extension portainer sur Docker Desktop" class="wp-image-1740" srcset="https://www.monlinux.net/wp-content/uploads/image-29-1024x254.png 1024w, https://www.monlinux.net/wp-content/uploads/image-29-300x75.png 300w, https://www.monlinux.net/wp-content/uploads/image-29-768x191.png 768w, https://www.monlinux.net/wp-content/uploads/image-29-1536x381.png 1536w, https://www.monlinux.net/wp-content/uploads/image-29-600x149.png 600w, https://www.monlinux.net/wp-content/uploads/image-29-945x235.png 945w, https://www.monlinux.net/wp-content/uploads/image-29.png 1675w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Ouvrir Portainer :</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/image-30.png" alt="ouvrir portainer" class="wp-image-1741" width="221" height="76"/></figure>



<p>En configuration pour développement local utiliser <code>Get Started</code> :</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/image-31.png" alt="démarrage rapide de portainer sous Docker Desktop" class="wp-image-1742" width="460" height="488" srcset="https://www.monlinux.net/wp-content/uploads/image-31.png 613w, https://www.monlinux.net/wp-content/uploads/image-31-282x300.png 282w, https://www.monlinux.net/wp-content/uploads/image-31-600x637.png 600w" sizes="auto, (max-width: 460px) 100vw, 460px" /></figure>



<p>Nous pouvons expendre le menu pour se repérer plus facilement la première fois :</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="614" src="https://www.monlinux.net/wp-content/uploads/image-32-1024x614.png" alt="sélection de l’environnent local sous Portainer plus besoin des menu Docker Desktop" class="wp-image-1743" srcset="https://www.monlinux.net/wp-content/uploads/image-32-1024x614.png 1024w, https://www.monlinux.net/wp-content/uploads/image-32-300x180.png 300w, https://www.monlinux.net/wp-content/uploads/image-32-768x461.png 768w, https://www.monlinux.net/wp-content/uploads/image-32-600x360.png 600w, https://www.monlinux.net/wp-content/uploads/image-32-945x567.png 945w, https://www.monlinux.net/wp-content/uploads/image-32.png 1087w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>On sélectionne notre environnent <code>local</code> pour créer un réseau afin qu&rsquo;il soit permanent pour être utilisé entre notre reverse proxy Traefik et nos apps. Je le nomme <code>proxy-net</code> :</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="310" src="https://www.monlinux.net/wp-content/uploads/image-33-1024x310.png" alt="création d'un réseau définitif sous Docker Desktop avec Portainer" class="wp-image-1744" srcset="https://www.monlinux.net/wp-content/uploads/image-33-1024x310.png 1024w, https://www.monlinux.net/wp-content/uploads/image-33-300x91.png 300w, https://www.monlinux.net/wp-content/uploads/image-33-768x232.png 768w, https://www.monlinux.net/wp-content/uploads/image-33-600x181.png 600w, https://www.monlinux.net/wp-content/uploads/image-33-945x286.png 945w, https://www.monlinux.net/wp-content/uploads/image-33.png 1406w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/image-34.png" alt="donner un nom et un driver au réseau à créer" class="wp-image-1745" width="307" height="168" srcset="https://www.monlinux.net/wp-content/uploads/image-34.png 409w, https://www.monlinux.net/wp-content/uploads/image-34-300x164.png 300w" sizes="auto, (max-width: 307px) 100vw, 307px" /></figure>



<p>Notre réseau est présent avec un range IP attribué : 172.24.0.0/16. Si cela pose problème avec un réseau déjà existant dans l&rsquo;entreprise, vous pouvez en attribuer un autre</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="355" src="https://www.monlinux.net/wp-content/uploads/image-35-1024x355.png" alt="liste des réseau Docker sous Portainer" class="wp-image-1746" srcset="https://www.monlinux.net/wp-content/uploads/image-35-1024x355.png 1024w, https://www.monlinux.net/wp-content/uploads/image-35-300x104.png 300w, https://www.monlinux.net/wp-content/uploads/image-35-768x266.png 768w, https://www.monlinux.net/wp-content/uploads/image-35-600x208.png 600w, https://www.monlinux.net/wp-content/uploads/image-35-945x328.png 945w, https://www.monlinux.net/wp-content/uploads/image-35.png 1271w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>On crée notre stack Traefik et un stack Mailhog comme exemple d&rsquo;application web derrière Traefik. Cela peut être via un copier coller, mais aussi via un repository. Pratique pour mettre le docker-compose.yml dans notre projet directement</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="226" src="https://www.monlinux.net/wp-content/uploads/image-36-1024x226.png" alt="Création d'une stack sous Portainer" class="wp-image-1747" srcset="https://www.monlinux.net/wp-content/uploads/image-36-1024x226.png 1024w, https://www.monlinux.net/wp-content/uploads/image-36-300x66.png 300w, https://www.monlinux.net/wp-content/uploads/image-36-768x170.png 768w, https://www.monlinux.net/wp-content/uploads/image-36-600x133.png 600w, https://www.monlinux.net/wp-content/uploads/image-36-945x209.png 945w, https://www.monlinux.net/wp-content/uploads/image-36.png 1353w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="555" src="https://www.monlinux.net/wp-content/uploads/image-37-1024x555.png" alt="Création de la stack / docker-compose Traefik sous Portainer" class="wp-image-1748" srcset="https://www.monlinux.net/wp-content/uploads/image-37-1024x555.png 1024w, https://www.monlinux.net/wp-content/uploads/image-37-300x163.png 300w, https://www.monlinux.net/wp-content/uploads/image-37-768x417.png 768w, https://www.monlinux.net/wp-content/uploads/image-37-600x325.png 600w, https://www.monlinux.net/wp-content/uploads/image-37-945x513.png 945w, https://www.monlinux.net/wp-content/uploads/image-37.png 1110w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Stack de traefik sous Docker Desktop</h2>



<p>Voici la stack ou docker-compose pour Traefik :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: "3.7"

services:
  proxy:
    image: "traefik:v2.8"
    container_name: proxy
    command:
      - --entrypoints.web.address=:80
      - --providers.docker
      - --api.insecure
    ports:
      - "80:80"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      - proxy-net

    labels:
      - traefik.enable=true
      - traefik.http.services.mgt.loadbalancer.server.port=8080
      - traefik.http.routers.mgt.entrypoints=web
      - "traefik.http.routers.mgt.rule=Host(`mgt.localhost`)"

networks:
  proxy-net:
    external: true</code></pre>



<p>On test via l&rsquo;url <a href="http://mgt.localhost" target="_blank" rel="noreferrer noopener nofollow">http://mgt.localhost</a> si on a bien l&rsquo;interface traefik :</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="297" src="https://www.monlinux.net/wp-content/uploads/image-40-1024x297.png" alt="Interface de visualisation Traefik" class="wp-image-1751" srcset="https://www.monlinux.net/wp-content/uploads/image-40-1024x297.png 1024w, https://www.monlinux.net/wp-content/uploads/image-40-300x87.png 300w, https://www.monlinux.net/wp-content/uploads/image-40-768x223.png 768w, https://www.monlinux.net/wp-content/uploads/image-40-600x174.png 600w, https://www.monlinux.net/wp-content/uploads/image-40-945x274.png 945w, https://www.monlinux.net/wp-content/uploads/image-40.png 1460w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Pas besoin d&rsquo;ajouter quoi que ce soit dans son fichier hosts pour un sous domaine de localhost.</p>



<p>On y voit déjà notre première application qui passe par le reverse proxy qui n&rsquo;est autre que l&rsquo;interface de management de traefik. Dans un environnent accessible depuis l&rsquo;extérieur nous devrions sécuriser l&rsquo;accès via un login/password. Mais ici aucune nécessité en localhost sur notre pc si notre fw est bien configuré. </p>



<p>Pour le sécuriser, générer un mot de passe pour Apache via un container :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker run --rm --name apache httpd:alpine htpasswd -nb user password</code></pre>



<p>Les labels :</p>



<pre class="wp-block-code"><code class="">- "traefik.http.middlewares.auth-mgt.basicauth.users=MONUSER$xxxx$$STiVjGO4$ATj6up2mVZR7Jqk4YzD8h."
- traefik.http.routers.mgt.middlewares=auth-mgt</code></pre>



<h2 class="wp-block-heading">Stack de Mailhog sous Docker Desktop</h2>



<p>Les points importants sont de déclarer <strong>ET</strong> d&rsquo;utiliser le réseau <code>proxy-net</code> commun avec le reverse proxy pour que celui-ci puisse communiquer avec notre application en backend.<br>Quand un container de notre application expose plusieurs ports, bien définir à Traefik lequel utiliser via <code>loadbalancer.server.port</code> car il ne sera pas choisir à notre place… S&rsquo;il n&rsquo;y a qu&rsquo;un seul port d&rsquo;exposer, le label est facultatif.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: "3.7"
networks:
  proxy-net:
    external: true

services:
  mailhog:
    image: mailhog/mailhog
    container_name: mailhog
    ports:
      - 25:25
    networks:
      - proxy-net
    user: root
    labels:
      - traefik.enable=true
      - traefik.http.services.mailhog.loadbalancer.server.port=8025
      - traefik.http.routers.mailhog.entrypoints=web
      - "traefik.http.routers.mailhog.rule=Host(`mailhog.localhost`)"</code></pre>



<p>Une fois le stack lancé, on le voit sur la page de management de traefik et il est accessible via l&rsquo;url <a href="http://mailhog.localhost" target="_blank" rel="noreferrer noopener">http://mailhog.loca</a><a href="http://mailhog.localhost" target="_blank" rel="noreferrer noopener nofollow">lhost</a> :</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="240" src="https://www.monlinux.net/wp-content/uploads/image-38-1024x240.png" alt="interface Traefik avec l'ajout du service de l'application mailhog" class="wp-image-1749" srcset="https://www.monlinux.net/wp-content/uploads/image-38-1024x240.png 1024w, https://www.monlinux.net/wp-content/uploads/image-38-300x70.png 300w, https://www.monlinux.net/wp-content/uploads/image-38-768x180.png 768w, https://www.monlinux.net/wp-content/uploads/image-38-600x140.png 600w, https://www.monlinux.net/wp-content/uploads/image-38-945x221.png 945w, https://www.monlinux.net/wp-content/uploads/image-38.png 1452w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://www.monlinux.net/wp-content/uploads/image-39.png" alt="interface mailhog accessible depuis une url simple" class="wp-image-1750" width="409" height="343" srcset="https://www.monlinux.net/wp-content/uploads/image-39.png 545w, https://www.monlinux.net/wp-content/uploads/image-39-300x252.png 300w" sizes="auto, (max-width: 409px) 100vw, 409px" /></figure>



<p></p>
<p>L’article <a href="https://www.monlinux.net/2023/02/minimal-docker-desktop-stack-de-developpement-sous-windows/">Minimal Docker Desktop stack de développement sous windows</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/02/minimal-docker-desktop-stack-de-developpement-sous-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Uptime-kuma &#8211; monitorer clairement ses services</title>
		<link>https://www.monlinux.net/2022/04/uptime-kuma-monitorer-clairement-ses-services/</link>
					<comments>https://www.monlinux.net/2022/04/uptime-kuma-monitorer-clairement-ses-services/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sat, 16 Apr 2022 20:47:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[uptime-kuma]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1410</guid>

					<description><![CDATA[<p>Uptime-kuma permet de monitorer facilement de petite installation. Mais il est aussi très intéressant pour les grandes installations grâce à sa vue "status" qui peut afficher une vue plus claire et lisible pour le business.</p>
<p>L’article <a href="https://www.monlinux.net/2022/04/uptime-kuma-monitorer-clairement-ses-services/">Uptime-kuma &#8211; monitorer clairement ses services</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Il existe déjà des tonnes de solutions pour monitorer de manière précise et exhaustif des infrastructures lourdes. Ici Uptime-kuma permet de monitorer facilement de petite installation. Mais il est aussi très intéressant pour les grandes installations grâce à sa vue « status » qui peut afficher une vue plus claire et lisible pour le business. Il est possible d&rsquo;indiquer des incidents ou planification de maintenance sur cette page de statut, afin de tenir au courant les personnes concernées de manière transparente. Un peu  comme le fait <a href="https://www.status-ovhcloud.com/" target="_blank" rel="noreferrer noopener nofollow">OVH sur sa page de statuts</a>.</p>



<p>Cela vous permet d&rsquo;avoir une alternative à <a href="https://uptimerobot.com/" target="_blank" rel="noreferrer noopener nofollow">uptimerobot</a> mais sous votre contrôle! Cela permet d&rsquo;avoir des tests depuis un serveur interne, mais vous pouvez très bien avoir un vps 1vcpu/1Go avec uniquement votre traefik et votre uptime-kuma dans votre docker!</p>



<h2 class="wp-block-heading">Docker Uptime-kuma</h2>



<p>Le fichier de docker-compose.yml d&rsquo;<a href="https://github.com/louislam/uptime-kuma" target="_blank" rel="noreferrer noopener">Uptime-kuma</a> est très lisible. Je vous joins le lien direct du <a href="https://hub.docker.com/r/louislam/uptime-kuma" target="_blank" rel="noreferrer noopener">docker-hub.</a> Ce docker-compose est à utiliser avec votre proxy Traefik, mais vous pouvez très bien utiliser simplement un port mapping vers le port 80.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: "3.7"

services:
  uptime:
    image: "louislam/uptime-kuma:latest"
    container_name: uptime
    volumes:
      - $PWD/data:/app/data
    networks:
      - proxy-net
    restart: unless-stopped
    labels:
      - traefik.http.routers.uptime.rule=Host(`uptime.domain.tld`)
      - traefik.http.routers.uptime.tls.certresolver=le
      - traefik.http.routers.uptime.entrypoints=websecure

networks:
  proxy-net:
    external: true</code></pre>



<h2 class="wp-block-heading">Configuration des notifications uptime-Kuma</h2>



<p>Une vaste quantité de notification sont disponibles. Dans mon cas j&rsquo;utilise la notification mail qui est activée par défaut pour tous les services à monitorer. <br><img loading="lazy" decoding="async" width="300" height="499" class="wp-image-1415" style="width: 300px;" src="https://www.monlinux.net/wp-content/uploads/notification-uptime-kuma.png" alt="notification uptime-kuma" srcset="https://www.monlinux.net/wp-content/uploads/notification-uptime-kuma.png 480w, https://www.monlinux.net/wp-content/uploads/notification-uptime-kuma-180x300.png 180w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>



<h2 class="wp-block-heading">Ajouter un nouveau Monitor</h2>



<p>Comme pour le mal, j&rsquo;ai configuré un plugin Pushbullet / Telegram que je mets manuellement sur les services plus critiques. Simplement en activant dans les notifications du service à sa création :<br><img loading="lazy" decoding="async" width="600" height="450" class="wp-image-1416" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/creation-un-service-a-monitorer-uptime-kuma.png" alt="creation un service à monitorer uptime kuma" srcset="https://www.monlinux.net/wp-content/uploads/creation-un-service-a-monitorer-uptime-kuma.png 979w, https://www.monlinux.net/wp-content/uploads/creation-un-service-a-monitorer-uptime-kuma-300x225.png 300w, https://www.monlinux.net/wp-content/uploads/creation-un-service-a-monitorer-uptime-kuma-768x576.png 768w, https://www.monlinux.net/wp-content/uploads/creation-un-service-a-monitorer-uptime-kuma-600x450.png 600w, https://www.monlinux.net/wp-content/uploads/creation-un-service-a-monitorer-uptime-kuma-945x709.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<p>Ici c&rsquo;est un service de type HTTPS mais qui vérifie également le contenu du site et si un mot clé est bien présent. C&rsquo;est pratique! Se baser sur un code retour 200 uniquement n&rsquo;est pas suffisant.</p>



<p>On peut mettre un Heartbeat toutes les 5min, définir un notre d&rsquo;essai avant d&rsquo;être en erreur et aussi spécifier un interval plus rapproché <code>Heartbeat Retry Interval</code> en cas d’essai raté.</p>



<p>Une fonction assez simpa est l&rsquo;utilisation de tag comme vous pouvez le voir sur la liste de gauche : <br><img loading="lazy" decoding="async" width="600" height="334" class="wp-image-1411" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma.png" alt="interface uptime-kuma" srcset="https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma.png 1885w, https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma-300x167.png 300w, https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma-1024x570.png 1024w, https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma-768x427.png 768w, https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma-1536x855.png 1536w, https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma-600x334.png 600w, https://www.monlinux.net/wp-content/uploads/interface-uptime-kuma-945x526.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<h2 class="wp-block-heading">Page de status</h2>



<p>Une fois nos service ajoutés, on peut les organiser par groupes sur une page de status accessible publiquement, avec l&rsquo;état de nos services : <br><img loading="lazy" decoding="async" width="600" height="467" class="wp-image-1412" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma.png" alt="interface status uptime-kuma" srcset="https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma.png 1349w, https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma-300x234.png 300w, https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma-1024x798.png 1024w, https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma-768x598.png 768w, https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma-600x467.png 600w, https://www.monlinux.net/wp-content/uploads/interface-status-uptime-kuma-945x736.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<p>Cela permet également d&rsquo;avoir des notes de maintenance ou indiquer un incident : <br><img loading="lazy" decoding="async" width="300" height="132" class="wp-image-1414" style="width: 300px;" src="https://www.monlinux.net/wp-content/uploads/cretation-incident-uptime-kuma.png" alt="création incident uptime-kuma" srcset="https://www.monlinux.net/wp-content/uploads/cretation-incident-uptime-kuma.png 855w, https://www.monlinux.net/wp-content/uploads/cretation-incident-uptime-kuma-300x132.png 300w, https://www.monlinux.net/wp-content/uploads/cretation-incident-uptime-kuma-768x338.png 768w, https://www.monlinux.net/wp-content/uploads/cretation-incident-uptime-kuma-600x264.png 600w" sizes="auto, (max-width: 300px) 100vw, 300px" /> <img loading="lazy" decoding="async" width="300" height="162" class="wp-image-1413" style="width: 300px;" src="https://www.monlinux.net/wp-content/uploads/maintenance-planifiee-uptime-kuma.png" alt="maintenance planifiée uptime-kuma" srcset="https://www.monlinux.net/wp-content/uploads/maintenance-planifiee-uptime-kuma.png 573w, https://www.monlinux.net/wp-content/uploads/maintenance-planifiee-uptime-kuma-300x162.png 300w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>



<p>Simple à configurer et tellement d&rsquo;avantages!</p>
<p>L’article <a href="https://www.monlinux.net/2022/04/uptime-kuma-monitorer-clairement-ses-services/">Uptime-kuma &#8211; monitorer clairement ses services</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/04/uptime-kuma-monitorer-clairement-ses-services/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sécuriser ses DNS avec Pihole et DoT (dns-over-tls)</title>
		<link>https://www.monlinux.net/2022/04/securiser-ses-dns-avec-pihole-et-dot-dns-over-tls/</link>
					<comments>https://www.monlinux.net/2022/04/securiser-ses-dns-avec-pihole-et-dot-dns-over-tls/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sat, 09 Apr 2022 19:40:00 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[pihole]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1385</guid>

					<description><![CDATA[<p>Avec le point pr&#233;c&#233;dent sur l&#8217;installation de Pihole, on interroge maintenant des serveurs DNS respectueux de notre vie priv&#233;e tels que cloudflare ou quad9. Super! Mais il faut savoir que ces requ&#234;tes passent en claires et sont visibles par notre... <a class="more-link" href="https://www.monlinux.net/2022/04/securiser-ses-dns-avec-pihole-et-dot-dns-over-tls/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2022/04/securiser-ses-dns-avec-pihole-et-dot-dns-over-tls/">Sécuriser ses DNS avec Pihole et DoT (dns-over-tls)</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Avec le point précédent sur <a href="https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/">l&rsquo;installation de Pihole</a>, on interroge maintenant des serveurs DNS respectueux de notre vie privée tels que cloudflare ou quad9. Super! Mais il faut savoir que ces requêtes passent en claires et sont visibles par notre FAI ou tout autre intermédiaire&#8230;</p>



<p>Le DNSsec n&rsquo;étant pas suffisamment répandu pour ne pas subir une attaque MITM, le mieux actuellement est de sécurisé son trafic jusqu&rsquo;à un tiers de confiance.</p>



<p>Pour sécuriser encore plus la résolution de nos DNS on peut passer par DoH (dns over https) ou DoT (DNS over TLS). C&rsquo;est le deuxième qui sera retenu, car il est inutile d&rsquo;ajouter des couches HTTP. Le DoT est plus natif, un peu comme imaps pour les mails, https pour le web, etc</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="366" src="https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-1024x366.png" alt="schema dns over tls cloudflare quad9" class="wp-image-1403" srcset="https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-1024x366.png 1024w, https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-300x107.png 300w, https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-768x275.png 768w, https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-1536x549.png 1536w, https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-600x215.png 600w, https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls-945x338.png 945w, https://www.monlinux.net/wp-content/uploads/schema-dns-over-tls.png 1913w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Les requêtes sortantes peuvent se faire via :</p>



<ul class="wp-block-list"><li>DNScrypt</li><li>DNS over https DoH</li><li>DNS over TLS DoT</li></ul>



<p>Quel protocole utiliser ?&nbsp;<a href="https://www.dnsfilter.com/blog/dns-over-tls" target="_blank" rel="noreferrer noopener">Un article anglais explique bien que le DoT est le choix le plus judicieux</a></p>



<h2 class="wp-block-heading" id="2-choix">2 choix</h2>



<ul class="wp-block-list"><li>Un container tout fait stateless basé sur unbound<ul><li><a href="https://hub.docker.com/r/qmcgaw/dns" target="_blank" rel="noreferrer noopener">container</a></li><li><a href="https://github.com/qdm12/dns" target="_blank" rel="noreferrer noopener">github</a></li></ul></li><li>Sa propre configuration Unbound<ul><li><a href="https://hub.docker.com/r/mvance/unbound" target="_blank" rel="noreferrer noopener">Container unbound avec descriptif</a></li><li><a href="https://calomel.org/unbound_dns.html" target="_blank" rel="noreferrer noopener">Configuration d&rsquo;exemple pour Unbound utilisé avec DoT</a></li></ul></li></ul>



<h2 class="wp-block-heading" id="installation-du-service">Installation du service DoT</h2>



<p>Unbound via <a href="https://hub.docker.com/r/qmcgaw/dns" target="_blank" rel="noreferrer noopener">l&rsquo;image qmcgaw/dns</a> permet de générer les fichiers de configuration unbound à partir de varniable d&rsquo;environement pour une installation rapide et stateless.</p>



<p>Voici la configuration du service à ajouter à celle de l&rsquo;<a href="https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/">installation de Pihole vue précédemment</a>.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">services:
  dot:
    image: qmcgaw/dns:latest
    container_name: pihole-unbound-DoT
    environment:
      PROVIDERS: 'cloudflare,quad9'
      BLOCK_MALICIOUS: 'on'
      CACHING: 'off'
    networks:
      dnsnet:
        ipv4_address: 10.10.10.34
    restart: unless-stopped</code></pre>



<h2 class="wp-block-heading" id="configurer-un-relais-dns-securisé">Configurer un relais DNS sécurisé dans Pihole</h2>



<p>Après l&rsquo;installation du container DoT, il faut modifier l&rsquo;IP du serveur personnalisé.<br>Aller dans Settings &gt; DNS pour décocher tous les serveurs de gauche et activé un custom avec l&rsquo;IP de notre container docker&nbsp;<code>unbound-dot</code>&nbsp;:</p>



<pre class="wp-block-code"><code class="">docker inspect -f '{{ .NetworkSettings.Networks.pihole_dnsnet.IPAddress }}' unbound-dot
10.10.10.34</code></pre>



<p><strong>Attention</strong>&nbsp;à bien fixer les IP de vos container cette fois-ci vu que les serveurs DNS ont besoin d&rsquo;IP et non de nom<br><img loading="lazy" decoding="async" width="600" height="460" class="wp-image-1399" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/17e24d7a232f4387bc7324be8a273369.png" alt="changement des serveurs DNS" srcset="https://www.monlinux.net/wp-content/uploads/17e24d7a232f4387bc7324be8a273369.png 981w, https://www.monlinux.net/wp-content/uploads/17e24d7a232f4387bc7324be8a273369-300x230.png 300w, https://www.monlinux.net/wp-content/uploads/17e24d7a232f4387bc7324be8a273369-768x589.png 768w, https://www.monlinux.net/wp-content/uploads/17e24d7a232f4387bc7324be8a273369-600x460.png 600w, https://www.monlinux.net/wp-content/uploads/17e24d7a232f4387bc7324be8a273369-945x724.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<p>Tester si nos DNS sont sécurisés via&nbsp;<a href="https://1.1.1.1/help" target="_blank" rel="noreferrer noopener nofollow">https://1.1.1.1/help</a>, le résultat qui nous intéresse est « Using DNS over TLS (DoT) » :<br><img decoding="async" src=""><img loading="lazy" decoding="async" width="400" height="509" class="wp-image-1400" style="width: 400px;" src="https://www.monlinux.net/wp-content/uploads/5b2e7ab596a648c7bcf0757146a752a0.png" alt="Test de vérification DNS DoT cloudflare" srcset="https://www.monlinux.net/wp-content/uploads/5b2e7ab596a648c7bcf0757146a752a0.png 585w, https://www.monlinux.net/wp-content/uploads/5b2e7ab596a648c7bcf0757146a752a0-236x300.png 236w" sizes="auto, (max-width: 400px) 100vw, 400px" /></p>



<p>Tester la résolution DNS DoT (DNS-over-tls) en ligne de commande. Cela nécessite le paquet&nbsp;<code>knot-dnsutils</code></p>



<pre class="wp-block-code"><code class="">kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com mondomain.tld</code></pre>



<h2 class="wp-block-heading">Passage en revue de l&rsquo;installation complète avec Pihole</h2>



<p>Dans mon exemple, c&rsquo;est le container pihole qui reçoit les requêtes des clients pour les transférer au container Unbound DoT et de manière sécurisée jusque Cloudflaire. Ils partageront donc un réseau afin de segmenter le tout, plus besoin d&rsquo;avoir le port de l&rsquo;host ouvert.<br>Dans l&rsquo;exemple le réseau 10.10.10.32/29 nous donne 8 IP dispo dans l&rsquo;absolut mais :</p>



<ul class="wp-block-list"><li>10.10.10.32 est notre network</li><li>10.10.10.33 étant réservée pour l&rsquo;host, et faisant gateway pour les containers de ce réseau</li><li>il reste 5 IP dispo de 10.10.10.34 à 10.10.10.38</li><li>10.10.10.39 est le broadcast</li></ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="366" src="https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-1024x366.png" alt="" class="wp-image-1404" srcset="https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-1024x366.png 1024w, https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-300x107.png 300w, https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-768x275.png 768w, https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-1536x549.png 1536w, https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-600x215.png 600w, https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls-945x338.png 945w, https://www.monlinux.net/wp-content/uploads/docker-dns-over-tls.png 1913w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Pour les DNS cela travail essentiellement avec des IP, <strong>on fixe donc les IP des containers</strong>.<br>Et on oublie pas la dépendance du service <code>pihole</code> envers notre <code>Unbound</code> pour faire propre.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: '3.7'

networks:
  dnsnet:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.10.10.32/29
  proxy-net:
    external: true

services:

  dot:
    image: qmcgaw/dns:latest
    container_name: pihole-unbound-DoT
    environment:
      PROVIDERS: 'cloudflare,quad9'
      CACHING: 'off'
      BLOCK_MALICIOUS: 'on'
    networks:
      dnsnet:
        ipv4_address: 10.10.10.34
    restart: unless-stopped

  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
    volumes:
      - '/var/lib/docker/data/pihole/config/etc-pihole/:/etc/pihole/'
      - '/var/lib/docker/data/pihole/config/etc-dnsmasq.d/:/etc/dnsmasq.d/'
    environment:
      TZ: 'Europe/Paris'
      ADMIN_EMAIL: 'YOUR_EMAIL'
      WEBPASSWORD: 'tttttt'
      DNS1: 10.10.10.34
      DNS2: 10.10.10.34
      VIRTUAL_HOST: pihole.domain.tld
    depends_on:
      - dot
    networks:
      proxy-net:
      dnsnet:
          ipv4_address: 10.10.10.35
    restart: unless-stopped

    labels:
      - traefik.enable=true
      - traefik.http.services.pihole.loadbalancer.server.port=80
      - traefik.http.routers.pihole.entrypoints=websecure
      - traefik.http.routers.pihole.tls.certresolver=le
      - "traefik.http.routers.pihole.rule=Host(`pihole.domain.tld`)"</code></pre>



<p>On peut lancer et inspecter les IP des containers via :</p>



<pre class="wp-block-code"><code class="">docker network inspect pihole_dnsnet</code></pre>
<p>L’article <a href="https://www.monlinux.net/2022/04/securiser-ses-dns-avec-pihole-et-dot-dns-over-tls/">Sécuriser ses DNS avec Pihole et DoT (dns-over-tls)</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/04/securiser-ses-dns-avec-pihole-et-dot-dns-over-tls/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pihole pour se passer de publicité et sites malicieux</title>
		<link>https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/</link>
					<comments>https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Thu, 31 Mar 2022 20:33:31 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[pihole]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1387</guid>

					<description><![CDATA[<p>Pihole est un service de cache DNS avec un blocage natif des domaines publicitaires.Originaire du raspberry pi, un&#160;tuto en installation normale&#160;est dispo avec des d&#233;tails.Le backend utilis&#233; est DNSmasq qui g&#232;re les DNS et peut &#233;galement faire serveur DHCP ou... <a class="more-link" href="https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/">Pihole pour se passer de publicité et sites malicieux</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Pihole est un service de cache DNS avec un blocage natif des domaines publicitaires.<br>Originaire du raspberry pi, un&nbsp;<a href="https://github.com/magicdude4eva/PiHoleCloudFlareD">tuto en installation normale</a>&nbsp;est dispo avec des détails.<br>Le backend utilisé est DNSmasq qui gère les DNS et peut également faire serveur DHCP ou relay.<br>Il est possible de surclasser une résolution dns vers une IP ou CNAME. Pratique pour un serveur à la maison et ne pas passer par la boucle locale du routeur. Et encore mieux quand la box du FAI n&rsquo;en a même pas&#8230;</p>



<p>Il existe aussi <a href="https://quad9.com/">quad9</a> qui block des domaines malicieux gratuitement.</p>



<h2 class="wp-block-heading" id="configuration-docker-compose">Configuration docker-compose Pihole</h2>



<h3 class="wp-block-heading">Configuration pihole simple</h3>



<p>Fichier docker compose de base (sans dhcp) en écoute sur port 2080 en http :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: '3.7'

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      <em>#- "67:67/udp"</em>
      - "2080:80/tcp"
      <em>#- "2443:443/tcp"</em>
    volumes:
      - '/var/lib/docker/data/pihole/etc-pihole/:/etc/pihole/'
      - '/var/lib/docker/data/pihole/etc-dnsmasq.d/:/etc/dnsmasq.d/'
    environment:
      TZ: 'Europe/Paris'
      ADMIN_EMAIL: 'YOUR_EMAIL'
      WEBPASSWORD: 'TEMP_ADMIN_PASSWORD'
      VIRTUAL_HOST: pihole.domain.tld

    restart: unless-stopped
</code></pre>



<p>Après le premier démarrage et configuration on peut changer le mot de passe admin avec cette commande pour ne pas le laisser traîner dans le fichier de configuration :&nbsp;<code>docker exec -it pihole pihole -a -p</code></p>



<h3 class="wp-block-heading">Configuration Pihole avec Traefik</h3>



<p>Fichier docker avec configuration de traefik devant l&rsquo;interface web et les dns cloudflare de choisi :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">version: '3.7'

networks:
  proxy-net:
    external: true

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
    volumes:
      - '/var/lib/docker/data/pihole/etc-pihole/:/etc/pihole/'
      - '/var/lib/docker/data/pihole/etc-dnsmasq.d/:/etc/dnsmasq.d/'
    environment:
      TZ: 'Europe/Paris'
      ADMIN_EMAIL: 'YOUR_EMAIL'
      WEBPASSWORD: 'tttttt'
      DNS1: '1.1.1.1'
      DNS2: '1.0.0.1'
      VIRTUAL_HOST: 'pihole.domain.tld'

    networks:
      - proxy-net
    restart: unless-stopped

    labels:
      - traefik.http.services.pihole.loadbalancer.server.port=80
      - traefik.http.routers.pihole.entrypoints=websecure
      - traefik.http.routers.pihole.tls.certresolver=le
      - "traefik.http.routers.pihole.rule=Host(`pihole.domain.tld`)"
      - "traefik.http.routers.pihole.middlewares=home-whitelist@file"</code></pre>



<h2 class="wp-block-heading" id="configuration-de-pihole-via-linterface-web">Configuration de PiHole via l&rsquo;interface web</h2>



<h3 class="wp-block-heading" id="dns-forwarder">DNS forwarder</h3>



<p>Si ce n&rsquo;est déjà fait via les variables docker, on change les DNS utilisés, car ceux par défaut sont ceux de Google&#8230; Pour quelque chose évitant la pub, c&rsquo;est un peu contradictoire&#8230;<br>Aller dans Settings &gt; onglet DNS<br>Il est possible de prendre Google, OpenDNS, Level3, Comodo, DNS.WATCH, quad9, cloudflare ou bien des serveurs dns customisés.<br><img decoding="async" src=""><img loading="lazy" decoding="async" width="600" height="529" class="wp-image-1390" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f.png" alt="settings pihole" srcset="https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f.png 1127w, https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f-300x264.png 300w, https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f-1024x902.png 1024w, https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f-768x677.png 768w, https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f-600x529.png 600w, https://www.monlinux.net/wp-content/uploads/17de1ff0198644e19d0ad07b83abf77f-945x833.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<p>Voici une liste des serveurs et leurs qualités, tel que la vie privée :<br><img decoding="async" src=""><br>Pour plus d&rsquo;info, un bon&nbsp;<a href="https://medium.com/@nykolas.z/dns-resolvers-performance-compared-cloudflare-x-google-x-quad9-x-opendns-149e803734e5" class="broken_link">article décrivant les qualités de chacun de ces fournisseurs de DNS gratuits</a>.</p>



<p><img loading="lazy" decoding="async" width="600" height="157" class="wp-image-1391" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9.png" alt="Liste de serveurs DNS publiques leurs qualités et vie privée" srcset="https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9.png 1072w, https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9-300x78.png 300w, https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9-1024x267.png 1024w, https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9-768x201.png 768w, https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9-600x157.png 600w, https://www.monlinux.net/wp-content/uploads/b267eeefa28f48918a9da0ced0a734a9-945x247.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<p>Les DNS customisés sont pratiques si vous voulez chainer avec un bind9 ou powerDNS et beaucoup de dns internes.<br>Pour une utilisation domestique, tout est prévu dans l&rsquo;interface pour le faire directement.</p>



<h3 class="wp-block-heading" id="résolution-dns-locaux">résolution dns locaux</h3>



<p>C&rsquo;est une partie qui va remplacer mon serveur bind9 interne, que j&rsquo;utilisais pour résoudre des services « cloud » maison via leur IP locale quand on est à la maison et l&rsquo;ip publique quand on est à l&rsquo;extérieur.<br><img decoding="async" src=""><img loading="lazy" decoding="async" width="600" height="388" class="wp-image-1392" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b.png" alt="résolution dns locaux avec Pihole" srcset="https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b.png 1870w, https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b-300x194.png 300w, https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b-1024x662.png 1024w, https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b-768x497.png 768w, https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b-1536x993.png 1536w, https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b-600x388.png 600w, https://www.monlinux.net/wp-content/uploads/91cb15d85cc140efb918e34e52c38c1b-945x611.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>



<h3 class="wp-block-heading" id="gestion-de-listes-supplémentaires">gestion de listes supplémentaires</h3>



<p>Il est possible d&rsquo;ajouter des listes d&rsquo;hosts à blacklisté autres que la pub, comme les fakenews, réseaux sociaux, porno, etc.<br>Il est possible de bloquer certaines catégories uniquement pour un certain group d&rsquo;host.</p>



<p>De base, lorsqu&rsquo;une url est ajoutée, elle s&rsquo;applique à tous les clients, qui sont par défaut dans le gorupe « default ».</p>



<p>Une liste des catégories disponibles par la communauté se trouvent&nbsp;<a href="https://github.com/StevenBlack/hosts">sur le github de StevenBlack</a>.</p>



<p><a href="https://firebog.net/">Le site firebog</a>&nbsp;regroupe des listes par catégories dangeureux, publicitaire, tracking</p>



<ol class="wp-block-list">
<li>J&rsquo;ajoute donc la liste <code>https://raw.githubusercontent.com/StevenBlack/hosts/master/extensions/fakenews/hosts</code> dans Group Management > Adlists<br><figure><img decoding="async" src=""></figure><figure><img loading="lazy" decoding="async" width="600" height="364" class="wp-image-1393" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589.png" alt="Ajouter des listes de domaines de pub dans Pihole" srcset="https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589.png 1895w, https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589-300x182.png 300w, https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589-1024x622.png 1024w, https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589-768x466.png 768w, https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589-1536x933.png 1536w, https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589-600x364.png 600w, https://www.monlinux.net/wp-content/uploads/f56b428d0c54483284bbb418b2122589-945x574.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></li>



<li>Ensuite on fait un update manuel pour avoir la nouvelle liste<br><figure><img loading="lazy" decoding="async" width="600" height="350" class="wp-image-1394" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3.png" alt="Mise à jour de la liste des domaines bloqués avec Gravity" srcset="https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3.png 1401w, https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3-300x175.png 300w, https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3-1024x597.png 1024w, https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3-768x448.png 768w, https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3-600x350.png 600w, https://www.monlinux.net/wp-content/uploads/aa8092a03a0843c1af6d716076454ed3-945x551.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure><figure><img decoding="async" src=""></figure></li>



<li>un test avant/après :<br><figure><img loading="lazy" decoding="async" width="400" height="107" class="wp-image-1395" style="width: 400px;" src="https://www.monlinux.net/wp-content/uploads/2025fd144745400b985aa29dbbc3dce7.png" alt="Test de blocage dns pihole" srcset="https://www.monlinux.net/wp-content/uploads/2025fd144745400b985aa29dbbc3dce7.png 469w, https://www.monlinux.net/wp-content/uploads/2025fd144745400b985aa29dbbc3dce7-300x81.png 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure><figure><img decoding="async" src=""></figure></li>
</ol>



<h3 class="wp-block-heading" id="gestion-des-groupes">Gestion des groupes</h3>



<ol class="wp-block-list">
<li>Création d&rsquo;un groupe « restricted »<br><figure><img decoding="async" src=""></figure><figure><img loading="lazy" decoding="async" width="600" height="241" class="wp-image-1396" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65.png" alt="groupe restreint" srcset="https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65.png 1854w, https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65-300x120.png 300w, https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65-1024x411.png 1024w, https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65-768x308.png 768w, https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65-1536x616.png 1536w, https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65-600x241.png 600w, https://www.monlinux.net/wp-content/uploads/55b86670a97d4580a0d2d8798314bf65-945x379.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></li>



<li>On met un client dans ce groupe: en sélectionnant un client connu du serveur dns et en l&rsquo;associant au groupe « restricted » uniquement. <strong>Attention à bien valider</strong><br><figure><img decoding="async" src=""></figure><figure><img loading="lazy" decoding="async" width="600" height="188" class="wp-image-1397" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3.png" alt="ajout client à un groupe" srcset="https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3.png 1584w, https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3-300x94.png 300w, https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3-1024x321.png 1024w, https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3-768x241.png 768w, https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3-1536x482.png 1536w, https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3-600x188.png 600w, https://www.monlinux.net/wp-content/uploads/7dee7a60e26b4c6f9df7c43e8a37d3b3-945x297.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></li>



<li>On ajouter la liste gambling et on sélectionne uniquement pour le groupe « restricted », et on ajoute les 2 autres listes au groupe « restricted » également<br><figure><img decoding="async" src=""></figure><figure><img loading="lazy" decoding="async" width="600" height="188" class="wp-image-1398" style="width: 600px;" src="https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5.png" alt="ajout de liste de blocage à un groupe" srcset="https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5.png 1849w, https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5-300x94.png 300w, https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5-1024x321.png 1024w, https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5-768x241.png 768w, https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5-1536x482.png 1536w, https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5-600x188.png 600w, https://www.monlinux.net/wp-content/uploads/81dbf9a3355e473b95306e38d5fb7fa5-945x296.png 945w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure></li>



<li>On fait une mise à jour de Gravity</li>



<li>Les clients de base ont une blackliste adware+walware+fakenews et le client « domopi » adware+walware+fakenews+gamebling</li>
</ol>



<h2 class="wp-block-heading">Application Android Pi-hole Connect</h2>



<p>Une application Android Pi-hole Connect est également disponible afin de gérer facilement une mise en pause du blocage, ajouter un domaine à la whitelist ou actualiser les filtres par exemple.<br><img loading="lazy" decoding="async" width="300" height="667" class="wp-image-1422" style="width: 300px;" src="https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect.jpg" alt="Pi-hole Connect" srcset="https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect.jpg 1080w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-135x300.jpg 135w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-461x1024.jpg 461w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-768x1707.jpg 768w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-691x1536.jpg 691w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-922x2048.jpg 922w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-600x1333.jpg 600w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-945x2100.jpg 945w" sizes="auto, (max-width: 300px) 100vw, 300px" /> <img loading="lazy" decoding="async" width="300" height="667" class="wp-image-1421" style="width: 300px;" src="https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist.jpg" alt="Pi-hole Connect top blocked blacklist" srcset="https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist.jpg 1080w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-135x300.jpg 135w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-461x1024.jpg 461w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-768x1707.jpg 768w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-691x1536.jpg 691w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-922x2048.jpg 922w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-600x1333.jpg 600w, https://www.monlinux.net/wp-content/uploads/Pi-hole-Connect-top-blacklist-945x2100.jpg 945w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>L’article <a href="https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/">Pihole pour se passer de publicité et sites malicieux</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/03/pihole-publicite-et-site-malicieux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Créer un certificat multi-domaine let&#8217;s encrypt avec Apache</title>
		<link>https://www.monlinux.net/2018/03/creer-un-certificat-multi-domaine-lets-encrypt-avec-apache/</link>
					<comments>https://www.monlinux.net/2018/03/creer-un-certificat-multi-domaine-lets-encrypt-avec-apache/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Wed, 21 Mar 2018 14:30:38 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[let's encrypt]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1275</guid>

					<description><![CDATA[<p>Il faut commencer par installer certbot sur le serveur avant de pouvoir soumettre une demande &#224; let&#8217;s encrypt. Ensuite, je verrais la validation d&#8217;un certificat validant un seul domaine. Pour finir, je parlerai de la validation d&#8217;un certificat multi-domaine let&#8217;s... <a class="more-link" href="https://www.monlinux.net/2018/03/creer-un-certificat-multi-domaine-lets-encrypt-avec-apache/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2018/03/creer-un-certificat-multi-domaine-lets-encrypt-avec-apache/">Créer un certificat multi-domaine let&rsquo;s encrypt avec Apache</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Il faut commencer par installer certbot sur le serveur avant de pouvoir soumettre une demande à let&rsquo;s encrypt. Ensuite, je verrais la validation d&rsquo;un certificat validant un seul domaine. Pour finir, je parlerai de la <strong>validation d&rsquo;un certificat multi-domaine let&rsquo;s encrypt</strong>.</p>



<span id="more-1275"></span>



<h2 class="wp-block-heading">Installation de certbot</h2>



<p>Dans ce cas-ci, il sera installé sur le serveur Apache directement. Suivez d&rsquo;abord les <a href="https://certbot.eff.org/instructions">instructions d&rsquo;installation selon votre système</a>.</p>



<p>Sous Debian 9, faites directement ceci :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">apt-get install certbot python-certbot-apache</code></pre>



<h2 class="wp-block-heading">Validation d&rsquo;un seul domaine via let&rsquo;s encrypt</h2>



<p>Pour valider un seul domaine pour un certificat, <strong>il faut déjà avoir créé la configuration du site en HTTP</strong>. Certbot se chargera de demander le certificat à let&rsquo;s encrypt et de créer une configuration de site identique en HTTPS, <strong>vous n&rsquo;aurez rien à faire côté Apache</strong>. Vous aurez la possibilité de choisir de rediriger les utilisateurs depuis http vers https.</p>



<p>Exécutez ceci et suivez les instructions :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">certbot --apache</code></pre>



<p>Pour prendre en compte la modification, rechargez Apache :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">service apache2 reload</code></pre>



<p>Par la suite, un renouvellement de certificat pourra se faire via :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">certbot renew</code></pre>



<p>Un certificat let&rsquo;s encrypt n&rsquo;est valide que 3 mois. Il faut donc le renouveler tous les 3 mois. Heureusement un cron permet de le faire automatiquement, vérifiez que celui-ci est bien présent&nbsp;/etc/cron.d/certbot :</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash"># /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc.  Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system &amp;&amp; perl -e 'sleep int(rand(3600))' &amp;&amp; certbot -q renew</code></pre>



<h2 class="wp-block-heading">Validation d&rsquo;un certificat multi-domaine</h2>



<p>Afin de valider un certificat multi-domaine, il faut spécifier ces domaines via des arguments de certbot. Bien évidemment pour le renouvellement il n&rsquo;y aura rien de spécial à faire, cela suit la même procédure qu&rsquo;un domaine seul.</p>



<p>Il faut exécuter manuellement:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">certbot-auto --apache -d domaineprincipal.tld -d www.domaineprincipal.tld -d ...</code></pre>



<p><strong>Le premier domaine sera utilisé comme domaine principal</strong>, tous les autres seront utilisés comme domaines secondaires, appelé « <strong>SAN Certificates</strong>« . Cela signifie « Subject Alternative Name ».</p>



<p><strong>Notre certificat multi-domaine a été installé directement dans la configuration Apache</strong> par Certbot, il suffit d&rsquo;un <strong>reload</strong> de la configuration Apache.</p>
<p>L’article <a href="https://www.monlinux.net/2018/03/creer-un-certificat-multi-domaine-lets-encrypt-avec-apache/">Créer un certificat multi-domaine let&rsquo;s encrypt avec Apache</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2018/03/creer-un-certificat-multi-domaine-lets-encrypt-avec-apache/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 30/82 requêtes en 0.065 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-04-06 16:56:22 by W3 Total Cache
-->