{"id":562,"date":"2021-01-20T14:07:12","date_gmt":"2021-01-20T13:07:12","guid":{"rendered":"https:\/\/smartlan.net\/?p=562"},"modified":"2021-02-09T19:02:59","modified_gmt":"2021-02-09T18:02:59","slug":"tuto-pi-hole-avec-sa-propre-ip-sous-docker-sur-votre-nas-synology","status":"publish","type":"post","link":"https:\/\/smartlan.net\/?p=562","title":{"rendered":"Tuto : Pi-hole avec sa propre IP sous Docker sur votre NAS Synology"},"content":{"rendered":"\n<p>Bonjour \u00e0 tous,<br><br>Aujourd&rsquo;hui on se retrouve pour un tuto semblable \u00e0 celui concernant l&rsquo;installation de Pi-Hole sur une VM, mais cette fois ce sera sous Docker.<br><br>Jusqu&rsquo;alors je n&rsquo;\u00e9tais pas tr\u00e8s \u00e0 l&rsquo;aise avec Docker, sp\u00e9cialement pour les mise \u00e0 jour des conteneurs. Il s&rsquo;av\u00e8re que c&rsquo;est plut\u00f4t simple au final en utilisant un conteneur sp\u00e9cial qui vous facilite la vie.<\/p>\n\n\n\n<p>L&rsquo;avantage ici c&rsquo;est de se passer d&rsquo;une VM qui sera d&rsquo;office plus gourmande en ressources. MAIS vous \u00eates exactement dans la m\u00eame situation, mais sans la VM!<br><br>Pour info, mon NAS est un Synology DS1817+<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Comment installer Pi-hole avec sa propre IP avec Docker sur Synology NAS\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/DVvwn0-JB0o?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">0. Pr\u00e9requis<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Poss\u00e9der un NAS Synology compatible avec Docker. Voir le site Synology pour vous en assurer.<\/li><li>Installer Docker sur votre NAS via le \u00ab\u00a0centre de paquets\u00a0\u00bb si ce n&rsquo;est pas encore fait.<\/li><\/ul>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">1. Les logiciels n\u00e9cessaires \/ t\u00e9l\u00e9chargements<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>MobaXterm pour vous connecter en SSH<ul><li><a rel=\"noreferrer noopener\" href=\"https:\/\/mobaxterm.mobatek.net\/\" target=\"_blank\">https:\/\/mobaxterm.mobatek.net\/<\/a><\/li><\/ul><\/li><\/ul>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">2. Installation de Portainer<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Connectez-vous \u00e0 votre NAS et activez le SSH (assurez vous que le port 22 est ouvert si vous avez activ\u00e9 le Firewall sur NAS)<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"505\" src=\"https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/01-Activer-SSH-1024x505.jpg\" alt=\"\" class=\"wp-image-678\" srcset=\"https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/01-Activer-SSH-1024x505.jpg 1024w, https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/01-Activer-SSH-300x148.jpg 300w, https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/01-Activer-SSH-768x379.jpg 768w, https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/01-Activer-SSH.jpg 1302w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Cr\u00e9ez un dossier \u00ab\u00a0portainer\u00a0\u00bb dans votre dossier Docker \u00e0 l&rsquo;aide de File Station.<\/li><li>Connectez-vous \u00e0 votre NAS en SSH \u00e0 l&rsquo;aide de votre logiciel favori (pour moi c&rsquo;est MobaXterm).<\/li><li>Il faut passer en root avec la commande suivante (votre mot de passe va \u00eatre redemand\u00e9) :<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo su -<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ensuite on cr\u00e9e le conteneur avec la commande suivante (<strong>ATTENTION<\/strong> : dans cet exemple, Docker a \u00e9t\u00e9 install\u00e9 sur le volume 1 et donc le dossier Docker se situe \u00e9galement sur le volume 1, ce n&rsquo;est peut-\u00eatre pas le cas chez vous => v\u00e9rifiez bien et adaptez le n\u00b0 de volume en fonction)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d -p 9000:9000 --name=portainer --restart=always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v \/volume1\/docker\/portainer:\/data portainer\/portainer-ce\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Une fois termin\u00e9, vous pouvez ouvrir votre navigateur internet et vous rendre \u00e0 cette adresse : http:\/\/ipdevotrenas:9000 pour acc\u00e9der \u00e0 Portainer. Ne fermez pas la session SSH, on va en avoir besoin dans peu de temps \ud83d\ude09<\/li><li>Il vous faut maintenant cr\u00e9er un Administrateur, l\u00e0 c&rsquo;est vous qui mettez ce que vous voulez, mais souvenez-vous en car vous en aurez besoin pour vos futures connexions.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"748\" height=\"461\" src=\"https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/02-Portainer-admin-creation.jpg\" alt=\"\" class=\"wp-image-681\" srcset=\"https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/02-Portainer-admin-creation.jpg 748w, https:\/\/smartlan.net\/wp-content\/uploads\/2020\/12\/02-Portainer-admin-creation-300x185.jpg 300w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Maintenant Portainer vous demande comment il va se connecter \u00e0 votre Docker afin d&rsquo;en \u00ab\u00a0prendre la gestion\u00a0\u00bb.<\/li><li>Cliquez sur \u00ab\u00a0Local\u00a0\u00bb puis \u00ab\u00a0Connect\u00a0\u00bb<\/li><li>Et voil\u00e0, vous avez configur\u00e9 Portainer. Vous  vous trouvez maintenant sur la page d&rsquo;accueil. Cliquez sur la ligne \u00ab\u00a0local\u00a0\u00bb regroupant les infos de votre Docker. Vous pourrez voir que vous avez au moins un conteneur actif: portainer.<\/li><li>C&rsquo;est \u00e0 partir de l\u00e0 que l&rsquo;on va cr\u00e9er d&rsquo;autres conteneurs, comme Pi-Hole. Mais avant il faut faire autre chose si vous voulez b\u00e9n\u00e9ficier d&rsquo;une autre IP pour votre Pi-Hole!<\/li><\/ul>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">3. Cr\u00e9ation de l&rsquo;interface r\u00e9seau pour Pi-hole<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Toujours en \u00e9tant connect\u00e9 en SSH \u00e0 votre NAS (je vous avais dit de ne pas vous d\u00e9connecter du SSh ^^), utilisez la commande suivante pour connaitre le nom de votre interface r\u00e9seau :<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ip route |grep default<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Maintenant on va cr\u00e9er l&rsquo;interface MACVLAN qui sera l&rsquo;interface reli\u00e9e \u00e0 notre conteneur Pi-hole :<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker network create --driver=macvlan --gateway=IP DE VOTRE ROUTEUR --subnet=VOTRE RESEAU\/24 --ip-range=IP POUR PIHOLE\/32 -o parent=NOM DE VOTRE INTERFACE RESEAU NOM DE VOTRE NOUVELLE INTERFACE<\/code><\/pre>\n\n\n\n<p>Ce qui donne ceci pour quelqu&rsquo;un qui a un routeur en 192.168.1.1 et qui souhaite que pi-hole soit en 192.168.1.254 et que l&rsquo;interface se nomme Eth-PiHole :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker network create --driver=macvlan --gateway=192.168.1.1 --subnet=192.168.1.0\/24 --ip-range=192.168.1.254\/32 -o parent=ovs_eth0 Eth_PiHole<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Pour \u00eatre certain que \u00e7a ait bien fonctionn\u00e9, on peut taper cette commande : <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker network ls<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Vous devriez alors voir apparaitre le r\u00e9seau MACVLAN que vous venez de cr\u00e9er.<\/li><\/ul>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">4. Cr\u00e9ation du conteneur Pi-hole<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Vous pouvez faire cela depuis le paquet Docker sur votre NAS directement, depuis Portainer, ou en SSH ce que nous allons faire.<\/li><li>Mais avant il faut utiliser \u00ab\u00a0File Station\u00a0\u00bb pour cr\u00e9er les dossiers pour Pi-hole. Donc dans le dossier Docker, vous cr\u00e9ez un dossier \u00ab\u00a0Pihole\u00a0\u00bb, et dans ce dossier, vous cr\u00e9ez les 2 dossiers suivants : \u00ab\u00a0config\u00a0\u00bb et \u00ab\u00a0dnsmasq.d\u00a0\u00bb<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"934\" height=\"539\" src=\"https:\/\/smartlan.net\/wp-content\/uploads\/2021\/01\/04-Dossier-pour-Pi-hole.jpg\" alt=\"\" class=\"wp-image-791\" srcset=\"https:\/\/smartlan.net\/wp-content\/uploads\/2021\/01\/04-Dossier-pour-Pi-hole.jpg 934w, https:\/\/smartlan.net\/wp-content\/uploads\/2021\/01\/04-Dossier-pour-Pi-hole-300x173.jpg 300w, https:\/\/smartlan.net\/wp-content\/uploads\/2021\/01\/04-Dossier-pour-Pi-hole-768x443.jpg 768w\" sizes=\"auto, (max-width: 934px) 100vw, 934px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Il ne vous reste plus qu&rsquo;\u00e0 copier\/coller et ex\u00e9cuter le code ci-dessous apr\u00e8s l&rsquo;avoir personnalis\u00e9 bien s\u00fbr :<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run --detach \\\n           --name pi-hole \\\n           --restart always \\\n           --volume \/volumeX\/docker\/Pihole\/config:\/etc\/pihole \\\n           --volume \/volumeX\/docker\/Pihole\/dnsmasq.d:\/etc\/dnsmasq.d \\\n           --cap-add NET_ADMIN \\\n           --dns=8.8.8.8 \\\n           --dns=8.8.4.4 \\\n           --env \"DNS1=8.8.8.8\" \\\n           --env \"DNS2=8.8.4.4\" \\\n           --env \"ServerIP=IP CONFIGUREE PRECEDEMMENT\" \\\n           --env \"DNSMASQ_LISTENING=all\" \\\n           --env \"WEBPASSWORD=CE QUE VOUS VOULEZ\" \\\n           --env \"TZ=Europe\/Paris\" \\\n           --network NOM DU RESEAU CONFIGURE PRECEDEMMENT \\\n           --ip \"IP CONFIGUREE PRECEDEMENT\" \\\n           --mac-address \"02:42:c0:a8:01:d7\" \\\n           pihole\/pihole:latest<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Vous pouvez ouvrir un explorateur et entrer l&rsquo;adresse IP que vous aviez configur\u00e9 pr\u00e9c\u00e9demment, vous devriez arriver sur Pi-Hole.<\/li><\/ul>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">5. Bug du mot de passe<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Il m&rsquo;est arriv\u00e9 de ne pas r\u00e9ussir \u00e0 me logger avec le mot de passe configur\u00e9 \u00e0 la cr\u00e9ation du conteneur. Dans ce cas, rendez-vous dans portainer, cliquez sur votre conteneur Pi-hole, ouvrez la console et connectez-vous (c&rsquo;est une sorte de SSH mais sur votre conteneur), utilisez juste cette commande pour changer le mot de passe :<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>pihole -a -p<\/code><\/pre>\n\n\n\n<h3 class=\"has-text-color wp-block-heading\" style=\"color:#03799d\">6. Mettre \u00e0 jour Pi-hole, comment \u00e7a marche?<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>He bien c&rsquo;est simple comme bonjour gr\u00e2ce \u00e0 Portainer. Il vous suffit de vous rendre sur Portainer, cliquez sur votre conteneur Pi-hole, stoppez le conteneur, puis cliquez sur \u00ab\u00a0Recreate\u00a0\u00bb (ou recr\u00e9er le conteneur). Choisissez bien \u00ab\u00a0Pull latest image\u00a0\u00bb pour qu&rsquo;il t\u00e9l\u00e9charge la mise \u00e0 jour, puis Portainer s&rsquo;occupe de supprimer, puis recr\u00e9er et reconfigurer tout votre Pi-hole pour vous.<\/li><li>Pensez aussi \u00e0 mettre \u00e0 jour de temps en temps les \u00ab\u00a0blocklist\u00a0\u00bb depuis votre interface de Pi-hole => \u00ab\u00a0Update Gravity\u00a0\u00bb<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bonjour \u00e0 tous, Aujourd&rsquo;hui on se retrouve pour un tuto semblable \u00e0 celui concernant l&rsquo;installation de Pi-Hole sur une VM, mais cette fois ce sera sous Docker. Jusqu&rsquo;alors je n&rsquo;\u00e9tais pas tr\u00e8s \u00e0 l&rsquo;aise avec Docker, sp\u00e9cialement pour les mise \u00e0 jour des conteneurs. Il s&rsquo;av\u00e8re que c&rsquo;est plut\u00f4t simple au final en utilisant un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":800,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[21,6,15,25,8],"class_list":["post-562","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriels","tag-docker","tag-pi-hole","tag-pihole","tag-portainer","tag-synology"],"jetpack_featured_media_url":"https:\/\/smartlan.net\/wp-content\/uploads\/2021\/01\/Mise-en-avant-05.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/smartlan.net\/index.php?rest_route=\/wp\/v2\/posts\/562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartlan.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartlan.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartlan.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartlan.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=562"}],"version-history":[{"count":0,"href":"https:\/\/smartlan.net\/index.php?rest_route=\/wp\/v2\/posts\/562\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartlan.net\/index.php?rest_route=\/wp\/v2\/media\/800"}],"wp:attachment":[{"href":"https:\/\/smartlan.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartlan.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartlan.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}