<style>

:root {
  --accent: #ea596e;
}
  
* {
  font-family: monospace;  
  font-size: .9em;
  line-height: 1.4 !important;
}
  
pre {
  overflow: hidden;
}

header {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  flex-direction: column;
  height: 100%;
}
  
blockquote {
  background-color: #202020 !important;
}
  
h1 {
  font-size: 2em !important;
}
  
p {
  padding-top: 1em;
  padding-bottom: .4em;
  
}
  
li {
  padding-top: .4em;
  padding-bottom: .2em;
}
  
h1, h2, h3, h4, h5, h6 {
  border-bottom-style: none !important;
  font-weight: 100 !important;
}
  
h1::after {
  display: block;
  content: '💮💮'; 
  margin: 3rem;
}
  
.precision {
  font-style: italic;
  font-size: 0.8em !important;
}
  
</style>

<center>
  
  <span style="font-size: 1.4em">Deuxfleurs : l'hébergeur numérique sobre, convivial, et militant</span><br><br>
  
  <div id="title-figs">
    <media-tag src="https://pad.deuxfleurs.fr/blob/78/783fa952f5dcad385b52257f7f3ae8a02565069351f47b5c" data-crypto-key="cryptpad:wGZWoUeg1fAMAkBFUteFcdKtuRE2vdzNSuSxRna3mpE="></media-tag>
  </div>
  
  Par Marion, Aeddis, Adrien & Max<br>
  <span class="precision">11/02/25</span>
  
</center>

---

<header>
  
# Qui est Deuxfleurs

Et pourquoi on héberge pas comme tout le monde
  
</header>

<!-----

## Deuxfleurs

