<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HomeLab | AlexIn Tech</title><link>https://alexin.tech/fr/tag/homelab/</link><atom:link href="https://alexin.tech/fr/tag/homelab/index.xml" rel="self" type="application/rss+xml"/><description>HomeLab</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>fr</language><lastBuildDate>Fri, 08 Mar 2024 00:00:00 +0000</lastBuildDate><image><url>https://alexin.tech/media/icon_hu_69c804372a707b16.png</url><title>HomeLab</title><link>https://alexin.tech/fr/tag/homelab/</link></image><item><title>Selfhoster / héberger AFFiNE sur Unraid en utilisant docker</title><link>https://alexin.tech/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/</link><pubDate>Fri, 08 Mar 2024 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/</guid><description>&lt;div class="article-story">
&lt;h1 id="selfhoster--héberger-affine-sur-unraid-en-utilisant-docker">Selfhoster / héberger AFFiNE sur Unraid en utilisant docker&lt;/h1>
&lt;p>Hello ! Il y a quelques semaines j&amp;rsquo;avais publié un post qui expliquait comment héberger Monica sur Unraid en utilisant docker-compose.&lt;/p>
&lt;p>Je pars donc du principe vous avez déjà installé le plugin &amp;ldquo;Docker Compose&amp;rdquo; sur votre serveur Unraid et que vous savez l&amp;rsquo;utiliser. Si ce n&amp;rsquo;est pas le cas, je vous redirige vers mon article sur l&amp;rsquo;installation de Monica.&lt;/p>
&lt;p>Aujourd&amp;rsquo;hui je vais vous partager rapidement comment selfhoster / héberger AFFiNE sur Unraid en utilisant docker.&lt;/p>
&lt;h2 id="mais-premièrement-quest-ce-que-affine-">Mais premièrement, qu&amp;rsquo;est-ce que AFFiNE ?&lt;/h2>
&lt;p>D&amp;rsquo;après leur page GitHub, AFFiNE est une sorte de croisement entre Notion et Miro, offrant une plateforme tout-en-un open source conçue pour fusionner écriture, dessin, et planification dans un espace de travail hyper-fusionné, orienté vers la confidentialité et le local-first. Avec sa toile sans limites pour tout type de blocs — texte enrichi, notes, pages web intégrées, et bien plus. AFFiNE se positionne comme la solution ultime pour les esprits créatifs. La plateforme supporte la collaboration en temps réel, offre la possibilité de se gérer et s&amp;rsquo;héberger soi-même, et prépare l&amp;rsquo;arrivée d&amp;rsquo;une communauté de plugins pour une personnalisation poussée. AFFiNE est l&amp;rsquo;outil parfait pour ceux qui cherchent à repousser les frontières de leur productivité et créativité.&lt;/p>
&lt;p>⚠️ &lt;em>Disclaimer : C&amp;rsquo;est eux qui le disent hein, pas moi. J&amp;rsquo;ai juste tenté de rassembler les infos et de les traduire en FR.&lt;/em>&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./featured.jpg" alt="img" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;em>En gros, tu prends Notion, tu prends Miro, et tu les fusionnes. Voilà ça c&amp;rsquo;est moi qui le dit.&lt;/em>&lt;/p>
&lt;h2 id="installer-affine">Installer AFFiNE&lt;/h2>
&lt;p>Alors on rentre dans le vif du sujet, pour installer AFFiNE j&amp;rsquo;ai modifié un tout petit peu leur fichier compose.yaml qui est dispo sur leur &lt;a href="https://github.com/toeverything/AFFiNE" target="_blank" rel="noopener">github&lt;/a> .&lt;/p>
&lt;p>Voici donc ma version et j&amp;rsquo;y ai annoté quelques commentaires afin que vous puissiez le compléter plus facilement de votre côté.&lt;/p>
&lt;p>🆕 &lt;em>Afin de copier/coller/télécharger plus facilement ce code, j&amp;rsquo;ai créé un repository dédié aux ressources de mon blog sur github. Voici le lien du fichier docker-compose.yml de cet article :&lt;/em>&lt;/p>
&lt;p>&lt;a href="https://github.com/AlexIn-Tech/alexin.tech_blog_ressources/blob/main/Docker/AFFiNE/docker-compose.yml" target="_blank" rel="noopener">&lt;em>https://github.com/AlexIn-Tech/alexin.tech_blog_ressources/blob/main/Docker/AFFiNE/docker-compose.yml&lt;/em>&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">services&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">affine&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">ghcr.io/toeverything/affine-graphql:stable&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">container_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">affine_selfhosted&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">command&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;sh&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;-c&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;node ./scripts/self-host-predeploy &amp;amp;&amp;amp; node ./dist/index.js&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">ports&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># CHANGE YOUR PORTS HERE IF NEEDED PORT:PORT_INSIDE_CONTAINER&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="s1">&amp;#39;3010:3010&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="s1">&amp;#39;5555:5555&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">redis&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">condition&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">service_healthy&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">postgres&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">condition&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">service_healthy&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># CHANGE YOUR PATH HERE FOR the custom configuration&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/affine-app:/root/.affine/config&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># CHANGE YOUR PATH HERE FOR blob storage&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/affine-app:/root/.affine/storage&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">logging&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">driver&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;json-file&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">options&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">max-size&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;1000m&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">unless-stopped&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">environment&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">NODE_OPTIONS=&amp;#34;--import=./scripts/register.js&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">AFFINE_CONFIG_PATH=/root/.affine/config&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">REDIS_SERVER_HOST=redis&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># REPLACE MY_DB_PWD_TOP_SECRET BY YOUR PWD&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">DATABASE_URL=postgres://affine:MY_DB_PWD_TOP_SECRET@postgres:5432/affine&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">NODE_ENV=production&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># REPLACE YOUR_EMAIL BY YOUR EMAIL&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">AFFINE_ADMIN_EMAIL=YOUR_EMAIL&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># REPLACE YOUR_PWD BY YOUR PWD&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">AFFINE_ADMIN_PASSWORD=YOUR_PWD&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">redis&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">redis&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">container_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">affine_redis&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">unless-stopped&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># CHANGE YOUR PATH HERE&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/affine-redis:/data&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">healthcheck&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">test&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;CMD&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;redis-cli&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;--raw&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;incr&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;ping&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">interval&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">10s&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">timeout&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">5s&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">retries&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">5&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">postgres&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">postgres&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">container_name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">affine_postgres&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">unless-stopped&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># CHANGE YOUR PATH HERE&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/affine-db:/var/lib/postgresql/data&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">healthcheck&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">test&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;CMD-SHELL&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;pg_isready -U affine&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">interval&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">10s&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">timeout&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">5s&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">retries&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">5&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">environment&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">POSTGRES_USER&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">affine&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="c"># REPLACE MY_DB_PWD_TOP_SECRET BY YOUR PWD&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">POSTGRES_PASSWORD&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">MY_DB_PWD_TOP_SECRET&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">POSTGRES_DB&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">affine&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">PGDATA&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">/var/lib/postgresql/data/pgdata&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;em>Bien entendu tu peux aussi faire d&amp;rsquo;autres changements si tu le souhaites, comme p.ex modifier le nom d&amp;rsquo;utilisateur postgres ou ce genre de choses.&lt;/em>&lt;/p>
&lt;p>Pour l&amp;rsquo;installation rien de plus simple =&amp;gt; Unraid &amp;gt; Docker &amp;gt; New Stack &amp;gt; Edit Stack &amp;gt; On y ajoute le contenu de notre fichier compose.yaml et le tour est joué =&amp;gt; Compose Up , et ça tourne !&lt;/p>
&lt;h2 id="config-dans-lapp">Config dans l&amp;rsquo;app&lt;/h2>
&lt;p>Comme mentionné dans &lt;a href="https://docs.affine.pro/docs/self-host-affine" target="_blank" rel="noopener">la documentation officielle&lt;/a>, n&amp;rsquo;oubliez pas de vous logguer avec vos identifient puis de synchroniser votre workspace avec le &amp;ldquo;cloud&amp;rdquo;. Par cloud ils entendent &amp;ldquo;votre propre serveur&amp;rdquo; vu qu&amp;rsquo;on est en selfhost.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="AFFiNE" srcset="
/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image_hu_9012187a772223d4.webp 400w,
/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image_hu_fb93be80f575fdd7.webp 760w,
/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image_hu_866beabc4c9c4b3c.webp 1200w"
src="https://alexin.tech/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image_hu_9012187a772223d4.webp"
width="760"
height="505"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Ce sont les identifiants que vous avez spécifier dans le fichier compose.yaml&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="AFFiNE" srcset="
/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image-1_hu_790a5056d031d4d4.webp 400w,
/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image-1_hu_3e24e09c49eb63ee.webp 760w,
/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image-1_hu_2f745591e777344c.webp 1200w"
src="https://alexin.tech/fr/2024/03/08/selfhoster-/-heberger-affine-sur-unraid-en-utilisant-docker/image-1_hu_790a5056d031d4d4.webp"
width="760"
height="450"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Une fois loggué il ne vous restera plus qu&amp;rsquo;à synchroniser le workspace avec &amp;ldquo;le cloud&amp;rdquo; &lt;em>(qui est en fait votre propre serveur)&lt;/em> .&lt;/p>
&lt;p>Voilà , Enjoy ! 😎&lt;/p>
&lt;p>AlexIn Tech&lt;/p>
&lt;/div></description></item><item><title>Comment remplacer les disques d'un NAS QNAP par des plus gros ?</title><link>https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/</link><pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/</guid><description>&lt;div class="article-story">
&lt;h1 id="comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros-">Comment remplacer les disques d&amp;rsquo;un NAS QNAP par des plus gros ?&lt;/h1>
&lt;p>Bonjour à tous,&lt;/p>
&lt;p>Aujourd&amp;rsquo;hui petit article rapide pour vous expliquer comment augmenter le storage d&amp;rsquo;un NAS QNAP. Pour se faire rien de plus simple, on va remplacer les anciens disques par des plus gros. (article officiel &lt;a href="https://www.qnap.com/en/how-to/tutorial/article/online-raid-capacity-upgrade" target="_blank" rel="noopener">ici&lt;/a>)&lt;/p>
&lt;p>Connectez-vous à QTS avec votre compte administrateur et allez dans &amp;ldquo;Stockage et snapshots&amp;rdquo; &amp;gt; &amp;ldquo;Stockage&amp;rdquo; &amp;gt; &amp;ldquo;Stockage/Snapshots&amp;rdquo; .&lt;/p>
&lt;p>Sélectionnez votre pool ou volume (3) puis cliquez sur &amp;ldquo;Gérer&amp;rdquo; (4) puis &amp;ldquo;Gérer&amp;rdquo; (5) et &amp;ldquo;Remplacer les disques un par un&amp;rdquo; (6) .
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./featured.png.png" alt="qnap" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Sélectionnez le disque que vous souhaitez remplacer en premier puis cliquez sur remplacer :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image_hu_29371fa0a4e252b9.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image_hu_f0a8fe409f6ce282.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image_hu_1650680df11b2162.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image_hu_29371fa0a4e252b9.webp"
width="760"
height="474"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Vous pouvez maintenant retirer le disque :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-1_hu_e4c4538ac067bc0e.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-1_hu_d1c82dea1935a51a.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-1_hu_30200dfe205fa35.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-1_hu_e4c4538ac067bc0e.webp"
width="760"
height="392"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Et insérer le nouveau qui a une plus grande capacité :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-2_hu_33269455546c585f.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-2_hu_5e97c003a3b18e7f.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-2_hu_6bbf4ba85888abd8.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-2_hu_33269455546c585f.webp"
width="760"
height="415"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Après avoir inséré le nouveau disque il faut attendre la reconnexion, il y aura des premiers bips droit après avoir mis le nouveau disque :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-3_hu_10780c6aab91ac70.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-3_hu_78304b25ef87ac26.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-3_hu_1bd1b0360e59f637.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-3_hu_10780c6aab91ac70.webp"
width="760"
height="466"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Puis il va re-biper pour indiquer qu&amp;rsquo;il a commencé la reconstruction du RAID :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-4_hu_5874e4c8d1c86808.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-4_hu_fccbf57f8ce4adc5.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-4_hu_2bacb21291afa4a7.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-4_hu_5874e4c8d1c86808.webp"
width="500"
height="259"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Il faut maintenant attendre la fin de la reconstruction du RAID avant de remplacer le suivant.&lt;/p>
&lt;p>&lt;strong>Une fois que le RAID à terminé de se reconstruire, répétez les steps ci-dessus pour remplacer le/les prochain/s disque/s dur/s.&lt;/strong>&lt;/p>
&lt;p>Une fois le remplacement de tous les disques effectué, il faut à nouveau attendre la reconstruction du RAID.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-5_hu_f682863bd1149011.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-5_hu_37d1fc55ff79d487.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-5_hu_ccefa42b5bcfa79b.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-5_hu_f682863bd1149011.webp"
width="760"
height="467"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-6_hu_7efab5a8d8d19bdd.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-6_hu_ca45d0b88cde811a.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-6_hu_31b2210bc41fb391.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-6_hu_7efab5a8d8d19bdd.webp"
width="283"
height="74"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Voilà le RAID est reconstruit !
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-7_hu_8b85ec19fe1e36ec.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-7_hu_7970df681d547b84.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-7_hu_d2c48a446a907117.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-7_hu_8b85ec19fe1e36ec.webp"
width="335"
height="117"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Maintenant il nous reste une seule chose à faire, étendre notre RAID.&lt;/p>
&lt;p>Pour se faire, cliquez sur &amp;ldquo;Etendre la capacité&amp;rdquo; afin d&amp;rsquo;augmenter la capacité du RAID.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-8_hu_9a44d4c191507af0.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-8_hu_6f3907fc9453eed5.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-8_hu_e16eb2ae1f818bd9.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-8_hu_9a44d4c191507af0.webp"
width="760"
height="467"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Puis &amp;ldquo;OK&amp;rdquo;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-9_hu_edbd446e73fa3ec0.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-9_hu_7af5906b2182b829.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-9_hu_89685483d35f6006.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-9_hu_edbd446e73fa3ec0.webp"
width="452"
height="155"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Il va lancer la tâche d&amp;rsquo;agrandissement avec du coup une synchronisation.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="qnap" srcset="
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-10_hu_51ee4d777ee08c66.webp 400w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-10_hu_a680dec50fac0d44.webp 760w,
/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-10_hu_49a1d9450410c691.webp 1200w"
src="https://alexin.tech/fr/2024/02/25/comment-remplacer-les-disques-dun-nas-qnap-par-des-plus-gros/image-10_hu_51ee4d777ee08c66.webp"
width="760"
height="430"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Une fois cette tâche terminée tout sera en ordre et vous aurez ainsi agrandi avec succès votre RAID ! Félicitations !&lt;/p>
&lt;p>Enjoy ! 😎&lt;/p>
&lt;p>AlexIn Tech&lt;/p>
&lt;/div></description></item><item><title>Monica PRM n'envoie pas les rappels par e-mail - Comment résoudre ce problème</title><link>https://alexin.tech/fr/2024/02/04/monica-prm-nenvoie-pas-les-rappels-par-e-mail-comment-resoudre-ce-probleme/</link><pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2024/02/04/monica-prm-nenvoie-pas-les-rappels-par-e-mail-comment-resoudre-ce-probleme/</guid><description>&lt;div class="article-story">
&lt;h1 id="monica-prm-nenvoie-pas-les-rappels-par-e-mail---comment-résoudre-ce-problème">Monica PRM n&amp;rsquo;envoie pas les rappels par e-mail - Comment résoudre ce problème&lt;/h1>
&lt;p>Dans une mise à jour récente de mon guide sur l&amp;rsquo;installation de Monica en utilisant Docker sur Unraid, quelques utilisateurs ont signalé avoir rencontré un problème où les rappels par e-mail n&amp;rsquo;étaient pas envoyés et j&amp;rsquo;ai également eu le même problème. Ce problème, suivi sur le GitHub de Monica sous le numéro &lt;a href="https://www.alexin.tech/blog/hashtags/4178" target="_blank" rel="noopener">#4178&lt;/a>, a une solution simple que je vais partager avec vous aujourd&amp;rsquo;hui.&lt;/p>
&lt;p>L&amp;rsquo;essentiel de la solution implique d&amp;rsquo;exécuter la tâche cron dans un conteneur Docker dédié. Ci-dessous, j&amp;rsquo;ai partagé les configurations des fichiers Docker-compose et .env que j&amp;rsquo;utilise sur mon serveur Unraid. Cette architecture résout le problème, assurant que vMonica envoie les rappels par e-mail comme prévu.&lt;/p>
&lt;h3 id="docker-compose-file">Docker-compose File&lt;/h3>
&lt;p>🆕 &lt;em>Afin de copier/coller/télécharger plus facilement ce code, j&amp;rsquo;ai créé un repository dédié aux ressources de mon blog sur github. Voici le lien des fichiers docker-compose.yml et .env de cet article :&lt;/em>&lt;/p>
&lt;p>&lt;a href="https://github.com/AlexIn-Tech/alexin.tech_blog_ressources/tree/main/Docker/Monica" target="_blank" rel="noopener">&lt;em>https://github.com/AlexIn-Tech/alexin.tech_blog_ressources/tree/main/Docker/Monica&lt;/em>&lt;/a>&lt;/p>
&lt;p>Voici le fichier &lt;strong>docker-compose.yml&lt;/strong> :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;3.9&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">services&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">app&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">env_file&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">.env&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">db&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">ports&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="m">8181&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="m">80&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/monica-webapp:/var/www/html/storage&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">cron&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">env_file&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">.env&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/monica-webapp:/var/www/html/storage&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">command&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">cron.sh&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">db&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">db&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">mariadb:11&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">environment&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_RANDOM_ROOT_PASSWORD=true&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_DATABASE=monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_USER=XXXXXXXXXXXXXXXXX&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_PASSWORD=XXXXXXXXXXXXXXXXXXX&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/monica-db:/var/lib/mysql&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">adminer&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">adminer&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">ports&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="m">8282&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="m">8080&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="environment-file-env">Environment File (.env)&lt;/h3>
&lt;p>Et voici le fichier de configuration &lt;strong>.env&lt;/strong> :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">APP_ENV=local
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">APP_DEBUG=false
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># The encryption key. Must be 32 characters long exactly.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Use `echo -n &amp;#39;base64:&amp;#39;; openssl rand -base64 32` to generate a random key.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">APP_KEY=XXXXXXXXXXXXXXX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># The URL of your application.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># APP_URL=http://localhost
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Set trusted proxy IP addresses.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># To trust all proxies that connect directly to your server, use a &amp;#34;*&amp;#34;.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># APP_TRUSTED_PROXIES=
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Database information
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># DB_CONNECTION=mysql
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DB_HOST=db
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DB_DATABASE=monica
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DB_USERNAME=XXXXXXXXXXXX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">DB_PASSWORD=XXXXXXXXXXXXXXXXXXXXX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Mail credentials used to send emails from the application.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_DRIVER=smtp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_HOST=smtp.yourmailservice.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_PORT=587
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_USERNAME=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_ENCRYPTION=tls
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Outgoing emails will be sent with these identity
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_FROM_ADDRESS=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">MAIL_FROM_NAME=Monica
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">LOG_CHANNEL=stderr
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">CACHE_DRIVER=database
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">SESSION_DRIVER=database
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">QUEUE_DRIVER=sync
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Note importante&lt;/strong>: Assurez-vous de remplacer les espaces réservés &lt;strong>XXXXXXXXXXXXXXX&lt;/strong> par vos véritables informations pour les identifiants de la base de données, la clé de l&amp;rsquo;application, la configuration du service de messagerie, etc. Sans cela, l&amp;rsquo;appli ne fonctionnera pas correctement ou les emails de rappel ne fonctionneront pas&amp;hellip;&lt;/p>
&lt;p>En configurant le service &lt;strong>cron&lt;/strong> dans un conteneur séparé, nous assurons que les tâches cron nécessaires pour envoyer les rappels par e-mail sont exécutées de manière fiable.&lt;/p>
&lt;p>Si vous avez suivi mon guide précédent sur la configuration de Monica sur Unraid et rencontré ce problème, la mise en œuvre de la solution ci-dessus devrait permettre à vos rappels par e-mail de fonctionner sans problème. Pour une discussion plus approfondie ou si vous rencontrez d&amp;rsquo;autres problèmes, n&amp;rsquo;hésitez pas à visiter la page du problème GitHub de Monica ou à me contacter via le formulaire &amp;ldquo;&lt;a href="https://www.alexin.tech/contact" target="_blank" rel="noopener">Contactez-moi&lt;/a>&amp;rdquo;.&lt;/p>
&lt;p>Enjoy 😎&lt;/p>
&lt;p>AlexIn Tech&lt;/p>
&lt;/div></description></item><item><title>Comment installer Monica à l'aide de Docker sur Unraid</title><link>https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/</link><pubDate>Fri, 26 Jan 2024 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/</guid><description>&lt;div class="article-story">
&lt;h1 id="comment-installer-monica-à-laide-de-docker-sur-unraid">Comment installer Monica à l&amp;rsquo;aide de Docker sur Unraid&lt;/h1>
&lt;p>Si vous aimez organiser votre vie personnelle en utilisant des outils digitaux et que vous aimez les solutions auto-hébergées, vous avez peut-être déjà entendu parlé de &lt;a href="http://github.com/monicahq/monica" target="_blank" rel="noopener">Monica&lt;/a>. Monica est une application Web open source pour la gestion des relations personnelles. Considérez-le comme un CRM, mais pour votre vie personnelle. Aujourd&amp;rsquo;hui, je vais vous guider tout au long du processus d&amp;rsquo;installation de Monica à l&amp;rsquo;aide de Docker sur Unraid. Je vais également vous faire une explication détaillée du fichier yaml pour docker-compose que l&amp;rsquo;on va utiliser.&lt;/p>
&lt;h2 id="prérequis">Prérequis&lt;/h2>
&lt;p>Avant de plonger dans le fichier YAML, couvrons les bases. Pour utiliser Docker Compose sur Unraid, vous devrez installer une application communautaire appelée « Docker Compose Manager ». développée par &amp;ldquo;primeval_god&amp;rdquo;. Ceci est essentiel pour exécuter le script Docker Compose YAML. Plus d&amp;rsquo;infos sur le &lt;a href="https://forums.unraid.net/topic/114415-plugin-docker-compose-manager/" target="_blank" rel="noopener">forum Unraid&lt;/a>.&lt;/p>
&lt;h2 id="comprendre-le-fichier-yaml-docker-compose">Comprendre le fichier YAML Docker Compose&lt;/h2>
&lt;p>Tout d&amp;rsquo;abord, voici le fichier yaml docker-compose que j&amp;rsquo;ai produit sur la base de l&amp;rsquo;exemple &lt;a href="https://hub.docker.com/_/" target="_blank" rel="noopener">officiel&lt;/a> et j&amp;rsquo;ai aussi regardé comment &lt;a href="https://mariushosting.com/how-to-" target="_blank" rel="noopener">Marius&lt;/a> l&amp;rsquo;a fait avec les paramètres email :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;3.9&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">services&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">app&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">depends_on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">db&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">ports&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="m">8181&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="m">80&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">environment&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">APP_KEY=&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c"># Generate with `echo -n &amp;#39;base64:&amp;#39;; openssl rand -base64 32`&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">DB_HOST=db&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">DB_USERNAME=monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">DB_PASSWORD=secret&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">APP_ENV=local&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_MAILER=smtp&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_HOST=smtp.gmail.com&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_PORT=587&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_USERNAME=Your-own-gmail-address&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_PASSWORD=Your-own-app-password&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_ENCRYPTION=tls&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_FROM_ADDRESS=Your-own-gmail-address&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MAIL_FROM_NAME=Monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/monica:/var/www/html/storage&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">db&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">mariadb:11&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">environment&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_RANDOM_ROOT_PASSWORD=true&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_DATABASE=monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_USER=monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">MYSQL_PASSWORD=secret&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">volumes&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">/mnt/user/appdata/monica-db:/var/lib/mysql&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">restart&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">always&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Décomposons ensemble ce fichier YAML pour docker-compose ! &lt;em>(J&amp;rsquo;ai décidé d&amp;rsquo;expliquer comment s&amp;rsquo;articulait ce fichier car c&amp;rsquo;était la première fois que j&amp;rsquo;utilisais docker-compose, j&amp;rsquo;ai donc du faire cet effort de tout décortiquer).&lt;/em>&lt;/p>
&lt;h3 id="version">Version&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;3.9&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cette ligne spécifie la version du format de fichier Docker Compose. J&amp;rsquo;ai utilisé celui de l&amp;rsquo;exemple officiel.&lt;/p>
&lt;h3 id="services">Services&lt;/h3>
&lt;p>La section services définit les containers que nous exécuterons.&lt;/p>
&lt;h4 id="service-dapplication">Service d&amp;rsquo;application&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">services&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">app&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">monica&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">...&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;strong>image : monica&lt;/strong> : spécifie l&amp;rsquo;image Docker à utiliser, dans ce cas, &amp;lsquo;monica&amp;rsquo;.&lt;/li>
&lt;li>&lt;strong>depends_on: - db&lt;/strong> : garantit que le service de base de données (db) est démarré avant l&amp;rsquo;application.&lt;/li>
&lt;li>&lt;strong>ports : - 8181:80&lt;/strong> : mappe le port 80 dans le conteneur au port 8181 sur la machine hôte (Unraid).&lt;/li>
&lt;/ul>
&lt;h5 id="variables-denvironnement">Variables d&amp;rsquo;environnement&lt;/h5>
&lt;ul>
&lt;li>&lt;strong>APP_KEY&lt;/strong> : une clé pour le chiffrage de votre application. Générez une clef de 32 caractères.&lt;/li>
&lt;li>&lt;strong>DB_HOST=db&lt;/strong> ainsi que les autres variables (user, password) en lien avec la base de données.&lt;/li>
&lt;li>&lt;strong>MAIL_*&lt;/strong> : Configuration pour l&amp;rsquo;envoi d&amp;rsquo;e-mails via l&amp;rsquo;application.&lt;/li>
&lt;/ul>
&lt;h5 id="volumes">Volumes&lt;/h5>
&lt;ul>
&lt;li>&lt;strong>/mnt/user/appdata/monica:/var/www/html/storage&lt;/strong> : mappe un répertoire sur votre hôte (Unraid) à un répertoire dans le conteneur pour un stockage persistant. Par défaut, les conteneurs Unraid stockeront les données dans &lt;strong>/mnt/user/appdata/name_of_your_container&lt;/strong>&lt;/li>
&lt;/ul>
&lt;h5 id="politique-de-restart">Politique de restart&lt;/h5>
&lt;ul>
&lt;li>&lt;strong>restart : toujours&lt;/strong> : garantit que le conteneur redémarre toujours à moins qu&amp;rsquo;il ne soit arrêté manuellement.&lt;/li>
&lt;/ul>
&lt;h4 id="service-de-base-de-données">Service de base de données&lt;/h4>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">db&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">image&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">mariadb:11&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">...&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;strong>image : mariadb:11&lt;/strong> : Spécifie l&amp;rsquo;image MariaDB à utiliser pour la base de données.&lt;/li>
&lt;li>&lt;strong>environnement&lt;/strong> : similaire au service d&amp;rsquo;application, il est utilisé pour la configuration de la base de données.&lt;/li>
&lt;li>&lt;strong>volumes&lt;/strong> : garantit la persistance des données pour la base de données.&lt;/li>
&lt;/ul>
&lt;h2 id="modifiez-les-valeurs-de-vos-variables">Modifiez les valeurs de vos variables&lt;/h2>
&lt;p>Avant de déployer Monica à l&amp;rsquo;aide du fichier Docker Compose YAML, il est crucial de personnaliser certaines valeurs pour les adapter à votre configuration :&lt;/p>
&lt;ol>
&lt;li>&lt;strong>APP_KEY&lt;/strong> : il s&amp;rsquo;agit d&amp;rsquo;une clé de chiffrement unique pour votre instance.&lt;/li>
&lt;li>&lt;strong>Identifiants de base de données&lt;/strong> : &lt;strong>DB_USERNAME&lt;/strong>, &lt;strong>DB_PASSWORD&lt;/strong> et leurs valeurs correspondantes dans le service &lt;strong>db&lt;/strong> doivent être défini pour l&amp;rsquo;identification à la DB.&lt;/li>
&lt;li>&lt;strong>Configuration de la messagerie&lt;/strong> : ajustez les variables &lt;strong>MAIL_*&lt;/strong> avec vos paramètres de messagerie. Cela inclut les détails de votre fournisseur de messagerie et les informations d&amp;rsquo;identification pour l&amp;rsquo;envoi d&amp;rsquo;e-mails depuis Monica. Concernant l&amp;rsquo;email j&amp;rsquo;utilise un mot de passe d&amp;rsquo;application pour mon adresse Gmail.&lt;/li>
&lt;li>&lt;strong>Volumes&lt;/strong> : les chemins dans la section &lt;strong>volumes&lt;/strong> doivent être ajustés en fonction de où vous souhaitez stocker les données de Monica.&lt;/li>
&lt;li>&lt;strong>Ajustement des ports&lt;/strong> : il est essentiel de s&amp;rsquo;assurer que le port défini dans la section &lt;strong>ports&lt;/strong> (par exemple, &lt;strong>8181:80&lt;/strong>) n&amp;rsquo;entre pas en conflit avec d&amp;rsquo;autres services sur votre serveur Unraid. Remplacez &lt;strong>8181&lt;/strong> par n&amp;rsquo;importe quel port disponible sur votre hôte.&lt;/li>
&lt;/ol>
&lt;p>Faire ces ajustements est la clé d&amp;rsquo;une installation Monica réussie et personnalisée sur votre serveur Unraid.&lt;/p>
&lt;h2 id="installer-monica-sur-unraid">Installer Monica sur Unraid&lt;/h2>
&lt;h3 id="installer-docker-compose-manager-sur-unraid">Installer Docker Compose Manager sur Unraid&lt;/h3>
&lt;p>Vous le trouverez dans les applications communautaires :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid-Monica" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image_hu_e13531e234268725.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image_hu_a6c3df1bde978e2b.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image_hu_7399bd5c709143ce.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image_hu_e13531e234268725.webp"
width="402"
height="282"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Accédez à l&amp;rsquo;onglet &amp;ldquo;Docker&amp;rdquo; dans le menu de Unraid puis, tout en bas, après la liste de vos containers existants vous trouverz ceci : &amp;ldquo;Compose&amp;rdquo;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid-Docker-Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-1_hu_90458f190cb22742.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-1_hu_f4541892b7a6d6e.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-1_hu_8e9ab77549dcfc37.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-1_hu_90458f190cb22742.webp"
width="402"
height="154"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="créez-la-stack-à-laide-du-fichier-yaml">Créez la stack à l&amp;rsquo;aide du fichier YAML&lt;/h3>
&lt;p>Cliquez sur &amp;ldquo;ADD NEW STACK&amp;rdquo; et choisissez le nom de votre stack, par exemple &amp;ldquo;Monica&amp;rdquo;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid-Docker-Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-2_hu_1cbe14d7ead40763.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-2_hu_c3375d149a5083b9.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-2_hu_cc02cf9460ec957e.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-2_hu_1cbe14d7ead40763.webp"
width="468"
height="325"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Vous devriez recevoir un message de réussite après avoir cliqué sur OK
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid-Docker-Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-3_hu_2f3e4adc6ad9df9e.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-3_hu_866f1c6fde0aa84b.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-3_hu_89aa97fb717d0602.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-3_hu_2f3e4adc6ad9df9e.webp"
width="472"
height="296"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Modifions maintenant la stack :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-4_hu_c30b94b0adc88423.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-4_hu_13778a057f541bcb.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-4_hu_f7b22d0d49cfe124.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-4_hu_c30b94b0adc88423.webp"
width="397"
height="198"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Cliquez sur &amp;ldquo;EDIT STACK&amp;rdquo;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-5_hu_5305489b2cf63b5b.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-5_hu_b962cf21a0e75baa.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-5_hu_9994d6fca57ede4e.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-5_hu_5305489b2cf63b5b.webp"
width="631"
height="144"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Choisissez « COMPOSE FILE » ;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-6_hu_f8a6791b2bb62f75.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-6_hu_a1fcf67e686bb8a.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-6_hu_1a5044e01995b124.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-6_hu_f8a6791b2bb62f75.webp"
width="468"
height="435"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Copiez le contenu de votre fichier YAML et remplacez tout ici. Puis cliquez sur &amp;ldquo;ENREGISTRER LES MODIFICATIONS&amp;rdquo;.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-7_hu_e40a188f9bb8adf6.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-7_hu_882467d182b11ef3.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-7_hu_cd46ff632eadfcc8.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-7_hu_e40a188f9bb8adf6.webp"
width="760"
height="342"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Ensuite vous aurez la fenêtre suivante :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Composse" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-8_hu_f5331765c12ea865.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-8_hu_94d51cc614fd1582.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-8_hu_c4104dc0fddbc463.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-8_hu_f5331765c12ea865.webp"
width="471"
height="634"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Remplacer Icon par certaines URL d&amp;rsquo;icônes, par exemple j&amp;rsquo;ai utilisé celles-ci :&lt;/p>
&lt;p>Icône de l&amp;rsquo;application :
&lt;a href="https://pbs.twimg.com/profile_images/951820722191720450/mtCNuIXX_400x400.jpg" target="_blank" rel="noopener">https://pbs.twimg.com/profile_images/951820722191720450/mtCNuIXX_400x400.jpg&lt;/a>&lt;/p>
&lt;p>Icône db :
&lt;a href="https://mariadb.com/wp-content/uploads/2019/11/mariadb-logo-vert_blue-transparent.png" target="_blank" rel="noopener">https://mariadb.com/wp-content/uploads/2019/11/mariadb-logo-vert_blue-transparent.png&lt;/a>&lt;/p>
&lt;p>Et écrivez simplement l&amp;rsquo;URL de votre interface utilisateur Web pour l&amp;rsquo;application, elle ressemblera donc à quelque chose comme :
http://votre_unraid_IP:votrePort/&lt;/p>
&lt;p>Laissez vide pour le shell.&lt;/p>
&lt;p>Et appuyez sur OK . Une fois terminé, cliquez sur « COMPOSE UP » ; pour exécuter docker-compose et tout installer :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-9_hu_15911dd087ecb6ff.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-9_hu_79f72cdef9ea4397.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-9_hu_5081e6440e2f82d2.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-9_hu_15911dd087ecb6ff.webp"
width="149"
height="111"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Cela ouvrira une fenêtre qui affichera la progression
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-10_hu_1596f537d6c9550b.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-10_hu_53ffe69d151c7f08.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-10_hu_458fe3def6187208.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-10_hu_1596f537d6c9550b.webp"
width="760"
height="527"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Et vous avez terminé !&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Docker Compose" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-11_hu_fa68059005eb6610.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-11_hu_4722363c3107dc1f.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-11_hu_3ef4cd37550d9af6.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-11_hu_fa68059005eb6610.webp"
width="260"
height="82"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Unraid Monica Containers" srcset="
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-12_hu_1cdc1f05b489ac44.webp 400w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-12_hu_be7e77a112503fe.webp 760w,
/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-12_hu_320114883695a8c5.webp 1200w"
src="https://alexin.tech/fr/2024/01/26/comment-installer-monica-a-laide-de-docker-sur-unraid/image-12_hu_1cdc1f05b489ac44.webp"
width="200"
height="175"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>FÉLICITATIONS ! Vous avez réussi à self-hoster Monica et vous avez appris à créer votre fichier yaml docker-compose ainsi qu&amp;rsquo;à l&amp;rsquo;utiliser !&lt;/p>
&lt;p>Vous pouvez désormais accéder à Monica en allant sur http://your_unraid_IP:yourPort/ !&lt;/p>
&lt;p>En suivant ces étapes, vous devriez avoir une instance fonctionnelle de Monica sur votre serveur Unraid, personnalisée selon vos préférences. C&amp;rsquo;est un excellent exemple de la flexibilité qu&amp;rsquo;offre Docker et un projet parfait pour plonger dans Docker Compose !&lt;/p>
&lt;p>Enjoy ! 😎&lt;/p>
&lt;p>AlexIn Tech&lt;/p>
&lt;h3 id="update-du-04022024--les-reminders-par-email-ne-senvoient-pas-comment-résoudre-ce-problème-">Update du 04.02.2024 : Les reminders par email ne s&amp;rsquo;envoient pas, comment résoudre ce problème ?&lt;/h3>
&lt;p>J&amp;rsquo;ai comme vous rencontré ce problème, et après quelques jours de recherche j&amp;rsquo;ai maintenant une solution que je vous partage dans le prochain article sur Monica !&lt;/p>
&lt;/div></description></item><item><title>Comment configurer un serveur privé Palworld et sécuriser son accès</title><link>https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/</guid><description>&lt;div class="article-story">
&lt;h1 id="comment-configurer-un-serveur-privé-palworld-et-sécuriser-son-accès">Comment configurer un serveur privé Palworld et sécuriser son accès&lt;/h1>
&lt;p>Bonjour à tous,&lt;/p>
&lt;p>L&amp;rsquo;accès anticipé à Palworld vient de sortir et comme j&amp;rsquo;aimerais jouer avec mes amis, j&amp;rsquo;ai décidé de configurer un &lt;strong>serveur palworld dédié et sécurisé&lt;/strong>.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./featured.jpg" alt="serveur palworld dédié et sécurisé" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;em>serveur palworld dédié et sécurisé&lt;/em>&lt;/p>
&lt;h2 id="le-projet---serveur-privé-palworld">Le projet - Serveur privé Palworld&lt;/h2>
&lt;p>J&amp;rsquo;aimerais gérer un serveur privé Palworld mais en gardant la sécurité à l&amp;rsquo;esprit. Je ne veux pas l&amp;rsquo;exposer au public et je ne veux pas ouvrir de ports sur mon routeur. De plus, je préfère exécuter ce type d&amp;rsquo;applications/serveurs directement dans des conteneurs Docker.&lt;/p>
&lt;p>Comme j&amp;rsquo;ai un serveur Unraid chez moi, j&amp;rsquo;ai choisi d&amp;rsquo;y exécuter un conteneur Docker du serveur Palworld et d&amp;rsquo;utiliser Tailscale afin d&amp;rsquo;accéder en toute sécurité au serveur.&lt;/p>
&lt;p>&lt;strong>Commençons !&lt;/strong>&lt;/p>
&lt;h3 id="installer-le-serveur-palworld">Installer le serveur Palworld&lt;/h3>
&lt;p>J&amp;rsquo;utilise donc une image de conteneur Docker pour exécuter Palworld. Cette image Docker a été préparée par &amp;ldquo;ich777&amp;rdquo;.&lt;/p>
&lt;p>Si vous avez un serveur Unraid comme moi, allez simplement sur votre serveur Unraid, puis accédez à &amp;ldquo;Apps&amp;rdquo;. et installez cette image docker :&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Image Docker Palworld par ich777" srcset="
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image_hu_eea415f4a4afe0f7.webp 400w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image_hu_f5fdf22442190b1b.webp 760w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image_hu_2c3c2e7461c8dbae.webp 1200w"
src="https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image_hu_eea415f4a4afe0f7.webp"
width="413"
height="255"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;em>Image Docker Palworld par ich777&lt;/em>&lt;/p>
&lt;p>L&amp;rsquo;installation prendra un certain temps car il faut télécharger tous les fichiers liés au jeu.&lt;/p>
&lt;h2 id="modifiez-le-fichier-de-configuration-de-votre-serveur-palworld">Modifiez le fichier de configuration de votre serveur palworld&lt;/h2>
&lt;p>Arrêtez votre conteneur Docker.&lt;/p>
&lt;p>La configuration se trouve à l&amp;rsquo;adresse : &amp;hellip;/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini&lt;/p>
&lt;p>Ici, vous pouvez modifier les paramètres de votre choix pour votre serveur, mais vous devez au moins modifier les éléments suivants :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">ServerName=&amp;#34;TheNameOfYourServer&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ServerDescription=&amp;#34;Descriptions of your server&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">AdminPassword=&amp;#34;YourAdminPWD&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ServerPassword=&amp;#34;NOPASSWORD-REMOVE&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">PublicPort=8211,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">PublicIP=&amp;#34;YourTailScaleUnraidServerIP&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>⚠️ &lt;em>À l&amp;rsquo;heure actuelle, il y a un problème d&amp;rsquo;accès à Palworld via une adresse IP si vous avez configuré un mot de passe dans le fichier de configuration de votre serveur Palworld. Supprimez donc le « mot de passe du serveur ». et définissez simplement :&lt;/em>&lt;/p>
&lt;p>&lt;em>ServerPassword=&amp;quot;&amp;quot;&lt;/em>&lt;/p>
&lt;p>&lt;em>Mais comme nous utilisons tailscale, tout est sécurisé par tailscale, nous n&amp;rsquo;aurons donc pas besoin de cette sécurité (le mot de passe) pour accéder au serveur. Seuls les utilisateurs autorisés du tailnet pourront accéder à cette adresse IP et à ce port. Merci aux ACL.&lt;/em> ⚠️&lt;/p>
&lt;p>&lt;strong>Update 2025 :&lt;/strong> &lt;em>Plutôt qu&amp;rsquo;utiliser les ACLs , j&amp;rsquo;utilise la nouvelle intégration de Tailscale avec Unraid qui permet de facilement configurer Tailscaile au niveau du container , et de partager simplement le container avec des contacts. On va sur le container palworld dans notre liste de machines sur tailscale et on fait &amp;ldquo;partager&amp;rdquo; (voir photo ci-dessous).&lt;/em>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Update 2025" srcset="
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_9582cdf2d8e0c15a.webp 400w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_1b50272f502ad838.webp 760w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_610a5f6e0c1120f0.webp 1200w"
src="https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_9582cdf2d8e0c15a.webp"
width="426"
height="200"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Une fois terminé, vous pouvez relancer votre container Docker.&lt;/p>
&lt;h2 id="installer-tailscale-sur-votre-serveur">Installer Tailscale sur votre serveur&lt;/h2>
&lt;p>Concernant la configuration de tailscale, comme j&amp;rsquo;utilise un serveur Unraid, je vous redirige vers cet article incroyable d&amp;rsquo;Ibracorp.&lt;/p>
&lt;p>&lt;a href="https://docs.ibracorp.io/tailscale/" target="_blank" rel="noopener">https://docs.ibracorp.io/tailscale/&lt;/a>&lt;/p>
&lt;h2 id="acls-tailscale">ACLs Tailscale&lt;/h2>
&lt;p>&lt;strong>Update 2025 :&lt;/strong> &lt;em>Plutôt qu&amp;rsquo;utiliser les ACLs , j&amp;rsquo;utilise la nouvelle intégration de Tailscale avec Unraid qui permet de facilement configurer Tailscaile au niveau du container , et de partager simplement le container avec des contacts. On va sur le container palworld dans notre liste de machines sur tailscale et on fait &amp;ldquo;partager&amp;rdquo; (voir photo ci-dessous).&lt;/em>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Update 2025" srcset="
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_9582cdf2d8e0c15a.webp 400w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_1b50272f502ad838.webp 760w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_610a5f6e0c1120f0.webp 1200w"
src="https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-2_hu_9582cdf2d8e0c15a.webp"
width="426"
height="200"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Nous allons maintenant configurer les ACL.&lt;/p>
&lt;p>Dans tailscale, invitez vos amis à rejoindre votre tailnet :&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="panneau d&amp;rsquo;administration tailscale" srcset="
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-1_hu_220a2575ec730a23.webp 400w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-1_hu_231fbf28821b57fd.webp 760w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-1_hu_aa42f123137aed50.webp 1200w"
src="https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-1_hu_220a2575ec730a23.webp"
width="760"
height="141"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>panneau d&amp;rsquo;administration tailscale&lt;/p>
&lt;p>Configurez ensuite les ACL, pour cela cliquez sur &amp;ldquo;Access controls&amp;rdquo; près de « Users ».&lt;/p>
&lt;p>Voici un exemple de ce que vous pouvez faire :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">{
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> // Declare static groups of users.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;groups&amp;#34;: {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;group:owner&amp;#34;: [&amp;#34;your_email_address_as_you_are_the_owner&amp;#34;],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;group:myfriends&amp;#34;: [
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;myfriend1@gmail.com&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;myfriend2@gmail.com&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> },
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;acls&amp;#34;: [
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> // Rule for the &amp;#34;owner&amp;#34; group - full access
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;action&amp;#34;: &amp;#34;accept&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;src&amp;#34;: [&amp;#34;group:owner&amp;#34;],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;dst&amp;#34;: [&amp;#34;*:*&amp;#34;],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> },
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> {
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;action&amp;#34;: &amp;#34;accept&amp;#34;,
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;src&amp;#34;: [&amp;#34;group:myfriends&amp;#34;],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &amp;#34;dst&amp;#34;: [&amp;#34;mytailscaleunraidserverip:8211&amp;#34;],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> },
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ],
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Ici, ce que j&amp;rsquo;ai fait dans cet exemple, c&amp;rsquo;est d&amp;rsquo;autoriser le groupe&amp;quot;myfriends&amp;quot; à accéder accéder uniquement à l&amp;rsquo;adresse IP de mon serveur Unraid uniquement sur le port utilisé par le serveur Palworld.&lt;/p>
&lt;p>Mon serveur n&amp;rsquo;est donc pas accessible au public, seuls mes amis qui ont installé Tailscale sur leurs ordinateurs peuvent accéder à ce serveur. Et ils ne peuvent accéder qu&amp;rsquo;au serveur Palworld et non aux autres serveurs ou services qui pourraient s&amp;rsquo;exécuter sur mon serveur Unraid.&lt;/p>
&lt;h2 id="cest-le-moment-de-jouer-">C&amp;rsquo;est le moment de jouer !&lt;/h2>
&lt;p>Assurez-vous que tailscale est installé sur votre ordinateur et que vous faites partie du réseau tailnet de la personne hébergeant le serveur. Assurez-vous d&amp;rsquo;être connecté à tailscale. Et&amp;hellip;&lt;/p>
&lt;p>&lt;strong>Lancez le jeu !&lt;/strong>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="palworld accède à un serveur dédié sécurisé" srcset="
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-3_hu_c6a4cfe38a14b062.webp 400w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-3_hu_a4d5d83550fe699.webp 760w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-3_hu_984da70c084279bf.webp 1200w"
src="https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-3_hu_c6a4cfe38a14b062.webp"
width="453"
height="255"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>palworld accède à un serveur dédié sécurisé&lt;/p>
&lt;p>Entrez l&amp;rsquo;ip tailscale de votre serveur et son port :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="palworld entrez l&amp;rsquo;adresse IP du serveur" srcset="
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-4_hu_b52a7f6497978e0c.webp 400w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-4_hu_2964cea0127b09a2.webp 760w,
/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-4_hu_3c7ebb5fa46cb944.webp 1200w"
src="https://alexin.tech/fr/2024/01/20/comment-configurer-un-serveur-prive-palworld-et-securiser-son-acces/image-4_hu_b52a7f6497978e0c.webp"
width="472"
height="65"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>palworld entrez l&amp;rsquo;adresse IP du serveur&lt;/p>
&lt;p>Enjoy ! 🤓🕹️&lt;/p>
&lt;/div></description></item><item><title>Mon homelab et mes passions - Découvrez mon univers</title><link>https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/</link><pubDate>Mon, 07 Aug 2023 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/</guid><description>&lt;div class="article-story">
&lt;h1 id="mon-homelab-et-mes-passions---découvrez-mon-univers">Mon homelab et mes passions - Découvrez mon univers&lt;/h1>
&lt;p>Salut à tous ! Aujourd&amp;rsquo;hui, j&amp;rsquo;ai envie de vous parler de mes passions qui rythment mes journées en dehors de mon travail. Je suis un véritable adepte de la technologie, et c&amp;rsquo;est notamment dans mon homelab que je m&amp;rsquo;épanouis le plus. Mais avant de vous plonger dans cet univers numérique captivant, laissez-moi vous présenter mes autres hobbies/passions qui font de moi un touche-à-tout et surtout un multi-passionné.&lt;/p>
&lt;p>Lorsque je ne suis pas plongé dans mon homelab, j&amp;rsquo;aime passer mon temps à pratiquer différentes activités sportives. J&amp;rsquo;ai été pratiquant d&amp;rsquo;arts martiaux, notamment le karaté, le jiu-jitsu et le judo. Ces sports m&amp;rsquo;ont permis de me dépasser et de me sentir en harmonie avec mon corps et mon esprit. Au même titre que la gymnastique aux agrès d&amp;rsquo;ailleurs (oui j&amp;rsquo;ai aussi fait des annééééeeeessss de gym). Cependant, récemment, j&amp;rsquo;ai décidé de faire une pause dans les arts martiaux pour explorer une autre facette : la muscu/le fit. Cette nouvelle expérience me permet de diversifier mes entraînements et de découvrir de nouvelles méthodes pour maintenir et améliorer ma forme physique.&lt;/p>
&lt;p>J&amp;rsquo;aime également m&amp;rsquo;adonner à diverses activités sportives en plein air. Le ski, le snowboard et la randonnée font partie de mes incontournables pour profiter de la montagne et des plaisirs de l&amp;rsquo;hiver. Pendant les saisons plus chaudes, j&amp;rsquo;aime me balader en longboard, glissant avec fluidité sur les routes ou alors me rendre dans divers spots et pratiquer le longboard dancing/freestyle. D&amp;rsquo;ailleurs j&amp;rsquo;ai un projet qui me tient particulièrement à cœur : &lt;a href="http://itemboards.ch/" target="_blank" rel="noopener">itemboards.ch&lt;/a>. Dans le cadre de ce projet, nous (Benj et moi) concevons et créons des longboards, puis nous partons à leur découverte en les skatant. C&amp;rsquo;est un véritable projet de passionnés qui allie mon amour pour le longboard et mon désir de créer des expériences uniques. Bien que&amp;hellip; ce projet ne nous rapporte pas vraiment d&amp;rsquo;argent&amp;hellip; Disons qu&amp;rsquo;on fait de notre mieux pour ne pas (trop) en perdre. 😅&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image_hu_23ac240a17680b9.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image_hu_1df301e60329455e.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image_hu_b609129c1e160282.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image_hu_23ac240a17680b9.webp"
width="507"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards shooting" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-1_hu_8d56aa4a58400bfd.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-1_hu_dbfd158e9593aaf3.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-1_hu_1ebbdf1c38325543.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-1_hu_8d56aa4a58400bfd.webp"
width="507"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-2_hu_3457ce7d7d702fe7.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-2_hu_ed98947245d1be07.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-2_hu_533dbcbb0ad9e32c.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-2_hu_3457ce7d7d702fe7.webp"
width="507"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards shooting" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-3_hu_e08ce19b76d6cd24.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-3_hu_2145397b6d577044.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-3_hu_c95b161adc85b67e.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-3_hu_e08ce19b76d6cd24.webp"
width="507"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards shooting" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-4_hu_1b9a5ecadf76a226.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-4_hu_daf4fde5f06aba58.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-4_hu_28e7d0ab14ff3340.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-4_hu_1b9a5ecadf76a226.webp"
width="507"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-5_hu_5a0b7e6da3258059.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-5_hu_9dd56f96087de641.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-5_hu_2ca6b04e918e012.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-5_hu_5a0b7e6da3258059.webp"
width="507"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards shooting" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-6_hu_87d0ee7edcd4fc30.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-6_hu_2520001ea14d388d.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-6_hu_56eae28cf2db66a0.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-6_hu_87d0ee7edcd4fc30.webp"
width="570"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-7_hu_aee5e7e8439cf9c5.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-7_hu_344e745bf1b30d2b.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-7_hu_7f6c3be5254d7fce.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-7_hu_aee5e7e8439cf9c5.webp"
width="760"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="itemboards" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-8_hu_974e8887a62123b2.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-8_hu_d2dfa91c15edec6a.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-8_hu_2537386b2155f768.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-8_hu_974e8887a62123b2.webp"
width="760"
height="570"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;blockquote>
&lt;p>Crédits photos : Benjamin Régis (&lt;a href="http://pixthit.ch/" target="_blank" rel="noopener">pixthit.ch&lt;/a>) &amp;amp; Michael Muggli (&lt;a href="http://michaelmuggli.ch/" target="_blank" rel="noopener">michaelmuggli.ch&lt;/a>) et Kévin Bigler (&lt;a href="http://kevinbigler.ch/" target="_blank" rel="noopener">kevinbigler.ch&lt;/a>)&lt;/p>&lt;/blockquote>
&lt;p>En dehors de ces activités sportives, j&amp;rsquo;adore me plonger dans un bon livre, notamment les livres de fantaisie et de fantastique. La lecture est pour moi une échappatoire vers de nouveaux horizons, une source d&amp;rsquo;inspiration et de savoir. Rien de tel qu&amp;rsquo;un bon roman fantastique pour m&amp;rsquo;évader dans des mondes imaginaires emplis de magie et d&amp;rsquo;aventures palpitantes.&lt;/p>
&lt;p>Mais ce n&amp;rsquo;est pas tout ! J&amp;rsquo;ai également une autre grande passion : mes adorables chats. Passer du temps avec eux est un véritable bonheur. Leur présence réconfortante et leurs facéties me permettent de me détendre et de me sentir apaisé après une journée bien remplie.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="siamois" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-9_hu_736518274a219409.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-9_hu_f8e072e4bf12f2d6.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-9_hu_d95303f41c583a9e.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-9_hu_736518274a219409.webp"
width="760"
height="426"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Les jeux vidéos font également partie intégrante de ma vie, même si je n&amp;rsquo;ai malheureusement pas toujours le temps d&amp;rsquo;y jouer autant que je le souhaiterais. Lorsqu&amp;rsquo;un nouveau jeu Pokémon sort sur Nintendo Switch, je ne peux m&amp;rsquo;empêcher de me plonger dans cet univers captivant. De même, lorsqu&amp;rsquo;une nouvelle extension de World of Warcraft ou une grosse mise à jour de Dofus est disponible, je suis au rendez-vous pour explorer de nouvelles contrées virtuelles et vivre des aventures épiques.&lt;/p>
&lt;p>En plus de tout cela, j&amp;rsquo;ai récemment découvert le jeu de rôle à travers Chroniques Oubliées, et j&amp;rsquo;ai été immédiatement conquis ! C&amp;rsquo;est une expérience incroyable où l&amp;rsquo;imagination prend vie. Actuellement, je tente de faire mes débuts en tant que MJ (maître du jeu) et de rassembler une petite équipe de joueurs. Si certains lecteurs sont MJ et recherchent un joueur, je serais ravi de ré-incarner mon Gnome Forgesort du nom de Jackpot !
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="jackpot - gnome forgesort" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-10_hu_7d0ce5b6a680f82d.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-10_hu_6a469671c62fbdaf.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-10_hu_2ede5c349dfe8927.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-10_hu_7d0ce5b6a680f82d.webp"
width="760"
height="426"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Maintenant, revenons à mon homelab, cet espace numérique qui me passionne tant ! Dans mon chez-moi technologique, je me lance dans une multitude de projets allant du réseau, à la virtualisation en passant par de l&amp;rsquo;automatisation et ce, jusqu&amp;rsquo;au développement. J&amp;rsquo;ai par exemple un hyperviseur single host ESXi, où je fais tourner un environnement Windows Server complet, comprenant Active Directory, RDS et bien d&amp;rsquo;autres services essentiels. Cette configuration me permet de créer et gérer un environnement de test complet pour mes projets Windows.&lt;/p>
&lt;p>En outre, j&amp;rsquo;ai également un serveur physique tournant sous Unraid OS, qui utilise la virtualisation KVM pour héberger différents systèmes d&amp;rsquo;exploitation. J&amp;rsquo;ai également configuré de nombreux conteneurs Docker sur ce serveur pour exécuter divers services et applications de manière isolée et efficace.&lt;/p>
&lt;p>Pour le stockage, j&amp;rsquo;ai des NAS Qnap et Synology que je configure soigneusement pour assurer la sécurité et l&amp;rsquo;accès à mes données. Ces NAS jouent un rôle essentiel dans mon homelab, en permettant le partage de fichiers, la sauvegarde de données et la gestion centralisée de mes projets.&lt;/p>
&lt;p>Niveau réseau j&amp;rsquo;utilise principalement des produits Ubiquiti; routeur, switchs, AP (Access Points) et tout mon home lab repose sur cette stack réseau.&lt;/p>
&lt;p>L&amp;rsquo;automatisation est une autre passion dans mon homelab, j&amp;rsquo;aime créer des scripts pour automatiser des tâches répétitives, ce qui me permet de gagner du temps et d&amp;rsquo;optimiser tout ce qui a besoin d&amp;rsquo;être optimisé.&lt;/p>
&lt;p>En tant que Pythonista amateur, je m&amp;rsquo;amuse avec Python pour explorer les possibilités du langage à travers de petits projets. Je fais également usage de PowerShell pour des tâches spécifiques. Quant au développement web, je crée des sites webs avec WordPress et parfois je fais quelques petites modifications personnalisées en CSS et PHP pour répondre à mes besoins.&lt;/p>
&lt;p>Enfin, je suis également un adepte des Raspberry Pi, sur lesquels je déploie différents projets et bots en utilisant principalement Python. Actuellement, l&amp;rsquo;une de mes Raspberry Pi fait tourner avec succès le bot Telegram &amp;ldquo;Swiss IT Tech News&amp;rdquo; &lt;a href="https://t.me/SwissITNews" target="_blank" rel="noopener">https://t.me/SwissITNews&lt;/a> que j&amp;rsquo;ai codé.
&lt;em>Update 2024 : Le bot tourne mnt dans un container docker&lt;/em>&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Swiss IT Tech News" srcset="
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-11_hu_6887e642391e91d6.webp 400w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-11_hu_d2621ca4e22aa800.webp 760w,
/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-11_hu_962f9217d04be7e7.webp 1200w"
src="https://alexin.tech/fr/2023/08/07/mon-homelab-et-mes-passions-decouvrez-mon-univers/image-11_hu_6887e642391e91d6.webp"
width="414"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Le code source est dispo ici :
&lt;a href="https://github.com/AlexIn-Tech/Swiss-IT-Tech-News" target="_blank" rel="noopener">https://github.com/AlexIn-Tech/Swiss-IT-Tech-News&lt;/a>&lt;/p>
&lt;p>Mon homelab est un véritable laboratoire d&amp;rsquo;idées où je peux laisser libre cours à ma créativité technologique. C&amp;rsquo;est un espace évolutif qui grandit au fil de mes découvertes et de mes envies. Chaque jour, je suis animé par la volonté de m&amp;rsquo;améliorer et de dénicher de nouvelles solutions pour relever des défis toujours plus stimulants.&lt;/p>
&lt;p>Voilà, vous connaissez maintenant une partie* mes passions : la technologie à travers mon homelab, différents sports dont les sports de glisse, la lecture qui m&amp;rsquo;évade, mes adorables chats qui illuminent mes journées, les jeux vidéos et l&amp;rsquo;univers fascinant du jeu de rôle.&lt;/p>
&lt;p>J&amp;rsquo;espère que cette présentation vous a permis de mieux me connaître.&lt;/p>
&lt;p>À très bientôt sur alexin.tech !&lt;/p>
&lt;p>*&lt;em>J&amp;rsquo;ai spécifié &amp;ldquo;une partie&amp;rdquo; , car ma vie est composée de passions temporaires et de passions longues durées. En tant que multi-passionné je peux me passionner d&amp;rsquo;un sujet pendant 3 mois puis passer à autre chose (la majorité du temps c&amp;rsquo;est comme ça) et j&amp;rsquo;ai quelques passions longues durées que j&amp;rsquo;ai essayé d&amp;rsquo;illustrer dans cet article.&lt;/em>&lt;/p>
&lt;/div></description></item><item><title>Se faire un HomeLab ESXi avec un micro PC (Intel NUC)</title><link>https://alexin.tech/fr/2021/07/13/se-faire-un-homelab-esxi-avec-un-micro-pc-intel-nuc/</link><pubDate>Tue, 13 Jul 2021 00:00:00 +0000</pubDate><guid>https://alexin.tech/fr/2021/07/13/se-faire-un-homelab-esxi-avec-un-micro-pc-intel-nuc/</guid><description>&lt;div class="article-story">
&lt;h1 id="se-faire-un-homelab-esxi-avec-un-micro-pc-intel-nuc">Se faire un HomeLab ESXi avec un micro PC (Intel NUC)&lt;/h1>
&lt;p>Cela fait déjà plusieurs années que je travaille avec VMware en terme de solution de virtualisation et j&amp;rsquo;ai décidé de me préparer un petit HomeLab ESXi sur lequel je ferai tourner quelques serveurs Windows.
Afin de ne pas consommer trop d&amp;rsquo;énergie ni d&amp;rsquo;occuper trop d&amp;rsquo;espace dans mon 2 pièces, j&amp;rsquo;ai opté pour un Intel NUC sur lequel j&amp;rsquo;installerai ESXI.&lt;/p>
&lt;p>Plus d&amp;rsquo;infos sur le choix du matériel ici :&lt;/p>
&lt;p>&lt;a href="https://www.virten.net/2020/04/homelab-will-esxi-7-0-run-on-intel-nuc/" target="_blank" rel="noopener">https://www.virten.net/2020/04/homelab-will-esxi-7-0-run-on-intel-nuc/&lt;/a>&lt;/p>
&lt;p>et là :&lt;/p>
&lt;p>&lt;a href="https://www.virten.net/2020/08/which-intel-nuc-should-i-buy-for-vmware-esxi-august-2020/" target="_blank" rel="noopener">https://www.virten.net/2020/08/which-intel-nuc-should-i-buy-for-vmware-esxi-august-2020/&lt;/a>&lt;/p>
&lt;h2 id="prérequis">Prérequis&lt;/h2>
&lt;ul>
&lt;li>Un intel NUC assez puissant (le mien est un Intel NUC10i7FNK2 acheté d&amp;rsquo;occasion sur &lt;a href="http://galaxus.ch/" target="_blank" rel="noopener">Galaxus.ch&lt;/a> sur lequel j&amp;rsquo;ai ajouté 64GB de RAM et 1TB de SSD M2)&lt;/li>
&lt;li>L&amp;rsquo;iso d&amp;rsquo;installation de ESXI (à télécharger ici : &lt;a href="https://www.vmware.com/go/get-free-esxi" target="_blank" rel="noopener">https://www.vmware.com/go/get-free-esxi&lt;/a>)&lt;/li>
&lt;li>Une clef USB sur laquelle on va graver l&amp;rsquo;iso de ESXi avec un outil de type &lt;a href="http://rufus.ie/" target="_blank" rel="noopener">Rufus.ie&lt;/a>&lt;/li>
&lt;li>Prendre une licence free de ESXi &lt;a href="https://www.vmware.com/go/get-free-esxi" target="_blank" rel="noopener">https://www.vmware.com/go/get-free-esxi&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="installation-de-esxi">Installation de ESXi&lt;/h2>
&lt;p>Commencez par plug votre clef USB, démarrez la machine et enfin , bootez sur la clef (ESXi-7.votre-version) en appuyant sur &amp;ldquo;Enter&amp;rdquo;.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Chargement de l&amp;rsquo;installeur ESXi
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi2.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Chargement des modules et démarrage des services nécessaire à l&amp;rsquo;installation
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi3.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Choisir &amp;ldquo;Continue&amp;rdquo; en appuyant sur &amp;ldquo;Enter&amp;rdquo;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi4.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Accepter le license agreement en appuyant sur F11 (à lire en entier 😜)
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi5.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Choisir sur quel disque l&amp;rsquo;installer :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi6.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Comme vous pouvez le voir, le disque proposé chez moi est un VMware, j&amp;rsquo;ai refait exprès l&amp;rsquo;installation pour cet article. Mais en somme j&amp;rsquo;installe ESXi sur le NUC, sauf que c&amp;rsquo;est une ESXi&amp;rsquo;nception. ESXi installé sur une VM qui tourne sur ESXi installé sur le NUC. Vous suivez ? Si vous n&amp;rsquo;avez pas réussi à suivre pas de soucis, ce n&amp;rsquo;est pas important, retenez juste que j&amp;rsquo;ai refait l&amp;rsquo;installation pour cet article sur une VM et que c&amp;rsquo;est exactement les mêmes steps pour installer ESXi. 😉&lt;/p>
&lt;p>Ensuite il faut sélectionner le clavier et appuyer sur Enter :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi7.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Choisir un root password (il sera aussi utilisé sur l&amp;rsquo;interface web) :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi8.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>F11 pour installer
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi9.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi10.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Reboot avec Enter
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi11.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>L&amp;rsquo;installation est terminée, vous pouvez accéder à la partie web en tapant votre ip dans un navigateur ou accéder aux settings en appuyant sur F2. Pour accéder aux settings il vous faudra entrer vos identifiants root. Les settings permettent par exemple de gérer la partie réseau en changeant votre IP ou VLAN , etc&amp;hellip;
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi12.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>La console web ressemble à cela :
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi13.png" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
Tapez vos identifiants &amp;ldquo;root&amp;rdquo; pour vous connecter.
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img src="./esxi14.jpg" alt="ESXi" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Bienvenue sur VMware ESXi et enjoy ! 😎&lt;/p>
&lt;/div></description></item></channel></rss>