Files

1385 lines
99 KiB
HTML
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- Saved from local source at 2024-12-27T18:39:34Z using monolith v2.8.3 -->
<!DOCTYPE html><html lang="en" data-figures="true" class="page"><head><meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-eval' 'unsafe-inline' data:; font-src 'none'; script-src 'none';"></meta>
<title>Gitea | BL-oG</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta property="og:locale" content="en">
<meta property="og:type" content="article">
<meta name="description" content="Auto-héberger une forge GIT avec Gitea">
<meta name="twitter:card" content="summary">
<meta name="twitter:creator" content="@levassb">
<meta name="twitter:title" content="Gitea">
<meta property="og:url" content="https://blog.levassb.ovh/post/gitea/">
<meta property="og:title" content="Gitea">
<meta property="og:description" content="Auto-héberger une forge GIT avec Gitea">
<meta property="og:image" content="https://blog.levassb.ovh/images/gitea.jpg">
<link rel="apple-touch-icon" sizes="180x180" href="https://blog.levassb.ovh/icons/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://blog.levassb.ovh/icons/favicon-32x32.png">
<link rel="manifest" href="https://blog.levassb.ovh/icons/site.webmanifest">
<link rel="canonical" href="https://blog.levassb.ovh/post/gitea/">
<link href="https://blog.levassb.ovh/css/styles.ee3b9488ef041710052f5c22837bf044d13ac251377aac559881157179229b04be4ae0027ad7b3c9b0cf469d0b37c82b8fcc5956709efe67b73f0e08a76bba3d.css" integrity="sha512-7juUiO8EFxAFL1wig3vwRNE6wlE3eqxVmIEVcXkimwS+SuACetezybDPRp0LN8grj8xZVnCe/me3Pw4Ip2u6PQ==" as="style" crossorigin="anonymous">
<link href="https://blog.levassb.ovh/js/bundle.min.eb436f5fa53f940b87c5fff22b7a5ff21d8e1a755411de5197a962bc1ceab4491d6492b2d9cb6e2763c8d66098d9045411b988628217da75dc160b3e1b5766a2.js" as="script" integrity="sha512-60NvX6U/lAuHxf/yK3pf8h2OGnVUEd5Rl6livBzqtEkdZJKy2ctuJ2PI1mCY2QRUEbmIYoIX2nXcFgs+G1dmog==" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="https://blog.levassb.ovh/css/styles.ee3b9488ef041710052f5c22837bf044d13ac251377aac559881157179229b04be4ae0027ad7b3c9b0cf469d0b37c82b8fcc5956709efe67b73f0e08a76bba3d.css" integrity="sha512-7juUiO8EFxAFL1wig3vwRNE6wlE3eqxVmIEVcXkimwS+SuACetezybDPRp0LN8grj8xZVnCe/me3Pw4Ip2u6PQ==" crossorigin="anonymous">
<base href="https://blog.levassb.ovh/post/gitea/"></base></head>
<body data-code="20" data-lines="false" id="documentTop">
<header class="nav_header">
<nav class="nav"><a href="https://blog.levassb.ovh/" class="nav_brand nav_item" title="BL-oG">BL-oG
<div class="nav_close">
<div><svg class="icon">
<use xlink:href="#open-menu"></use>
</svg><svg class="icon">
<use xlink:href="#closeme"></use>
</svg></div>
</div>
</a>
<div class="nav_body nav_body_left">
<div class="nav_parent">
<a href="https://blog.levassb.ovh/" class="nav_item" title="Home">Home </a>
</div>
<div class="nav_parent">
<a href="https://blog.levassb.ovh/" class="nav_item" title="Links">Links <img src="https://blog.levassb.ovh/icons/caret-icon.svg" alt="icon" class="nav_icon"></a>
<div class="nav_sub">
<span class="nav_child"></span>
<a href="https://bookmark.levassb.ovh/guest/links" class="nav_child nav_item" title="Veille Techno" target="_blank" rel="noopener">Veille Techno</a>
</div>
</div>
<div class="nav_parent">
<a href="https://blog.levassb.ovh/about/" class="nav_item" title="About">About </a>
</div>
<div class="nav_parent">
<a href="https://resume.levassb.ovh" class="nav_item" title="Mon CV" target="_blank" rel="noopener">Mon CV </a>
</div>
<div class="follow">
<a href="https://gitlab.univ-rouen.fr/bruno.levasseur" target="_blank" rel="noopener">
<svg class="icon">
<use xlink:href="#github"></use>
</svg>
</a>
<a href="https://twitter.com/levassb" target="_blank" rel="noopener">
<svg class="icon">
<use xlink:href="#twitter"></use>
</svg>
</a>
<a href="https://blog.levassb.ovh/index.xml">
<svg class="icon">
<use xlink:href="#rss"></use>
</svg>
</a>
<div class="color_mode">
<input type="checkbox" class="color_choice" id="mode">
</div>
</div>
</div>
</nav>
</header>
<main>
<div class="grid-inverse wrap content">
<article class="post_content">
<h1 class="post_title">Gitea</h1>
<div class="post_meta">
<span><svg class="icon">
<use xlink:href="#calendar"></use>
</svg></span>
<span class="post_date">
Jan 3, 2023</span>
<span class="post_time"> · 5 min read</span><span>&nbsp;· <a href="https://blog.levassb.ovh/tags/git" title="git" class="post_tag button button_translucent">git
</a><a href="https://blog.levassb.ovh/tags/docker" title="docker" class="post_tag button button_translucent">docker
</a>
</span>
<span class="page_only">&nbsp;·
<div class="post_share">
Share on:
<a href="https://twitter.com/intent/tweet?text=Gitea&amp;url=https%3a%2f%2fblog.levassb.ovh%2fpost%2fgitea%2f&amp;tw_p=tweetbutton" class="twitter" title="Share on Twitter" target="_blank" rel="nofollow">
<svg class="icon">
<use xlink:href="#twitter"></use>
</svg>
</a>
<a href="https://www.facebook.com/sharer.php?u=https%3a%2f%2fblog.levassb.ovh%2fpost%2fgitea%2f&amp;t=Gitea" class="facebook" title="Share on Facebook" target="_blank" rel="nofollow">
<svg class="icon">
<use xlink:href="#facebook"></use>
</svg>
</a>
<a href="#linkedinshare" id="linkedinshare" class="linkedin" title="Share on LinkedIn" rel="nofollow">
<svg class="icon">
<use xlink:href="#linkedin"></use>
</svg>
</a>
<a href="https://blog.levassb.ovh/post/gitea/" title="Copy Link" class="link link_yank">
<svg class="icon">
<use xlink:href="#copy"></use>
</svg>
</a>
</div>
</span>
</div>
<figure><img src="https://blog.levassb.ovh/images/gitea.jpg" class="image_featured image-scalable" alt="Gitea" loading="lazy" data-pos="1" data-scale="1.1879350348027842"></figure>
<p>Gitea est une forge logicielle GIT écrite en Go dérivée de Gogs.</p>
<p>Comme souvent, au moment de choisir une solution logicielle, je regarde :</p>
<ul>
<li>la couverture fonctionnelle</li>
<li>la vitalité du projet</li>
<li>les ressources nécessaires (mon VPS est un peu limité)</li>
<li>la qualité de la documentation</li>
</ul>
<p>Gitea coche toutes ces cases avec une version Docker pour la facilité de maintenance, SQLite pour limiter les ressources (un seul conteneur) et des fonctionnalités à mi-chemin entre un Gitolite un peu trop “roots” et lusine à gaz GitLab.
Le développement communautaire semble dynamique et la documentation est plutôt bien faite.</p>
<p>Gitea propose un <a href="https://docs.gitea.io/en-us/comparison/" target="_blank" rel="noopener">comparatif des fonctionnalités</a> avec les principales alternatives.</p>
<h1 id="installation">Installation</h1>
<p>Une fois de plus, je vais partir de <a href="https://blog.levassb.ovh/post/traefik-new-conf/">ma plateforme</a> déjà en place avec Traefik pour gérer les accés HTTPS (reverse-proxy) et SSH (routeur TCP) et Docker pour lexécution des conteneurs.
Je commence par modifier la configuration de Traefik pour ajouter un point dentrée pour les connexions TCP vers le service SSH du conteneur Gitea:</p>
<ul>
<li><code class="noClass">--entrypoints.ssh.address=:2222</code> : pour créer un point dentrée <code class="noClass">ssh</code> dans Traefik</li>
<li><code class="noClass">2222:2222/tcp</code> : pour ouvrir le port 2222 (le port 22 standard est déjà utilisé sur lhôte)</li>
</ul>
<div class="highlight_wrap"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml hljs" data-lang="yaml"><span class="line" data-height="454px" style="max-height: 454px;"><span class="ln pre_nolines"> <span class="hljs-attr">1</span></span><span class="cl"><span class="nt"><span class="hljs-attr">version</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="s1"><span class="hljs-string">'3'</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">2</span></span><span class="cl"><span class="w"></span><span class="nt"><span class="hljs-attr">services</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">3</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">traefik</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">4</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">container_name</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="l"><span class="hljs-string">traefik</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">5</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">image</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="l"><span class="hljs-string">traefik:v2.9.6</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">6</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">restart</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="l"><span class="hljs-string">unless-stopped</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">7</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">command</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-number">8</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--providers.docker=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-number">9</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--providers.docker.exposedbydefault=false"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">10</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--providers.file.directory=/etc/traefik/dynamic-conf"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">11</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--providers.file.watch=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">12</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--api.dashboard=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">13</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--entrypoints.web.address=:80"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">14</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--entrypoints.websecure.address=:443"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">15</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--entrypoints.ssh.address=:2222"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">16</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--entrypoints.web.http.redirections.entrypoint.to=websecure"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">17</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--entrypoints.web.http.redirections.entrypoint.scheme=https"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">18</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--certificatesResolvers.letsencrypt.acme.email=admin@domaine.tld"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">19</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--certificatesResolvers.letsencrypt.acme.storage=acme.json"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">20</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--certificatesResolvers.letsencrypt.acme.tlsChallenge=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">21</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--log=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">22</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--log.level=INFO"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">23</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--log.filepath=/var/log/traefik.log"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">24</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"--accesslog.filepath=/var/log/traefix-access.log"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">25</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">labels</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">26</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.enable=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">27</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.dashboard.rule=Host(`traefik.domaine.tld`)"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">28</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.dashboard.service=api@internal"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">29</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.dashboard.entrypoints=websecure"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">30</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.dashboard.middlewares=auth-dashboard"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">31</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.middlewares.auth-dashboard.basicauth.users=admin:#########################"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">32</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.dashboard.tls=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">33</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.dashboard.tls.certresolver=letsencrypt"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">34</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">networks</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">35</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">traefik_lan</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">36</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">ports</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">37</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="m"><span class="hljs-number">80</span></span><span class="p"><span class="hljs-string">:</span></span><span class="m"><span class="hljs-string">80</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">38</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="m"><span class="hljs-number">443</span></span><span class="p"><span class="hljs-string">:</span></span><span class="m"><span class="hljs-string">443</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">39</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="m"><span class="hljs-number">2222</span></span><span class="p"><span class="hljs-string">:</span></span><span class="m"><span class="hljs-string">2222</span></span><span class="l"><span class="hljs-string">/tcp</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">40</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">volumes</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">41</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">/var/run/docker.sock:/var/run/docker.sock:ro</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">42</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">./config/acme.json:/acme.json</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">43</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">./config:/etc/traefik:ro</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">44</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">logs:/var/log/</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">45</span></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">46</span></span><span class="cl"><span class="w"></span><span class="nt"><span class="hljs-attr">networks</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">47</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">traefik_lan</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">48</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">external</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="kc"><span class="hljs-literal">true</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">49</span></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">50</span></span><span class="cl"><span class="w"></span><span class="nt"><span class="hljs-attr">volumes</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">51</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">logs</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span></code></pre><div class="panel_expand panel_from" title="Toggle code block expand">...</div></div><div class="panel_box"><a href="#" title="Copy Code" class="icon panel_icon panel_copy"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M366.905,108.016h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.048,0,20.003-8.955,20.003-20.003S377.952,108.016,366.905,108.016z"></path>
</g>
</g>
<g>
<g>
<path d="M366.905,188.027h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.047,0,20.003-8.955,20.003-20.003S377.953,188.027,366.905,188.027z"></path>
</g>
</g>
<g>
<g>
<path d="M286.004,268.039h-61.009c-11.048,0-20.003,8.955-20.003,20.003c0,11.048,8.955,20.003,20.003,20.003h61.009
c11.048,0,20.003-8.955,20.003-20.003C306.007,276.994,297.052,268.039,286.004,268.039z"></path>
</g>
</g>
<g>
<g>
<path d="M448.028,272.039c11.048,0,20.003-8.955,20.003-20.003V80.012C468.031,35.893,432.137,0,388.019,0H203.992
c-44.094,0-79.971,35.853-80.012,79.938c-44.118,0-80.012,35.893-80.012,80.012v272.039c0,44.118,35.893,80.012,80.012,80.012
h194.028c44.118,0,80.012-35.893,80.012-80.012v-0.608c39.414-4.938,70.01-38.662,70.01-79.389
c0-11.048-8.955-20.003-20.003-20.003c-11.048,0-20.003,8.955-20.003,20.003c0,22.054-17.942,40.001-39.996,40.006l-184.027,0.045
h-0.009c-10.685,0-20.73-4.16-28.285-11.715c-7.558-7.556-11.721-17.604-11.721-28.291V80.012
c0-22.059,17.947-40.006,40.006-40.006H388.02c22.059,0,40.006,17.947,40.006,40.006v172.025
C428.025,263.084,436.98,272.039,448.028,272.039z M203.992,432.047h0.02l154.002-0.038
c-0.012,22.049-17.954,39.984-40.006,39.984H123.981c-22.059,0-40.006-17.947-40.006-40.006V159.948
c0-22.059,17.947-40.006,40.006-40.006v232.094c0,21.375,8.325,41.471,23.441,56.583
C162.535,423.729,182.622,432.047,203.992,432.047z"></path>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Numbers" class="icon panel_icon panel_lines"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M492,236H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20C512,244.954,503.046,236,492,236z
"></path>
</g>
</g>
<g>
<g>
<path d="M492,86H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20S503.046,86,492,86z"></path>
</g>
</g>
<g>
<g>
<path d="M492,386H144.262c-11.046,0-20,8.954-20,20c0,11.046,8.954,20,20,20H492c11.046,0,20-8.954,20-20
C512,394.954,503.046,386,492,386z"></path>
</g>
</g>
<g>
<g>
<circle cx="27" cy="106" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="256" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="406" r="27"></circle>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Wrap" class="icon panel_icon panel_wrap panel_hide"><svg id="Layer" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m504.971 239.029-56.971-56.97v-98.059c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971l47.03 47.029-47.029 47.029c-4.501 4.501-7.03 10.606-7.03 16.971v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941z"></path><path d="m112 192v-108c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941l56.971 56.971v98.059c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36v-108c0-6.365-2.529-12.47-7.029-16.971l-47.03-47.029 47.029-47.029c4.501-4.501 7.03-10.606 7.03-16.971z"></path></svg></a><a href="#" title="Toggle code block expand" class="icon panel_icon panel_expand"><svg height="512pt" viewBox="0 0 512.016 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m240 426.675781h-181.332031c-32.363281 0-58.667969-26.304687-58.667969-58.667969v-309.332031c0-32.363281 26.304688-58.6679685 58.667969-58.6679685h309.332031c32.363281 0 58.667969 26.3046875 58.667969 58.6679685v181.332031c0 8.832032-7.167969 16-16 16s-16-7.167968-16-16v-181.332031c0-14.699219-11.96875-26.667969-26.667969-26.667969h-309.332031c-14.699219 0-26.667969 11.96875-26.667969 26.667969v309.332031c0 14.699219 11.96875 26.667969 26.667969 26.667969h181.332031c8.832031 0 16 7.167969 16 16s-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812h-138.667969c-8.832031 0-16-7.167968-16-16 0-8.832031 7.167969-16 16-16h122.667969v-122.667968c0-8.832032 7.167969-16 16-16s16 7.167968 16 16v138.667968c0 8.832032-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812c-4.097656 0-8.191406-1.558593-11.308594-4.691406l-181.332031-181.335937c-6.25-6.25-6.25-16.382813 0-22.632813s16.382813-6.25 22.636719 0l181.332031 181.332032c6.25 6.25 6.25 16.382812 0 22.636718-3.136719 3.132813-7.230469 4.691406-11.328125 4.691406zm0 0"></path></svg></a></div><div class="lang">yaml</div></div><blockquote>
<p>Pour les autres paramètres, je vous laisse jeter un coup dœil à mon <a href="https://blog.levassb.ovh/post/traefik-new-conf/">précédent article.</a>.</p>
</blockquote>
<p>Je crée un compte local <code class="noClass">git</code> qui sera utilisé pour lexécution des processus du conteneur Gitea :</p>
<div class="highlight_wrap"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="line"><span class="ln pre_nolines">1</span><span class="cl">$ sudo adduser --system --shell /usr/sbin/nologin --group --disabled-password --home /home/git git
</span></span><span class="line"><span class="ln pre_nolines">2</span><span class="cl">$ id git
</span></span><span class="line"><span class="ln pre_nolines">3</span><span class="cl"><span class="nv">uid</span><span class="o">=</span>110<span class="o">(</span>git<span class="o">)</span> <span class="nv">gid</span><span class="o">=</span>118<span class="o">(</span>git<span class="o">)</span> <span class="nv">groups</span><span class="o">=</span>118<span class="o">(</span>git<span class="o">)</span>
</span></span></code></pre></div><div class="panel_box"><a href="#" title="Copy Code" class="icon panel_icon panel_copy"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M366.905,108.016h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.048,0,20.003-8.955,20.003-20.003S377.952,108.016,366.905,108.016z"></path>
</g>
</g>
<g>
<g>
<path d="M366.905,188.027h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.047,0,20.003-8.955,20.003-20.003S377.953,188.027,366.905,188.027z"></path>
</g>
</g>
<g>
<g>
<path d="M286.004,268.039h-61.009c-11.048,0-20.003,8.955-20.003,20.003c0,11.048,8.955,20.003,20.003,20.003h61.009
c11.048,0,20.003-8.955,20.003-20.003C306.007,276.994,297.052,268.039,286.004,268.039z"></path>
</g>
</g>
<g>
<g>
<path d="M448.028,272.039c11.048,0,20.003-8.955,20.003-20.003V80.012C468.031,35.893,432.137,0,388.019,0H203.992
c-44.094,0-79.971,35.853-80.012,79.938c-44.118,0-80.012,35.893-80.012,80.012v272.039c0,44.118,35.893,80.012,80.012,80.012
h194.028c44.118,0,80.012-35.893,80.012-80.012v-0.608c39.414-4.938,70.01-38.662,70.01-79.389
c0-11.048-8.955-20.003-20.003-20.003c-11.048,0-20.003,8.955-20.003,20.003c0,22.054-17.942,40.001-39.996,40.006l-184.027,0.045
h-0.009c-10.685,0-20.73-4.16-28.285-11.715c-7.558-7.556-11.721-17.604-11.721-28.291V80.012
c0-22.059,17.947-40.006,40.006-40.006H388.02c22.059,0,40.006,17.947,40.006,40.006v172.025
C428.025,263.084,436.98,272.039,448.028,272.039z M203.992,432.047h0.02l154.002-0.038
c-0.012,22.049-17.954,39.984-40.006,39.984H123.981c-22.059,0-40.006-17.947-40.006-40.006V159.948
c0-22.059,17.947-40.006,40.006-40.006v232.094c0,21.375,8.325,41.471,23.441,56.583
C162.535,423.729,182.622,432.047,203.992,432.047z"></path>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Numbers" class="icon panel_icon panel_lines"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M492,236H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20C512,244.954,503.046,236,492,236z
"></path>
</g>
</g>
<g>
<g>
<path d="M492,86H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20S503.046,86,492,86z"></path>
</g>
</g>
<g>
<g>
<path d="M492,386H144.262c-11.046,0-20,8.954-20,20c0,11.046,8.954,20,20,20H492c11.046,0,20-8.954,20-20
C512,394.954,503.046,386,492,386z"></path>
</g>
</g>
<g>
<g>
<circle cx="27" cy="106" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="256" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="406" r="27"></circle>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Wrap" class="icon panel_icon panel_wrap panel_hide"><svg id="Layer" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m504.971 239.029-56.971-56.97v-98.059c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971l47.03 47.029-47.029 47.029c-4.501 4.501-7.03 10.606-7.03 16.971v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941z"></path><path d="m112 192v-108c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941l56.971 56.971v98.059c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36v-108c0-6.365-2.529-12.47-7.029-16.971l-47.03-47.029 47.029-47.029c4.501-4.501 7.03-10.606 7.03-16.971z"></path></svg></a><a href="#" title="Toggle code block expand" class="icon panel_icon panel_expand panel_hide"><svg height="512pt" viewBox="0 0 512.016 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m240 426.675781h-181.332031c-32.363281 0-58.667969-26.304687-58.667969-58.667969v-309.332031c0-32.363281 26.304688-58.6679685 58.667969-58.6679685h309.332031c32.363281 0 58.667969 26.3046875 58.667969 58.6679685v181.332031c0 8.832032-7.167969 16-16 16s-16-7.167968-16-16v-181.332031c0-14.699219-11.96875-26.667969-26.667969-26.667969h-309.332031c-14.699219 0-26.667969 11.96875-26.667969 26.667969v309.332031c0 14.699219 11.96875 26.667969 26.667969 26.667969h181.332031c8.832031 0 16 7.167969 16 16s-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812h-138.667969c-8.832031 0-16-7.167968-16-16 0-8.832031 7.167969-16 16-16h122.667969v-122.667968c0-8.832032 7.167969-16 16-16s16 7.167968 16 16v138.667968c0 8.832032-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812c-4.097656 0-8.191406-1.558593-11.308594-4.691406l-181.332031-181.335937c-6.25-6.25-6.25-16.382813 0-22.632813s16.382813-6.25 22.636719 0l181.332031 181.332032c6.25 6.25 6.25 16.382812 0 22.636718-3.136719 3.132813-7.230469 4.691406-11.328125 4.691406zm0 0"></path></svg></a></div><div class="lang">bash</div></div><blockquote>
<p>lIUD: 110 et le GID: 118 seront utilisés dans le docker-compose de Gitea</p>
</blockquote>
<p>Jajoute un dossier pour contenir le fichier docker-compose de Gitea:</p>
<div class="highlight_wrap"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="line"><span class="ln pre_nolines">1</span><span class="cl">$ sudo mkdir /opt/gitea <span class="o">&amp;&amp;</span> <span class="nb"><span class="hljs-built_in">cd</span></span> <span class="s2"><span class="hljs-string">"</span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$_</span></span></span><span class="s2"><span class="hljs-string">"</span></span>
</span></span><span class="line"><span class="ln pre_nolines">2</span><span class="cl">$ touch docker-compose.yaml
</span></span></code></pre></div><div class="panel_box"><a href="#" title="Copy Code" class="icon panel_icon panel_copy"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M366.905,108.016h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.048,0,20.003-8.955,20.003-20.003S377.952,108.016,366.905,108.016z"></path>
</g>
</g>
<g>
<g>
<path d="M366.905,188.027h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.047,0,20.003-8.955,20.003-20.003S377.953,188.027,366.905,188.027z"></path>
</g>
</g>
<g>
<g>
<path d="M286.004,268.039h-61.009c-11.048,0-20.003,8.955-20.003,20.003c0,11.048,8.955,20.003,20.003,20.003h61.009
c11.048,0,20.003-8.955,20.003-20.003C306.007,276.994,297.052,268.039,286.004,268.039z"></path>
</g>
</g>
<g>
<g>
<path d="M448.028,272.039c11.048,0,20.003-8.955,20.003-20.003V80.012C468.031,35.893,432.137,0,388.019,0H203.992
c-44.094,0-79.971,35.853-80.012,79.938c-44.118,0-80.012,35.893-80.012,80.012v272.039c0,44.118,35.893,80.012,80.012,80.012
h194.028c44.118,0,80.012-35.893,80.012-80.012v-0.608c39.414-4.938,70.01-38.662,70.01-79.389
c0-11.048-8.955-20.003-20.003-20.003c-11.048,0-20.003,8.955-20.003,20.003c0,22.054-17.942,40.001-39.996,40.006l-184.027,0.045
h-0.009c-10.685,0-20.73-4.16-28.285-11.715c-7.558-7.556-11.721-17.604-11.721-28.291V80.012
c0-22.059,17.947-40.006,40.006-40.006H388.02c22.059,0,40.006,17.947,40.006,40.006v172.025
C428.025,263.084,436.98,272.039,448.028,272.039z M203.992,432.047h0.02l154.002-0.038
c-0.012,22.049-17.954,39.984-40.006,39.984H123.981c-22.059,0-40.006-17.947-40.006-40.006V159.948
c0-22.059,17.947-40.006,40.006-40.006v232.094c0,21.375,8.325,41.471,23.441,56.583
C162.535,423.729,182.622,432.047,203.992,432.047z"></path>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Numbers" class="icon panel_icon panel_lines"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M492,236H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20C512,244.954,503.046,236,492,236z
"></path>
</g>
</g>
<g>
<g>
<path d="M492,86H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20S503.046,86,492,86z"></path>
</g>
</g>
<g>
<g>
<path d="M492,386H144.262c-11.046,0-20,8.954-20,20c0,11.046,8.954,20,20,20H492c11.046,0,20-8.954,20-20
C512,394.954,503.046,386,492,386z"></path>
</g>
</g>
<g>
<g>
<circle cx="27" cy="106" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="256" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="406" r="27"></circle>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Wrap" class="icon panel_icon panel_wrap panel_hide"><svg id="Layer" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m504.971 239.029-56.971-56.97v-98.059c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971l47.03 47.029-47.029 47.029c-4.501 4.501-7.03 10.606-7.03 16.971v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941z"></path><path d="m112 192v-108c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941l56.971 56.971v98.059c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36v-108c0-6.365-2.529-12.47-7.029-16.971l-47.03-47.029 47.029-47.029c4.501-4.501 7.03-10.606 7.03-16.971z"></path></svg></a><a href="#" title="Toggle code block expand" class="icon panel_icon panel_expand panel_hide"><svg height="512pt" viewBox="0 0 512.016 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m240 426.675781h-181.332031c-32.363281 0-58.667969-26.304687-58.667969-58.667969v-309.332031c0-32.363281 26.304688-58.6679685 58.667969-58.6679685h309.332031c32.363281 0 58.667969 26.3046875 58.667969 58.6679685v181.332031c0 8.832032-7.167969 16-16 16s-16-7.167968-16-16v-181.332031c0-14.699219-11.96875-26.667969-26.667969-26.667969h-309.332031c-14.699219 0-26.667969 11.96875-26.667969 26.667969v309.332031c0 14.699219 11.96875 26.667969 26.667969 26.667969h181.332031c8.832031 0 16 7.167969 16 16s-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812h-138.667969c-8.832031 0-16-7.167968-16-16 0-8.832031 7.167969-16 16-16h122.667969v-122.667968c0-8.832032 7.167969-16 16-16s16 7.167968 16 16v138.667968c0 8.832032-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812c-4.097656 0-8.191406-1.558593-11.308594-4.691406l-181.332031-181.335937c-6.25-6.25-6.25-16.382813 0-22.632813s16.382813-6.25 22.636719 0l181.332031 181.332032c6.25 6.25 6.25 16.382812 0 22.636718-3.136719 3.132813-7.230469 4.691406-11.328125 4.691406zm0 0"></path></svg></a></div><div class="lang">bash</div></div><p>Jédite le fichier <code class="noClass">docker-compose.yaml</code></p>
<div class="highlight_wrap"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml hljs" data-lang="yaml"><span class="line" data-height="454px" style="max-height: 454px;"><span class="ln pre_nolines"> <span class="hljs-attr">1</span></span><span class="cl"><span class="nt"><span class="hljs-attr">version</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="s1"><span class="hljs-string">'3'</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">2</span></span><span class="cl"><span class="w"></span><span class="nt"><span class="hljs-attr">services</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">3</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">gitea</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">4</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">container_name</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="l"><span class="hljs-string">gitea</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">5</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">image</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="l"><span class="hljs-string">gitea/gitea:1.18.0</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">6</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">restart</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="l"><span class="hljs-string">unless-stopped</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-attr">7</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">environment</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-number">8</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">USER_UID=110</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"> <span class="hljs-number">9</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">USER_GID=118</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">10</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">RUN_MODE=prod</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">11</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">APP_NAME="My</span> <span class="hljs-string">forge!"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">12</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__server__SSH_PORT=2222</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">13</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__server__SSH_LISTEN_PORT=22</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">14</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__server__HTTP_PORT=3000</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">15</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__server__ROOT_URL=https://git.domain.tld</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">16</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__database__DB_TYPE=sqlite3</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">17</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__service__DISABLE_REGISTRATION=true</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">18</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__service__REQUIRE_SIGNIN_VIEW=true</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">19</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__service__REGISTER_EMAIL_CONFIRM=true</span> </span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">20</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__ENABLED=true</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">21</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__SMTP_ADDR=smtp.domain.tld</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">22</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__SMTP_PORT=587</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">23</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__PROTOCOL=smtp+starttls</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">24</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__USER=admin@domain.tld</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">25</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__PASSWD=V3ryS3cur3</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">26</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">GITEA__mailer__FROM=noreply-gitea@domain.tld</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">27</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">expose</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">28</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"3000"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">29</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"22"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">30</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">networks</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">31</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">traefik_lan</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">32</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">volumes</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">33</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">data:/data</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">34</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">/etc/timezone:/etc/timezone:ro</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">35</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="l"><span class="hljs-string">/etc/localtime:/etc/localtime:ro</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">36</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">labels</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">37</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.enable=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">38</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.services.gitea.loadbalancer.server.port=3000"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">39</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.docker.network=traefik_lan"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">40</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.gitea.rule=Host(`git.domain.tld`)"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">41</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.gitea.entrypoints=websecure"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">42</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.gitea.middlewares=secured@file"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">43</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.gitea.tls=true"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">44</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.http.routers.gitea.tls.certresolver=letsencrypt"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">45</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`)"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">46</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.tcp.routers.gitea-ssh.entrypoints=ssh"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">47</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.tcp.routers.gitea-ssh.service=gitea-ssh-svc"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-number">48</span></span><span class="cl"><span class="w"> </span><span class="hljs-bullet">-</span> <span class="s2"><span class="hljs-string">"traefik.tcp.services.gitea-ssh-svc.loadbalancer.server.port=22"</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">49</span></span><span class="cl"><span class="w"></span><span class="nt"><span class="hljs-attr">networks</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">50</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">traefik_lan</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">51</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">external</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w"> </span><span class="kc"><span class="hljs-literal">true</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">52</span></span><span class="cl"><span class="w"></span><span class="nt"><span class="hljs-attr">volumes</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span><span class="line"><span class="ln pre_nolines"><span class="hljs-attr">53</span></span><span class="cl"><span class="w"><span class="hljs-attr"> </span></span><span class="nt"><span class="hljs-attr">data</span></span><span class="p"><span class="hljs-attr">:</span></span><span class="w">
</span></span></span></code></pre><div class="panel_expand panel_from" title="Toggle code block expand">...</div></div><div class="panel_box"><a href="#" title="Copy Code" class="icon panel_icon panel_copy"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M366.905,108.016h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.048,0,20.003-8.955,20.003-20.003S377.952,108.016,366.905,108.016z"></path>
</g>
</g>
<g>
<g>
<path d="M366.905,188.027h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.047,0,20.003-8.955,20.003-20.003S377.953,188.027,366.905,188.027z"></path>
</g>
</g>
<g>
<g>
<path d="M286.004,268.039h-61.009c-11.048,0-20.003,8.955-20.003,20.003c0,11.048,8.955,20.003,20.003,20.003h61.009
c11.048,0,20.003-8.955,20.003-20.003C306.007,276.994,297.052,268.039,286.004,268.039z"></path>
</g>
</g>
<g>
<g>
<path d="M448.028,272.039c11.048,0,20.003-8.955,20.003-20.003V80.012C468.031,35.893,432.137,0,388.019,0H203.992
c-44.094,0-79.971,35.853-80.012,79.938c-44.118,0-80.012,35.893-80.012,80.012v272.039c0,44.118,35.893,80.012,80.012,80.012
h194.028c44.118,0,80.012-35.893,80.012-80.012v-0.608c39.414-4.938,70.01-38.662,70.01-79.389
c0-11.048-8.955-20.003-20.003-20.003c-11.048,0-20.003,8.955-20.003,20.003c0,22.054-17.942,40.001-39.996,40.006l-184.027,0.045
h-0.009c-10.685,0-20.73-4.16-28.285-11.715c-7.558-7.556-11.721-17.604-11.721-28.291V80.012
c0-22.059,17.947-40.006,40.006-40.006H388.02c22.059,0,40.006,17.947,40.006,40.006v172.025
C428.025,263.084,436.98,272.039,448.028,272.039z M203.992,432.047h0.02l154.002-0.038
c-0.012,22.049-17.954,39.984-40.006,39.984H123.981c-22.059,0-40.006-17.947-40.006-40.006V159.948
c0-22.059,17.947-40.006,40.006-40.006v232.094c0,21.375,8.325,41.471,23.441,56.583
C162.535,423.729,182.622,432.047,203.992,432.047z"></path>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Numbers" class="icon panel_icon panel_lines"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M492,236H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20C512,244.954,503.046,236,492,236z
"></path>
</g>
</g>
<g>
<g>
<path d="M492,86H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20S503.046,86,492,86z"></path>
</g>
</g>
<g>
<g>
<path d="M492,386H144.262c-11.046,0-20,8.954-20,20c0,11.046,8.954,20,20,20H492c11.046,0,20-8.954,20-20
C512,394.954,503.046,386,492,386z"></path>
</g>
</g>
<g>
<g>
<circle cx="27" cy="106" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="256" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="406" r="27"></circle>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Wrap" class="icon panel_icon panel_wrap panel_hide"><svg id="Layer" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m504.971 239.029-56.971-56.97v-98.059c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971l47.03 47.029-47.029 47.029c-4.501 4.501-7.03 10.606-7.03 16.971v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941z"></path><path d="m112 192v-108c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941l56.971 56.971v98.059c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36v-108c0-6.365-2.529-12.47-7.029-16.971l-47.03-47.029 47.029-47.029c4.501-4.501 7.03-10.606 7.03-16.971z"></path></svg></a><a href="#" title="Toggle code block expand" class="icon panel_icon panel_expand"><svg height="512pt" viewBox="0 0 512.016 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m240 426.675781h-181.332031c-32.363281 0-58.667969-26.304687-58.667969-58.667969v-309.332031c0-32.363281 26.304688-58.6679685 58.667969-58.6679685h309.332031c32.363281 0 58.667969 26.3046875 58.667969 58.6679685v181.332031c0 8.832032-7.167969 16-16 16s-16-7.167968-16-16v-181.332031c0-14.699219-11.96875-26.667969-26.667969-26.667969h-309.332031c-14.699219 0-26.667969 11.96875-26.667969 26.667969v309.332031c0 14.699219 11.96875 26.667969 26.667969 26.667969h181.332031c8.832031 0 16 7.167969 16 16s-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812h-138.667969c-8.832031 0-16-7.167968-16-16 0-8.832031 7.167969-16 16-16h122.667969v-122.667968c0-8.832032 7.167969-16 16-16s16 7.167968 16 16v138.667968c0 8.832032-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812c-4.097656 0-8.191406-1.558593-11.308594-4.691406l-181.332031-181.335937c-6.25-6.25-6.25-16.382813 0-22.632813s16.382813-6.25 22.636719 0l181.332031 181.332032c6.25 6.25 6.25 16.382812 0 22.636718-3.136719 3.132813-7.230469 4.691406-11.328125 4.691406zm0 0"></path></svg></a></div><div class="lang">yaml</div></div><p>Dans cette configuration:</p>
<ul>
<li>les inscriptions sont désactivées (ladministrateur doit créer les comptes)</li>
<li>laccès est soumis à une authentification systématique (pas daccès libre à un dépôt public)</li>
<li>le courriel denregistrement doit être validé pour accéder à la forge</li>
<li>les données sont persistées dans un volume nommé Docker (<code class="noClass">/var/lib/docker/volume/gitea_data/</code>)</li>
<li>la redirection HTTP vers HTTPS est gérée en amont directement dans Traefik</li>
<li>les connexions TCP sont redirigées du point dentrée <code class="noClass">ssh</code> de Traefik vers le port TCP 22 du conteneur</li>
</ul>
<blockquote>
<p>Gitea propose de nombreux paramètres de configurations. Vous devriez trouver votre bonheur dans <a href="https://docs.gitea.io/fr-fr/config-cheat-sheet/" target="_blank" rel="noopener">la documentation</a> en respectant la convention de nommage des variables denvironnement : <a href="https://github.com/go-gitea/gitea/tree/main/contrib/environment-to-ini" target="_blank" rel="noopener">GITEA__SECTION__KEY-NAME</a></p>
</blockquote>
<p>Il ne reste plus quà démarrer le conteneur :</p>
<div class="highlight_wrap"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="line"><span class="ln pre_nolines">1</span><span class="cl">$ docker-compose -f /opt/gitea/docker-compose.yaml up -d
</span></span></code></pre></div><div class="panel_box"><a href="#" title="Copy Code" class="icon panel_icon panel_copy"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M366.905,108.016h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.048,0,20.003-8.955,20.003-20.003S377.952,108.016,366.905,108.016z"></path>
</g>
</g>
<g>
<g>
<path d="M366.905,188.027h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.047,0,20.003-8.955,20.003-20.003S377.953,188.027,366.905,188.027z"></path>
</g>
</g>
<g>
<g>
<path d="M286.004,268.039h-61.009c-11.048,0-20.003,8.955-20.003,20.003c0,11.048,8.955,20.003,20.003,20.003h61.009
c11.048,0,20.003-8.955,20.003-20.003C306.007,276.994,297.052,268.039,286.004,268.039z"></path>
</g>
</g>
<g>
<g>
<path d="M448.028,272.039c11.048,0,20.003-8.955,20.003-20.003V80.012C468.031,35.893,432.137,0,388.019,0H203.992
c-44.094,0-79.971,35.853-80.012,79.938c-44.118,0-80.012,35.893-80.012,80.012v272.039c0,44.118,35.893,80.012,80.012,80.012
h194.028c44.118,0,80.012-35.893,80.012-80.012v-0.608c39.414-4.938,70.01-38.662,70.01-79.389
c0-11.048-8.955-20.003-20.003-20.003c-11.048,0-20.003,8.955-20.003,20.003c0,22.054-17.942,40.001-39.996,40.006l-184.027,0.045
h-0.009c-10.685,0-20.73-4.16-28.285-11.715c-7.558-7.556-11.721-17.604-11.721-28.291V80.012
c0-22.059,17.947-40.006,40.006-40.006H388.02c22.059,0,40.006,17.947,40.006,40.006v172.025
C428.025,263.084,436.98,272.039,448.028,272.039z M203.992,432.047h0.02l154.002-0.038
c-0.012,22.049-17.954,39.984-40.006,39.984H123.981c-22.059,0-40.006-17.947-40.006-40.006V159.948
c0-22.059,17.947-40.006,40.006-40.006v232.094c0,21.375,8.325,41.471,23.441,56.583
C162.535,423.729,182.622,432.047,203.992,432.047z"></path>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Numbers" class="icon panel_icon panel_lines"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M492,236H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20C512,244.954,503.046,236,492,236z
"></path>
</g>
</g>
<g>
<g>
<path d="M492,86H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20S503.046,86,492,86z"></path>
</g>
</g>
<g>
<g>
<path d="M492,386H144.262c-11.046,0-20,8.954-20,20c0,11.046,8.954,20,20,20H492c11.046,0,20-8.954,20-20
C512,394.954,503.046,386,492,386z"></path>
</g>
</g>
<g>
<g>
<circle cx="27" cy="106" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="256" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="406" r="27"></circle>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Wrap" class="icon panel_icon panel_wrap panel_hide"><svg id="Layer" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m504.971 239.029-56.971-56.97v-98.059c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971l47.03 47.029-47.029 47.029c-4.501 4.501-7.03 10.606-7.03 16.971v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941z"></path><path d="m112 192v-108c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941l56.971 56.971v98.059c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36v-108c0-6.365-2.529-12.47-7.029-16.971l-47.03-47.029 47.029-47.029c4.501-4.501 7.03-10.606 7.03-16.971z"></path></svg></a><a href="#" title="Toggle code block expand" class="icon panel_icon panel_expand panel_hide"><svg height="512pt" viewBox="0 0 512.016 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m240 426.675781h-181.332031c-32.363281 0-58.667969-26.304687-58.667969-58.667969v-309.332031c0-32.363281 26.304688-58.6679685 58.667969-58.6679685h309.332031c32.363281 0 58.667969 26.3046875 58.667969 58.6679685v181.332031c0 8.832032-7.167969 16-16 16s-16-7.167968-16-16v-181.332031c0-14.699219-11.96875-26.667969-26.667969-26.667969h-309.332031c-14.699219 0-26.667969 11.96875-26.667969 26.667969v309.332031c0 14.699219 11.96875 26.667969 26.667969 26.667969h181.332031c8.832031 0 16 7.167969 16 16s-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812h-138.667969c-8.832031 0-16-7.167968-16-16 0-8.832031 7.167969-16 16-16h122.667969v-122.667968c0-8.832032 7.167969-16 16-16s16 7.167968 16 16v138.667968c0 8.832032-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812c-4.097656 0-8.191406-1.558593-11.308594-4.691406l-181.332031-181.335937c-6.25-6.25-6.25-16.382813 0-22.632813s16.382813-6.25 22.636719 0l181.332031 181.332032c6.25 6.25 6.25 16.382812 0 22.636718-3.136719 3.132813-7.230469 4.691406-11.328125 4.691406zm0 0"></path></svg></a></div><div class="lang">bash</div></div><p>et à finaliser linstallation dans linterface web :</p>
<p></p><figure><img src="https://blog.levassb.ovh/images/gitea-install-sc.png" alt="Gitea Install" loading="lazy" data-pos="2" class="image-scalable" data-scale="1.1879350348027842"></figure><p class="img_alt">Figure 2: Gitea Install</p><p></p>
<blockquote>
<p>Il faut impérativement créer le compte administrateur puisque les inscriptions sont fermées dans cette configuration.</p>
</blockquote>
<p>A ce stade, Gitea est opérationnel. Vous pouvez maintenant:</p>
<ul>
<li>créer un compte utilisateur</li>
<li>ajouter une clé publique SSH</li>
<li>créer un premier dépôt</li>
</ul>
<p>et tester les connexions SSH :</p>
<div class="highlight_wrap"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash hljs" data-lang="bash"><span class="line"><span class="ln pre_nolines"> 1</span><span class="cl">$ mkdir ~/projet <span class="o">&amp;&amp;</span> <span class="nb"><span class="hljs-built_in">cd</span></span> <span class="s2"><span class="hljs-string">"</span></span><span class="nv"><span class="hljs-string"><span class="hljs-variable">$_</span></span></span><span class="s2"><span class="hljs-string">"</span></span>
</span></span><span class="line"><span class="ln pre_nolines"> 2</span><span class="cl">$ touch README.md
</span></span><span class="line"><span class="ln pre_nolines"> 3</span><span class="cl">$ git init
</span></span><span class="line"><span class="ln pre_nolines"> 4</span><span class="cl">$ git checkout -b main
</span></span><span class="line"><span class="ln pre_nolines"> 5</span><span class="cl">$ git add README.md
</span></span><span class="line"><span class="ln pre_nolines"> 6</span><span class="cl">$ git commit -m <span class="s2"><span class="hljs-string">"first commit"</span></span>
</span></span><span class="line"><span class="ln pre_nolines"> 7</span><span class="cl">$ git remote add origin ssh://git@git.domain.tld:2222/johndoe/demo.git
</span></span><span class="line"><span class="ln pre_nolines"> 8</span><span class="cl">$ git push -u origin main
</span></span><span class="line"><span class="ln pre_nolines"> 9</span><span class="cl">$ git push origin main
</span></span><span class="line"><span class="ln pre_nolines">10</span><span class="cl">Énumération des objets: 3, fait.
</span></span><span class="line"><span class="ln pre_nolines">11</span><span class="cl">Décompte des objets: 100% <span class="o">(</span>3/3<span class="o">)</span>, fait.
</span></span><span class="line"><span class="ln pre_nolines">12</span><span class="cl">Écriture des objets: 100% <span class="o">(</span>3/3<span class="o">)</span>, <span class="m">219</span> octets <span class="p">|</span> 219.00 Kio/s, fait.
</span></span><span class="line"><span class="ln pre_nolines">13</span><span class="cl">Total <span class="m">3</span> <span class="o">(</span>delta 0<span class="o">)</span>, réutilisés <span class="m">0</span> <span class="o">(</span>delta 0<span class="o">)</span>, réutilisés du pack <span class="m">0</span>
</span></span><span class="line"><span class="ln pre_nolines">14</span><span class="cl">remote: . Processing <span class="m">1</span> references
</span></span><span class="line"><span class="ln pre_nolines">15</span><span class="cl">remote: Processed <span class="m">1</span> references <span class="hljs-keyword">in</span> total
</span></span><span class="line"><span class="ln pre_nolines">16</span><span class="cl">To ssh://git.domain.tld:2222/johndoe/demo.git
</span></span><span class="line"><span class="ln pre_nolines">17</span><span class="cl"> * <span class="o">[</span>new branch<span class="o">]</span> main -&gt; main
</span></span></code></pre></div><div class="panel_box"><a href="#" title="Copy Code" class="icon panel_icon panel_copy"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M366.905,108.016h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.048,0,20.003-8.955,20.003-20.003S377.952,108.016,366.905,108.016z"></path>
</g>
</g>
<g>
<g>
<path d="M366.905,188.027h-141.91c-11.048,0-20.003,8.955-20.003,20.003s8.955,20.003,20.003,20.003h141.91
c11.047,0,20.003-8.955,20.003-20.003S377.953,188.027,366.905,188.027z"></path>
</g>
</g>
<g>
<g>
<path d="M286.004,268.039h-61.009c-11.048,0-20.003,8.955-20.003,20.003c0,11.048,8.955,20.003,20.003,20.003h61.009
c11.048,0,20.003-8.955,20.003-20.003C306.007,276.994,297.052,268.039,286.004,268.039z"></path>
</g>
</g>
<g>
<g>
<path d="M448.028,272.039c11.048,0,20.003-8.955,20.003-20.003V80.012C468.031,35.893,432.137,0,388.019,0H203.992
c-44.094,0-79.971,35.853-80.012,79.938c-44.118,0-80.012,35.893-80.012,80.012v272.039c0,44.118,35.893,80.012,80.012,80.012
h194.028c44.118,0,80.012-35.893,80.012-80.012v-0.608c39.414-4.938,70.01-38.662,70.01-79.389
c0-11.048-8.955-20.003-20.003-20.003c-11.048,0-20.003,8.955-20.003,20.003c0,22.054-17.942,40.001-39.996,40.006l-184.027,0.045
h-0.009c-10.685,0-20.73-4.16-28.285-11.715c-7.558-7.556-11.721-17.604-11.721-28.291V80.012
c0-22.059,17.947-40.006,40.006-40.006H388.02c22.059,0,40.006,17.947,40.006,40.006v172.025
C428.025,263.084,436.98,272.039,448.028,272.039z M203.992,432.047h0.02l154.002-0.038
c-0.012,22.049-17.954,39.984-40.006,39.984H123.981c-22.059,0-40.006-17.947-40.006-40.006V159.948
c0-22.059,17.947-40.006,40.006-40.006v232.094c0,21.375,8.325,41.471,23.441,56.583
C162.535,423.729,182.622,432.047,203.992,432.047z"></path>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Numbers" class="icon panel_icon panel_lines"><!--?xml version="1.0" encoding="iso-8859-1"?-->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<g>
<path d="M492,236H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20C512,244.954,503.046,236,492,236z
"></path>
</g>
</g>
<g>
<g>
<path d="M492,86H144.262c-11.046,0-20,8.954-20,20s8.954,20,20,20H492c11.046,0,20-8.954,20-20S503.046,86,492,86z"></path>
</g>
</g>
<g>
<g>
<path d="M492,386H144.262c-11.046,0-20,8.954-20,20c0,11.046,8.954,20,20,20H492c11.046,0,20-8.954,20-20
C512,394.954,503.046,386,492,386z"></path>
</g>
</g>
<g>
<g>
<circle cx="27" cy="106" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="256" r="27"></circle>
</g>
</g>
<g>
<g>
<circle cx="27" cy="406" r="27"></circle>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>
</a><a href="#" title="Toggle Line Wrap" class="icon panel_icon panel_wrap panel_hide"><svg id="Layer" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m504.971 239.029-56.971-56.97v-98.059c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971l47.03 47.029-47.029 47.029c-4.501 4.501-7.03 10.606-7.03 16.971v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941z"></path><path d="m112 192v-108c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941l56.971 56.971v98.059c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36v-108c0-6.365-2.529-12.47-7.029-16.971l-47.03-47.029 47.029-47.029c4.501-4.501 7.03-10.606 7.03-16.971z"></path></svg></a><a href="#" title="Toggle code block expand" class="icon panel_icon panel_expand panel_hide"><svg height="512pt" viewBox="0 0 512.016 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m240 426.675781h-181.332031c-32.363281 0-58.667969-26.304687-58.667969-58.667969v-309.332031c0-32.363281 26.304688-58.6679685 58.667969-58.6679685h309.332031c32.363281 0 58.667969 26.3046875 58.667969 58.6679685v181.332031c0 8.832032-7.167969 16-16 16s-16-7.167968-16-16v-181.332031c0-14.699219-11.96875-26.667969-26.667969-26.667969h-309.332031c-14.699219 0-26.667969 11.96875-26.667969 26.667969v309.332031c0 14.699219 11.96875 26.667969 26.667969 26.667969h181.332031c8.832031 0 16 7.167969 16 16s-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812h-138.667969c-8.832031 0-16-7.167968-16-16 0-8.832031 7.167969-16 16-16h122.667969v-122.667968c0-8.832032 7.167969-16 16-16s16 7.167968 16 16v138.667968c0 8.832032-7.167969 16-16 16zm0 0"></path><path d="m496 512.007812c-4.097656 0-8.191406-1.558593-11.308594-4.691406l-181.332031-181.335937c-6.25-6.25-6.25-16.382813 0-22.632813s16.382813-6.25 22.636719 0l181.332031 181.332032c6.25 6.25 6.25 16.382812 0 22.636718-3.136719 3.132813-7.230469 4.691406-11.328125 4.691406zm0 0"></path></svg></a></div><div class="lang">bash</div></div><p></p><figure><img src="https://blog.levassb.ovh/images/gitea-repo.png" alt="Gitea repo" loading="lazy" data-pos="3" class="image-scalable" data-scale="1.1879350348027842"></figure><p class="img_alt">Figure 3: Gitea repo</p><p></p>
<h1 id="conclusion">Conclusion</h1>
<p>Gitea offre une solution clé en main élégante et facile à mettre en oeuvre. Peu gourmande en ressources (moins de 200Mo de RAM et une image à 257Mo), elle est particulièrement bien adaptée aux contraites de lauto-hébergement.</p>
<h1 id="ressources">Ressources</h1>
<ul>
<li><a href="https://docs.gitea.io/fr-fr/" target="_blank" rel="noopener">documentation Gitea</a></li>
<li><a href="https://docs.gitea.io/fr-fr/config-cheat-sheet/" target="_blank" rel="noopener">config Cheat Sheet (en)</a></li>
<li><a href="https://community.traefik.io/t/ssh-gitea-with-traefik-v2/14525" target="_blank" rel="noopener">forum Traefik</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-gitea-on-ubuntu-using-docker" target="_blank" rel="noopener">tutorial DigitalOcean (en)</a></li>
<li><a href="https://www.richard-dern.fr/blog/2021/09/12/deployer-hugo-via-gitea-et-drone-ci/" target="_blank" rel="noopener">blog de Richard Dern</a></li>
<li><a href="https://blog.filador.fr/gitea-le-gestionnaire-de-code-source-leger-et-simple-a-mettre-en-oeuvre-pour-votre-raspberry/" target="_blank" rel="noopener">blog de Romain Boulanger</a></li>
</ul>
<p>Photo by <a href="https://unsplash.com/fr/@mlightbody" target="_blank" rel="noopener">Malcolm Lightbody</a> on <a href="https://unsplash.com/photos/gPRvTP0sZ2M" target="_blank" rel="noopener">Unsplash</a></p>
</article>
<aside class="sidebar">
<section class="sidebar_inner">
<h2 class="mt-4">Featured Posts</h2>
<ul>
<li>
<a href="https://blog.levassb.ovh/post/joplin/" class="nav-link" title="Serveur Joplin">Serveur Joplin</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/pbs/" class="nav-link" title="Proxmox Backup Server">Proxmox Backup Server</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/crowdsec/" class="nav-link" title="Crowdsec avec Traefik">Crowdsec avec Traefik</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/terraform/" class="nav-link" title="Terraform et Proxmox">Terraform et Proxmox</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/restic/" class="nav-link" title="Restic avec MinIO">Restic avec MinIO</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/ansible/" class="nav-link" title="Ansible">Ansible</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/nextcloud/" class="nav-link" title="Nextcloud">Nextcloud</a>
</li>
</ul>
<h2 class="mt-4">Recent Posts</h2>
<ul class="flex-column">
<li>
<a href="https://blog.levassb.ovh/post/ansible-study-case/" class="nav-link" title="Ansible : cas pratique (1er partie)">Ansible : cas pratique (1er partie)</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/uptime-kuma/" class="nav-link" title="Uptime Kuma">Uptime Kuma</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/joplin/" class="nav-link" title="Serveur Joplin">Serveur Joplin</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/pbs/" class="nav-link" title="Proxmox Backup Server">Proxmox Backup Server</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/crowdsec/" class="nav-link" title="Crowdsec avec Traefik">Crowdsec avec Traefik</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/terraform/" class="nav-link" title="Terraform et Proxmox">Terraform et Proxmox</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/zfs-part2/" class="nav-link" title="ZFS partie 2">ZFS partie 2</a>
</li>
<li>
<a href="https://blog.levassb.ovh/post/zfs/" class="nav-link" title="ZFS partie 1">ZFS partie 1</a>
</li>
</ul>
<div>
<h2 class="mt-4 taxonomy" id="categories-section">Categories</h2>
<nav class="tags_nav">
<a href="https://blog.levassb.ovh/categories/self-hosting/" class="post_tag button button_translucent" title="self-hosting">
SELF-HOSTING
<span class="button_tally">7</span>
</a>
<a href="https://blog.levassb.ovh/categories/stockage/" class="post_tag button button_translucent" title="stockage">
STOCKAGE
<span class="button_tally">5</span>
</a>
<a href="https://blog.levassb.ovh/categories/sysadmin/" class="post_tag button button_translucent" title="sysadmin">
SYSADMIN
<span class="button_tally">4</span>
</a>
<a href="https://blog.levassb.ovh/categories/iac/" class="post_tag button button_translucent" title="iac">
IAC
<span class="button_tally">3</span>
</a>
<a href="https://blog.levassb.ovh/categories/devops/" class="post_tag button button_translucent" title="devops">
DEVOPS
<span class="button_tally">2</span>
</a>
<a href="https://blog.levassb.ovh/categories/securit%C3%A9/" class="post_tag button button_translucent" title="securité">
SECURITÉ
<span class="button_tally">1</span>
</a>
<a href="https://blog.levassb.ovh/categories/web/" class="post_tag button button_translucent" title="web">
WEB
<span class="button_tally">1</span>
</a>
</nav>
</div>
<div>
<h2 class="mt-4 taxonomy" id="tags-section">Tags</h2>
<nav class="tags_nav">
<a href="https://blog.levassb.ovh/tags/docker/" class="post_tag button button_translucent" title="docker">
DOCKER
<span class="button_tally">12</span>
</a>
<a href="https://blog.levassb.ovh/tags/traefik/" class="post_tag button button_translucent" title="traefik">
TRAEFIK
<span class="button_tally">8</span>
</a>
<a href="https://blog.levassb.ovh/tags/backup/" class="post_tag button button_translucent" title="backup">
BACKUP
<span class="button_tally">3</span>
</a>
<a href="https://blog.levassb.ovh/tags/ceph/" class="post_tag button button_translucent" title="ceph">
CEPH
<span class="button_tally">3</span>
</a>
<a href="https://blog.levassb.ovh/tags/proxmox/" class="post_tag button button_translucent" title="proxmox">
PROXMOX
<span class="button_tally">3</span>
</a>
<a href="https://blog.levassb.ovh/tags/ansible/" class="post_tag button button_translucent" title="ansible">
ANSIBLE
<span class="button_tally">2</span>
</a>
<a href="https://blog.levassb.ovh/tags/file-system/" class="post_tag button button_translucent" title="file-system">
FILE-SYSTEM
<span class="button_tally">2</span>
</a>
<a href="https://blog.levassb.ovh/tags/opensuse/" class="post_tag button button_translucent" title="opensuse">
OPENSUSE
<span class="button_tally">2</span>
</a>
<a href="https://blog.levassb.ovh/tags/drive/" class="post_tag button button_translucent" title="drive">
DRIVE
<span class="button_tally">1</span>
</a>
<a href="https://blog.levassb.ovh/tags/git/" class="post_tag button button_translucent" title="git">
GIT
<span class="button_tally">1</span>
</a>
<a href="https://blog.levassb.ovh/tags/hci/" class="post_tag button button_translucent" title="hci">
HCI
<span class="button_tally">1</span>
</a>
<a href="https://blog.levassb.ovh/tags/monitoring/" class="post_tag button button_translucent" title="monitoring">
MONITORING
<span class="button_tally">1</span>
</a>
<a href="https://blog.levassb.ovh/tags/s3/" class="post_tag button button_translucent" title="s3">
S3
<span class="button_tally">1</span>
</a>
<a href="https://blog.levassb.ovh/tags/terraform/" class="post_tag button button_translucent" title="terraform">
TERRAFORM
<span class="button_tally">1</span>
</a>
</nav>
</div>
</section>
</aside>
</div>
</main><svg width="0" height="0" class="hidden">
<symbol viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" id="facebook">
<path d="M437 0H75C33.648 0 0 33.648 0 75v362c0 41.352 33.648 75 75 75h151V331h-60v-90h60v-61c0-49.629 40.371-90 90-90h91v90h-91v61h91l-15 90h-76v181h121c41.352 0 75-33.648 75-75V75c0-41.352-33.648-75-75-75zm0 0"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18.001 18.001" id="twitter">
<path d="M15.891 4.013c.808-.496 1.343-1.173 1.605-2.034a8.68 8.68 0 0 1-2.351.861c-.703-.756-1.593-1.14-2.66-1.14-1.043 0-1.924.366-2.643 1.078a3.56 3.56 0 0 0-1.076 2.605c0 .309.039.585.117.819-3.076-.105-5.622-1.381-7.628-3.837-.34.601-.51 1.213-.51 1.846 0 1.301.549 2.332 1.645 3.089-.625-.053-1.176-.211-1.645-.47 0 .929.273 1.705.82 2.388a3.623 3.623 0 0 0 2.115 1.291c-.312.08-.641.118-.979.118-.312 0-.533-.026-.664-.083.23.757.664 1.371 1.291 1.841a3.652 3.652 0 0 0 2.152.743C4.148 14.173 2.625 14.69.902 14.69c-.422 0-.721-.006-.902-.038 1.697 1.102 3.586 1.649 5.676 1.649 2.139 0 4.029-.542 5.674-1.626 1.645-1.078 2.859-2.408 3.639-3.974a10.77 10.77 0 0 0 1.172-4.892v-.468a7.788 7.788 0 0 0 1.84-1.921 8.142 8.142 0 0 1-2.11.593z"></path>
</symbol>
<symbol aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="mail">
<path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="calendar">
<path d="M452 40h-24V0h-40v40H124V0H84v40H60C26.916 40 0 66.916 0 100v352c0 33.084 26.916 60 60 60h392c33.084 0 60-26.916 60-60V100c0-33.084-26.916-60-60-60zm20 412c0 11.028-8.972 20-20 20H60c-11.028 0-20-8.972-20-20V188h432v264zm0-304H40v-48c0-11.028 8.972-20 20-20h24v40h40V80h264v40h40V80h24c11.028 0 20 8.972 20 20v48z"></path>
<path d="M76 230h40v40H76zm80 0h40v40h-40zm80 0h40v40h-40zm80 0h40v40h-40zm80 0h40v40h-40zM76 310h40v40H76zm80 0h40v40h-40zm80 0h40v40h-40zm80 0h40v40h-40zM76 390h40v40H76zm80 0h40v40h-40zm80 0h40v40h-40zm80 0h40v40h-40zm80-80h40v40h-40z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="github">
<path d="M255.968 5.329C114.624 5.329 0 120.401 0 262.353c0 113.536 73.344 209.856 175.104 243.872 12.8 2.368 17.472-5.568 17.472-12.384 0-6.112-.224-22.272-.352-43.712-71.2 15.52-86.24-34.464-86.24-34.464-11.616-29.696-28.416-37.6-28.416-37.6-23.264-15.936 1.728-15.616 1.728-15.616 25.696 1.824 39.2 26.496 39.2 26.496 22.848 39.264 59.936 27.936 74.528 21.344 2.304-16.608 8.928-27.936 16.256-34.368-56.832-6.496-116.608-28.544-116.608-127.008 0-28.064 9.984-51.008 26.368-68.992-2.656-6.496-11.424-32.64 2.496-68 0 0 21.504-6.912 70.4 26.336 20.416-5.696 42.304-8.544 64.096-8.64 21.728.128 43.648 2.944 64.096 8.672 48.864-33.248 70.336-26.336 70.336-26.336 13.952 35.392 5.184 61.504 2.56 68 16.416 17.984 26.304 40.928 26.304 68.992 0 98.72-59.84 120.448-116.864 126.816 9.184 7.936 17.376 23.616 17.376 47.584 0 34.368-.32 62.08-.32 70.496 0 6.88 4.608 14.88 17.6 12.352C438.72 472.145 512 375.857 512 262.353 512 120.401 397.376 5.329 255.968 5.329z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 212 212" id="gitlab">
<path d="M12.3 74.7h54L43.3 3c-1-3.6-6.4-3.6-7.6 0L12.3 74.8z"></path>
<path d="M12.3 74.7L.5 111c-1 3.2 0 6.8 3 8.8l101.6 74-92.5-119z"></path>
<path d="M105 193.7l-38.6-119h-54l92.7 119z"></path>
<path d="M105 193.7l38.7-119H66.4l38.7 119z"></path>
<path d="M105 193.7l38.7-119H198l-93 119z"></path>
<path d="M198 74.7l11.6 36.2c1 3 0 6.6-3 8.6l-101.5 74 93-119z"></path>
<path d="M198 74.7h-54.3L167 3c1.2-3.6 6.4-3.6 7.6 0L198 74.8z"></path>
</symbol>
<symbol viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" id="rss">
<circle cx="3.429" cy="20.571" r="3.429"></circle>
<path d="M11.429 24h4.57C15.999 15.179 8.821 8.001 0 8v4.572c6.302.001 11.429 5.126 11.429 11.428z"></path>
<path d="M24 24C24 10.766 13.234 0 0 0v4.571c10.714 0 19.43 8.714 19.43 19.429z"></path>
</symbol>
<symbol viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" id="linkedin">
<path d="M437 0H75C33.648 0 0 33.648 0 75v362c0 41.352 33.648 75 75 75h362c41.352 0 75-33.648 75-75V75c0-41.352-33.648-75-75-75zM181 406h-60V196h60zm0-240h-60v-60h60zm210 240h-60V286c0-16.54-13.46-30-30-30s-30 13.46-30 30v120h-60V196h60v11.309C286.719 202.422 296.93 196 316 196c40.691.043 75 36.547 75 79.688zm0 0"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 612 612" id="arrow">
<path d="M604.501 440.509L325.398 134.956c-5.331-5.357-12.423-7.627-19.386-7.27-6.989-.357-14.056 1.913-19.387 7.27L7.499 440.509c-9.999 10.024-9.999 26.298 0 36.323s26.223 10.024 36.222 0l262.293-287.164L568.28 476.832c9.999 10.024 26.222 10.024 36.221 0 9.999-10.023 9.999-26.298 0-36.323z"></path>
</symbol>
<symbol viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" id="carly">
<path d="M504.971 239.029L448 182.059V84c0-46.317-37.682-84-84-84h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c19.851 0 36 16.149 36 36v108c0 6.365 2.529 12.47 7.029 16.971L454.059 256l-47.029 47.029A24.002 24.002 0 0 0 400 320v108c0 19.851-16.149 36-36 36h-44c-13.255 0-24 10.745-24 24s10.745 24 24 24h44c46.318 0 84-37.683 84-84v-98.059l56.971-56.971c9.372-9.372 9.372-24.568 0-33.941zM112 192V84c0-19.851 16.149-36 36-36h44c13.255 0 24-10.745 24-24S205.255 0 192 0h-44c-46.318 0-84 37.683-84 84v98.059l-56.971 56.97c-9.373 9.373-9.373 24.568 0 33.941L64 329.941V428c0 46.317 37.682 84 84 84h44c13.255 0 24-10.745 24-24s-10.745-24-24-24h-44c-19.851 0-36-16.149-36-36V320c0-6.365-2.529-12.47-7.029-16.971L57.941 256l47.029-47.029A24.002 24.002 0 0 0 112 192z"></path>
</symbol>
<symbol viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" id="copy">
<path d="M23 2.75A2.75 2.75 0 0 0 20.25 0H8.75A2.75 2.75 0 0 0 6 2.75v13.5A2.75 2.75 0 0 0 8.75 19h11.5A2.75 2.75 0 0 0 23 16.25zM18.25 14.5h-7.5a.75.75 0 0 1 0-1.5h7.5a.75.75 0 0 1 0 1.5zm0-3h-7.5a.75.75 0 0 1 0-1.5h7.5a.75.75 0 0 1 0 1.5zm0-3h-7.5a.75.75 0 0 1 0-1.5h7.5a.75.75 0 0 1 0 1.5z"></path>
<path d="M8.75 20.5a4.255 4.255 0 0 1-4.25-4.25V2.75c0-.086.02-.166.025-.25H3.75A2.752 2.752 0 0 0 1 5.25v16A2.752 2.752 0 0 0 3.75 24h12a2.752 2.752 0 0 0 2.75-2.75v-.75z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512.001 512.001" id="closeme">
<path d="M284.286 256.002L506.143 34.144c7.811-7.811 7.811-20.475 0-28.285-7.811-7.81-20.475-7.811-28.285 0L256 227.717 34.143 5.859c-7.811-7.811-20.475-7.811-28.285 0-7.81 7.811-7.811 20.475 0 28.285l221.857 221.857L5.858 477.859c-7.811 7.811-7.811 20.475 0 28.285a19.938 19.938 0 0 0 14.143 5.857 19.94 19.94 0 0 0 14.143-5.857L256 284.287l221.857 221.857c3.905 3.905 9.024 5.857 14.143 5.857s10.237-1.952 14.143-5.857c7.811-7.811 7.811-20.475 0-28.285L284.286 256.002z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" id="open-menu">
<path d="M492 236H20c-11.046 0-20 8.954-20 20s8.954 20 20 20h472c11.046 0 20-8.954 20-20s-8.954-20-20-20zm0-160H20C8.954 76 0 84.954 0 96s8.954 20 20 20h472c11.046 0 20-8.954 20-20s-8.954-20-20-20zm0 320H20c-11.046 0-20 8.954-20 20s8.954 20 20 20h472c11.046 0 20-8.954 20-20s-8.954-20-20-20z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="instagram">
<path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="youtube">
<path d="M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z"></path>
</symbol>
<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="stackoverflow">
<path d="M21 27v-8h3v11H0V19h3v8h18z"></path><path d="M17.1.2L15 1.8l7.9 10.6 2.1-1.6L17.1.2zm3.7 14.7L10.6 6.4l1.7-2 10.2 8.5-1.7 2zM7.2 12.3l12 5.6 1.1-2.4-12-5.6-1.1 2.4zm-1.8 6.8l13.56 1.96.17-2.38-13.26-2.55-.47 2.97zM19 25H5v-3h14v3z"></path>
</symbol>
</svg>
<footer class="footer">
<div class="footer_inner wrap pale">
<img src="https://blog.levassb.ovh/icons/apple-touch-icon.png" class="icon icon_2 transparent" alt="BL-oG">
<p>Copyright&nbsp;<span class="year">2024</span>&nbsp;BL-OG. All Rights Reserved</p><a class="to_top" href="#documentTop" style="left: 1212px;">
<svg class="icon">
<use xlink:href="#arrow"></use>
</svg>
</a>
</div>
</footer>
<script type="text/javascript" crossorigin="anonymous"></script>
</body></html>