```
             .-.
           .( ; ;
     .-.  (_.():')
   _( ' ; /(' ; .)
  ( `(·)` ; ``-'
  ',_' `·,'
     `-`\|            +---------------------+
         . /)         |  B i e n v e n u e  |
       (\|/           +---------------------+
         |              |                 |
.,.,\/,}\|//,,, ;/,,\/  |  , \,,,;/. ;.;, |,,,,;,;..
```

<center>Fabriquons un internet convivial</center>
-->
---

 <!---
    <div style="width:50%; font-size: 50%"><pre><code>
!¨¨¨¨¨¨¨!¨¨¨¨¨¨¨! !¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨!
|  O O  | \('')\| |       | • ~~~~~|
| \"""/ |  (__) | | mails | • ~~~~~|
|-------|-------| |       |o ——————|
|       |  """" | |       |o ——————|
| visio | / - -\| | [] [] |o ——————|
!       | \   ~/! !       |        !
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
</code></pre></div>
-->

## Un hébergeur de services numériques

<center><a href="https://deuxfleurs.fr">https://deuxfleurs.fr</a></center>

<span style="text-decoration-line: underline;">Communication</span>

<div>
  <ul style="display: flex">
    <li style="flex: auto">Discussion instantanée</li>
    <li style="flex: auto">E-mails & Agenda</li>
    <li style="flex: auto">Visio 🔓</li>
  </ul>
</div>


<span style="text-decoration-line: underline;">Édition collaborative</span>

<div>
  <ul style="display: flex">
    <li style="flex: auto">Bureautique 🔓</li>
    <li style="flex: auto">Forge logicielle 🔓</li>
  </ul>
</div>


<span style="text-decoration-line: underline;">Publication</span>

<div>
  <ul style="display: flex">
    <li style="flex: 1"><b>Sites web statiques</b></li>
    <li style="flex: auto">Blogs</li>
  </ul>
</div>

---

## Membre du collectif CHATONS

<center style="margin-bottom: 1em"><a href="https://chatons.org">https://chatons.org</a></center>

<media-tag src="https://pad.deuxfleurs.fr/blob/c7/c7370cb9be59781549468227bc7b56187bcc6d7dc872dca9" data-crypto-key="cryptpad:SA33Fv2YDz52VjWa2tLCnkmNKAw/C6jN6WQ6zaFXzo0="></media-tag>

<center><b>C</b>ollectif des <b>H</b>ébergeurs <b>A</b>lternatifs <b>T</b>ransparents <b>O</b>uverts <b>N</b>eutres & <b>S</b>olidaires</center>

---

## Nos valeurs

#### *Fabriquons un Internet convivial*
<div style="display: flex">
  <div style="flex: 2">

 * Convivialité
 * Démocratie
 * Appropriation de la technique
  </div>
  <div style="flex: 1">

* Sobriété 
* Vie privée
* Qualité de service

  </div>
</div>
---

## Seconde main, connexions domestiques

<div style="display: flex">
  <div style="flex: 0.91">
<media-tag src="https://pad.deuxfleurs.fr/blob/28/28f75bae30848ff861ede75007d2b6c2fce3a691f2c1ea07" data-crypto-key="cryptpad:rkDkQC816S2NOD00dECcilysELxtJdGthl9hBudWXx0="></media-tag>
  </div>
  <div style="flex: 0.1"></div>
  <div style="flex: 1">

<media-tag src="https://pad.deuxfleurs.fr/blob/f4/f485b5c1755ea226e6f0b6c9b7b5ae01a5c7e1414f378f51" data-crypto-key="cryptpad:IZcqTFZ2tfPTPZgJhFjZSntNYrcmwYCxuETclQUXwgE="></media-tag>
  </div>
</div>



<!-- 
Et système de air-cooling haute performance par voie de cagette et aspi 1 fois pas semaine
Et réseau de chaleur au plus près des logements
 -->
---

## Infrastructure distribuée

<!-- 

- Nantes
- Bruxelles
- Lille
- Rennes
-->
<media-tag src="https://pad.deuxfleurs.fr/blob/0b/0bca9d7917de84bcceaf93848bc2d618597f9f7848b7ebef" data-crypto-key="cryptpad:bVb7NhhLNy6BVfNz9NYehHclMbW7pPJ9zbtVIaM+e9A="></media-tag>

---


## Efficience & Résilience

#### *Ne pas condamner la sobriété à l'amateurisme*

* 420 sites web hébergé (pour l'instant !) 

* 3% de notre capacité

* Disponibilité > 97%

<!-- service atteinte, déconnexions de sites de production sans incidences sur les usagères-->

---

## Le résultat

#### *Qualité de service professionnelle*

<media-tag src="https://pad.deuxfleurs.fr/blob/d9/d98a5c35c8e55c3788552ba55f0398ded4cec0de32c1f83a" data-crypto-key="cryptpad:5lMS3LujBmQil0V+O9orGsqgArwZ48Fdjb0u3geZJrw="></media-tag>

<center>
  <span class="precision"><a href="https://noesya.coop">https://noesya.coop</a></span>
</center>



---

<header>
  
# Comment on fait
  
La sobriété, c'est technique

</header>

---

## Objectif

#### Entr'hébergement de services web

<media-tag src="https://pad.deuxfleurs.fr/blob/0b/0bca9d7917de84bcceaf93848bc2d618597f9f7848b7ebef" data-crypto-key="cryptpad:bVb7NhhLNy6BVfNz9NYehHclMbW7pPJ9zbtVIaM+e9A="></media-tag>

<!--<pre><code style="font-size: 50%">  ___||__                                                   
 /       \                                                  
/     [s] \               🧑‍🦰                        ☁️       
|    [s]  |               |                           ☁️      
| 🚲️  [s] ⊗ ~                      ~ ~ 😊         ___||_  
===========   ~           |      /                 /      \ 
 BRUXELLES      \   ⋅⋅^^⋅⋅⋅⋅^^⋅⋅⋅                    /         \
                  ~(  🐦️    🐦️   )               |   [s]  |
                  (               ) ~ ~ ~ ~ ~ ~ ~ ⊗ [s][s] |
                  (  INTERMOUETTE  )              ===========
  ____             (      🐦️       )                NANTES
 /    \       ~ ~ ~ (             )                        
/  🐈️  \    ~        ⋅⋅^^^^^⋅^^^⋅⋅                          
| [s]  |  /          |             \                        
|  [s] ⊗ ~                          ~ ~ 🧑‍🦳                  
========              \                                    
 LILLE                  ~ 🙍                               
</code></pre>-->

---

## Étape 1

#### Interconnecter de façon reproductible

<media-tag src="https://pad.deuxfleurs.fr/blob/f5/f5d43ffd22d6414aacabc439010473ee08bac3d61662df89" data-crypto-key="cryptpad:nu+RmRLbXIe3N0zc1Uj5Janz31E6S2aiDXUTACR3h6w="></media-tag>

---

## Étape 2

#### Ordonnancer des services

<media-tag src="https://pad.deuxfleurs.fr/blob/57/574cedcc52c74a22237aff4773088f028fc53c5a9bd2d2b4" data-crypto-key="cryptpad:hU/+hvrIIoLE7bgBdBgyF9Bsu1v/V5sM4h554n/Jafc="></media-tag>

<div style="display: flex">
  <div class="flex: 1">  
  Consul vérifie l'état des services,<br>
    et stocke leur état <i>de façon répartie</i>.
  </div>
  <div style="flex: 1"></div>
  <div class="flex: 1">
  Nomad ordonnance.
  </div>
</div>

---

## Étape 2

#### Il reste quelques bricoles : reconfiguration DNS & NAT

Consul nous informe à chaque changement d'état, alors...

- Mise à jour auto. du DNS\
  https://git.deuxfleurs.fr/Deuxfleurs/d53  
  
- Reconfiguration auto. du NAT\
  https://git.deuxfleurs.fr/Deuxfleurs/diplonat 

---



## Étape 3

#### Outiller les services



<div style="display: flex; margin-top: 2em;">
  <div style="flex: 1">

**Gérer l'état des services**
    
- Bases de données 
- Gestion des objets\
(media, fichiers...)
  </div>
  <!--<div style="flex: 0.1"></div>-->
  <div style="flex: 1; padding-left: 2em; border-left: 1px solid white;">
    
**Et encore quelques bricoles**
    
- Gestion des comptes, SSO
- Routage HTTP
  </div>
</div>

---

## Étape 3.1

#### Gérer l'état des services

<media-tag src="https://pad.deuxfleurs.fr/blob/ee/eeb7f5ff586801d1bc1376dc7a53d61910db904470e1cf73" data-crypto-key="cryptpad:EFUfCKB49shVb7DlHz1pnQAvu/wyG5xyD2f/zOOle4I="></media-tag>

<center><span class="precision">Le bon temps de l'auto-hébergement : zéro disponibilité</span></center>

---

## Étape 3.1

#### Gérer l'état des services

<media-tag src="https://pad.deuxfleurs.fr/blob/76/769d7cf9299e47aaaa425851edaefa4498146516354e06f9" data-crypto-key="cryptpad:1nfIDsdgF06M2InSGgSx3qXEu+yV4EYiP4vYx7SZtnU="></media-tag>

<center><span class="precision">Hélas, les systèmes de fichiers répartis ne tolèrent pas la latence</span></center>

---

## Étape 3.1

#### Gérer l'état des services

<media-tag src="https://pad.deuxfleurs.fr/blob/7f/7f6a1325afb1dc3580c72fc59ef2f559564b367c84324ff8" data-crypto-key="cryptpad:uINT3etuwDCFNRlDK/7odNni4obLLP/gJOaqpSYapmY="></media-tag>

<center><span class="precision">Pas de consensus, pas de problème</span></center>

---

## Garage 

#### Le stockage objet pour les masses

<media-tag src="https://pad.deuxfleurs.fr/blob/cb/cb6f8142965b9cca0815a1ef07567f154b3ab48b69f8c632" data-crypto-key="cryptpad:OTbacoiAXNIuLrEVgT534UzfqC0cCCJ4ujJuaFZjO5o="></media-tag>

<center><span class="precision">Vous pouvez perdre un site géographique sans interruption de service</span></center>

---

## Garage 

#### Un logiciel libre et non marchand

#### https://garagehq.deuxfleurs.fr/

<media-tag src="https://pad.deuxfleurs.fr/blob/0b/0b32babd5ab00c41366062a65709ba81909086c94a7dca03" data-crypto-key="cryptpad:2vt10ZQfs70yM6lZDcf0f2uweJMJPoACxeKlMr+lVYE="></media-tag>


---

## Garage 

#### Au passage : le but ultime
<media-tag src="https://pad.deuxfleurs.fr/blob/1f/1f9f3e5f45a5918ff9af416b2c23acdb0f0b93b25e166059" data-crypto-key="cryptpad:MeEX2VDUP6LWIjjbA+IcraTCVNO2ZndWLmHnbplOVss="></media-tag>

---

## Étape 3.2

#### Les dernières bricoles : gestion des comptes

Il est dur de trouver chaussure à son pied, alors...

- Back-end LDAP :\
  https://git.deuxfleurs.fr/Deuxfleurs/bottin
  
- Front-end gestion de compte :\
  https://git.deuxfleurs.fr/Deuxfleurs/guichet

On utilise Consul comme "base de données" (KV-store).

---


## Proxy HTTP : Tricot

#### ... et le routage HTTP (_reverse proxy_)

Les informations (service ↔️ localisation) sont dans Consul

Traefik v2 savait y pêcher la config ! Pas Traefik v3...

Donc bah...\
  https://git.deuxfleurs.fr/Deuxfleurs/tricot \
  (en Rust, avec Hyper)

---

## Proxy HTTP : Tricot

#### Les petits plus...

Tricot gère :

<ul>
  <li>génération de certificat Let's Encrypt à la volée</li>
  <li>routage des requêtes au plus près<br>
    <ul style="margin-left:3em;">
      <li>node</li>
      <li>site local</li>
    <li>site distant</li>
      </ul>
  </li>
</ul>

---

## Proxy HTTP : Tricot

<media-tag src="https://pad.deuxfleurs.fr/blob/47/476c22ac2326082c4fa662d785ec3c45313c54348e98b366" data-crypto-key="cryptpad:LAl7qp/Ue/R6DeUm4+cbWHVCYSydEWGjgT38OV+cL9I="></media-tag>


---

## En résumé

<ul>
  <li>Infrastructure pas chère</li>
    <ul style="margin-left:3em;">
      <li>À l'achat</li>
      <li>À maintenir</li>
    </ul>
  </li>
  <li>Haute technicité</li>
    <ul style="margin-left:3em;">
      <li>Formation des opérateurices</li>
    </ul>
  <li>Qualité de service</li>
    <ul style="margin-left:3em;">
      <li>Résilience aux pannes</li>
      <li>Suivi humain</li>
    </ul>
</ul>

---

## Les limites 

#### Logiciels non décentralisables

- Git, Cryptpad, e-mail
- Il faut remonter le service à partir des backups (sur garage) quand un site tombe
- On développe Aerogramme pour les mails (serveur IMAP sur garage)\
  https://aerogramme.deuxfleurs.fr/
  
<media-tag style="min-width: 100%; min-height: 100%;" src="https://pad.deuxfleurs.fr/blob/8d/8db6c5c455fb132aba244715dce94c9422d320a95bf43dfe" data-crypto-key="cryptpad:gtqsEk+rVZ3x1uiBLnaneinZP0igYyL8HhNj1BwjQ6w="></media-tag>

---

## Les limites

#### Points de centralisation humains

<div style="display: flex">
  <div style="flex: 1">
<media-tag src="https://pad.deuxfleurs.fr/blob/ef/eff98df2f7896f21cf88e2d5271672587619a2395e9a2d50" data-crypto-key="cryptpad:pPVtpSMVjBu897vKgthD4kKJ1z5R+UJ2L7p5Ayx2BKU="></media-tag>
  </div>
  <div style="flex: 0.1"></div>
  <div style="flex: 1">


- Terreau des conflits
- Débusquer les hiérarchies informelles
- Tout le monde doit pouvoir être rendu obsolète

   
  </div>
</div>


---

<header>

# En quoi c'est intéressant 

pour des professionnel⋅les de l'informatique

</header>

---

## Responsabilité 

- En tant que citoyen⋅nes
  
  *Assurer une direction juste à la société*
  
- En tant que technicien⋅nes

  *De grands pouvoirs impliquent de grandes responsabilités*

---

<media-tag src="https://pad.deuxfleurs.fr/blob/86/86971ac1a5a51bedef43057a4c15e7b15548e180b21bddc9" data-crypto-key="cryptpad:pIBpNP7lBWgsk1Qu4Md25uOBFRGXXgy8sHHT8k7D7+E="></media-tag>

---

## Ce qu'on dit...

<media-tag src="https://pad.deuxfleurs.fr/blob/23/2342cd15ac9f9274886a565796a6058d484624b6d992ac09" data-crypto-key="cryptpad:7AbDKthKyqM5N6svpv2WLaLPLfPoY7wKybvfLB32i6g="></media-tag>

---

## ... et ce qu'il y a derrière

<media-tag src="https://pad.deuxfleurs.fr/blob/23/236a45a21a151c4f38c526bf1bd01007785c15798300f136" data-crypto-key="cryptpad:fp1vHOE5qj5mIRYtCY2MCPa4XuyVMFcsxS6QS1fklxE="></media-tag>

---

## Production

<media-tag src="https://pad.deuxfleurs.fr/blob/11/116befcc7ef80567b956f58de3ce4efb641120853221b0be" data-crypto-key="cryptpad:gK5h8oyG7VnhzpYN2lpFcacF7xVXNyKz1MIO2yTe/cg="></media-tag>

---

## "Recyclage"

<media-tag src="https://pad.deuxfleurs.fr/blob/1a/1a5bef4eaac110cc95590c5871503c840fd1659bd58738c3" data-crypto-key="cryptpad:p84oo+bYXizTaqEfcZSi8AoCAKPhAJe3RlraDDAr0bI="></media-tag>

---

## Impacts territoriaux des datacenters

<div style="display: flex">
  <div style="flex: 1">

<media-tag src="https://pad.deuxfleurs.fr/blob/df/df84d801fd4b21b085fc6371deb6d23f4018760e1dc4988c" data-crypto-key="cryptpad:jxm4RKOF/bCOPd2pctsyjlyCTMTejeVhqaVg1Ph6ML0="></media-tag>

  </div>
  <div style="flex: 1">
    
<media-tag src="https://pad.deuxfleurs.fr/blob/8d/8d7b5c0abc31a7c83502e4e0e7dfbb1f5f7965c1510909f1" data-crypto-key="cryptpad:CoFnGzaj47Yok4tj10DrJrBrGEViWpP5gLUarHPbZ1A="></media-tag>
    
  </div>
</div>

---

## Reprendre la main sur nos données

<!-- Souveraineté --><!-- titre 4, center things the cheap way -->

<!--<div style="display: flex;margin-bottom: 6ex">
  <div style="flex: 2">
<!-- Protection vie privée -->
<media-tag src="https://pad.deuxfleurs.fr/blob/be/be66327d9283627140bb3b7e417df188ded56a94415c8aa5" data-crypto-key="cryptpad:pAU15wgGfWzRQtJaLuDNqxSJCuEFTkmYk5GuyPmPJgQ="></media-tag>
 <!--  </div>
  <div style="flex: 2; padding-left:1em;">
    <!-- Résilience 
    <media-tag src="https://pad.deuxfleurs.fr/blob/61/61e1f8d260f9887d4c236284f92d32130274b8fc050939fc" data-crypto-key="cryptpad:40U+tOlNKCoie261t4turVfGEgmEIZt1r/vZAQz9oq4="></media-tag>-->
        

    
  </div>
</div>
  
<!-- #### "We don't give a fuck about Europe." — D. Trump -->
---

## Optimisation et résilience

#### Capacité des petits poissons à faire des choses ambitieuses

<div style="display: flex">
  <div style="width:30%">
 <media-tag src="https://pad.deuxfleurs.fr/blob/2f/2f96ebe3d13187ab994a6a634065aa828a6a48bab74eb52f" data-crypto-key="cryptpad:GhegXBkRVzW6ahNtjZrNJJkkxGS2Dip5XFbsAHSzwig="></media-tag>
  </div>
  
  <div style="width:30%">
    <center>vs   
    </center>  
  </div>
  
  <div style="width:25%">
<media-tag src="https://pad.deuxfleurs.fr/blob/20/202b5f77aa87f417f013cd1697bd6e5d1fb3c01359b100ef" data-crypto-key="cryptpad:37N2iz1GXBhTBzPn0m91uhhkShPlhXp2CavCb84GlQM="></media-tag>
  </div>
</div>
  
<!-- Surcomplexification, on repose sur des trucs pas solides -->

---
  
  <media-tag src="https://pad.deuxfleurs.fr/blob/00/00c3c5eae61b796911951d62534c3c1ab860c2cbff7e4652" data-crypto-key="cryptpad:PPH0mKnx9Ry3UEXV9L8V6lYOicjK8QbRjGaADRipm+0="></media-tag>
  
  <!-- Ce que ça montre : 1) complexité de la stack, 2) point de centralisation, dépendance à un tiers -->
--- 



---   

## Le coût des solutions généralistes


#### Une stack aussi complexe a un coût opérationel fort
  
- Temps 
- Humain
- Matériel
- Pécunier 
  
---
## Le coût des solutions généralistes


#### Et si la licence change ?


<media-tag src="https://pad.deuxfleurs.fr/blob/1f/1f9d273c706c57abd6f546c10a6bb21a8403032b9aca16af" data-crypto-key="cryptpad:uhRAC+dv3do4sd+FKxP3A/jWh7URJtzgUNbxnrKSrzA="></media-tag>

---


## Investir dans une solution adaptée

* Juste la bonne taille 
* Maîtriser le logiciel ➡️ diminution des coûts opérationnels
* Résilience aux revirement des tiers
(Hashicorp, Traefik, Postman...)
<!-- Je propose de remettre le dernier point ici - Marion -->

--> Un investissement qui permet l'indépendance 
    
---

<media-tag src="https://pad.deuxfleurs.fr/blob/99/99eab7e162323e85c4f5a3ea3348779b1edf77317cc5d605" data-crypto-key="cryptpad:e/metHbqFfmiGmVRbTsGLyY1Hf3sLamTX85X2gAUUGw="></media-tag>

---

<header>
  
# Les slides _cachées_

Pour le cas z'où
  
</header>


  
--- 
  
  ## Alimentation

<media-tag src="https://pad.deuxfleurs.fr/blob/ad/ad9ebda135997e5e09b901f67e68b71ab255c908bdb73e85" data-crypto-key="cryptpad:DXmVhHQQiq1seRhE4O9niqi88w58Dm+ME9je+eySiKU="></media-tag>


