<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Unraid | AlexIn Tech</title><link>https://alexin.tech/fr/tag/unraid/</link><atom:link href="https://alexin.tech/fr/tag/unraid/index.xml" rel="self" type="application/rss+xml"/><description>Unraid</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>Unraid</title><link>https://alexin.tech/fr/tag/unraid/</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>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></channel></rss>