Merge branch 'main' into reduce-image-sizes

This commit is contained in:
Alex 2023-04-17 12:24:51 +02:00
commit 7d41074f73
166 changed files with 3116 additions and 1244 deletions

25
.drone.yml Normal file
View file

@ -0,0 +1,25 @@
---
kind: pipeline
name: default
steps:
- name: build
image: alpine:3.17.2
commands:
- apk update
- apk add zola
- zola build
- name: upload
image: plugins/s3
settings:
bucket: guide.deuxfleurs.fr
endpoint: https://garage.deuxfleurs.fr
region: garage
access_key:
from_secret: aws_access_key_id
secret_key:
from_secret: aws_secret_access_key
source: public/**/*
target: /
strip_prefix: public/

View file

@ -1,23 +1,23 @@
+++ ---
title = "Guide Deuxfleurs" title: Guide Deuxfleurs
sort_by = "weight" sort_by: weight
+++ ---
# Découvrir # Découvrir
[Prise en main](./prise_en_main/) - Ce manuel vous accompagne dans la découverte de nos outils. C'est par là que vous devriez commencer si vous venez d'arriver, on vous explique comment utiliser nos outils pour reste en contact avec votre famille, organiser une réunion avec votre association ou encore publier une tribune sur le web. [Prise en main](@/prise_en_main/_index.md) - Ce manuel vous accompagne dans la découverte de nos outils. C'est par là que vous devriez commencer si vous venez d'arriver, on vous explique comment utiliser nos outils pour reste en contact avec votre famille, organiser une réunion avec votre association ou encore publier une tribune sur le web.
[Se former](./formations/) - Ce manuel vous propose de vous former sur les questions portées par l'association, que ce soit sur l'impact social du numérique ou l'administration d'une machine Linux, avec dans l'idée que vous pourrez vous impliquer d'avantange dans nos activités après, en faisant des ateliers ou en participant à opérer les machines et les logiciels. [Se former](@/formations/_index.md) - Ce manuel vous propose de vous former sur les questions portées par l'association, que ce soit sur l'impact social du numérique ou l'administration d'une machine Linux, avec dans l'idée que vous pourrez vous impliquer d'avantange dans nos activités après, en faisant des ateliers ou en participant à opérer les machines et les logiciels.
[Vie associative](./vie_associative/) - Ce manuel traite de tout ce qui concerne l'association, comme ses aspects légaux, les délibérations, ou l'organisation des personnes. [Vie associative](@/vie_associative/_index.md) - Ce manuel traite de tout ce qui concerne l'association, comme ses aspects légaux, les délibérations, ou l'organisation des personnes.
[Infrastructures](./infrastructures/) - Ce manuel documente la dimension matérielle du numérique chez Deuxfleurs. On y recense les ordinateurs, le lieu où ils sont, les connexions réseaux nécessaires, l'énergie consommée, l'impact de fabrication, de fin de vie, etc. [Infrastructures](@/infrastructures/_index.md) - Ce manuel documente la dimension matérielle du numérique chez Deuxfleurs. On y recense les ordinateurs, le lieu où ils sont, les connexions réseaux nécessaires, l'énergie consommée, l'impact de fabrication, de fin de vie, etc.
[Opérations](./operations/) - Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos opérateur·ices dans la réalisation de leurs tâches. [Opérations](@/operations/_index.md) - Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos opérateur·ices dans la réalisation de leurs tâches.
# Contribuer # Contribuer
Afin d'apporter une contribution impactante, il est recommandé de lire [Diátaxis](https://diataxis.fr/), un site web qui théorise la documentation. Pour le style d'écriture, les conseils de [StaticCMS](https://www.staticcms.org/docs/writing-style-guide) sont intéressants.
Pour contribuer à ce guide, le plus simple est d'aggréger les modifications que vous voulez apporter dans un fichier texte ou LibreOffice et de nous l'envoyer par email à coucou (arobase) deuxfleurs.fr. Un membre de l'association reportera alors vos propositions sur le site web. Pour contribuer à ce guide, le plus simple est d'aggréger les modifications que vous voulez apporter dans un fichier texte ou LibreOffice et de nous l'envoyer par email à coucou (arobase) deuxfleurs.fr. Un membre de l'association reportera alors vos propositions sur le site web.
Si vous êtes plus expert·e, vous pouvez proposer [vos modifications directement sur notre forge](https://git.deuxfleurs.fr/Deuxfleurs/guide.deuxfleurs.fr). Si vous êtes plus expert·e, vous pouvez demander des accès à [l'interface d'administration](https://guide.deuxfleurs.fr/admin/) pour faire directement vos modifications. Si vous connaissez git, vous pourriez aussi vouloir [forker notre dépôt](https://git.deuxfleurs.fr/Deuxfleurs/guide.deuxfleurs.fr).

View file

@ -1,9 +1,11 @@
+++ ---
title = "Se former" title: "Se former"
description = "Se former" description: "Se former"
weight = 30 weight: 30
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'formations/_index.md'
---
Ce manuel vous propose de vous former sur les questions portées par l'association, que ce soit sur l'impact social du numérique ou l'administration d'une machine Linux, avec dans l'idée que vous pourrez vous impliquer d'avantange dans nos activités après, en faisant des ateliers ou en participant à opérer les machines et les logiciels. Ce manuel vous propose de vous former sur les questions portées par l'association, que ce soit sur l'impact social du numérique ou l'administration d'une machine Linux, avec dans l'idée que vous pourrez vous impliquer d'avantange dans nos activités après, en faisant des ateliers ou en participant à opérer les machines et les logiciels.

View file

@ -1,8 +1,10 @@
+++ ---
title = "Articles" title: "Articles"
description = "Articles" description: "Articles"
weight = 20 weight: 20
+++ extra:
parent: 'formations/mediatheque.md'
---
![Capture d'écran de l'article Big Other: Surveillance capitalism](/img/cover/zuboff.png) ![Capture d'écran de l'article Big Other: Surveillance capitalism](/img/cover/zuboff.png)

View file

@ -1,8 +1,10 @@
+++ ---
title = "Atelier capitalisme de surveillance" title: "Atelier capitalisme de surveillance"
description = "Atelier capitalisme de surveillance" description: "Atelier capitalisme de surveillance"
weight = 40 weight: 40
+++ extra:
parent: 'formations/conf.md'
---
*Ces notes ont été écrite en préparation d'un atelier réalisé par Deuxfleurs lors d'une journée sur la sobriété numérique *Ces notes ont été écrite en préparation d'un atelier réalisé par Deuxfleurs lors d'une journée sur la sobriété numérique
organisée par Attac dans la région de Tarare le 18 juin 2022.* organisée par Attac dans la région de Tarare le 18 juin 2022.*

View file

@ -0,0 +1,57 @@
---
title: Capitole du Libre 2022
weight: 80
draft: false
date: 2023-04-01
extra:
parent: formations/conf.md
---
**De l'auto-hébergement à l'entre-hébergement : Garage, pour conserver ses données ensemble**
_Garder le contrôle de ses données est essentiel pour reconquérir sa vie
privée et ses libertés sur internet. L'auto-hébergement de ses services
est un moyen d'y parvenir, mais administrer et sauvegarder ses données
tout seul représente un défi. Cette présentation met en avant le
logiciel Garage, qui simplifie ces tâches et permet de collaborer entre
hôtes, ainsi que son utilisation au sein de notre structure Deuxfleurs._
Assurer la sauvegarde, l'intégrité, et la disponibilité de données
représentent un défi pour quiconque veut auto-héberger ses services. Les
CHATONS, c'est-à-dire les hébergeurs indépendants, ne sont pas épargnés
; les grands acteurs d'internet non plus. De plus en plus, le stockage
objet est privilégié en lieu et place des hiérarchies de systèmes de
fichiers, car il popularise des avantages pratiques pour les
administrateurs : réplication, sommes de contrôle, etc. Ce paradigme est
souvent interfacé avec le standard ouvert S3, où le logiciel
utilisateur devient agnostique de toute préoccupation concernant la
gestion des données.
Actuellement en fonctionnement au sein de l'infrastructure de
Deuxfleurs, nous avons développé Garage, un gestionnaire de données,
capable de les répliquer efficacement sur plusieurs sites pour se parer
contre les imprévus. Publié sous licence AGPL, il est conçu pour avoir
de faibles prérequis en termes de matériel et d'environnement réseau, le
rendant pratique à utiliser dans un contexte non professionnel, par
exemple sur des machines d'occasion derrière des connexions internet de
particuliers. Les services (par exemple Peertube, Nextcloud, ou Matrix,
pour citer parmi ceux testés) se contentent simplement d'utiliser l'API
S3 pour quêter Garage, qui prend en charge toute la gestion nécessaire à
l'exploitation de données.
Au-delà de l'aspect technique des choses, ce changement structurel sur
le plan opérationnel recèle selon nous bien des perspectives quant aux
potentiels d'internet. Nous avons la conviction qu'en repensant de la
sorte l'organisation des acteurs sur cet espace, on peut façonner un
bien meilleur rapport entre l'humain et ses outils numériques, voire
entre les individus eux-mêmes.
Rediffusion vidéo : [https://invidious.fdn.fr/watch?v=jI_vPVji51c](https://invidious.fdn.fr/watch?v=jI_vPVji51c)
Support de présentation : [https://git.deuxfleurs.fr/Deuxfleurs/garage/raw/branch/main/doc/talks/2022-11-19-Capitole-du-Libre/pr%C3%A9sentation.pdf](https://git.deuxfleurs.fr/Deuxfleurs/garage/raw/branch/main/doc/talks/2022-11-19-Capitole-du-Libre/pr%C3%A9sentation.pdf)
Les autres talks sur Garage : [https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/main/doc/talks](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/main/doc/talks)
Abstract dans la conférence : [https://cfp.capitoledulibre.org/cdl-2022/talk/GNAKPS/](https://cfp.capitoledulibre.org/cdl-2022/talk/GNAKPS/)

View file

@ -0,0 +1,7 @@
---
title: "Channel"
description: "Channel et cache"
weight: 60
extra:
parent: 'formations/nix.md'
---

View file

@ -1,12 +1,14 @@
+++ ---
title = "Chiffrement à froid" title: "Chiffrement à froid"
description = "Guide à l'installation d'une machine en chiffrant intégralement son disque dur" description: "Guide à l'installation d'une machine en chiffrant intégralement son disque dur"
weight = 30 weight: 30
date = 2022-01-30T20:43:56.953Z date: 2022-01-30T20:43:56.953Z
dateCreated = 2021-12-29T15:29:02.943Z dateCreated: 2021-12-29T15:29:02.943Z
+++ extra:
parent: 'formations/sysadmin.md'
---
Le chiffrement à froid, c'est le fait de n'inscrire que des données chiffrées sur un disque (plus précisément [une partition de disque](https://fr.wikipedia.org/wiki/Partitionnement_logiciel_/_mat%C3%A9riel)). C'est le standard [LUKS](https://fr.wikipedia.org/wiki/LUKS) qui permet ce chiffrement : ce dernier se place entre le support de stockage et le système d'exploitation (OS), et (dé)chiffre tout ce qui est lu ou écrit sur une partition. **Cette étape doit donc être réalisée avant d'installer le système d'exploitation, mais après [le partitionnement de vos disques](@/formations/sysadmin/partitionnement.md).** Le chiffrement à froid, c'est le fait de n'inscrire que des données chiffrées sur un disque (plus précisément [une partition de disque](https://fr.wikipedia.org/wiki/Partitionnement_logiciel_/_mat%C3%A9riel)). C'est le standard [LUKS](https://fr.wikipedia.org/wiki/LUKS) qui permet ce chiffrement : ce dernier se place entre le support de stockage et le système d'exploitation (OS), et (dé)chiffre tout ce qui est lu ou écrit sur une partition. **Cette étape doit donc être réalisée avant d'installer le système d'exploitation, mais après [le partitionnement de vos disques](@/formations/partitionnement.md).**
Une fois le chiffrement mis en place, on utilise le système d'exploitation comme d'habitude (tout a l'air déchiffré à l'usage), parce que LUKS chiffre et déchiffre - de façon transparente - toutes les informations que l'OS lit et écrit sur la mémoire morte (le disque). Une fois le chiffrement mis en place, on utilise le système d'exploitation comme d'habitude (tout a l'air déchiffré à l'usage), parce que LUKS chiffre et déchiffre - de façon transparente - toutes les informations que l'OS lit et écrit sur la mémoire morte (le disque).

13
content/formations/cli.md Normal file
View file

@ -0,0 +1,13 @@
---
title: "CLI"
description: "Les outils en CLI"
weight: 55
extra:
parent: 'formations/nix.md'
---
# nix-shell
# nix repl
# etc.

View file

@ -0,0 +1,31 @@
---
title: "Conférences"
description: "Compte-rendu des conférences auxquelles on a assisté"
weight: 30
sort_by: "weight"
extra:
parent: 'formations/_index.md'
---
Compilation des comptes-rendus des conférences auxquel Deuxfleurs a participé ou même organisé.
L'idée c'est de créer une base de connaissance partagée pour que ce qui se soit dit ne soit pas perdu,
puisse être partagé et réutilisé.
# Camps CHATONS août 2022
[Le libre en Europe](@/formations/libre-europe.md) - Comment financer ses déplacements à des conférences, des hackmeeting ou ses rencontres de consoeurs/frères europeen avec ERASMUS mobilité éducation des adultes. Découvrir le collectif Librehosters. Présentation du projet OpenMinds porté par MarsNet
[Sauvegardes coopératives](@/formations/sauvegardes-cooperatives.md) - Projet de création de plateformes de sauvegardes coopératives et standardisées au sein des CHATONS.
[Éducation populaire](@/formations/education-populaire.md) - Se réunir pour parler d'éducation car ce terme apparaît sur le site Chatons.org, il est revendiqué mais pourtant il n'est pas perçu de la même manière par tou·te·s ! Comment se l'approprier ?
[Écologie](@/formations/ecologie.md) - Quel discours écologique tenir en tant qu'hébergeur ? Comment ne pas tomber dans le greenwashing ? quel arbitrage avec d'autres enjeux ? Durant cet échange, on a essayé de référencer des pistes pour agir collectivement mais aussi de recenser nos démarches déjà existantes et voir à les documenter mieux.
[Émancip'Asso](@/formations/emancipasso.md) - Des assos aimeraient transitionner vers le libre mais souvent la transition est moyennement heureuse. L'idée serait de faciliter cette transition en travaillant avcec les CHATONS sur la com, la formation, l'accompagnement, etc.
[↣ Compilation PDF de tous les ateliers du camps](/img/2022-libreto-camps-chatons.pdf)
[↣ Libreto camps CHATONS 2022](https://libreto.sans-nuage.fr/camp-chatons-2022)
# Sobriété Numérique au Soly, juin 2022
[Capitalisme de surveillance](@/formations/capitalisme_surveillance.md) - Interroger la notion de sobriété numérique sous l'angle de la critique du capitalisme de surveillance.

View file

@ -1,29 +0,0 @@
+++
title = "Conférences"
description = "Compte-rendu des conférences auxquelles on a assisté"
weight = 30
sort_by = "weight"
+++
Compilation des comptes-rendus des conférences auxquel Deuxfleurs a participé ou même organisé.
L'idée c'est de créer une base de connaissance partagée pour que ce qui se soit dit ne soit pas perdu,
puisse être partagé et réutilisé.
# Camps CHATONS août 2022
[Le libre en Europe](./libre-europe/) - Comment financer ses déplacements à des conférences, des hackmeeting ou ses rencontres de consoeurs/frères europeen avec ERASMUS mobilité éducation des adultes. Découvrir le collectif Librehosters. Présentation du projet OpenMinds porté par MarsNet
[Sauvegardes coopératives](./sauvegardes-cooperatives/) - Projet de création de plateformes de sauvegardes coopératives et standardisées au sein des CHATONS.
[Éducation populaire](./education-populaire/) - Se réunir pour parler d'éducation car ce terme apparaît sur le site Chatons.org, il est revendiqué mais pourtant il n'est pas perçu de la même manière par tou·te·s ! Comment se l'approprier ?
[Écologie](./ecologie/) - Quel discours écologique tenir en tant qu'hébergeur ? Comment ne pas tomber dans le greenwashing ? quel arbitrage avec d'autres enjeux ? Durant cet échange, on a essayé de référencer des pistes pour agir collectivement mais aussi de recenser nos démarches déjà existantes et voir à les documenter mieux.
[Émancip'Asso](./emancipasso/) - Des assos aimeraient transitionner vers le libre mais souvent la transition est moyennement heureuse. L'idée serait de faciliter cette transition en travaillant avcec les CHATONS sur la com, la formation, l'accompagnement, etc.
[↣ Compilation PDF de tous les ateliers du camps](./2022-libreto-camps-chatons.pdf)
[↣ Libreto camps CHATONS 2022](https://libreto.sans-nuage.fr/camp-chatons-2022)
# Sobriété Numérique au Soly, juin 2022
[Capitalisme de surveillance](./capitalisme-surveillance/) - Interroger la notion de sobriété numérique sous l'angle de la critique du capitalisme de surveillance.

View file

@ -0,0 +1,7 @@
---
title: "Dérivation"
description: "Dérivation"
weight: 10
extra:
parent: 'formations/nix.md'
---

View file

@ -1,8 +1,10 @@
+++ ---
title = "Écologie" title: "Écologie"
description = "Écologie : comment tenir un discours pertinent en tant qu'hébergeur" description: "Écologie : comment tenir un discours pertinent en tant qu'hébergeur"
weight = 31 weight: 31
+++ extra:
parent: 'formations/conf.md'
---
**Animateur :** Quentin de Deuxfleurs **Animateur :** Quentin de Deuxfleurs
**Prise de note :** Margaux du Cloud de Girofle **Prise de note :** Margaux du Cloud de Girofle

View file

@ -1,8 +1,10 @@
+++ ---
title = "Éducation populaire" title: "Éducation populaire"
description = "Éducation populaire chez les CHATONS" description: "Éducation populaire chez les CHATONS"
weight = 30 weight: 30
+++ extra:
parent: 'formations/conf.md'
---
**Animateurs :** Quentin de Deuxfleurs **Animateurs :** Quentin de Deuxfleurs
**Prise de notes :** røseløve·de Attac et neil de 42l/La Contre Voie **Prise de notes :** røseløve·de Attac et neil de 42l/La Contre Voie

View file

@ -1,8 +1,10 @@
+++ ---
title = "Émancip'Asso" title: "Émancip'Asso"
description = "Émancip'Asso, la formation à destination des hébergeurs pour comprendre le milieu associatif" description: "Émancip'Asso, la formation à destination des hébergeurs pour comprendre le milieu associatif"
weight = 32 weight: 32
+++ extra:
parent: 'formations/conf.md'
---
**Animatrice :** Angie de Framasoft et Anne-Laure d'Animafac **Animatrice :** Angie de Framasoft et Anne-Laure d'Animafac
**Prise de note :** ?? **Prise de note :** ??

View file

@ -0,0 +1,7 @@
---
title: "Flakes"
description: "Flakes"
weight: 70
extra:
parent: 'formations/nix.md'
---

View file

@ -0,0 +1,7 @@
---
title: "Home Manager"
description: "Home Manager"
weight: 80
extra:
parent: 'formations/nix.md'
---

View file

@ -1,10 +1,12 @@
+++ ---
title = "Installer Linux" title: "Installer Linux"
weight = 10 weight: 10
description = "Installer Linux" description: "Installer Linux"
date = 2021-12-30T15:23:52.320Z date: 2021-12-30T15:23:52.320Z
dateCreated = 2021-12-30T15:23:50.137Z dateCreated: 2021-12-30T15:23:50.137Z
+++ extra:
parent: 'formations/sysadmin.md'
---
On utilise un Live CD (ou Live USB - le support de stockage important peu) pour lancer un système d'exploitation (celui présent dans le support de stockage) sur un ordinateur, sans toucher aux disques présents dans l'ordinateur. On utilise un Live CD (ou Live USB - le support de stockage important peu) pour lancer un système d'exploitation (celui présent dans le support de stockage) sur un ordinateur, sans toucher aux disques présents dans l'ordinateur.

View file

@ -0,0 +1,38 @@
---
title: JDLL 2023
weight: 120
draft: false
date: 2023-04-01
extra:
parent: formations/conf.md
---
![](/img/serv_orion.jpg)
**Entre-hébergement : envisagez l'auto-hébergement collectivement !**
_Qu'est ce que l'entre-hébergement ? Pourquoi c'est important ? Quelles initiatives existent déjà ?_
Dans le libre, nombre de personnes souhaitent
reprendre le contrôle sur leur environnement numérique. C'est
particulièrement vrai pour les infrastructures (le "cloud") qui sont
gérées de façon centralisées et sans notre assentiment.
Mais gérer une infrastructure seul·e est une charge de travail
conséquente et un poids permanent (comment faire si un disque casse
pendant vos vacances ?).
Chez [Deuxfleurs](https://deuxfleurs.fr) (mais aussi [Tedomum](https://tedomum.net/) et d'autres membres du [collectif CHATONS](https://www.chatons.org/)),
nous nous sommes demandés comment cette infrastructure pouvait devenir
"un commun" dont on pourrait prendre collectivement soin, que ce soit
sur le plan organisationnel comme technique.
Lors de cette conférence, je reviendrai sur la notion d'entre-hébergement, sur ce qui fonctionne déjà, sur nos projets, et sur nos doutes.
Résumé sur le programme des JDLL : [https://pretalx.jdll.org/jdll2023/talk/review/VUZDBHFN8YM389URFJAM9QD7EKT7ZDDC](https://pretalx.jdll.org/jdll2023/talk/review/VUZDBHFN8YM389URFJAM9QD7EKT7ZDDC)
[Slides PDF](/img/jdll2023.pdf) - [Slides ODP (Libre Office Impress)](/img/jdll2023.odp)

View file

@ -1,8 +1,10 @@
+++ ---
title = "Le libre en Europe" title: "Le libre en Europe"
description = "Le libre en Europe (libre hoster, hackmeeting, assos)" description: "Le libre en Europe (libre hoster, hackmeeting, assos)"
weight = 10 weight: 10
+++ extra:
parent: 'formations/conf.md'
---
**Animatrice :** Florence de MarsNet **Animatrice :** Florence de MarsNet
**Prise de note :** Florence de MarsNet, Stéphane de Hadoly **Prise de note :** Florence de MarsNet, Stéphane de Hadoly

View file

@ -1,8 +1,10 @@
+++ ---
title = "Livres" title: "Livres"
description = "Livres" description: "Livres"
weight = 10 weight: 10
+++ extra:
parent: 'formations/mediatheque.md'
---
🇫🇷 **Ivan Illich, « La convivialité », 1973, Éditions du Seuil.** 🇫🇷 **Ivan Illich, « La convivialité », 1973, Éditions du Seuil.**
@ -91,3 +93,18 @@ Un autre régime sest ainsi progressivement mis en place, dans lequel la vie
La pénalité moderne n'ose plus dire qu'elle punit des crimes ; elle prétend réadapter des délinquants. Peut-on faire la généalogie de la morale moderne à partir d'une histoire politique des corps ?* La pénalité moderne n'ose plus dire qu'elle punit des crimes ; elle prétend réadapter des délinquants. Peut-on faire la généalogie de la morale moderne à partir d'une histoire politique des corps ?*
[Fiche Babelio](https://www.babelio.com/livres/Foucault-Surveiller-et-punir/1516) - [Notice BNF](https://catalogue.bnf.fr/ark:/12148/cb374882365.public) [Fiche Babelio](https://www.babelio.com/livres/Foucault-Surveiller-et-punir/1516) - [Notice BNF](https://catalogue.bnf.fr/ark:/12148/cb374882365.public)
🇫🇷 **Mathieu Labonde, Lou Malhuret, Benoît Piedallu et Axel Simon, « Internet et libertés », 2022, Vuibert.**
![Couverture d'Internet et libertés de Mathieu Labonde, Lou Malhuret, Benoît Piedallu et Axel Simon <](/img/cover/internet-et-libertés.jpg)
*Partout où le numérique est venu changer nos vies, le respect de nos libertés fondamentales est un combat.
Pendant que Facebook, Google et compagnie se targuent de protéger nos données tout en les exploitant pour booster la publicité ciblée, les lois sécuritaires senchaînent et les expérimentations illégales aussi : des micros dans les rues, des tests de reconnaissance faciale dans les stades ou les transports, des drones aux mains des policiers… La dérive vient des pouvoirs publics autant que des entreprises.*
[Fiche Babelio](https://www.babelio.com/livres/Labonde-Internet-et-libertes--15-ans-de-combat-de-la-Quad/1451258) - [Notice BNF](https://catalogue.bnf.fr/ark:/12148/cb47143115g)
🇫🇷 **Fanny Lopez, « À bout de flux », 2022, Divergences.**
![Couverture de À bout de flux, de Fanny Lopez <](/img/cover/a-bout-de-flux.jpg)
*Le numérique a un double : linfrastructure électrique. Le rapport immédiat aux objets connectés (smartphone, ordinateur) invisibilise le continuum infernal dinfrastructures qui se cachent derrière : data centers, câbles sous-marins, réseaux de transmission et de distribution délectricité. Alors que le numérique accompagne une électrification massive des usages, le système électrique dépend lui-même de plus en plus du numérique pour fonctionner. Pour comprendre ce grand système et imaginer comment le transformer, il nous faut aller au bout des flux, là où se révèle la matérialité des machines et des câbles.*
[Sur la boutique de l'éditeur](https://www.editionsdivergences.com/livre/a-bout-de-flux) - [Fiche Babelio](https://www.babelio.com/auteur/Fanny-Lopez/505984) - [Notice BNF](https://catalogue.bnf.fr/ark:/12148/cb471399555)

View file

@ -1,9 +1,11 @@
+++ ---
title = "Médiathèque critique" title: "Médiathèque critique"
description = "Médiathèque critique" description: "Médiathèque critique"
weight = 20 weight: 20
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'formations/_index.md'
---
# Des livres # Des livres
@ -13,18 +15,21 @@ sort_by = "weight"
![Couverture de technologie partout démocratie nulle part #](/img/cover/techno-partout.jpg) ![Couverture de technologie partout démocratie nulle part #](/img/cover/techno-partout.jpg)
![Couverture de Cyberstructure #](/img/cover/cyberstructure.jpg) ![Couverture de Cyberstructure #](/img/cover/cyberstructure.jpg)
![Couverture de L'institution imaginaire de la société #](/img/cover/imaginaire.jpg) ![Couverture de L'institution imaginaire de la société #](/img/cover/imaginaire.jpg)
![Couverture de Telecommunications Reclaimed #](/img/cover/telco.jpg)
![Couverture de Permanent Record #](/img/cover/permanent-record.jpg) ![Couverture de Permanent Record #](/img/cover/permanent-record.jpg)
![Couverture de La France contre les robots #](/img/cover/France-contre-robots.jpg) ![Couverture de La France contre les robots #](/img/cover/France-contre-robots.jpg)
![Couverture de Carbon Democracy de Timothy Mitchell #](/img/cover/carbon_democracy.jpg) ![Couverture de Carbon Democracy de Timothy Mitchell #](/img/cover/carbon_democracy.jpg)
![Couverture de Surveiller et punir de Michel Foucault #](/img/cover/surveiller-et-punir.jpg) ![Couverture de Surveiller et punir de Michel Foucault #](/img/cover/surveiller-et-punir.jpg)
![Couverture d'Internet et libertés de Mathieu Labonde, Lou Malhuret, Benoît Piedallu et Axel Simon #](/img/cover/internet-et-libertés.jpg)
![Couverture de À bout de flux, de Fanny Lopez #](/img/cover/a-bout-de-flux.jpg)
[↣ Consulter la page détaillée sur les livres](./livres/) [↣ Consulter la page détaillée sur les livres](@/formations/livres.md)
# Des articles # Des articles
![Capture d'écran de l'article Big Other: Surveillance capitalism](/img/cover/zuboff.png) ![Capture d'écran de l'article Big Other: Surveillance capitalism](/img/cover/zuboff.png)
[↣ Consulter la page détaillée sur les articles](./articles/) [↣ Consulter la page détaillée sur les articles](@/formations/articles.md)
# Des podcasts # Des podcasts

View file

@ -0,0 +1,7 @@
---
title: "Modules"
description: "Les modules de NixOS"
weight: 50
extra:
parent: 'formations/nix.md'
---

View file

@ -1,9 +1,11 @@
+++ ---
title = "Écosystème Nix" title: "Écosystème Nix"
description = "L'écosysème Nix : nixlang, nixpkgs, nixos, flakes, etc." description: "L'écosysème Nix : nixlang, nixpkgs, nixos, flakes, etc."
sort_by = "weight" sort_by: "weight"
weight = 60 weight: 60
+++ extra:
parent: 'formations/_index.md'
---
# Apprendre # Apprendre

View file

@ -1,5 +0,0 @@
+++
title = "Channel"
description = "Channel et cache"
weight = 60
+++

View file

@ -1,11 +0,0 @@
+++
title = "CLI"
description = "Les outils en CLI"
weight = 55
+++
# nix-shell
# nix repl
# etc.

View file

@ -1,5 +0,0 @@
+++
title = "Dérivation"
description = "Dérivation"
weight = 10
+++

View file

@ -1,5 +0,0 @@
+++
title = "Flakes"
description = "Flakes"
weight = 70
+++

View file

@ -1,5 +0,0 @@
+++
title = "Home Manager"
description = "Home Manager"
weight = 80
+++

View file

@ -1,5 +0,0 @@
+++
title = "Modules"
description = "Les modules de NixOS"
weight = 50
+++

View file

@ -1,5 +0,0 @@
+++
title = "Langage"
description = "Le langage Nix"
weight = 20
+++

View file

@ -1,5 +0,0 @@
+++
title = "Dépôt officiel"
description = "Le dépôt officiel nixpkgs"
weight = 40
+++

View file

@ -1,5 +0,0 @@
+++
title = "Bibliothèque standard"
description = "La bibliothèque standard de Nix"
weight = 30
+++

View file

@ -0,0 +1,7 @@
---
title: "Langage"
description: "Le langage Nix"
weight: 20
extra:
parent: 'formations/nix.md'
---

View file

@ -0,0 +1,7 @@
---
title: "Dépôt officiel"
description: "Le dépôt officiel nixpkgs"
weight: 40
extra:
parent: 'formations/nix.md'
---

View file

@ -0,0 +1,7 @@
---
title: "Bibliothèque standard"
description: "La bibliothèque standard de Nix"
weight: 30
extra:
parent: 'formations/nix.md'
---

View file

@ -1,16 +1,18 @@
+++ ---
title = "Partitionnement" title: "Partitionnement"
description = "Redondance, partitionnement, chiffrement : comment configurer ses disques durs en vue d'une installation de serveur" description: "Redondance, partitionnement, chiffrement : comment configurer ses disques durs en vue d'une installation de serveur"
weight = 20 weight: 20
date = 2022-04-02T13:38:01.527Z date: 2022-04-02T13:38:01.527Z
dateCreated = 2021-12-30T11:39:09.554Z dateCreated: 2021-12-30T11:39:09.554Z
+++ extra:
parent: 'formations/sysadmin.md'
---
# Configurer les disques de son futur serveur # Configurer les disques de son futur serveur
On part du principe que vous disposez d'un ordinateur, chez vous ou dans un centre de données, et vous êtes prêt⋅e à annihiler le contenu de ses disques pour en faire un beau serveur tout propre. (Il est tout à fait faisable de garder des données existantes sur les disques, mais c'est hors du cadre de cet article.) On part du principe que vous disposez d'un ordinateur, chez vous ou dans un centre de données, et vous êtes prêt⋅e à annihiler le contenu de ses disques pour en faire un beau serveur tout propre. (Il est tout à fait faisable de garder des données existantes sur les disques, mais c'est hors du cadre de cet article.)
On commencera par expliquer comment accéder aux disques pour les configurer, avant de traiter de partitionnement et de redondance (le fait d'écrire la même choses sur plusieurs disques, au cas où l'un d'entre eux casse). Un autre se focalise sur [le chiffrement des disques](@/formations/sysadmin/chiffrement_froid.md), dont le but est que leur contenu soit incompréhensible sans la clé (si vous vous faites voler le disque, ou que votre hébergeur est trop curieux). On commencera par expliquer comment accéder aux disques pour les configurer, avant de traiter de partitionnement et de redondance (le fait d'écrire la même choses sur plusieurs disques, au cas où l'un d'entre eux casse). Un autre se focalise sur [le chiffrement des disques](@/formations/chiffrement_froid.md), dont le but est que leur contenu soit incompréhensible sans la clé (si vous vous faites voler le disque, ou que votre hébergeur est trop curieux).
## Préliminaire : accéder aux disques ## Préliminaire : accéder aux disques
@ -18,7 +20,7 @@ Pour configurer les disques, il faut y avoir accès, comme s'ils étaient des di
Deux possibilités : Deux possibilités :
* _Vous disposez d'un accès physique à la machine_, et pouvez donc brancher écran, clavier, et insérer un live CD/USB Linux qui vous permettra de lancer Linux *depuis le live CD/USB*. * _Vous disposez d'un accès physique à la machine_, et pouvez donc brancher écran, clavier, et insérer un live CD/USB Linux qui vous permettra de lancer Linux *depuis le live CD/USB*.
Si vous avez déjà installé un OS sur une machine, vous savez de quoi je parle. Sinon, référez-vous au [guide d'utilisation d'un Live CD](@/formations/sysadmin/installer_linux.md). Si vous avez déjà installé un OS sur une machine, vous savez de quoi je parle. Sinon, référez-vous au [guide d'utilisation d'un Live CD](@/formations/installer_linux.md).
* _Vous n'avez pas accès physiquement à la machine_ (par exemple : elle est dans un centre de données). Auquel cas, le propriétaire de la machine doit avoir prévu le coup : vous devriez pouvoir vous connecter en SSH (ligne de commande à distance) à un *mode rescue* qui vous permettra d'agir sur les disques de la machine alors qu'elle est éteinte. Comment s'y prendre dépend de l'infrastructure logicielle du propriétaire du centre de données. * _Vous n'avez pas accès physiquement à la machine_ (par exemple : elle est dans un centre de données). Auquel cas, le propriétaire de la machine doit avoir prévu le coup : vous devriez pouvoir vous connecter en SSH (ligne de commande à distance) à un *mode rescue* qui vous permettra d'agir sur les disques de la machine alors qu'elle est éteinte. Comment s'y prendre dépend de l'infrastructure logicielle du propriétaire du centre de données.
@ -81,7 +83,7 @@ Comprenez d'abord qu'on « montera » un dossier du système Linux dans chaque p
Elle a besoin d'être sur le disque dur principal, et son format (BIOS ou EFI) dépend de l'âge de l'ordinateur (EFI est plus récent). La taille qu'elle doit faire dépend de son format, mais ça ne dépassera jamais 600 Mo. Elle a besoin d'être sur le disque dur principal, et son format (BIOS ou EFI) dépend de l'âge de l'ordinateur (EFI est plus récent). La taille qu'elle doit faire dépend de son format, mais ça ne dépassera jamais 600 Mo.
Si vous non plus, vous n'y comprenez rien, j'ai trouvé [ce guide](https://www.easeus.fr/partition-manager-tips/difference-entre-bios-et-uefi.html) très clair et complet. Si vous non plus, vous n'y comprenez rien, j'ai trouvé [ce guide](https://www.easeus.fr/partition-manager-tips/difference-entre-bios-et-uefi.html) très clair et complet.
* `/boot` contient les données d'amorçage du système, et pèse le plus souvent moins de 200 Mo. * `/boot` contient les données d'amorçage du système, et pèse le plus souvent moins de 200 Mo.
On a besoin de mettre ce dossier dans sa propre partition quand on fait du [Chiffrement à froid](@/formations/sysadmin/chiffrement_froid.md) sur la partition système (`/`), par exemple. On a besoin de mettre ce dossier dans sa propre partition quand on fait du [Chiffrement à froid](@/formations/chiffrement_froid.md) sur la partition système (`/`), par exemple.
* Une partition `swap`, qui sert de **RAM de secours super lente**. * Une partition `swap`, qui sert de **RAM de secours super lente**.
Très utile si l'on n'a pas beaucoup de RAM, parce qu'elle évite que le serveur ne s'éteigne brutalement dès la limite atteinte. En lieu et place, l'ordinateur fonctionne ô-combien-lentement, mais vous laisse quand même la possibilité de tuer cette saleté de processus qui a mangé toute la RAM, sans avoir à redémarrer. Très utile si l'on n'a pas beaucoup de RAM, parce qu'elle évite que le serveur ne s'éteigne brutalement dès la limite atteinte. En lieu et place, l'ordinateur fonctionne ô-combien-lentement, mais vous laisse quand même la possibilité de tuer cette saleté de processus qui a mangé toute la RAM, sans avoir à redémarrer.
@ -146,7 +148,7 @@ Personnellement, aujourd'hui, j'ai deux configurations de serveur à partitionne
* Ce serveur étant loué dans un centre de données, je compte chiffrer mes données. Je ne veux pas avoir X clés de déchiffrement (une par partition) à rentrer à chaque démarrage, donc je vais utiliser LVM pour ne créer qu'une seule grosse partition chiffrée (dont LVM gèrera le sous-partitionnement pour mon système). * Ce serveur étant loué dans un centre de données, je compte chiffrer mes données. Je ne veux pas avoir X clés de déchiffrement (une par partition) à rentrer à chaque démarrage, donc je vais utiliser LVM pour ne créer qu'une seule grosse partition chiffrée (dont LVM gèrera le sous-partitionnement pour mon système).
* J'ai 3 disques, je vais donc pouvoir utiliser RAID5 pour la redondance de cette méga-partition LVM (RAID1 aurait toléré un *crash* de disque de plus, mais j'aurais eu moins d'espace disque). * J'ai 3 disques, je vais donc pouvoir utiliser RAID5 pour la redondance de cette méga-partition LVM (RAID1 aurait toléré un *crash* de disque de plus, mais j'aurais eu moins d'espace disque).
* Dans LVM, on aura presque 4 To d'espace ! On va faire une partition `/`, une `/home`, une `/var`, une `/data` et la `swap`. Leurs tailles seront facilement adaptables avec LVM à l'usage, donc on s'en fiche à ce stade. * Dans LVM, on aura presque 4 To d'espace ! On va faire une partition `/`, une `/home`, une `/var`, une `/data` et la `swap`. Leurs tailles seront facilement adaptables avec LVM à l'usage, donc on s'en fiche à ce stade.
* Le chiffrement va nécessiter un partition `/boot`, pour que je puisse me connecter au serveur et le déchiffrer avant chaque démarrage (cf. [guide du chiffrement à froid](@/formations/sysadmin/chiffrement_froid.md)). La partition `/boot` sera redondée en RAID1. * Le chiffrement va nécessiter un partition `/boot`, pour que je puisse me connecter au serveur et le déchiffrer avant chaque démarrage (cf. [guide du chiffrement à froid](@/formations/chiffrement_froid.md)). La partition `/boot` sera redondée en RAID1.
* Il va me falloir une petite partition d'amorçage BIOS/EFI de quelques Mo. * Il va me falloir une petite partition d'amorçage BIOS/EFI de quelques Mo.
Graphiquement, ça ressemblera à ça : Graphiquement, ça ressemblera à ça :
@ -405,7 +407,7 @@ sda 8:0 0 1.8T 0 disk
C'est magnifique, nous avons des partitions. Mais pour l'instant, elles ne servent à rien : il leur manque un système de fichier pour être utilisables par un système d'exploitation. C'est magnifique, nous avons des partitions. Mais pour l'instant, elles ne servent à rien : il leur manque un système de fichier pour être utilisables par un système d'exploitation.
Si vous comptez chiffrer les disques de votre futur serveur (ce qu'on recommande chaudement si votre serveur est dans un centre de données), il faut configurer le chiffrement *avant* d'installer un système de fichier. Rendez-vous donc sur le [guide du chiffrement à froid](@/formations/sysadmin/chiffrement_froid.md), où on traitera aussi de l'installation du système de fichier de A à Z : vous avez donc fini ce guide, bravo ! Si vous comptez chiffrer les disques de votre futur serveur (ce qu'on recommande chaudement si votre serveur est dans un centre de données), il faut configurer le chiffrement *avant* d'installer un système de fichier. Rendez-vous donc sur le [guide du chiffrement à froid](@/formations/chiffrement_froid.md), où on traitera aussi de l'installation du système de fichier de A à Z : vous avez donc fini ce guide, bravo !
--- ---

View file

@ -0,0 +1,18 @@
---
title: Primevère 2023
weight: 100
draft: false
date: 2023-03-02
extra:
parent: formations/conf.md
---
Le salon Primevère se tient une fois par an à Lyon à Eurexpo, c'est le salon de l'alter-écologie et on trouve donc tous les acteurs de ce milieu. Historiquement, il y a une proximité avec le monde du libre, d'où un “village du libre”. Le CHATONS Hadoly y est historiquement présent, mais on y trouve aussi l'ALDIL, Wikipedia, OpenstreetMap et bien d'autres personnes.
J'y étais en 2023 sur le stand de Hadoly, qui faisait aussi office de stand CHATONS. J'ai proposé un atelier “table rase numérique” et des petites brochures pour “la sobriété numérique”. Vous pouvez les télécharger ces ressources au format PDF :
- [Jeu “table rase numérique”](/img/default.pdf)
- [Brochure "anti-pub"](/img/pub.pdf)
- [Brochure "matériel durable"](/img/mat.pdf)
- [Brochure "obsolescence logiciel"](/img/obso.pdf)
Les fichiers sources éditables [sont dans mon dépôt git](https://git.deuxfleurs.fr/quentin/memo.git)

View file

@ -1,8 +1,10 @@
+++ ---
title = "Sauvegardes coopératives" title: "Sauvegardes coopératives"
description = "Sauvegardes coopératives entre CHATONS" description: "Sauvegardes coopératives entre CHATONS"
weight = 10 weight: 10
+++ extra:
parent: 'formations/conf.md'
---
**Animateurs :** Équipe Picasoft **Animateurs :** Équipe Picasoft
**Prise de note, compte-rendu :** Quentin de Deuxfleurs **Prise de note, compte-rendu :** Quentin de Deuxfleurs

View file

@ -1,9 +1,11 @@
+++ ---
title = "Administration Système" title: "Administration Système"
description = "Administration Système" description: "Administration Système"
sort_by = "weight" sort_by: "weight"
weight = 50 weight: 50
+++ extra:
parent: 'formations/_index.md'
---
L'administration système est un concept aux contours flous. L'administration système est un concept aux contours flous.
Ici, on va considérer que c'est tout ce qui consiste à faire en sorte que les applications soient disponibles, que les données soient en sécurité, et que les ordinateurs puissent communiquer entre eux à travers le réseau qui nous est mis à disposition. Ici, on va considérer que c'est tout ce qui consiste à faire en sorte que les applications soient disponibles, que les données soient en sécurité, et que les ordinateurs puissent communiquer entre eux à travers le réseau qui nous est mis à disposition.

View file

@ -1,8 +1,10 @@
+++ ---
title = "Infrastructures" title: "Infrastructures"
description = "Infrastructures" description: "Infrastructures"
weight = 90 weight: 90
+++ extra:
parent: 'infrastructures/_index.md'
---
Ce manuel documente la dimension matérielle du numérique chez Deuxfleurs. On y recense les ordinateurs, le lieu où ils sont, les connexions réseaux nécessaires, l'énergie consommée, l'impact de fabrication, de fin de vie, etc. Ce manuel documente la dimension matérielle du numérique chez Deuxfleurs. On y recense les ordinateurs, le lieu où ils sont, les connexions réseaux nécessaires, l'énergie consommée, l'impact de fabrication, de fin de vie, etc.

View file

@ -1,10 +1,12 @@
+++ ---
title = "Bottin" title: "Bottin"
description = "" description: "Un annuaire LDAP pour le distribué"
date = 2021-11-09T12:40:01.746Z date: 2021-11-09T12:40:01.746Z
dateCreated = 2021-11-09T12:39:59.725Z dateCreated: 2021-11-09T12:39:59.725Z
weight = 10 weight: 10
+++ extra:
parent: 'infrastructures/logiciels.md'
---
# Bottin # Bottin

View file

@ -1,8 +1,10 @@
+++ ---
title = "Développement" title: "Développement"
description = "Développement" description: "Développement"
weight = 30 weight: 30
+++ extra:
parent: 'infrastructures/machines.md'
---
Les serveurs de développement hébergent les outils qui nous permettent de travailler sur le logiciel, Les serveurs de développement hébergent les outils qui nous permettent de travailler sur le logiciel,
les configurations, les tickets, ou la compilation. Ils ne contiennent pas de données personnelles mais peuvent être utilisés pour les configurations, les tickets, ou la compilation. Ils ne contiennent pas de données personnelles mais peuvent être utilisés pour
@ -10,11 +12,9 @@ des attaques de chaine d'approvisionnement (*supply chain attack*).
# Bruxelles (Bespin) # Bruxelles (Bespin)
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| Forge Gitea | VM | x1 | ? | | Forge | VM | x1 | 16 cœurs, 8Go RAM, 25Go + 25Go + 50Go| `absinthe` |
| Runner Drone | VM | x1 | 16 cœurs, 8Go RAM, 25Go + 25Go + 50Go|
| | | | `ssh 2a02:1811:3612:b300:e99c:c591:a17f:210` |
# Autres runners Drone # Autres runners Drone
@ -26,7 +26,7 @@ des attaques de chaine d'approvisionnement (*supply chain attack*).
![Photo d'illustration du PC portable utilisé](/img/serv_easynotebg46.jpg) ![Photo d'illustration du PC portable utilisé](/img/serv_easynotebg46.jpg)
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| Packard Bell EasyNote BG46 (2007) | Serveur | x1 | Intel T5750 @ 2.00Ghz (2 cœurs), 3Go RAM, HDD 500Go | | Packard Bell EasyNote BG46 (2007) | Serveur | x1 | Intel T5750 @ 2.00Ghz (2 cœurs), 3Go RAM, HDD 500Go | `vimaire` |
| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | | Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | N/A |

View file

@ -1,10 +1,12 @@
+++ ---
title = "Diplonat" title: "Diplonat"
description = "" description: ""
date = 2021-11-09T12:42:17.716Z date: 2021-11-09T12:42:17.716Z
dateCreated = 2021-11-09T12:42:15.729Z dateCreated: 2021-11-09T12:42:15.729Z
weight = 30 weight: 30
+++ extra:
parent: 'infrastructures/logiciels.md'
---
# Diplonat # Diplonat

View file

@ -1,9 +1,12 @@
+++ ---
title = "Énergie" title: "Énergie"
description = "Consommation électrique" description: "Consommation électrique"
date = 2021-11-09T12:54:33.129Z date: 2021-11-09T12:54:33.129Z
dateCreated = 2021-11-09T12:54:30.985Z dateCreated: 2021-11-09T12:54:30.985Z
+++ weight: 20
extra:
parent: 'infrastructures/_index.md'
---
# Notre avis # Notre avis

View file

@ -1,10 +1,12 @@
+++ ---
title = "Garage" title: "Garage"
description = "" description: ""
date = 2021-11-09T12:42:59.273Z date: 2021-11-09T12:42:59.273Z
dateCreated = 2021-11-09T12:42:57.245Z dateCreated: 2021-11-09T12:42:57.245Z
weight = 40 weight: 40
+++ extra:
parent: 'infrastructures/logiciels.md'
---
# Garage # Garage

View file

@ -1,10 +1,12 @@
+++ ---
title = "Guichet" title: "Guichet"
description = "" description: ""
date = 2021-11-09T12:39:27.819Z date: 2021-11-09T12:39:27.819Z
dateCreated = 2021-11-09T12:39:25.808Z dateCreated: 2021-11-09T12:39:25.808Z
weight = 20 weight: 20
+++ extra:
parent: 'infrastructures/logiciels.md'
---
# Guichet # Guichet

View file

@ -1,15 +1,23 @@
+++ ---
title = "Vie Privée" title: "Logiciels"
description = "Comment mettre en oeuvre des systèmes prenant en compte la vie privée à leur origine ?" description: "Logiciels"
date = 2021-11-18T13:57:51.695Z weight: 90
dateCreated = 2021-11-18T10:42:00.744Z sort_by: "weight"
+++ extra:
parent: 'infrastructures/_index.md'
---
# Vie privée Cette section recense les logiciels développés par Deuxfleurs pour les besoins spécifiques de son infra.
# Principes de conception
Nou essayons de suivre plusieurs principes pour une conception qui correspond au besoin tout en ayant un ensemble de logiciels homogènes.
## Vie privée
Que ce soit à l'intérieur ou l'extérieur de l'association, des demandes pour d'avantage de garanties sur la vie privée ont été formulées. Que ce soit à l'intérieur ou l'extérieur de l'association, des demandes pour d'avantage de garanties sur la vie privée ont été formulées.
## Propriétés recherchées ### Propriétés recherchées
Quelques propriétés en vrac qu'on peut, ou ne pas, désirer : Quelques propriétés en vrac qu'on peut, ou ne pas, désirer :
@ -23,7 +31,7 @@ Quelques propriétés en vrac qu'on peut, ou ne pas, désirer :
- Je ne veux pas que le contenu de mes emails et pièces jointes soit lisible (eg. le doc que j'ai joint) - Je ne veux pas que le contenu de mes emails et pièces jointes soit lisible (eg. le doc que j'ai joint)
- Je ne veux pas que les métadonnées autour de mon message soient accessibles (eg. le destinaire, l'expéditeur, l'horodatage, le client email utilisé, le sujet du mail, le dossier dans lequel il est stocké) - Je ne veux pas que les métadonnées autour de mon message soient accessibles (eg. le destinaire, l'expéditeur, l'horodatage, le client email utilisé, le sujet du mail, le dossier dans lequel il est stocké)
- Je ne veux pas que les métadonnées de communication soient accessibles (eg. quand je me connecte au service email, depuis où, quand j'intéragis sur le réseau), ces données permettent parfois d'inférer des métadonnées sur le protocol (destinaires, présence de pièce jointe, - Je ne veux pas que les métadonnées de communication soient accessibles (eg. quand je me connecte au service email, depuis où, quand j'intéragis sur le réseau), ces données permettent parfois d'inférer des métadonnées sur le protocol (destinaires, présence de pièce jointe,
### Synchronisation et collaboration sur des fichiers ### Synchronisation et collaboration sur des fichiers
- Je ne veux pas que le contenu de mes fichiers soit accessible - Je ne veux pas que le contenu de mes fichiers soit accessible
@ -44,7 +52,7 @@ Quelques attaquants que l'on peut, ou ne pas, considérer :
- Personne externe physique (eg. voleur) - Personne externe physique (eg. voleur)
- Regroupement d'acteurs (eg. opérateurs internet, externe physique ET internet) - Regroupement d'acteurs (eg. opérateurs internet, externe physique ET internet)
- Utilisateurs (eg. pas de chiffrement sur son téléphone) - Utilisateurs (eg. pas de chiffrement sur son téléphone)
## Un exemple de ce qu'on pourrait faire ## Un exemple de ce qu'on pourrait faire
Prenons l'exemple de la messagerie instantanée. Pour l'instant, on peut définir les types de réseaux suivants : Prenons l'exemple de la messagerie instantanée. Pour l'instant, on peut définir les types de réseaux suivants :
@ -83,4 +91,4 @@ Concernant la seconde approche, celle-ci semble beaucoup plus à notre portée :
## Ressources ## Ressources
- https://about.psyc.eu/Federation et https://about.psyc.eu/PSYC2 - https://about.psyc.eu/Federation et https://about.psyc.eu/PSYC2
- Définition d'un mixnet : https://www.youtube.com/watch?v=dQtk0NcTseg - Définition d'un mixnet : https://www.youtube.com/watch?v=dQtk0NcTseg

View file

@ -1,8 +0,0 @@
+++
title = "Logiciels"
description = "Logiciels"
weight = 90
sort_by = "weight"
+++
Cette section recense les logiciels développés par Deuxfleurs pour les besoins spécifiques de son infra.

View file

@ -1,7 +0,0 @@
+++
title = "Conception"
description = "Conception"
weight = 90
+++
Cette section recense les principes de conception que Deuxfleurs applique pour les logiciels qu'elle développe.

View file

@ -1,29 +1,31 @@
+++ ---
title = "Serveurs" title: "Serveurs"
description = "Serveurs" description: "Serveurs"
weight = 10 weight: 40
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'infrastructures/_index.md'
---
# Rôles # Rôles
Nous avons identifié 4 rôles pour nos serveurs, en fonction de la criticité des charges de travail Nous avons identifié 4 rôles pour nos serveurs, en fonction de la criticité des charges de travail
et des données qu'ils auront à gérer. et des données qu'ils auront à gérer.
[Production](./production/) - Les serveurs de productions sont ceux qui font tourner les services accédés par les usager·es (eg. Plume, Matrix, Cryptpad). [Production](@/infrastructures/production.md) - Les serveurs de productions sont ceux qui font tourner les services accédés par les usager·es (eg. Plume, Matrix, Cryptpad).
Si ils sont innaccessibles, alors les services ne fonctionnent plus. Et si une personne malveillante y accède, elle peut avoir accès à des données Si ils sont innaccessibles, alors les services ne fonctionnent plus. Et si une personne malveillante y accède, elle peut avoir accès à des données
personnelles des usager·es. C'est donc le rôle le plus critique. personnelles des usager·es. C'est donc le rôle le plus critique.
[Support](./support/) - Les serveurs de support servent pour les sauvegardes et la supervision des serveurs de production (eg. Grafana, Minio). [Support](@/infrastructures/support.md) - Les serveurs de support servent pour les sauvegardes et la supervision des serveurs de production (eg. Grafana, Minio).
De par leur rôle, ils participent au bon fonctionnement de la production. De par leur rôle, ils participent au bon fonctionnement de la production.
Ils n'ont pas de données personnelles brutes mais les métriques collectées peuvent refléter certains comportement des usager·es Ils n'ont pas de données personnelles brutes mais les métriques collectées peuvent refléter certains comportement des usager·es
et les sauvegardes, bien qu'elles soient chiffrées, contiennent tout de même des données personnelles. et les sauvegardes, bien qu'elles soient chiffrées, contiennent tout de même des données personnelles.
[Développement](./developpement/) - Les serveurs de développement hébergent les outils qui nous permettent de travailler sur le logiciel, [Développement](@/infrastructures/developpement.md) - Les serveurs de développement hébergent les outils qui nous permettent de travailler sur le logiciel,
les configurations, les tickets, ou la compilation. Ils ne contiennent pas de données personnelles mais peuvent être utilisés pour les configurations, les tickets, ou la compilation. Ils ne contiennent pas de données personnelles mais peuvent être utilisés pour
des attaques de chaine d'approvisionnement (*supply chain attack*). À terme, ce rôle pourrait être fusionné avec la production. des attaques de chaine d'approvisionnement (*supply chain attack*). À terme, ce rôle pourrait être fusionné avec la production.
[Expérimentation](./xp/) - Les serveurs d'expérimentation servent à tester les nouvelles configurations, les nouveaux logiciels, [Expérimentation](@/infrastructures/xp.md) - Les serveurs d'expérimentation servent à tester les nouvelles configurations, les nouveaux logiciels,
et le nouveau matériel. Ils permettent aux opérateur·ices de se familiariser avec leurs modifications et de minimiser l'impact d'un changement sur les serveurs de production, et le nouveau matériel. Ils permettent aux opérateur·ices de se familiariser avec leurs modifications et de minimiser l'impact d'un changement sur les serveurs de production,
et donc sur la disponibilité des services. Ces machines ne contiennent pas de données personnelles et ne sont pas critiques, elles n'ont pas besoin de rester tout le temps allumées. et donc sur la disponibilité des services. Ces machines ne contiennent pas de données personnelles et ne sont pas critiques, elles n'ont pas besoin de rester tout le temps allumées.
Il n'est pas nécessaire d'être opérateur·ice pour gérer une de ces machines. Il n'est pas nécessaire d'être opérateur·ice pour gérer une de ces machines.

View file

@ -1,8 +1,10 @@
+++ ---
title = "Production" title: "Production"
description = "Production" description: "Production"
weight = 10 weight: 40
+++ extra:
parent: 'infrastructures/machines.md'
---
Les serveurs de productions sont ceux qui font tourner les services accédés par les usager·es (eg. Plume, Matrix, Cryptpad). Les serveurs de productions sont ceux qui font tourner les services accédés par les usager·es (eg. Plume, Matrix, Cryptpad).
Si ils sont innaccessibles, alors les services ne fonctionnent plus. Et si une personne malveillante y accède, elle peut avoir accès à des données Si ils sont innaccessibles, alors les services ne fonctionnent plus. Et si une personne malveillante y accède, elle peut avoir accès à des données
@ -22,16 +24,13 @@ Les serveurs sont situés à domicile derrière une connexion FTTH SFR (la photo
Cette grappe gère certains services de manière exclusive: Jitsi, CryptPad. Cette grappe gère certains services de manière exclusive: Jitsi, CryptPad.
D'autres services comme Garage sont répartis entre les grappes. D'autres services comme Garage sont répartis entre les grappes.
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs|
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| ThinkCentre M710q Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | | ThinkCentre M710q Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | celeri |
| | | | `ssh celeri.machine.deuxfleurs.fr` | | ThinkCentre M73 Tiny | Serveur | x2 | 2 cœurs, 8Go RAM, HDD 500Go | concombre, courgette |
| ThinkCentre M73 Tiny | Serveur | x2 | 2 cœurs, 8Go RAM, HDD 500Go | | ThinkCentre M73 Tiny | Bridge IPv6 | x1 | 2 cœurs, 4Go RAM, HDD 500Go | |
| | | | `ssh concombre.machine.deuxfleurs.fr` | | D-Link DGS-108gl | Switch | x1 | 8 ports ethernet @ 1Gbit/s | |
| | | | `ssh courgette.machine.deuxfleurs.fr` | | Box SFR | Routeur | x1 | N/A | |
| ThinkCentre M73 Tiny | Bridge IPv6 | x1 | 2 cœurs, 4Go RAM, HDD 500Go |
| D-Link DGS-108gl | Switch | x1 | 8 ports ethernet @ 1Gbit/s |
| Box SFR | Routeur | x1 | N/A |
# Lyon (Orion) # Lyon (Orion)
@ -41,13 +40,10 @@ Les serveurs sont situés à domicile derrière une connexion FTTH Free.
Cette grappe gère certains services de manière exclusive: E-mails, Matrix, Guichet, Plume. Cette grappe gère certains services de manière exclusive: E-mails, Matrix, Guichet, Plume.
D'autres services comme Garage sont répartis entre les grappes. D'autres services comme Garage sont répartis entre les grappes.
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 4Go RAM, SSD 500Go + HDD 500Go | | ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 4Go RAM, SSD 500Go + HDD 500Go | dahlia, doradille, diplotaxis |
| | | | `ssh dahlia.machine.deuxfleurs.fr` | | Freebox | Routeur | x1 | N/A | N/A |
| | | | `ssh doradille.machine.deuxfleurs.fr` |
| | | | `ssh diplotaxis.machine.deuxfleurs.fr` |
| Freebox | Routeur | x1 | N/A |
# Bruxelles (Bespin) # Bruxelles (Bespin)
@ -56,9 +52,7 @@ D'autres services comme Garage sont répartis entre les grappes.
Cette grappe ne gère aucun service accessible publiquement, mais elle fait partie intégrante du cluster Garage. Cette grappe ne gère aucun service accessible publiquement, mais elle fait partie intégrante du cluster Garage.
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, SSD 500Go + HDD 500Go | | ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, SSD 500Go + HDD 500Go | df-ymk, df-ymf, df-ykl |
| | | | `ssh df-ymk.machine.deuxfleurs.fr` | | N/A | Routeur | x1 | N/A | N/A |
| | | | `ssh df-ymf.machine.deuxfleurs.fr` |
| | | | `ssh df-ykl.machine.deuxfleurs.fr` |

View file

@ -1,9 +1,12 @@
+++ ---
title = "Réseau" title: "Réseau"
description = "Réseau" description: "Réseau"
date = 2021-11-09T12:55:03.277Z date: 2021-11-09T12:55:03.277Z
dateCreated = 2021-11-09T12:55:01.156Z dateCreated: 2021-11-09T12:55:01.156Z
+++ weight: 30
extra:
parent: 'infrastructures/_index.md'
---
Cette page regroupe un résumé de tous les problèmes que vous pourriez rencontrer en voulant faire de l'auto hébergement avec "votre connexion internet". Cette page regroupe un résumé de tous les problèmes que vous pourriez rencontrer en voulant faire de l'auto hébergement avec "votre connexion internet".

View file

@ -1,7 +1,10 @@
+++ ---
title = "Services" title: "Services"
description = "Annuaire des services hébergés chez Deuxfleurs" description: "Annuaire des services hébergés chez Deuxfleurs"
+++ weight: 10
extra:
parent: 'infrastructures/_index.md'
---
Cette page tente de recenser de façon exhaustive l'ensemble des services qui Cette page tente de recenser de façon exhaustive l'ensemble des services qui
fonctionnent actuellement sur les machines de Deuxfleurs, dans les différents fonctionnent actuellement sur les machines de Deuxfleurs, dans les différents
@ -30,7 +33,7 @@ rôles identifiés : production, développement, expérimentation, etc.
| Drone (runner) | développement | Bespin | Worker pour l'intégration continue | | Drone (runner) | développement | Bespin | Worker pour l'intégration continue |
| SSH | sauvegarde | Mercure | Target de backups (Consul) | | SSH | sauvegarde | Mercure | Target de backups (Consul) |
| [Minio](https://s3.deuxfleurs.shirokumo.net) | sauvegarde | Mercure | Target de backups restic | | [Minio](https://s3.deuxfleurs.shirokumo.net) | sauvegarde | Mercure | Target de backups restic |
| [cron rclone](@/operations/sauvegardes/rclone.md) | sauvegarde | Jupiter | Backup régulier du contenu de Garage | | [cron rclone](@/operations/rclone.md) | sauvegarde | Jupiter | Backup régulier du contenu de Garage |
| [staging.deuxfleurs.org](https://staging.deuxfleurs.org) | expérimentation | Neptune, Jupiter | Site statique de test | | [staging.deuxfleurs.org](https://staging.deuxfleurs.org) | expérimentation | Neptune, Jupiter | Site statique de test |
| Garage ([S3](https://garage.staging.deuxfleurs.org), [K2V](https://k2v.staging.deuxfleurs.org)) | expérimentation | Neptune, Jupiter | Beta-test serveur de stockage de données | | Garage ([S3](https://garage.staging.deuxfleurs.org), [K2V](https://k2v.staging.deuxfleurs.org)) | expérimentation | Neptune, Jupiter | Beta-test serveur de stockage de données |
| [Guichet](https://guichet.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Beta-test interface de gestion des utilisateurs | | [Guichet](https://guichet.staging.deuxfleurs.org) | expérimentation | Neptune/Jupiter | Beta-test interface de gestion des utilisateurs |

View file

@ -1,8 +1,10 @@
+++ ---
title = "Support" title: "Support"
description = "Serveurs en support" description: "Serveurs en support"
weight = 20 weight: 40
+++ extra:
parent: 'infrastructures/machines.md'
---
Les serveurs de support servent pour les sauvegardes et la supervision des serveurs de production (eg. Grafana, Minio). Les serveurs de support servent pour les sauvegardes et la supervision des serveurs de production (eg. Grafana, Minio).
De par leur rôle, ils participent au bon fonctionnement de la production. De par leur rôle, ils participent au bon fonctionnement de la production.
@ -39,10 +41,9 @@ Seulement une partie du serveur est mise à dispsition de Deuxfleurs :
Le serveur est situé à domicile derrière une connexion FTTH Free. Le serveur est situé à domicile derrière une connexion FTTH Free.
Il est en charge des sauvegardes de Garage. Il est en charge des sauvegardes de Garage.
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| Tour un peu vieille | Serveur | x1 | AMD Phenom II X4 955 @ 3.2 GHz (4 cœurs)<br>4Go RAM, SSD 250Go + HDD 2To | | Tour un peu vieille | Serveur | x1 | AMD Phenom II X4 955 @ 3.2 GHz (4 cœurs)<br>4Go RAM, SSD 250Go + HDD 2To | `io` |
| | | | `ssh io.machine.deuxfleurs.fr` | | Freebox Mini 4k | Routeur | x1 | 4 ports ethernet @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | N/A |
| Freebox Mini 4k | Routeur | x1 | 4 ports ethernet @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique |

View file

@ -1,10 +1,12 @@
+++ ---
title = "Tricot" title: "Tricot"
description = "" description: ""
date = 2022-01-24T16:33:16.731Z date: 2022-01-24T16:33:16.731Z
dateCreated = 2022-01-24T16:32:53.056Z dateCreated: 2022-01-24T16:32:53.056Z
weight = 50 weight: 50
+++ extra:
parent: 'infrastructures/logiciels.md'
---
# Tricot # Tricot

View file

@ -1,8 +1,10 @@
+++ ---
title = "Expérimentation" title: "Expérimentation"
description = "Expérimentation" description: "Expérimentation"
weight = 40 weight: 40
+++ extra:
parent: 'infrastructures/machines.md'
---
Les serveurs d'expérimentation servent à tester les nouvelles configurations, les nouveaux logiciels, Les serveurs d'expérimentation servent à tester les nouvelles configurations, les nouveaux logiciels,
et le nouveau matériel. Ils permettent aux opérateur·ices de se familiariser avec leurs modifications et de minimiser l'impact d'un changement sur les serveurs de production, et le nouveau matériel. Ils permettent aux opérateur·ices de se familiariser avec leurs modifications et de minimiser l'impact d'un changement sur les serveurs de production,
@ -16,20 +18,18 @@ Il n'est pas nécessaire d'être opérateur·ice pour gérer une de ces machines
Cluster staging: expérimentations avec NixOS et de nouveaux déploiements dans Nomad, avant de les mettre en service sur le cluster de production. Cluster staging: expérimentations avec NixOS et de nouveaux déploiements dans Nomad, avant de les mettre en service sur le cluster de production.
Cluster de test de Garage. Cluster de test de Garage.
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 8Go RAM, HDD 500Go | | ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 8Go RAM, HDD 500Go | caribou |
| | | | `ssh caribou.machine.deuxfleurs.fr` | | ThinkCentre M73 Tiny | Serveur | x2 | 4 cœurs, 8Go RAM, SSD 240Go | carcajou, cariacou |
| ThinkCentre M73 Tiny | Serveur | x2 | 4 cœurs, 8Go RAM, SSD 240Go |
| | | | `ssh carcajou.machine.deuxfleurs.fr` |
| | | | `ssh cariacou.machine.deuxfleurs.fr` |
# Rennes (Jupiter) # Rennes (Jupiter)
Cluster staging (idem). Cluster staging (idem).
| Désignation | Rôle | Quantité | Détails | | Désignation | Rôle | Quantité | Détails | Refs |
| -- | -- | -- | -- | | -- | -- | -- | -- | -- |
| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | | ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | origan |
| | | | `ssh origan.df.trinity.fr.eu.org` |
*Note : `origan` a un FQDN non standard : `origan.df.trinity.fr.eu.org`*

View file

@ -1,10 +1,12 @@
+++ ---
title = "Janvier 2020" title: "Janvier 2020"
description = "Janvier 2020: changement imprévu d'adresses IP" description: "Janvier 2020: changement imprévu d'adresses IP"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 10 weight: 10
+++ extra:
parent: 'operations/pannes.md'
---
Le 20 janvier free a changé mon IP, un peu comme partout en France. Le 20 janvier free a changé mon IP, un peu comme partout en France.
Ça concerne l'IPv4 et le préfixe IPv6. Ça concerne l'IPv4 et le préfixe IPv6.

View file

@ -1,10 +1,12 @@
+++ ---
title = "Juillet 2021" title: "Juillet 2021"
description = "Juillet 2021: la BDD Synapse remplit nos disques" description: "Juillet 2021: la BDD Synapse remplit nos disques"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 20 weight: 20
+++ extra:
parent: 'operations/pannes.md'
---
# La BDD synapse rempli nos disques # La BDD synapse rempli nos disques

View file

@ -1,10 +1,12 @@
+++ ---
title = "Janvier 2022" title: "Janvier 2022"
description = "Janvier 2022: Corruptions GlusterFS" description: "Janvier 2022: Corruptions GlusterFS"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 30 weight: 30
+++ extra:
parent: 'operations/pannes.md'
---
# Corruption GlusterFS # Corruption GlusterFS

View file

@ -0,0 +1,28 @@
---
title: "Février 2023"
description: "Février 2023: perte de 2 zones"
date: 2022-12-22
dateCreated: 2022-12-22
weight: 30
extra:
parent: 'operations/pannes.md'
---
En février 2023, garage a été inaccessible car io à Rennes
était cassé depuis une semaine sans qu'on s'en rende compte,
et qu'ensuite neptune a subi une coupure fibre.
On a pu remonter garage assez rapidement car Trinity
a pu reconfigurer io dès que le problème a été identifié.
La discussion a été rendue plus compliqué que prévu
car on a eu des problèmes de déchiffrement des messages sur matrix.
Mais la coupure fibre de neptune nous a fait nous rendre
compte qu'on ne pouvait pas tout reschedule à Lyon.
Et à Bruxelles, impossible de schedule car la conf
routeur ne permet pas (encore) de prendre du trafic entrant.
Voici les changements qu'on a décidé de mettre en oeuvre à la suite de ce problème :
- Alerting sur les serveurs (pas encore fait)
- Conversations en clair sur deuxfleurs::infra
- Accepter du trafic entrant à BRX (pas encore fait)

View file

@ -1,10 +1,12 @@
+++ ---
title = "Installer NixOS en SSH" title: "Installer NixOS en SSH"
description = "Installer NixOS en SSH sans écran ni clavier" description: "Installer NixOS en SSH sans écran ni clavier"
date = 2022-08-24 date: 2022-08-24
dateCreated = 2021-08-24 dateCreated: 2021-08-24
weight = 12 weight: 12
+++ extra:
parent: 'operations/noeud.md'
---
Quick tip avant d'oublier pour installer une de nos machines ThinkCentre via SSH sous NixOS ; c'est la seule solution quand on a pas d'écran ni de clavier sous la main. Quick tip avant d'oublier pour installer une de nos machines ThinkCentre via SSH sous NixOS ; c'est la seule solution quand on a pas d'écran ni de clavier sous la main.
Pré-requis : une clé USB, un ordi sous NixOS. Pré-requis : une clé USB, un ordi sous NixOS.
@ -48,4 +50,4 @@ Ensuite on se connecte dessus :
``` ```
ssh root@192.168.1.X ssh root@192.168.1.X
``` ```

View file

@ -1,9 +1,11 @@
+++ ---
title = "Opérations" title: "Opérations"
description = "Opérations" description: "Opérations"
weight = 100 weight: 100
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/_index.md'
---
Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos opérateur·ices dans la réalisation de leurs tâches. Ce manuel recense notre savoir-faire technique, il a pour but d'accompagner nos opérateur·ices dans la réalisation de leurs tâches.

View file

@ -1,8 +1,10 @@
+++ ---
title = "Accès" title: "Accès"
description = "Accès" description: "Accès"
sort_by = "weight" sort_by: "weight"
weight = 5 weight: 5
+++ extra:
parent: 'operations/_index.md'
---
Ici l'on traite de comment gagner accès au cluster de Deuxfleurs, quand on a reçu la _terrible responsabilité_ de sysadmin. Vous êtes prêt⋅e ? Alors entrez dans [le dépôt des secrets](./pass/). Ici l'on traite de comment gagner accès au cluster de Deuxfleurs, quand on a reçu la _terrible responsabilité_ de sysadmin. Vous êtes prêt⋅e ? Alors entrez dans [le dépôt des secrets](@/operations/pass.md).

View file

@ -1,9 +0,0 @@
+++
title = "SSH"
description = "SSH"
weight = 100
+++
Voir si on documente comment gérer SSH depuis GPG
# Ajout de la clé au cluster

View file

@ -0,0 +1,8 @@
---
title: "Opérations courantes"
description: "Opérations courantes"
weight: 35
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---

View file

@ -1,6 +0,0 @@
+++
title = "Opérations courantes"
description = "Opérations courantes"
weight = 15
sort_by = "weight"
+++

View file

@ -1,31 +0,0 @@
+++
title = "Emails"
description = "Emails"
weight = 10
+++
# Support d'un nom de domaine personnalisé
1. xxx
1. Communiquez lui votre nom de domaine pour qu'il l'ajoute dans `ou=domains,ou=groups,dc=deuxfleurs,dc=fr`
2. Communiquez lui l'adresse email que vous souhaitez pour qu'il change l'entrée `mail` dans votre profil utilisateur
3. Si vous souhaitez avoir une boite mais plusieurs alias, demandez un champs `uid` dans votre profil utilisateur
2. Vous devez ensuite rajouter les entrées pour votre nom de domaine en éditant votre zone :
1. L'entrée MX pour recevoir les emails
```bind
@ MX 10 email-in.deuxfleurs.fr
```
2. L'entrée SPF pour autoriser notre IP à délivrer des emails en votre nom :
```bind
@ TXT "v=spf1 mx:out.deuxfleurs.fr -all"
```
3. L'entrée DKIM pour autoriser notre postfix+opendkim à délivrer des emails en votre nom :
```
smtp._domainkey TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDBOCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4WfmDWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"
```
4. L'entrée DMARC pour indiquer le comportement à adopter si les contraintes précédentes ne sont pas satisfaites :
```
_dmarc TXT "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:contact@deuxfleurs.fr!10m; ruf=mailto:contact@deuxfleurs.fr!10m; rf=afrf; pct=100; ri=86400"
```
3. C'est tout ! Vous devrez probablement attendre 24/48h que les changements se propagent.

View file

@ -1,10 +1,12 @@
+++ ---
title = "Créer une BDD" title: "Créer une BDD"
description = "Création d'une base de données pour une nouvelle application" description: "Création d'une base de données pour une nouvelle application"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/deployer.md'
---
## 1. Create a LDAP user and assign a password for your service ## 1. Create a LDAP user and assign a password for your service

View file

@ -0,0 +1,9 @@
---
title: "Débogage"
description: "Débogage"
weight: 60
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---

View file

@ -1,7 +0,0 @@
+++
title = "Débogage"
description = "Débogage"
weight = 60
sort_by = "weight"
+++

View file

@ -1,7 +0,0 @@
+++
title = "Déploiement"
description = "Déploiement"
weight = 10
sort_by = "weight"
+++

View file

@ -1,10 +1,12 @@
+++ ---
title = "Applications" title: "Déployer du logiciel"
description = "Déploiement d'une application" description: "Déploiement du logiciel"
sort_by = "weight" sort_by: "weight"
date = 2022-12-22 date: 2022-12-22
weight = 30 weight: 30
+++ extra:
parent: 'operations/_index.md'
---
# Empaqueter # Empaqueter

232
content/operations/email.md Normal file
View file

@ -0,0 +1,232 @@
---
title: Emails
description: Emails
weight: 10
draft: false
date: 2023-03-16
extra:
parent: operations/courantes.md
---
# Support d'un nom de domaine personnalisé
Deuxfleurs peut héberger vos e-mails, même s'ils ne finissent pas en `@deuxfleurs.fr` ! Voilà comment faire.
1. Communiquez lui votre nom de domaine pour qu'il l'ajoute dans `ou=domains,ou=groups,dc=deuxfleurs,dc=fr` et la [table de signature DKIM](https://git.deuxfleurs.fr/Deuxfleurs/nixcfg/src/branch/main/cluster/prod/app/email/config/dkim/signingtable)
2. Communiquez lui l'adresse email que vous souhaitez pour qu'il change l'entrée `mail` dans votre profil utilisateur
3. Vous devez ensuite rajouter les entrées pour votre nom de domaine en éditant votre zone :
1. L'entrée MX pour recevoir les emails
```
@ MX 10 smtp.deuxfleurs.fr.
```
2. L'entrée SPF pour autoriser notre IP à délivrer des emails en votre nom :
```
@ TXT "v=spf1 include:deuxfleurs.fr -all"
```
3. L'entrée DKIM pour autoriser notre postfix+opendkim à délivrer des emails en votre nom :
```
smtp._domainkey CNAME smtp._domainkey.deuxfleurs.fr.
```
4. L'entrée DMARC pour indiquer le comportement à adopter si les contraintes précédentes ne sont pas satisfaites :
```
_dmarc CNAME _dmarc.deuxfleurs.fr.
```
4. C'est tout ! Vous devrez probablement attendre 24/48h que les changements se propagent.
# Comprendre le fonctionnement des e-mails
## Serveurs
- SMTP: Postfix
- IMAP: Dovecot (fixé sur une machine avec un backup)
## Enregistrements DNS de la zone `deuxfleurs.fr`
| nom | type | valeur | signification |
| --- | ---- | ------ | ------------- |
| `@` | `MX` | `12 smtp.deuxfleurs.fr` | Serveur que chercheront à joindre les gens qui veulent envoyer un courrier à une addresse `@deuxfleurs.fr` |
| `smtp._domainkey` | `TXT` | `v=DKIM1; p=<clef publique>` | Enregistrement DKIM (voir ci-dessous) |
| `default._domainkey` | `TXT` | `v=DKIM1; p=<clef publique>` | Ancien enregistrement DKIM (voir ci-dessous) |
| `@` | `TXT` | `v=spf1 [...] -all` | Enregistrement SPF (voir ci-dessous) |
| `_dmarc` | `TXT` | `v=DMARC1; [...]` | Enregistrement DMARC (voir ci-dessous) |
| `smtp` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Postfix |
| `imap` | `A` | défini par D53 | Addresse IPv4 pour parler au serveur Dovecot |
| `201.80.66.82.in-addr.arpa.` | `PTR` | `orion.site.deuxfleurs.fr.` | Reverse DNS indiquant le nom de domaine correspondant à l'IP du serveur Postfix |
| `orion.site` | `A` | `82.66.80.201` | Reverse DNS indiquant le nom de domaine correspondant à l'IP du serveur Postfix |
## DKIM
Le mécanisme DKIM permet au serveur d'ajouter une signature sur les messages qui sortent de Deuxfleurs, pour que les destinataires puissent en attester la validité.
Il s'agit d'une signature RSA basée sur une paire de clefs privée/publique. La clef publique est donée dans l'enregistrement DNS DKIM, et la clef privée est connue
uniquement du serveur Postfix. La signature de chaque message est ajoutée dans un en-tête spécifique.
Référence : <https://www.cloudflare.com/learning/dns/dns-records/dns-dkim-record/>
**Exemple d'enregistrements DNS :**
```
default._domainkey.deuxfleurs.fr. 10800 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDB" "OCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4Wfm" "DWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"
smtp._domainkey.deuxfleurs.fr. 1800 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtdZp4qrgZR+6R7HeAkuLGJ/3L/6Ungvf5zwrMq6T8Tu931j2G4lYuPtsxyn9fZkT4y7DlX0waktLDB" "OCwf7X78nLEWjAFWiJTeWGRGhRdYRUFpscs9NUN0P+46jKlabibG3XTKd1DeAmywTu6o1oO03yiolrgKD1zgyDRFeUTfSwZIdPrdbcBSA1arda4WFtcBIrSygM9b4jtlqfQwGDrsMLbCBfVHDn4Wfm" "DWyNg0gDAkuLrYClNETk6aqIyj9fC8srKri0Qp3cRagCn+fjBvuxP35qWWJH7Rnnh/tuEDr1ufuNYO2KgJZ7JdMidUotxXE8cfU+OrEWQf4mIYeJ4wIDAQAB"
default._domainkey.adnab.me. 3600 IN TXT "v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHd2zQXgGAoFX2CFaRqvWw1oBGhbUIRB5QXPxE9nvWwe/og5LjZBcnKoInPWsKYEz/f5kmpTDq4RZT3PMmjm+u5IuvyQ2LJcdIKSW6t8KWa7yztk2D87f3Lono6WJwvY8RHdGPqKS5RXfEdQFriXiSCAO5ZSQrNXQ5yiQ9T1ptGwIDAQAB; t=s"
```
**Structure :**
- Le nom de domaine est composé d'un selecteur (souvent `default`, on a ici aussi `smtp`) qui permet de distinguer différentes clefs pour signer les messages.
Il est formé de la manière suivante: `<selecteur>._domainkey.<domaine>`
- La valeur est composé de plusieurs champs entre guillemets séparés par des `;`, le champ `v` peut contenir la version de DKIM utilisée (ici `v=DKIM1`)
- Le champ `p` contient la clef publique
- Les autres champs sont optionels
**Application à la vérification d'une signature (exemple) :**
Prenons la signature suivante :
```
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=deuxfleurs.fr; s=smtp;
t=1679050854; bh=AkDk3Tm0bnC7b6dvTjRXJbThLE6h/IStsBGIYGa+q7c=;
h=Date:To:From:Subject:From;
b=Qll5ASi9DmD2rw9LK1vJOahE77Pd/HNDbmrkrOCt4S8Nu42WtJXXOtiwo9J3KGPzR
zA2Cw5oCUB0HW5ere8RkINsUj9X/nxOovxFaJw4LSrgEYxQh7unaGBs6Ecw6k2Aqc/
oMhNE2OVCSlLkJVUQbgzwBUcZuwndlki6yYoJXkSPMuZ4tFbhgjSaxneRgUvPocYw3
Vqc/yMEAbofrlaEf6nSNQZL+LSE4IEBeudsv3JodMn12OYAijhO0rrHHsinK9UkM3M
PEEISyatG6RzE6veh4VVv3PTyJMYouQI7fKNooLuDmlGsdSTV9HRo4UvQeOQT1SL/7
KvgJtR0Hqz3mQ==
```
Cette signature contient les champs suivants :
- `v` (obligatoire) indique la version, doit toujours être à `1`
- `a` (obligatoire) indique l'algorithme de signature, généralement `rsa-sha256`
- `d` (obligatoire) indique le domaine pour lequel la signature est produite
- `s` (obligatoire) indique le sélecteur de la clef DKIM utilisée (ici `smtp` pour utiliser la clef `smtp._domainkey.deuxfleurs.fr`)
- `h` (obligatoire) indique la liste des en-têtes signés
- `bh` (obligatoire) donne le hash du contenu du message
- `b` (obligatoire) donne la signature à proprement parler, qui signe les en-têtes `h` et le hash du contenu `bh`
- `t` (recomandé) donne le timestamp de la signature, i.e. sa date et son heure
- `c` est un paramètre additionnel de la méthode de calcul de la signature
**Chez Deuxfleurs:**
- L'en-tête de signature est rajouté par notre serveur Postfix.
- La clef privée est stockée dans Consul, et est injectée dans le conteneur Postfix au lancement.
- Les enregistrements DNS pour DKIM sont installés manuellement.
- Pour tous les autres domaines dont le courrier est traîté par les serveurs Deuxfleurs, on utilise un enregistrement DKIM en CNAME vers `smtp._domainkey.deuxfleurs.fr` pour que la gestion des règles soit centralisée via l'enregistrement défini sur les DNS Deuxfleurs.
## SPF
L'enregistrement SPF sert à aider le serveur de destination à déterminer si le message reçu est légitime ou non, en vérifiant des contraintes sur l'addresse IP par laquelle il a été reçu.
Normalement, c'est l'addresse IP du serveur SMTP de Deuxfleurs, donc on sait qu'on doit rejeter tous les messages venant d'autres addresses.
Références : <https://fr.wikipedia.org/wiki/Sender_Policy_Framework>
**Exemple d'enregistrements DNS :**
```
deuxfleurs.fr. 300 IN TXT "v=spf1 mx:deuxfleurs.fr a:orion.site.deuxfleurs.fr ip4:82.66.80.201 ip6:2a01:e0a:28f:5e60::/64 -all"
adnab.me. 3600 IN TXT "v=spf1 mx mx:adnab.me include:mx.ovh.com -all"
ietf.org. 1794 IN TXT "v=spf1 ip4:50.223.129.192/26 ip6:2001:559:c4c7::/48 a:ietf.org mx:mail.ietf.org ip4:192.95.54.32/27 ip6:2607:5300:60:9ccf::/64 ip4:158.69.166.0/27 ip6:2607:5300:203:1b26::/64 ip4:4.31.198.32/27 ip6:2001:1900:3001:11::/64 include:_spf.google.com ~all"
```
**Structure :**
L'enregistrement commence par `v=spf1`, puis contient un ensemble de directives formées de la manière suivante:
- Un préfixe pouvant être `+` (résultat favorable), `?` (résultat neutre/aucune règle), `~` (entre le neutre et l'échec, utile pour déboguer), `-` (échec/défavorable). Le préfixe peut être omis, ce qui est interprété comme le préfixe `+`.
- Une paire type/valeur, avec les types suivants:
- `mx` : utiliser un enregistrement DNS de type MX. L'enregistrement `MX` donne un ou plusieurs noms d'hôtes, qui sont eux-même des noms DNS. Ces noms sont ensuite résolus en `A` ou `AAAA` pour trouver les addresses correspondantes. Attention, un enregistrement `MX` n'est pas sensé pointer sur un `CNAME`, il doit pointer directement sur des enregistrements `A` et `AAAA` !
- `ip4` : contient directement une plage d'addresses IPv4
- `ip6` : contient directement une plage d'addresses IPv6
- `a` : contient un nom d'hôte à résoudre en `A` ou `AAAA` (pouvant utiliser des `CNAME`)
- `include` : contient un nom de domaine ayant une autre règle SPF à inclure
- `ptr` : désuet
- Ou bien le mot `all`, qui correspond à tous les expéditeurs dont l'addresse ne correspond pas aux autres règles
Par exemple, dans les exemples ci-dessus, voici comment interpréter les différentes règles:
- `mx:deuxfleurs.fr` : accepter le message si l'IP de l'expéditeur est trouvable en suivant les enregistrements `MX` associés à `deuxfleurs.fr`.
- `ip4:82.66.80.201` : accepter le message si l'IP de l'expéditeur est `82.66.80.201`
- `include:mx.ovh.com` : accepter le message si il serait accepté par la règle du domaine `mx.ovh.com` (consultable en faisant `dig TXT mx.ovh.com`)
- `a:ietf.org` : accepter le message si il vient de l'addresse IP de `ietf.org` (consultable en faisant `dig A ietf.org`)
- `-all` : rejeter strictement tous les messages venant d'une autre addresse IP
**Chez Deuxfleurs :**
- L'enregistrement SPF, installé manuellement, contient `mx:deuxfleurs.fr`, ce qui signifie que les addresses IP sont celles présentes dans l'enregistrement `MX` pour `deuxfleurs.fr`.
- Cet enregistrement est fixé manuellement pour pointer sur le serveur `smtp.deuxfleurs.fr`.
L'enregistrement `A` pour `smtp.deuxfleurs.fr` est mis à jour automatiquement par D53 pour pointer vers l'IPv4 de la machine sur laquelle tourne Postfix.
- L'enregistrement SPF contient également `a:orion.site.deuxfleurs.fr`, qui contient également l'IPv4 de cette machine ; on garde cette règle en second recours au cas où il y aurait un problème avec la précédente, pour éviter de rejeter du courrier valide.
- L'enregistrement SPF contient également l'addresse IPv4 et la plage d'addresses IPv6 de la box à Orion (site où le serveur SMTP est actuellement déployé), pour en dernier recours éviter de rejeter des mails en cas de soucis avec les règles précédentes.
- **L'enregistrement SPF doit être mis à jour manuellement en cas de reconfiguration du serveur SMTP, en particulier si celui-ci change de site ou si les addresses IP changent.**
- Pour tous les autres domaines dont le courrier est traîté par les serveurs Deuxfleurs, on utilise un enregistrement SPF `include:deuxfleurs.fr` pour que la gestion des règles soit centralisée via l'enregistrement défini sur les DNS Deuxfleurs.
## DMARC
DMARC est un mécanisme qui permet de mieux contrôler la réaction des serveurs de destination en fonction des tests DKIM et SPF.
Par exemple, on peut préciser que tous les messages sont authentifiés par DKIM et SPF, et si un de ces tests échoue, le message doit nécessairement être rejeté.
On peut aussi demander à recevoir des rapports en cas d'échec.
Référence : <https://fr.wikipedia.org/wiki/DMARC>
**Exemple d'enregistrements DNS :**
```
_dmarc.deuxfleurs.fr. 300 IN TXT "v=DMARC1; p=reject; sp=reject; adkim=s; fo=1; aspf=s; ruf=mailto:prod-sysadmin@deuxfleurs.fr; rua=mailto:prod-sysadmin@deuxfleurs.fr; rf=afrf; pct=100; ri=86400"
_dmarc.adnab.me. 3600 IN TXT "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:postmaster@adnab.me!10m; ruf=mailto:postmaster@adnab.me!10m; rf=afrf; pct=100; ri=86400"
```
L'enregistrement peut contenir les champs suivants:
- `v=DMARC1` indique la version de DMARC utilisée
- `p` : procédure en cas d'échec avec le domaine principal (`none/quarantaine/reject`)
- `sp` : comme `p` mais s'applique aux sous-domaines
- `adkim` : indique si on doit appliquer la règle DKIM de manière stricte (`s`, le nom de domaine doit correspondre exactement) ou relaxée (`r`, des variations sur le nom de domaine sont permises)
- `aspf` : indique si on doit appliquer la règle SPF de manière stricte (`s`) ou relaxée (`r`)
- `ruf` : addresse mail à laquelle envoyer un rapport d'échec détaillé à chaque échec de validation
- `fo` : condition pour l'envoi d'un rapport d'échec détaillé (1 = si soit DKIM soit SPF a échoué)
- `rua` : addresse mail à laquelle envoyer un rapport d'échec aggrégé périodiquement
- `ri` : intervalle en secondes entre l'envoi des rapports aggrégés (86400 = 24h)
- `rf` : format des rapports (`afrf` est la seule valeur officiellement supportée)
- `pct` : proportion de messages à rejeter en cas d'échec
**Chez Deuxfleurs :**
- L'enregistrement DMARC est configuré pour rejeter de manière strict tout message ne passant pas la vérification SPF ou DKIM.
- Les rapports d'erreur doivent être envoyés à l'addresse `prod-sysadmin@deuxfleurs.fr` qui est consultés par les administrateurs systèmes de Deuxfleurs.
- Pour tous les autres domaines dont le courrier est traîté par les serveurs Deuxfleurs, on utilise un enregistrement DMARC en CNAME vers `_dmarc.deuxfleurs.fr` pour que la gestion des règles soit centralisée via l'enregistrement défini sur les DNS Deuxfleurs.
## Reverse DNS
L'enregistrement reverse DNS peut être utilisé par le serveur de destination
pour connaître le nom d'hôte correspondant à l'addresse IP du serveur qui a
envoyé le mail. Cet enregistrement doit idéalement correspondre à un nom de
domaine qui lui-même résoud à nouveau vers la même addresse IP.
L'application de cette règle de filtrage est à la discrétion des différents hébergeurs
mail, elle ne rentre pas dans le cadre défini par DMARC.
**Exemple d'enregistrements reverse DNS :**
```
201.80.66.82.in-addr.arpa. 86179 IN PTR orion.site.deuxfleurs.fr.
206.118.187.37.in-addr.arpa. 86400 IN PTR shiki.adnab.me.
```

View file

@ -1,10 +1,12 @@
+++ ---
title = "Guide de création d'un nœud" title: "Guide de création d'un nœud"
description = "Guide de création d'un nœud" description: "Guide de création d'un nœud"
date = 2022-08-23 date: 2022-08-23
dateCreated = 2022-08-23 dateCreated: 2022-08-23
weight = 11 weight: 11
+++ extra:
parent: 'operations/noeud.md'
---
# Guide d'initialisation de nœud Deuxfleurs # Guide d'initialisation de nœud Deuxfleurs
Ce guide explique comment initialiser un nœud pour l'infrastructure de Deuxfleurs. Nous partons de zéro, c'est-à-dire avec une machine que nous venons de récupérer, avec une mémoire vide, et que nous venons de brancher. À titre d'exemple, nous illustrerons de temps en temps les opérations avec une de nos machines (un Thinkcentre de Lenovo). Ce guide explique comment initialiser un nœud pour l'infrastructure de Deuxfleurs. Nous partons de zéro, c'est-à-dire avec une machine que nous venons de récupérer, avec une mémoire vide, et que nous venons de brancher. À titre d'exemple, nous illustrerons de temps en temps les opérations avec une de nos machines (un Thinkcentre de Lenovo).
@ -14,7 +16,7 @@ Configurons d'abord quelques paramètres dans l'UEFI de la machine. Démarrez-l
## Installation de NixOS ## Installation de NixOS
> Aucun écran ou clavier n'est disponible pour l'ordinateur cible ? NixOS peut être installé en SSH. Suivre les instructions sur [cette page](/operations/deploiement/noeud/ssh-sans-ecran). > Aucun écran ou clavier n'est disponible pour l'ordinateur cible ? NixOS peut être installé en SSH, une page y est dédiée : [Installer NixOS sans écran](@/operations/SSH_sans_écran.md).
Pour installer NixOS, nous aurons besoin d'une clé USB avec une image amorçable (*live*) de NixOS dessus. Nous pouvons télécharger la distribution linux en 64 bits et en version minimale (sans interface graphique et avec moins d'utilitaires) sur le [site officiel](https://nixos.org/download.html). Pour écrire l'image sur le support USB, on peut faire `dd if=chemin-vers-le-fichier-iso of=/dev/sdX status=progress; sync`, en remplaçant `sdX` par le fichier périphérique correspondant à la clé, trouvé avec `lsblk` par exemple. Pour installer NixOS, nous aurons besoin d'une clé USB avec une image amorçable (*live*) de NixOS dessus. Nous pouvons télécharger la distribution linux en 64 bits et en version minimale (sans interface graphique et avec moins d'utilitaires) sur le [site officiel](https://nixos.org/download.html). Pour écrire l'image sur le support USB, on peut faire `dd if=chemin-vers-le-fichier-iso of=/dev/sdX status=progress; sync`, en remplaçant `sdX` par le fichier périphérique correspondant à la clé, trouvé avec `lsblk` par exemple.
Alternativement, cela peut être l'occasion de créer une clé USB formatée avec [Ventoy](https://ventoy.net), un utilitaire très pratique Alternativement, cela peut être l'occasion de créer une clé USB formatée avec [Ventoy](https://ventoy.net), un utilitaire très pratique

View file

@ -1,10 +1,12 @@
+++ ---
title = "Jitsi" title: "Jitsi"
description = "" description: ""
date = 2021-11-09T12:53:23.811Z date: 2021-11-09T12:53:23.811Z
dateCreated = 2021-11-09T12:46:50.731Z dateCreated: 2021-11-09T12:46:50.731Z
weight = 20 weight: 20
+++ extra:
parent: 'operations/debogage.md'
---
## 2020-04-02 Campagne de debug Jitsi ## 2020-04-02 Campagne de debug Jitsi

View file

@ -0,0 +1,12 @@
---
title: "Maintien en condition"
description: "Maintien en condition"
sort_by: "weight"
weight: 40
extra:
parent: 'operations/_index.md'
---
# En condition opérationnele
# En condition de sécurité

View file

@ -1,10 +0,0 @@
+++
title = "Maintien en condition"
description = "Maintien en condition"
sort_by = "weight"
weight = 20
+++
# En condition opérationnele
# En condition de sécurité

View file

@ -1,10 +1,12 @@
+++ ---
title = "MàJ Matrix" title: "MàJ Matrix"
description = "Mise à jour de Matrix (Synapse/Element)" description: "Mise à jour de Matrix (Synapse/Element)"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/maintien_en_condition.md'
---
How to update Matrix? How to update Matrix?
===================== =====================
@ -69,12 +71,9 @@ Do the same thing for the `synapse` service.
Now, you need a way to access the cluster to deploy this file. Now, you need a way to access the cluster to deploy this file.
To do this, you must bind nomad on your machine through a SSH tunnel. To do this, you must bind nomad on your machine through a SSH tunnel.
Check the end of [the parent `README.md`](../README.md) to do it.
If you have access to the Nomad web UI when entering http://127.0.0.1:4646 If you have access to the Nomad web UI when entering http://127.0.0.1:4646
you are ready to go. you are ready to go.
You must have installed the Nomad command line tool on your machine (also explained in [the parent `README.md`](../README.md)).
Now, on your machine and from the `app/im/deploy` folder, you must be able to run: Now, on your machine and from the `app/im/deploy` folder, you must be able to run:
``` ```

View file

@ -1,10 +1,12 @@
+++ ---
title = "Grappe" title: "nixcfg"
description = "Grappe" description: "Le dépôt nixcfg"
weight = 20 weight: 20
date = 2022-12-22 date: 2022-12-22
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/noeud.md'
---
# Installation # Installation

View file

@ -1,14 +1,16 @@
+++ ---
title = "Noeud" title: "Installer un noeud"
description = "Déploiement d'un noeud" description: "Déploiement d'un noeud"
date = 2022-08-23 date: 2022-08-23
dateCreated = 2021-08-23 dateCreated: 2021-08-23
sort_by = "weight" weight: 20
+++ extra:
parent: 'operations/_index.md'
---
# Déployer un nœud au sein de l'infrastructure Deuxfleurs # Déployer un nœud au sein de l'infrastructure Deuxfleurs
Déployer un nœud au sein de l'infrastructure Deuxfleurs demande un certaine préparation et représente un processus particulier. Déployer un nœud au sein de l'infrastructure Deuxfleurs demande un certaine préparation et représente un processus particulier.
Avant de se lancer, [mieux vaut vérifier les prérequis pour y parvenir](./prerequis/). Une fois ceci fait, on peut suivre [le guide décrivant la procédure](./guide-creation-noeud/). Avant de se lancer, [mieux vaut vérifier les prérequis pour y parvenir](@/operations/prérequis.md). Une fois ceci fait, on peut suivre [le guide décrivant la procédure](@/operations/guide_création_nœud.md).
Si vous avez une machine à installer, mais aucun écran & clavier à brancher dessus pour la configurer, référez-vous au [guide d'installation de NixOs en SSH](./ssh-sans-ecran/). Si vous avez une machine à installer, mais aucun écran & clavier à brancher dessus pour la configurer, référez-vous au [guide d'installation de NixOs en SSH](@/operations/SSH_sans_écran.md).

View file

@ -0,0 +1,15 @@
---
title: "Pannes"
description: "Pannes"
weight: 70
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---
Nous aimerions mettre en place une culture du postmortem.
C'est très important pour s'améliorer et apprendre de ses erreurs,
pour prendre le temps de se questionner sur ce qui a disfonctionné,
et réfléchir à comment changer en profondeur nos pratiques.
Et puis, plus simplement, si le problème venait à arriver
de nouveau, nous aurions alors déjà documenté comment le résoudre !

View file

@ -1,6 +0,0 @@
+++
title = "Pannes"
description = "Pannes"
weight = 70
sort_by = "weight"
+++

View file

@ -1,8 +1,10 @@
+++ ---
title = "Le dépôt des secrets" title: "Le dépôt des secrets"
description = "Le dépôt des secrets" description: "Le dépôt des secrets"
weight = 10 weight: 10
+++ extra:
parent: 'operations/acces.md'
---
We use [pass, 'the standard unix password manager'](https://www.passwordstore.org/), to manage our key store securely at Deuxfleurs. Getting access to our production involves publishing one's GPG key (through Gitea) and importing/verifying/signing every other sysadmin's key, before setting up `pass`. Lastly, you will be able to set your shell password on the desired cluster (`prod` or `staging`, at the time of writing). We use [pass, 'the standard unix password manager'](https://www.passwordstore.org/), to manage our key store securely at Deuxfleurs. Getting access to our production involves publishing one's GPG key (through Gitea) and importing/verifying/signing every other sysadmin's key, before setting up `pass`. Lastly, you will be able to set your shell password on the desired cluster (`prod` or `staging`, at the time of writing).

View file

@ -1,10 +1,12 @@
+++ ---
title = "Petits incidents" title: "Petits incidents"
description = "Petits incidents" description: "Petits incidents"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 1000 weight: 1000
+++ extra:
parent: 'operations/pannes.md'
---
- **2020** Publii efface le disque dur d'un de nos membres. Il a changé le dossier de sortie vers /home qui a été effacé - **2020** Publii efface le disque dur d'un de nos membres. Il a changé le dossier de sortie vers /home qui a été effacé

View file

@ -1,8 +1,10 @@
+++ ---
title = "pg_basebackup" title: "pg_basebackup"
description = "pg_basebackup" description: "pg_basebackup"
weight=15 weight: 15
+++ extra:
parent: 'operations/sauvegardes.md'
---
## Disclaimer ## Disclaimer

View file

@ -1,10 +1,12 @@
+++ ---
title = "Plume" title: "Plume"
description = "Plume" description: "Plume"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/debogage.md'
---
## Bug and debug ## Bug and debug

View file

@ -0,0 +1,27 @@
---
title: "Prestataires"
description: "Prestataires"
weight: 80
extra:
parent: 'operations/_index.md'
---
# DNS
Gandi
# Pont IPv6
FDN
# Paquets
Docker Hub
# FAI
Free, SFR, et autres
# Électricité
EDF

View file

@ -1,25 +0,0 @@
+++
title = "Prestataires"
description = "Prestataires"
weight = 80
+++
# DNS
Gandi
# Pont IPv6
FDN
# Paquets
Docker Hub
# FAI
Free, SFR, et autres
# Électricité
EDF

View file

@ -1,10 +1,12 @@
+++ ---
title = "Prérequis pour un nœud" title: "Prérequis pour un nœud"
description = "Prérequis pour un nœud" description: "Prérequis pour un nœud"
date = 2022-01-09T13:29:29.710Z date: 2022-01-09T13:29:29.710Z
dateCreated = 2021-12-28T14:33:59.088Z dateCreated: 2021-12-28T14:33:59.088Z
weight = 10 weight: 10
+++ extra:
parent: 'operations/noeud.md'
---
Dans ce guide, nous allons expliquer comment installer une grappe de serveurs, en vue d'un hébergement pour Deuxfleurs. Dans ce guide, nous allons expliquer comment installer une grappe de serveurs, en vue d'un hébergement pour Deuxfleurs.
@ -36,4 +38,4 @@ On peut distinguer deux types de sites :
On aura affaire à sa box (NAT, pare-feu...), au manque de garanties concernant notre adressabilité (IPv4 dynamique, IPv6 ? ...), ce qui va nous mener à devoir faire du routage. Le nœud du problème, c'est que chaque ordinateur de la grappe n'aura pas pignon sur rue (pas d'adresse IP publique et fixe par machine). On aura affaire à sa box (NAT, pare-feu...), au manque de garanties concernant notre adressabilité (IPv4 dynamique, IPv6 ? ...), ce qui va nous mener à devoir faire du routage. Le nœud du problème, c'est que chaque ordinateur de la grappe n'aura pas pignon sur rue (pas d'adresse IP publique et fixe par machine).
Néanmoins, **on est chez nous !** Votre disque dur - qui contient les données personnelles de vos usagers chéris - est sous vos yeux, bien au chaud. Le seul curieux qui voit passer votre trafic réseau est votre FAI : *rien de nouveau sous le soleil*. Néanmoins, **on est chez nous !** Votre disque dur - qui contient les données personnelles de vos usagers chéris - est sous vos yeux, bien au chaud. Le seul curieux qui voit passer votre trafic réseau est votre FAI : *rien de nouveau sous le soleil*.

View file

@ -1,9 +1,11 @@
+++ ---
title = "rclone" title: "rclone"
description = "rclone" description: "rclone"
weight = 20 weight: 20
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/sauvegardes.md'
---
Script de backup brut, on planifie une approche plus élégante à l'avenir : Script de backup brut, on planifie une approche plus élégante à l'avenir :

View file

@ -1,8 +1,10 @@
+++ ---
title = "restic" title: "restic"
description = "restic" description: "restic"
weight = 10 weight: 10
+++ extra:
parent: 'operations/sauvegardes.md'
---
Add the admin account as `deuxfleurs` to your `~/.mc/config` file Add the admin account as `deuxfleurs` to your `~/.mc/config` file

View file

@ -1,33 +1,35 @@
+++ ---
title = "Sauvegardes" title: "Sauvegardes"
description = "Sauvegardes" description: "Sauvegardes"
weight = 30 weight: 50
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'operations/_index.md'
---
# Données sauvegardées # Données sauvegardées
[restic](./restic/) - Nous utilisons restic pour sauvegarder les logiciels [restic](@/operations/restic.md) - Nous utilisons restic pour sauvegarder les logiciels
qui utilisent le système de fichier (Cryptpad, Dovecot, et Plume) ainsi que Consul. qui utilisent le système de fichier (Cryptpad, Dovecot, et Plume) ainsi que Consul.
À terme, nous aimerions être en mesure de tout pouvoir stocker directement sur Garage À terme, nous aimerions être en mesure de tout pouvoir stocker directement sur Garage
et rendre obsolète ce mode de sauvegarde. et rendre obsolète ce mode de sauvegarde.
[pg\_basebackup](./pg_basebackup/) - Nous utilisons cet outils pour sauvegarder l'ensemble [pg\_basebackup](@/operations/pg_basebackup.md) - Nous utilisons cet outils pour sauvegarder l'ensemble
des tables gérées par notre base de données SQL sans impacter trop les performances. des tables gérées par notre base de données SQL sans impacter trop les performances.
Le tout est réalisé par un script python qui chiffre avec [age](https://github.com/FiloSottile/age) et envoie le backup via S3. Le tout est réalisé par un script python qui chiffre avec [age](https://github.com/FiloSottile/age) et envoie le backup via S3.
À terme, nous aimerions utiliser [wal-g](https://github.com/wal-g/wal-g) à la place. À terme, nous aimerions utiliser [wal-g](https://github.com/wal-g/wal-g) à la place.
[rclone](./rclone/) - Combiné avec btrfs, nous copions sur un système de fichier à plat [rclone](@/operations/rclone.md) - Combiné avec btrfs, nous copions sur un système de fichier à plat
le contenu de notre cluster afin de faire face en cas de corruption. le contenu de notre cluster afin de faire face en cas de corruption.
À terme, nous aimerions remplacer cet outil par quelque chose de similaire à [s3s3mirror](https://github.com/cobbzilla/s3s3mirror). À terme, nous aimerions remplacer cet outil par quelque chose de similaire à [s3s3mirror](https://github.com/cobbzilla/s3s3mirror).
# Localisation des sauvegardes # Localisation des sauvegardes
[Suresnes](/infrastructures/machines/support/#suresnes-mercure) - À Suresnes, nous avons une instance Minio [Suresnes](@/infrastructures/support.md#suresnes-mercure) - À Suresnes, nous avons une instance Minio
dédiée aux sauvegardes de données. Elle reçoit les sauvegardes du système de fichier, de consul et de Postgres. dédiée aux sauvegardes de données. Elle reçoit les sauvegardes du système de fichier, de consul et de Postgres.
[Rennes 2](/infrastructures/machines/support/#rennes-2-jupiter) - À Rennes, nous avons un simple serveur Debian [Rennes 2](@/infrastructures/support.md#rennes-jupiter) - À Rennes, nous avons un simple serveur Debian
avec une partition en BTRFS. Il se charge de sauvegarder toutes les nuits le contenu de notre instance de production de Garage. avec une partition en BTRFS. Il se charge de sauvegarder toutes les nuits le contenu de notre instance de production de Garage.
À terme il est possible qu'on décide de rationaliser nos sauvegardes et de choisir À terme il est possible qu'on décide de rationaliser nos sauvegardes et de choisir
de sauvegarder S3. de sauvegarder S3.

11
content/operations/ssh.md Normal file
View file

@ -0,0 +1,11 @@
---
title: "SSH"
description: "SSH"
weight: 100
extra:
parent: 'operations/acces.md'
---
Voir si on documente comment gérer SSH depuis GPG
# Ajout de la clé au cluster

View file

@ -1,10 +1,12 @@
+++ ---
title = "Stolon" title: "Stolon"
description = "Comment déployer Stolon" description: "Comment déployer Stolon"
date = 2022-12-22 date: 2022-12-22
dateCreated = 2022-12-22 dateCreated: 2022-12-22
weight = 11 weight: 11
+++ extra:
parent: 'operations/deployer.md'
---
Spawn container: Spawn container:

View file

@ -0,0 +1,23 @@
---
title: "Supervision"
description: "Supervision"
weight: 58
sort_by: "weight"
extra:
parent: 'operations/_index.md'
---
# Métriques
Grafana est accessible à l'adresse suivante : https://grafana.deuxfleurs.fr
Vous pouvez obtenir le mot de passe admin en allant le chercher dans consul KV
# Journaux
Les journaux ne sont pas centralisés aujourd'hui.
Vous pouvez les consulter avec `docker logs`, `nomad` et `journalctl`.
# Alertes
Nous n'avons pas de système d'alerte aujourd'hui.

View file

@ -1,12 +0,0 @@
+++
title = "Supervision"
description = "Supervision"
weight = 40
sort_by = "weight"
+++
# Métriques
# Journaux
# Alertes

View file

@ -1,9 +1,11 @@
+++ ---
title = "Vue d'ensemble" title: "Vue d'ensemble"
description = "Vue d'ensemble" description: "Vue d'ensemble"
sort_by = "weight" sort_by: "weight"
weight = 2 weight: 0
+++ extra:
parent: 'operations/_index.md'
---
*Ajouter un schéma* *Ajouter un schéma*

View file

@ -1,9 +1,11 @@
+++ ---
title = "Prise en main" title: "Prise en main"
description = "Prise en main" description: "Prise en main"
weight = 10 weight: 10
sort_by = "weight" sort_by: "weight"
+++ extra:
parent: 'prise_en_main/_index.md'
---
Ce manuel vous accompagne dans la découverte de nos outils. Ce manuel vous accompagne dans la découverte de nos outils.
Pour vous aider à vous y retrouver, nous vous proposons 3 cas d'usages typiques : rester en contact avec ses proches, organiser une réunion, Pour vous aider à vous y retrouver, nous vous proposons 3 cas d'usages typiques : rester en contact avec ses proches, organiser une réunion,
@ -60,7 +62,7 @@ Je veux créer un site web qui soit référencé dans les moteurs de recherche,
un espace où je puisse gérer finement mon contenu, et vers lequel je peux un espace où je puisse gérer finement mon contenu, et vers lequel je peux
envoyer des gens s'y référer envoyer des gens s'y référer
[↣ Apprendre à créer un site web](@/prise_en_main/web/_index.md) [↣ Apprendre à créer un site web](@/prise_en_main/web.md)
# URL des services # URL des services

View file

@ -1,20 +1,25 @@
+++ ---
title = "Avec un générateur" title: Avec un générateur
description = "Créer du contenu avec un générateur" description: Créer du contenu avec un générateur
sort_by = "weight" sort_by: weight
date = 2022-09-01 weight: 2
weight = 2 draft: false
+++ date: 2022-09-01
extra:
Si vous souhaitez par exemple écrire un blog, vous allez probablement avoir une page par post. À la longue, on peut sans problème arriver à des dizaines de pages... Si on les écrit à la main, il va falloir copier/coller une bonne partie du code HTML, mais pas tout. Pour éviter ce travail rébarbatif, il existe ce qu'on appelle des générateurs de sites statiques. Ils vous permettent d'écrire dans une syntaxe très simple (Markdown) vos contenus, sans vous soucier du HTML ou du CSS, car ils emballeront eux-mêmes vos écrits dans des modèles prévus à cet effet. [Le guide que vous êtes en train de lire en ce moment même utilise un tel outil !](https://git.deuxfleurs.fr/Deuxfleurs/guide.deuxfleurs.fr) parent: prise_en_main/creer-du-contenu.md
---
Si vous souhaitez vous créer un blog, vous allez probablement avoir un site web avec de nombreuses pages : au moins une par billet que vous allez composer ! À la longue, on peut sans problème arriver à des dizaines de pages... Si on les écrit à la main, il va falloir copier/coller une bonne partie du code HTML, mais pas tout. Pour éviter ce travail rébarbatif, il existe ce qu'on appelle des générateurs de sites statiques. Ils vous permettent d'écrire dans une syntaxe très simple (Markdown) vos contenus, sans vous soucier du HTML ou du CSS, car ils emballeront eux-mêmes vos écrits dans des modèles prévus à cet effet. [Le guide que vous êtes en train de lire en ce moment même utilise un tel outil !](https://git.deuxfleurs.fr/Deuxfleurs/guide.deuxfleurs.fr)
### Choisir un générateur et un thème ### Choisir un générateur et un thème
Il existe de nombreux générateurs de sites statiques. On peut citer [Hugo](https://gohugo.io/), [Jekyll](https://jekyllrb.com/), [Zola](https://www.getzola.org/), et bien d'autres... En général, ils se ressemblent beaucoup. À titre indicatif, pour ce guide, nous utilisons Zola. Nous baserons nos exemples sur lui. Si votre système d'exploitation est Linux, cherchez dans votre gestionnaire de paquet si vous trouvez l'un d'entre eux. Zola est ainsi facilement installable sur Arch, Ubuntu, et Fedora. Il existe de nombreux générateurs de sites statiques. On peut citer [Hugo](https://gohugo.io/), [Jekyll](https://jekyllrb.com/), [Zola](https://www.getzola.org/), et bien d'autres... En général, ils se ressemblent beaucoup. À titre indicatif, pour ce guide, nous utilisons Zola. Nous baserons nos exemples sur lui. Si votre système d'exploitation est Linux, cherchez dans votre gestionnaire de paquet si vous trouvez l'un d'entre eux. Zola est ainsi facilement installable sur Arch, Ubuntu, et Fedora.
Une fois un générateur de site statique installé, rendez-vous sur le site officiel de celui-ci pour choisir un thème. Chez Zola, il faut aller [ici](https://www.getzola.org/themes/). Si vous cliquez sur l'un d'entre eux, vous aurez des instructions sur comment l'installer. Il s'agit souvent de télécharger le thème dans le dossier correspondant à votre site, et de modifier le fichier `config.toml`, nécessaire pour Zola, afin de sélectionner le thème. Une fois un générateur de site statique installé, rendez-vous sur le site officiel de celui-ci pour choisir un thème. Chez Zola, il faut aller [sur leur galerie](https://www.getzola.org/themes/). Si vous cliquez sur l'un d'entre eux, vous aurez des instructions sur comment l'installer. Il s'agit souvent de télécharger le thème dans le dossier correspondant à votre site, et de modifier le fichier `config.toml`, nécessaire pour Zola, afin de sélectionner le thème.
### Décrire le contenu ### Décrire le contenu
Pour écrire le contenu de vos pages, ou de vos billets de blog par exemple, il vous faudra utiliser la syntaxe Markdown. Rassurez-vous, elle a été pensée pour être très simple et peut-être apprise en quelques minutes. Voici un exemple : Pour écrire le contenu de vos pages, ou de vos billets de blog par exemple, il vous faudra utiliser la syntaxe Markdown. Rassurez-vous, elle a été pensée pour être très simple et peut-être apprise en quelques minutes. Voici un exemple :
``` ```
# Ceci est le titre principal # Ceci est le titre principal
## Ceci est un sous-titre ## Ceci est un sous-titre
@ -27,22 +32,26 @@ Voici du texte pour introduire la liste à puce qui va suivre :
* second élément de la liste * second élément de la liste
* troisième élément de la liste * troisième élément de la liste
``` ```
Quand on écrit du texte sans mettre quoi que ce soit autour ou avant, cela deviendra du texte tout à fait normal. On peut mettre un ou plusieurs dièses au début de la ligne pour en faire un titre. On peut mettre du texte en italique ou en gras avec des astérisques. Un astérisque en début de ligne provoque une liste à puces. Bref, cette syntaxe n'est pas compliquée, et vous pouvez facilement trouver plein de tutoriels en ligne pour la connaître. [Framasoft, par exemple, propose un bon guide](https://docs.framasoft.org/fr/grav/markdown.html). Quand on écrit du texte sans mettre quoi que ce soit autour ou avant, cela deviendra du texte tout à fait normal. On peut mettre un ou plusieurs dièses au début de la ligne pour en faire un titre. On peut mettre du texte en italique ou en gras avec des astérisques. Un astérisque en début de ligne provoque une liste à puces. Bref, cette syntaxe n'est pas compliquée, et vous pouvez facilement trouver plein de tutoriels en ligne pour la connaître. [Framasoft, par exemple, propose un bon guide](https://docs.framasoft.org/fr/grav/markdown.html).
Une fois votre fichier écrit, enregistrez-le avec l'extension `.md`, par exemple sous le nom `recette-tartre-au-citron.md`. L'idée est qu'à chaque page de votre site correspond un fichier `.md`, et ceux-ci seront regroupés dans un dossier. Vous trouverez [ici](https://git.deuxfleurs.fr/Deuxfleurs/guide.deuxfleurs.fr/src/branch/main/content) les fichiers Markdown écrits pour faire ce guide. Une fois votre fichier écrit, enregistrez-le avec l'extension `.md`, par exemple sous le nom `recette-tartre-au-citron.md`. L'idée est qu'à chaque page de votre site correspond un fichier `.md`, et ceux-ci seront regroupés dans un dossier. Vous trouverez [dans notre forge](https://git.deuxfleurs.fr/Deuxfleurs/guide.deuxfleurs.fr/src/branch/main/content) les fichiers Markdown écrits pour faire ce guide.
Cependant, il reste juste une petite chose à faire lorsque vous avez fini votre texte : écrire l'en-tête au dessus du markdown, qui donnera au générateur des informations importantes sur ce contenu. On encadre cet en-têtre avec trois signes plus. Voici un exemple basé sur cette page : Cependant, il reste juste une petite chose à faire lorsque vous avez fini votre texte : écrire l'en-tête au dessus du markdown, qui donnera au générateur des informations importantes sur ce contenu. On encadre cet en-têtre avec trois signes plus. Voici un exemple basé sur cette page :
``` ```
+++ ---
title = "Avec un générateur" title: "Avec un générateur"
description = "Créer du contenu avec un générateur" description: "Créer du contenu avec un générateur"
date = 2022-09-01 date: 2022-09-01
+++ ---
# Titre # Titre
Texte de la page... Texte de la page...
``` ```
Comme vous l'avez peut-être compris, il s'agit de donner le titre de cette page, sa description, et sa date d'écriture. D'autres informations peuvent être rajoutées, cela dépend du générateur et du thème sélectionnés. Comme vous l'avez peut-être compris, il s'agit de donner le titre de cette page, sa description, et sa date d'écriture. D'autres informations peuvent être rajoutées, cela dépend du générateur et du thème sélectionnés.
### Générer les pages ### Générer les pages
Vous avez donc des fichiers `.md` renfermant vos contenus, et un thème qui vous plaît. Avec un terminal, positionnez-vous dans le dossier racine de votre site projet. Si vous utilisez Zola, celui-ci devrait contenir un fichier `config.toml`, vous pouvez alors faire `zola build`. Cela va générer l'intégralité de votre site dans le dossier `public/`. Vous constaterez donc qu'il sera rempli de fichiers `.html` et `.css`, [vous êtes alors prêt(e) à passer à la publication](../../publier-le-contenu/) !
Vous avez donc des fichiers `.md` renfermant vos contenus, et un thème qui vous plaît. Avec un terminal, positionnez-vous dans le dossier racine de votre site projet. Si vous utilisez Zola, celui-ci devrait contenir un fichier `config.toml`, vous pouvez alors faire `zola build`. Cela va générer l'intégralité de votre site dans le dossier `public/`. Vous constaterez donc qu'il sera rempli de fichiers `.html` et `.css`, [vous êtes alors prêt(e) à passer à la publication](@/prise_en_main/publier-le-contenu.md) !

Some files were not shown because too many files have changed in this diff Show more