diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..36af455 --- /dev/null +++ b/.drone.yml @@ -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/ diff --git a/content/_index.md b/content/_index.md index a28e9cb..5b655d0 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,23 +1,23 @@ -+++ -title = "Guide Deuxfleurs" -sort_by = "weight" -+++ - - +--- +title: Guide Deuxfleurs +sort_by: weight +--- # 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 +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. -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). diff --git a/content/formations/_index.md b/content/formations/_index.md index 6b68746..fe473bc 100644 --- a/content/formations/_index.md +++ b/content/formations/_index.md @@ -1,9 +1,11 @@ -+++ -title = "Se former" -description = "Se former" -weight = 30 -sort_by = "weight" -+++ +--- +title: "Se former" +description: "Se former" +weight: 30 +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. diff --git a/content/formations/mediatheque/articles.md b/content/formations/articles.md similarity index 97% rename from content/formations/mediatheque/articles.md rename to content/formations/articles.md index a6968d5..d31b38a 100644 --- a/content/formations/mediatheque/articles.md +++ b/content/formations/articles.md @@ -1,8 +1,10 @@ -+++ -title = "Articles" -description = "Articles" -weight = 20 -+++ +--- +title: "Articles" +description: "Articles" +weight: 20 +extra: + parent: 'formations/mediatheque.md' +--- ![Capture d'écran de l'article Big Other: Surveillance capitalism](/img/cover/zuboff.png) diff --git a/content/formations/conf/capitalisme_surveillance.md b/content/formations/capitalisme_surveillance.md similarity index 98% rename from content/formations/conf/capitalisme_surveillance.md rename to content/formations/capitalisme_surveillance.md index 65bead2..d70c0a1 100644 --- a/content/formations/conf/capitalisme_surveillance.md +++ b/content/formations/capitalisme_surveillance.md @@ -1,8 +1,10 @@ -+++ -title = "Atelier capitalisme de surveillance" -description = "Atelier capitalisme de surveillance" -weight = 40 -+++ +--- +title: "Atelier capitalisme de surveillance" +description: "Atelier capitalisme de surveillance" +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 organisée par Attac dans la région de Tarare le 18 juin 2022.* diff --git a/content/formations/capitole-du-libre-2022.md b/content/formations/capitole-du-libre-2022.md new file mode 100644 index 0000000..4f6d594 --- /dev/null +++ b/content/formations/capitole-du-libre-2022.md @@ -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/) diff --git a/content/formations/channel.md b/content/formations/channel.md new file mode 100644 index 0000000..a8ec0a6 --- /dev/null +++ b/content/formations/channel.md @@ -0,0 +1,7 @@ +--- +title: "Channel" +description: "Channel et cache" +weight: 60 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/sysadmin/chiffrement_froid.md b/content/formations/chiffrement_froid.md similarity index 91% rename from content/formations/sysadmin/chiffrement_froid.md rename to content/formations/chiffrement_froid.md index 0ef2a58..5e6f58e 100644 --- a/content/formations/sysadmin/chiffrement_froid.md +++ b/content/formations/chiffrement_froid.md @@ -1,12 +1,14 @@ -+++ -title = "Chiffrement à froid" -description = "Guide à l'installation d'une machine en chiffrant intégralement son disque dur" -weight = 30 -date = 2022-01-30T20:43:56.953Z -dateCreated = 2021-12-29T15:29:02.943Z -+++ +--- +title: "Chiffrement à froid" +description: "Guide à l'installation d'une machine en chiffrant intégralement son disque dur" +weight: 30 +date: 2022-01-30T20:43:56.953Z +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). diff --git a/content/formations/cli.md b/content/formations/cli.md new file mode 100644 index 0000000..fdc9bd0 --- /dev/null +++ b/content/formations/cli.md @@ -0,0 +1,13 @@ +--- +title: "CLI" +description: "Les outils en CLI" +weight: 55 +extra: + parent: 'formations/nix.md' +--- + +# nix-shell + +# nix repl + +# etc. diff --git a/content/formations/conf.md b/content/formations/conf.md new file mode 100644 index 0000000..e9c18e5 --- /dev/null +++ b/content/formations/conf.md @@ -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. diff --git a/content/formations/conf/_index.md b/content/formations/conf/_index.md deleted file mode 100644 index 7a2cf60..0000000 --- a/content/formations/conf/_index.md +++ /dev/null @@ -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. diff --git a/content/formations/derivation.md b/content/formations/derivation.md new file mode 100644 index 0000000..1ed3a1c --- /dev/null +++ b/content/formations/derivation.md @@ -0,0 +1,7 @@ +--- +title: "Dérivation" +description: "Dérivation" +weight: 10 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/conf/ecologie.md b/content/formations/ecologie.md similarity index 98% rename from content/formations/conf/ecologie.md rename to content/formations/ecologie.md index 5068888..d917b28 100644 --- a/content/formations/conf/ecologie.md +++ b/content/formations/ecologie.md @@ -1,8 +1,10 @@ -+++ -title = "Écologie" -description = "Écologie : comment tenir un discours pertinent en tant qu'hébergeur" -weight = 31 -+++ +--- +title: "Écologie" +description: "Écologie : comment tenir un discours pertinent en tant qu'hébergeur" +weight: 31 +extra: + parent: 'formations/conf.md' +--- **Animateur :** Quentin de Deuxfleurs **Prise de note :** Margaux du Cloud de Girofle diff --git a/content/formations/conf/education-populaire.md b/content/formations/education-populaire.md similarity index 98% rename from content/formations/conf/education-populaire.md rename to content/formations/education-populaire.md index 7e06d4a..994610f 100644 --- a/content/formations/conf/education-populaire.md +++ b/content/formations/education-populaire.md @@ -1,8 +1,10 @@ -+++ -title = "Éducation populaire" -description = "Éducation populaire chez les CHATONS" -weight = 30 -+++ +--- +title: "Éducation populaire" +description: "Éducation populaire chez les CHATONS" +weight: 30 +extra: + parent: 'formations/conf.md' +--- **Animateurs :** Quentin de Deuxfleurs **Prise de notes :** røseløve·de Attac et neil de 42l/La Contre Voie diff --git a/content/formations/conf/emancipasso.md b/content/formations/emancipasso.md similarity index 94% rename from content/formations/conf/emancipasso.md rename to content/formations/emancipasso.md index e4ffffd..9a394d8 100644 --- a/content/formations/conf/emancipasso.md +++ b/content/formations/emancipasso.md @@ -1,8 +1,10 @@ -+++ -title = "Émancip'Asso" -description = "Émancip'Asso, la formation à destination des hébergeurs pour comprendre le milieu associatif" -weight = 32 -+++ +--- +title: "Émancip'Asso" +description: "Émancip'Asso, la formation à destination des hébergeurs pour comprendre le milieu associatif" +weight: 32 +extra: + parent: 'formations/conf.md' +--- **Animatrice :** Angie de Framasoft et Anne-Laure d'Animafac **Prise de note :** ?? diff --git a/content/formations/flake.md b/content/formations/flake.md new file mode 100644 index 0000000..d15d138 --- /dev/null +++ b/content/formations/flake.md @@ -0,0 +1,7 @@ +--- +title: "Flakes" +description: "Flakes" +weight: 70 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/home_manager.md b/content/formations/home_manager.md new file mode 100644 index 0000000..5e60184 --- /dev/null +++ b/content/formations/home_manager.md @@ -0,0 +1,7 @@ +--- +title: "Home Manager" +description: "Home Manager" +weight: 80 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/sysadmin/installer_linux.md b/content/formations/installer_linux.md similarity index 93% rename from content/formations/sysadmin/installer_linux.md rename to content/formations/installer_linux.md index 21dfa61..de1fd7e 100644 --- a/content/formations/sysadmin/installer_linux.md +++ b/content/formations/installer_linux.md @@ -1,10 +1,12 @@ -+++ -title = "Installer Linux" -weight = 10 -description = "Installer Linux" -date = 2021-12-30T15:23:52.320Z -dateCreated = 2021-12-30T15:23:50.137Z -+++ +--- +title: "Installer Linux" +weight: 10 +description: "Installer Linux" +date: 2021-12-30T15:23:52.320Z +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. diff --git a/content/formations/jdll-2023.md b/content/formations/jdll-2023.md new file mode 100644 index 0000000..a45143e --- /dev/null +++ b/content/formations/jdll-2023.md @@ -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) diff --git a/content/formations/conf/libre-europe.md b/content/formations/libre-europe.md similarity index 98% rename from content/formations/conf/libre-europe.md rename to content/formations/libre-europe.md index 8f3d99b..568827d 100644 --- a/content/formations/conf/libre-europe.md +++ b/content/formations/libre-europe.md @@ -1,8 +1,10 @@ -+++ -title = "Le libre en Europe" -description = "Le libre en Europe (libre hoster, hackmeeting, assos)" -weight = 10 -+++ +--- +title: "Le libre en Europe" +description: "Le libre en Europe (libre hoster, hackmeeting, assos)" +weight: 10 +extra: + parent: 'formations/conf.md' +--- **Animatrice :** Florence de MarsNet **Prise de note :** Florence de MarsNet, Stéphane de Hadoly diff --git a/content/formations/mediatheque/livres.md b/content/formations/livres.md similarity index 86% rename from content/formations/mediatheque/livres.md rename to content/formations/livres.md index d1ff65e..f6da7cb 100644 --- a/content/formations/mediatheque/livres.md +++ b/content/formations/livres.md @@ -1,8 +1,10 @@ -+++ -title = "Livres" -description = "Livres" -weight = 10 -+++ +--- +title: "Livres" +description: "Livres" +weight: 10 +extra: + parent: 'formations/mediatheque.md' +--- 🇫🇷 **Ivan Illich, « La convivialité », 1973, Éditions du Seuil.** @@ -91,3 +93,18 @@ Un autre régime s’est 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 ?* [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 s’enchaî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 : l’infrastructure électrique. Le rapport immédiat aux objets connectés (smartphone, ordinateur) invisibilise le continuum infernal d’infrastructures 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) diff --git a/content/formations/mediatheque/_index.md b/content/formations/mediatheque.md similarity index 84% rename from content/formations/mediatheque/_index.md rename to content/formations/mediatheque.md index 205dfec..c704e6e 100644 --- a/content/formations/mediatheque/_index.md +++ b/content/formations/mediatheque.md @@ -1,9 +1,11 @@ -+++ -title = "Médiathèque critique" -description = "Médiathèque critique" -weight = 20 -sort_by = "weight" -+++ +--- +title: "Médiathèque critique" +description: "Médiathèque critique" +weight: 20 +sort_by: "weight" +extra: + parent: 'formations/_index.md' +--- # Des livres @@ -13,18 +15,21 @@ sort_by = "weight" ![Couverture de technologie partout démocratie nulle part #](/img/cover/techno-partout.jpg) ![Couverture de Cyberstructure #](/img/cover/cyberstructure.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 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 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 ![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 diff --git a/content/formations/modules.md b/content/formations/modules.md new file mode 100644 index 0000000..73fa3eb --- /dev/null +++ b/content/formations/modules.md @@ -0,0 +1,7 @@ +--- +title: "Modules" +description: "Les modules de NixOS" +weight: 50 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/nix/_index.md b/content/formations/nix.md similarity index 59% rename from content/formations/nix/_index.md rename to content/formations/nix.md index 7134d61..b131a30 100644 --- a/content/formations/nix/_index.md +++ b/content/formations/nix.md @@ -1,9 +1,11 @@ -+++ -title = "Écosystème Nix" -description = "L'écosysème Nix : nixlang, nixpkgs, nixos, flakes, etc." -sort_by = "weight" -weight = 60 -+++ +--- +title: "Écosystème Nix" +description: "L'écosysème Nix : nixlang, nixpkgs, nixos, flakes, etc." +sort_by: "weight" +weight: 60 +extra: + parent: 'formations/_index.md' +--- # Apprendre diff --git a/content/formations/nix/channel.md b/content/formations/nix/channel.md deleted file mode 100644 index d5390b6..0000000 --- a/content/formations/nix/channel.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Channel" -description = "Channel et cache" -weight = 60 -+++ diff --git a/content/formations/nix/cli.md b/content/formations/nix/cli.md deleted file mode 100644 index 1c51cdf..0000000 --- a/content/formations/nix/cli.md +++ /dev/null @@ -1,11 +0,0 @@ -+++ -title = "CLI" -description = "Les outils en CLI" -weight = 55 -+++ - -# nix-shell - -# nix repl - -# etc. diff --git a/content/formations/nix/derivation.md b/content/formations/nix/derivation.md deleted file mode 100644 index b178793..0000000 --- a/content/formations/nix/derivation.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Dérivation" -description = "Dérivation" -weight = 10 -+++ diff --git a/content/formations/nix/flake.md b/content/formations/nix/flake.md deleted file mode 100644 index 669f4c1..0000000 --- a/content/formations/nix/flake.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Flakes" -description = "Flakes" -weight = 70 -+++ diff --git a/content/formations/nix/home_manager.md b/content/formations/nix/home_manager.md deleted file mode 100644 index 1cc6662..0000000 --- a/content/formations/nix/home_manager.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Home Manager" -description = "Home Manager" -weight = 80 -+++ diff --git a/content/formations/nix/modules.md b/content/formations/nix/modules.md deleted file mode 100644 index cba12bd..0000000 --- a/content/formations/nix/modules.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Modules" -description = "Les modules de NixOS" -weight = 50 -+++ diff --git a/content/formations/nix/nixlang.md b/content/formations/nix/nixlang.md deleted file mode 100644 index 415f73a..0000000 --- a/content/formations/nix/nixlang.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Langage" -description = "Le langage Nix" -weight = 20 -+++ diff --git a/content/formations/nix/nixpkgs.md b/content/formations/nix/nixpkgs.md deleted file mode 100644 index 641033c..0000000 --- a/content/formations/nix/nixpkgs.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Dépôt officiel" -description = "Le dépôt officiel nixpkgs" -weight = 40 -+++ diff --git a/content/formations/nix/nixstd.md b/content/formations/nix/nixstd.md deleted file mode 100644 index b6f83e3..0000000 --- a/content/formations/nix/nixstd.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = "Bibliothèque standard" -description = "La bibliothèque standard de Nix" -weight = 30 -+++ diff --git a/content/formations/nixlang.md b/content/formations/nixlang.md new file mode 100644 index 0000000..88c8306 --- /dev/null +++ b/content/formations/nixlang.md @@ -0,0 +1,7 @@ +--- +title: "Langage" +description: "Le langage Nix" +weight: 20 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/nixpkgs.md b/content/formations/nixpkgs.md new file mode 100644 index 0000000..411324a --- /dev/null +++ b/content/formations/nixpkgs.md @@ -0,0 +1,7 @@ +--- +title: "Dépôt officiel" +description: "Le dépôt officiel nixpkgs" +weight: 40 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/nixstd.md b/content/formations/nixstd.md new file mode 100644 index 0000000..79676f9 --- /dev/null +++ b/content/formations/nixstd.md @@ -0,0 +1,7 @@ +--- +title: "Bibliothèque standard" +description: "La bibliothèque standard de Nix" +weight: 30 +extra: + parent: 'formations/nix.md' +--- diff --git a/content/formations/sysadmin/partitionnement.md b/content/formations/partitionnement.md similarity index 96% rename from content/formations/sysadmin/partitionnement.md rename to content/formations/partitionnement.md index c83d433..384b125 100644 --- a/content/formations/sysadmin/partitionnement.md +++ b/content/formations/partitionnement.md @@ -1,16 +1,18 @@ -+++ -title = "Partitionnement" -description = "Redondance, partitionnement, chiffrement : comment configurer ses disques durs en vue d'une installation de serveur" -weight = 20 -date = 2022-04-02T13:38:01.527Z -dateCreated = 2021-12-30T11:39:09.554Z -+++ +--- +title: "Partitionnement" +description: "Redondance, partitionnement, chiffrement : comment configurer ses disques durs en vue d'une installation de serveur" +weight: 20 +date: 2022-04-02T13:38:01.527Z +dateCreated: 2021-12-30T11:39:09.554Z +extra: + parent: 'formations/sysadmin.md' +--- # 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 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 @@ -18,7 +20,7 @@ Pour configurer les disques, il faut y avoir accès, comme s'ils étaient des di 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*. - 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. @@ -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. 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. - 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**. 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). * 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. - * 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. 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. -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 ! --- diff --git a/content/formations/primevère-2023.md b/content/formations/primevère-2023.md new file mode 100644 index 0000000..335ce5d --- /dev/null +++ b/content/formations/primevère-2023.md @@ -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) diff --git a/content/formations/conf/sauvegardes-cooperatives.md b/content/formations/sauvegardes-cooperatives.md similarity index 97% rename from content/formations/conf/sauvegardes-cooperatives.md rename to content/formations/sauvegardes-cooperatives.md index e7f885f..6a2da6d 100644 --- a/content/formations/conf/sauvegardes-cooperatives.md +++ b/content/formations/sauvegardes-cooperatives.md @@ -1,8 +1,10 @@ -+++ -title = "Sauvegardes coopératives" -description = "Sauvegardes coopératives entre CHATONS" -weight = 10 -+++ +--- +title: "Sauvegardes coopératives" +description: "Sauvegardes coopératives entre CHATONS" +weight: 10 +extra: + parent: 'formations/conf.md' +--- **Animateurs :** Équipe Picasoft **Prise de note, compte-rendu :** Quentin de Deuxfleurs diff --git a/content/formations/sysadmin/_index.md b/content/formations/sysadmin.md similarity index 98% rename from content/formations/sysadmin/_index.md rename to content/formations/sysadmin.md index 2a397c1..296bfc1 100644 --- a/content/formations/sysadmin/_index.md +++ b/content/formations/sysadmin.md @@ -1,9 +1,11 @@ -+++ -title = "Administration Système" -description = "Administration Système" -sort_by = "weight" -weight = 50 -+++ +--- +title: "Administration Système" +description: "Administration Système" +sort_by: "weight" +weight: 50 +extra: + parent: 'formations/_index.md' +--- 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. diff --git a/content/infrastructures/_index.md b/content/infrastructures/_index.md index 508da81..43b50d2 100644 --- a/content/infrastructures/_index.md +++ b/content/infrastructures/_index.md @@ -1,8 +1,10 @@ -+++ -title = "Infrastructures" -description = "Infrastructures" -weight = 90 -+++ +--- +title: "Infrastructures" +description: "Infrastructures" +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. diff --git a/content/infrastructures/logiciels/bottin.md b/content/infrastructures/bottin.md similarity index 73% rename from content/infrastructures/logiciels/bottin.md rename to content/infrastructures/bottin.md index 71dc8b9..e8dd8e0 100644 --- a/content/infrastructures/logiciels/bottin.md +++ b/content/infrastructures/bottin.md @@ -1,10 +1,12 @@ -+++ -title = "Bottin" -description = "" -date = 2021-11-09T12:40:01.746Z -dateCreated = 2021-11-09T12:39:59.725Z -weight = 10 -+++ +--- +title: "Bottin" +description: "Un annuaire LDAP pour le distribué" +date: 2021-11-09T12:40:01.746Z +dateCreated: 2021-11-09T12:39:59.725Z +weight: 10 +extra: + parent: 'infrastructures/logiciels.md' +--- # Bottin diff --git a/content/infrastructures/machines/developpement.md b/content/infrastructures/developpement.md similarity index 58% rename from content/infrastructures/machines/developpement.md rename to content/infrastructures/developpement.md index 2d5193f..cfb1907 100644 --- a/content/infrastructures/machines/developpement.md +++ b/content/infrastructures/developpement.md @@ -1,8 +1,10 @@ -+++ -title = "Développement" -description = "Développement" -weight = 30 -+++ +--- +title: "Développement" +description: "Développement" +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 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) -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| Forge Gitea | VM | x1 | ? | -| Runner Drone | VM | x1 | 16 cœurs, 8Go RAM, 25Go + 25Go + 50Go| -| | | | `ssh 2a02:1811:3612:b300:e99c:c591:a17f:210` | +| Désignation | Rôle | Quantité | Détails | Refs | +| -- | -- | -- | -- | -- | +| Forge | VM | x1 | 16 cœurs, 8Go RAM, 25Go + 25Go + 50Go| `absinthe` | # 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) -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| Packard Bell EasyNote BG46 (2007) | Serveur | x1 | Intel T5750 @ 2.00Ghz (2 cœurs), 3Go RAM, HDD 500Go | -| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | +| 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 | `vimaire` | +| Freebox Mini 4k | Routeur | x1 | 4 ports @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | N/A | diff --git a/content/infrastructures/logiciels/diplonat.md b/content/infrastructures/diplonat.md similarity index 80% rename from content/infrastructures/logiciels/diplonat.md rename to content/infrastructures/diplonat.md index 8db6ab2..34a4fe7 100644 --- a/content/infrastructures/logiciels/diplonat.md +++ b/content/infrastructures/diplonat.md @@ -1,10 +1,12 @@ -+++ -title = "Diplonat" -description = "" -date = 2021-11-09T12:42:17.716Z -dateCreated = 2021-11-09T12:42:15.729Z -weight = 30 -+++ +--- +title: "Diplonat" +description: "" +date: 2021-11-09T12:42:17.716Z +dateCreated: 2021-11-09T12:42:15.729Z +weight: 30 +extra: + parent: 'infrastructures/logiciels.md' +--- # Diplonat diff --git a/content/infrastructures/energie.md b/content/infrastructures/energie.md index d98f331..2728825 100644 --- a/content/infrastructures/energie.md +++ b/content/infrastructures/energie.md @@ -1,9 +1,12 @@ -+++ -title = "Énergie" -description = "Consommation électrique" -date = 2021-11-09T12:54:33.129Z -dateCreated = 2021-11-09T12:54:30.985Z -+++ +--- +title: "Énergie" +description: "Consommation électrique" +date: 2021-11-09T12:54:33.129Z +dateCreated: 2021-11-09T12:54:30.985Z +weight: 20 +extra: + parent: 'infrastructures/_index.md' +--- # Notre avis diff --git a/content/infrastructures/logiciels/garage.md b/content/infrastructures/garage.md similarity index 92% rename from content/infrastructures/logiciels/garage.md rename to content/infrastructures/garage.md index 81d8e04..7f28eae 100644 --- a/content/infrastructures/logiciels/garage.md +++ b/content/infrastructures/garage.md @@ -1,10 +1,12 @@ -+++ -title = "Garage" -description = "" -date = 2021-11-09T12:42:59.273Z -dateCreated = 2021-11-09T12:42:57.245Z -weight = 40 -+++ +--- +title: "Garage" +description: "" +date: 2021-11-09T12:42:59.273Z +dateCreated: 2021-11-09T12:42:57.245Z +weight: 40 +extra: + parent: 'infrastructures/logiciels.md' +--- # Garage diff --git a/content/infrastructures/logiciels/guichet.md b/content/infrastructures/guichet.md similarity index 70% rename from content/infrastructures/logiciels/guichet.md rename to content/infrastructures/guichet.md index 6a1c17d..684f410 100644 --- a/content/infrastructures/logiciels/guichet.md +++ b/content/infrastructures/guichet.md @@ -1,10 +1,12 @@ -+++ -title = "Guichet" -description = "" -date = 2021-11-09T12:39:27.819Z -dateCreated = 2021-11-09T12:39:25.808Z -weight = 20 -+++ +--- +title: "Guichet" +description: "" +date: 2021-11-09T12:39:27.819Z +dateCreated: 2021-11-09T12:39:25.808Z +weight: 20 +extra: + parent: 'infrastructures/logiciels.md' +--- # Guichet diff --git a/content/infrastructures/logiciels/conception/vie_privee.md b/content/infrastructures/logiciels.md similarity index 94% rename from content/infrastructures/logiciels/conception/vie_privee.md rename to content/infrastructures/logiciels.md index 76520eb..f72013d 100644 --- a/content/infrastructures/logiciels/conception/vie_privee.md +++ b/content/infrastructures/logiciels.md @@ -1,15 +1,23 @@ -+++ -title = "Vie Privée" -description = "Comment mettre en oeuvre des systèmes prenant en compte la vie privée à leur origine ?" -date = 2021-11-18T13:57:51.695Z -dateCreated = 2021-11-18T10:42:00.744Z -+++ +--- +title: "Logiciels" +description: "Logiciels" +weight: 90 +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. -## Propriétés recherchées +### Propriétés recherchées 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 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 - 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) - Regroupement d'acteurs (eg. opérateurs internet, externe physique ET internet) - Utilisateurs (eg. pas de chiffrement sur son téléphone) - + ## 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 : @@ -83,4 +91,4 @@ Concernant la seconde approche, celle-ci semble beaucoup plus à notre portée : ## Ressources - https://about.psyc.eu/Federation et https://about.psyc.eu/PSYC2 - - Définition d'un mixnet : https://www.youtube.com/watch?v=dQtk0NcTseg \ No newline at end of file + - Définition d'un mixnet : https://www.youtube.com/watch?v=dQtk0NcTseg diff --git a/content/infrastructures/logiciels/_index.md b/content/infrastructures/logiciels/_index.md deleted file mode 100644 index f2e2528..0000000 --- a/content/infrastructures/logiciels/_index.md +++ /dev/null @@ -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. diff --git a/content/infrastructures/logiciels/conception/_index.md b/content/infrastructures/logiciels/conception/_index.md deleted file mode 100644 index 756e240..0000000 --- a/content/infrastructures/logiciels/conception/_index.md +++ /dev/null @@ -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. diff --git a/content/infrastructures/machines/_index.md b/content/infrastructures/machines.md similarity index 71% rename from content/infrastructures/machines/_index.md rename to content/infrastructures/machines.md index 84fc012..cf6e493 100644 --- a/content/infrastructures/machines/_index.md +++ b/content/infrastructures/machines.md @@ -1,29 +1,31 @@ -+++ -title = "Serveurs" -description = "Serveurs" -weight = 10 -sort_by = "weight" -+++ +--- +title: "Serveurs" +description: "Serveurs" +weight: 40 +sort_by: "weight" +extra: + parent: 'infrastructures/_index.md' +--- # Rôles 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. -[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 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. 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. -[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 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 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. diff --git a/content/infrastructures/machines/production.md b/content/infrastructures/production.md similarity index 66% rename from content/infrastructures/machines/production.md rename to content/infrastructures/production.md index 6f65752..d30c5ac 100644 --- a/content/infrastructures/machines/production.md +++ b/content/infrastructures/production.md @@ -1,8 +1,10 @@ -+++ -title = "Production" -description = "Production" -weight = 10 -+++ +--- +title: "Production" +description: "Production" +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). 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. D'autres services comme Garage sont répartis entre les grappes. -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| ThinkCentre M710q Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | -| | | | `ssh celeri.machine.deuxfleurs.fr` | -| ThinkCentre M73 Tiny | Serveur | x2 | 2 cœurs, 8Go RAM, HDD 500Go | -| | | | `ssh concombre.machine.deuxfleurs.fr` | -| | | | `ssh courgette.machine.deuxfleurs.fr` | -| 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 | +| Désignation | Rôle | Quantité | Détails | Refs| +| -- | -- | -- | -- | -- | +| ThinkCentre M710q Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | celeri | +| ThinkCentre M73 Tiny | Serveur | x2 | 2 cœurs, 8Go RAM, HDD 500Go | concombre, courgette | +| 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) @@ -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. D'autres services comme Garage sont répartis entre les grappes. -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 4Go RAM, SSD 500Go + HDD 500Go | -| | | | `ssh dahlia.machine.deuxfleurs.fr` | -| | | | `ssh doradille.machine.deuxfleurs.fr` | -| | | | `ssh diplotaxis.machine.deuxfleurs.fr` | -| Freebox | Routeur | x1 | N/A | +| Désignation | Rôle | Quantité | Détails | Refs | +| -- | -- | -- | -- | -- | +| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 4Go RAM, SSD 500Go + HDD 500Go | dahlia, doradille, diplotaxis | +| Freebox | Routeur | x1 | N/A | N/A | # 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. -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, SSD 500Go + HDD 500Go | -| | | | `ssh df-ymk.machine.deuxfleurs.fr` | -| | | | `ssh df-ymf.machine.deuxfleurs.fr` | -| | | | `ssh df-ykl.machine.deuxfleurs.fr` | +| Désignation | Rôle | Quantité | Détails | Refs | +| -- | -- | -- | -- | -- | +| ThinkCentre M710q Tiny | Serveur | x3 | 2 cœurs, 8Go RAM, SSD 500Go + HDD 500Go | df-ymk, df-ymf, df-ykl | +| N/A | Routeur | x1 | N/A | N/A | diff --git a/content/infrastructures/reseau.md b/content/infrastructures/reseau.md index 8ca43a4..3e38f6f 100644 --- a/content/infrastructures/reseau.md +++ b/content/infrastructures/reseau.md @@ -1,9 +1,12 @@ -+++ -title = "Réseau" -description = "Réseau" -date = 2021-11-09T12:55:03.277Z -dateCreated = 2021-11-09T12:55:01.156Z -+++ +--- +title: "Réseau" +description: "Réseau" +date: 2021-11-09T12:55:03.277Z +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". diff --git a/content/infrastructures/services.md b/content/infrastructures/services.md index c01178c..c868ade 100644 --- a/content/infrastructures/services.md +++ b/content/infrastructures/services.md @@ -1,7 +1,10 @@ -+++ -title = "Services" -description = "Annuaire des services hébergés chez Deuxfleurs" -+++ +--- +title: "Services" +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 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 | | SSH | sauvegarde | Mercure | Target de backups (Consul) | | [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 | | 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 | diff --git a/content/infrastructures/machines/support.md b/content/infrastructures/support.md similarity index 86% rename from content/infrastructures/machines/support.md rename to content/infrastructures/support.md index d816fae..7715481 100644 --- a/content/infrastructures/machines/support.md +++ b/content/infrastructures/support.md @@ -1,8 +1,10 @@ -+++ -title = "Support" -description = "Serveurs en support" -weight = 20 -+++ +--- +title: "Support" +description: "Serveurs en support" +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). 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. Il est en charge des sauvegardes de Garage. -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| Tour un peu vieille | Serveur | x1 | AMD Phenom II X4 955 @ 3.2 GHz (4 cœurs)
4Go RAM, SSD 250Go + HDD 2To | -| | | | `ssh io.machine.deuxfleurs.fr` | -| Freebox Mini 4k | Routeur | x1 | 4 ports ethernet @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | +| 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)
4Go RAM, SSD 250Go + HDD 2To | `io` | +| Freebox Mini 4k | Routeur | x1 | 4 ports ethernet @ 1Gbit/s, WAN Fibre 1 Gbit/s symétrique | N/A | diff --git a/content/infrastructures/logiciels/tricot.md b/content/infrastructures/tricot.md similarity index 78% rename from content/infrastructures/logiciels/tricot.md rename to content/infrastructures/tricot.md index dcb0007..0c83901 100644 --- a/content/infrastructures/logiciels/tricot.md +++ b/content/infrastructures/tricot.md @@ -1,10 +1,12 @@ -+++ -title = "Tricot" -description = "" -date = 2022-01-24T16:33:16.731Z -dateCreated = 2022-01-24T16:32:53.056Z -weight = 50 -+++ +--- +title: "Tricot" +description: "" +date: 2022-01-24T16:33:16.731Z +dateCreated: 2022-01-24T16:32:53.056Z +weight: 50 +extra: + parent: 'infrastructures/logiciels.md' +--- # Tricot diff --git a/content/infrastructures/machines/xp.md b/content/infrastructures/xp.md similarity index 69% rename from content/infrastructures/machines/xp.md rename to content/infrastructures/xp.md index 853e222..431624e 100644 --- a/content/infrastructures/machines/xp.md +++ b/content/infrastructures/xp.md @@ -1,8 +1,10 @@ -+++ -title = "Expérimentation" -description = "Expérimentation" -weight = 40 -+++ +--- +title: "Expérimentation" +description: "Expérimentation" +weight: 40 +extra: + parent: 'infrastructures/machines.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, @@ -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 de test de Garage. -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 8Go RAM, HDD 500Go | -| | | | `ssh caribou.machine.deuxfleurs.fr` | -| ThinkCentre M73 Tiny | Serveur | x2 | 4 cœurs, 8Go RAM, SSD 240Go | -| | | | `ssh carcajou.machine.deuxfleurs.fr` | -| | | | `ssh cariacou.machine.deuxfleurs.fr` | +| Désignation | Rôle | Quantité | Détails | Refs | +| -- | -- | -- | -- | -- | +| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 8Go RAM, HDD 500Go | caribou | +| ThinkCentre M73 Tiny | Serveur | x2 | 4 cœurs, 8Go RAM, SSD 240Go | carcajou, cariacou | # Rennes (Jupiter) Cluster staging (idem). -| Désignation | Rôle | Quantité | Détails | -| -- | -- | -- | -- | -| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | -| | | | `ssh origan.df.trinity.fr.eu.org` | +| Désignation | Rôle | Quantité | Détails | Refs | +| -- | -- | -- | -- | -- | +| ThinkCentre M73 Tiny | Serveur | x1 | 2 cœurs, 4Go RAM, HDD 500Go | origan | + +*Note : `origan` a un FQDN non standard : `origan.df.trinity.fr.eu.org`* diff --git a/content/operations/pannes/2020-01-20-changement-ip.md b/content/operations/2020-01-20-changement-ip.md similarity index 94% rename from content/operations/pannes/2020-01-20-changement-ip.md rename to content/operations/2020-01-20-changement-ip.md index c86eb85..9b6ce23 100644 --- a/content/operations/pannes/2020-01-20-changement-ip.md +++ b/content/operations/2020-01-20-changement-ip.md @@ -1,10 +1,12 @@ -+++ -title = "Janvier 2020" -description = "Janvier 2020: changement imprévu d'adresses IP" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 10 -+++ +--- +title: "Janvier 2020" +description: "Janvier 2020: changement imprévu d'adresses IP" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 10 +extra: + parent: 'operations/pannes.md' +--- Le 20 janvier free a changé mon IP, un peu comme partout en France. Ça concerne l'IPv4 et le préfixe IPv6. diff --git a/content/operations/pannes/2021-07-12-synapse-bdd-rempli-disque.md b/content/operations/2021-07-12-synapse-bdd-rempli-disque.md similarity index 79% rename from content/operations/pannes/2021-07-12-synapse-bdd-rempli-disque.md rename to content/operations/2021-07-12-synapse-bdd-rempli-disque.md index 17650fa..d907705 100644 --- a/content/operations/pannes/2021-07-12-synapse-bdd-rempli-disque.md +++ b/content/operations/2021-07-12-synapse-bdd-rempli-disque.md @@ -1,10 +1,12 @@ -+++ -title = "Juillet 2021" -description = "Juillet 2021: la BDD Synapse remplit nos disques" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 20 -+++ +--- +title: "Juillet 2021" +description: "Juillet 2021: la BDD Synapse remplit nos disques" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 20 +extra: + parent: 'operations/pannes.md' +--- # La BDD synapse rempli nos disques diff --git a/content/operations/pannes/2022-01-xx-glusterfs-corruption.md b/content/operations/2022-01-xx-glusterfs-corruption.md similarity index 89% rename from content/operations/pannes/2022-01-xx-glusterfs-corruption.md rename to content/operations/2022-01-xx-glusterfs-corruption.md index bbd94af..734b2d8 100644 --- a/content/operations/pannes/2022-01-xx-glusterfs-corruption.md +++ b/content/operations/2022-01-xx-glusterfs-corruption.md @@ -1,10 +1,12 @@ -+++ -title = "Janvier 2022" -description = "Janvier 2022: Corruptions GlusterFS" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 30 -+++ +--- +title: "Janvier 2022" +description: "Janvier 2022: Corruptions GlusterFS" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 30 +extra: + parent: 'operations/pannes.md' +--- # Corruption GlusterFS diff --git a/content/operations/2023-02-xx.md b/content/operations/2023-02-xx.md new file mode 100644 index 0000000..a612060 --- /dev/null +++ b/content/operations/2023-02-xx.md @@ -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) diff --git a/content/operations/deploiement/noeud/SSH_sans_écran.md b/content/operations/SSH_sans_écran.md similarity index 89% rename from content/operations/deploiement/noeud/SSH_sans_écran.md rename to content/operations/SSH_sans_écran.md index 41a19f7..610daae 100644 --- a/content/operations/deploiement/noeud/SSH_sans_écran.md +++ b/content/operations/SSH_sans_écran.md @@ -1,10 +1,12 @@ -+++ -title = "Installer NixOS en SSH" -description = "Installer NixOS en SSH sans écran ni clavier" -date = 2022-08-24 -dateCreated = 2021-08-24 -weight = 12 -+++ +--- +title: "Installer NixOS en SSH" +description: "Installer NixOS en SSH sans écran ni clavier" +date: 2022-08-24 +dateCreated: 2021-08-24 +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. Pré-requis : une clé USB, un ordi sous NixOS. @@ -48,4 +50,4 @@ Ensuite on se connecte dessus : ``` ssh root@192.168.1.X -``` \ No newline at end of file +``` diff --git a/content/operations/_index.md b/content/operations/_index.md index 7ab49f2..7f64bcd 100644 --- a/content/operations/_index.md +++ b/content/operations/_index.md @@ -1,9 +1,11 @@ -+++ -title = "Opérations" -description = "Opérations" -weight = 100 -sort_by = "weight" -+++ +--- +title: "Opérations" +description: "Opérations" +weight: 100 +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. diff --git a/content/operations/acces/_index.md b/content/operations/acces.md similarity index 58% rename from content/operations/acces/_index.md rename to content/operations/acces.md index 08824bc..4885e47 100644 --- a/content/operations/acces/_index.md +++ b/content/operations/acces.md @@ -1,8 +1,10 @@ -+++ -title = "Accès" -description = "Accès" -sort_by = "weight" -weight = 5 -+++ +--- +title: "Accès" +description: "Accès" +sort_by: "weight" +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/). \ No newline at end of file +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). diff --git a/content/operations/acces/ssh.md b/content/operations/acces/ssh.md deleted file mode 100644 index e053934..0000000 --- a/content/operations/acces/ssh.md +++ /dev/null @@ -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 diff --git a/content/operations/courantes.md b/content/operations/courantes.md new file mode 100644 index 0000000..d3da720 --- /dev/null +++ b/content/operations/courantes.md @@ -0,0 +1,8 @@ +--- +title: "Opérations courantes" +description: "Opérations courantes" +weight: 35 +sort_by: "weight" +extra: + parent: 'operations/_index.md' +--- diff --git a/content/operations/courantes/_index.md b/content/operations/courantes/_index.md deleted file mode 100644 index 1cf3b95..0000000 --- a/content/operations/courantes/_index.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Opérations courantes" -description = "Opérations courantes" -weight = 15 -sort_by = "weight" -+++ diff --git a/content/operations/courantes/email.md b/content/operations/courantes/email.md deleted file mode 100644 index d28608e..0000000 --- a/content/operations/courantes/email.md +++ /dev/null @@ -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. diff --git a/content/operations/deploiement/app/create_database.md b/content/operations/create_database.md similarity index 80% rename from content/operations/deploiement/app/create_database.md rename to content/operations/create_database.md index e5f8a72..5c46d63 100644 --- a/content/operations/deploiement/app/create_database.md +++ b/content/operations/create_database.md @@ -1,10 +1,12 @@ -+++ -title = "Créer une BDD" -description = "Création d'une base de données pour une nouvelle application" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 11 -+++ +--- +title: "Créer une BDD" +description: "Création d'une base de données pour une nouvelle application" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 11 +extra: + parent: 'operations/deployer.md' +--- ## 1. Create a LDAP user and assign a password for your service diff --git a/content/operations/debogage.md b/content/operations/debogage.md new file mode 100644 index 0000000..467a760 --- /dev/null +++ b/content/operations/debogage.md @@ -0,0 +1,9 @@ +--- +title: "Débogage" +description: "Débogage" +weight: 60 +sort_by: "weight" +extra: + parent: 'operations/_index.md' +--- + diff --git a/content/operations/debogage/_index.md b/content/operations/debogage/_index.md deleted file mode 100644 index 5afe881..0000000 --- a/content/operations/debogage/_index.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = "Débogage" -description = "Débogage" -weight = 60 -sort_by = "weight" -+++ - diff --git a/content/operations/deploiement/_index.md b/content/operations/deploiement/_index.md deleted file mode 100644 index 4986c67..0000000 --- a/content/operations/deploiement/_index.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = "Déploiement" -description = "Déploiement" -weight = 10 -sort_by = "weight" -+++ - diff --git a/content/operations/deploiement/app/_index.md b/content/operations/deployer.md similarity index 64% rename from content/operations/deploiement/app/_index.md rename to content/operations/deployer.md index 710e2e5..02ef0bd 100644 --- a/content/operations/deploiement/app/_index.md +++ b/content/operations/deployer.md @@ -1,10 +1,12 @@ -+++ -title = "Applications" -description = "Déploiement d'une application" -sort_by = "weight" -date = 2022-12-22 -weight = 30 -+++ +--- +title: "Déployer du logiciel" +description: "Déploiement du logiciel" +sort_by: "weight" +date: 2022-12-22 +weight: 30 +extra: + parent: 'operations/_index.md' +--- # Empaqueter diff --git a/content/operations/email.md b/content/operations/email.md new file mode 100644 index 0000000..d3b0fbe --- /dev/null +++ b/content/operations/email.md @@ -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=` | Enregistrement DKIM (voir ci-dessous) | +| `default._domainkey` | `TXT` | `v=DKIM1; p=` | 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 : + +**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: `._domainkey.` +- 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 : + +**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 : + +**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. +``` + + diff --git a/content/operations/deploiement/noeud/guide_création_nœud.md b/content/operations/guide_création_nœud.md similarity index 95% rename from content/operations/deploiement/noeud/guide_création_nœud.md rename to content/operations/guide_création_nœud.md index 907d4a8..4115aef 100644 --- a/content/operations/deploiement/noeud/guide_création_nœud.md +++ b/content/operations/guide_création_nœud.md @@ -1,10 +1,12 @@ -+++ -title = "Guide de création d'un nœud" -description = "Guide de création d'un nœud" -date = 2022-08-23 -dateCreated = 2022-08-23 -weight = 11 -+++ +--- +title: "Guide de création d'un nœud" +description: "Guide de création d'un nœud" +date: 2022-08-23 +dateCreated: 2022-08-23 +weight: 11 +extra: + parent: 'operations/noeud.md' +--- # 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). @@ -14,7 +16,7 @@ Configurons d'abord quelques paramètres dans l'UEFI de la machine. Démarrez-l ## 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. Alternativement, cela peut être l'occasion de créer une clé USB formatée avec [Ventoy](https://ventoy.net), un utilitaire très pratique diff --git a/content/operations/debogage/jitsi.md b/content/operations/jitsi.md similarity index 97% rename from content/operations/debogage/jitsi.md rename to content/operations/jitsi.md index 1ca45be..07bfcf9 100644 --- a/content/operations/debogage/jitsi.md +++ b/content/operations/jitsi.md @@ -1,10 +1,12 @@ -+++ -title = "Jitsi" -description = "" -date = 2021-11-09T12:53:23.811Z -dateCreated = 2021-11-09T12:46:50.731Z -weight = 20 -+++ +--- +title: "Jitsi" +description: "" +date: 2021-11-09T12:53:23.811Z +dateCreated: 2021-11-09T12:46:50.731Z +weight: 20 +extra: + parent: 'operations/debogage.md' +--- ## 2020-04-02 Campagne de debug Jitsi diff --git a/content/operations/maintien_en_condition.md b/content/operations/maintien_en_condition.md new file mode 100644 index 0000000..8a89a2b --- /dev/null +++ b/content/operations/maintien_en_condition.md @@ -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é diff --git a/content/operations/maintien_en_condition/_index.md b/content/operations/maintien_en_condition/_index.md deleted file mode 100644 index 73d8812..0000000 --- a/content/operations/maintien_en_condition/_index.md +++ /dev/null @@ -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é diff --git a/content/operations/maintien_en_condition/matrix.md b/content/operations/matrix.md similarity index 90% rename from content/operations/maintien_en_condition/matrix.md rename to content/operations/matrix.md index 534bfb8..bfcde55 100644 --- a/content/operations/maintien_en_condition/matrix.md +++ b/content/operations/matrix.md @@ -1,10 +1,12 @@ -+++ -title = "MàJ Matrix" -description = "Mise à jour de Matrix (Synapse/Element)" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 11 -+++ +--- +title: "MàJ Matrix" +description: "Mise à jour de Matrix (Synapse/Element)" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 11 +extra: + parent: 'operations/maintien_en_condition.md' +--- 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. 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 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: ``` diff --git a/content/operations/deploiement/grappe/_index.md b/content/operations/nixcfg.md similarity index 60% rename from content/operations/deploiement/grappe/_index.md rename to content/operations/nixcfg.md index 80de97d..921f635 100644 --- a/content/operations/deploiement/grappe/_index.md +++ b/content/operations/nixcfg.md @@ -1,10 +1,12 @@ -+++ -title = "Grappe" -description = "Grappe" -weight = 20 -date = 2022-12-22 -sort_by = "weight" -+++ +--- +title: "nixcfg" +description: "Le dépôt nixcfg" +weight: 20 +date: 2022-12-22 +sort_by: "weight" +extra: + parent: 'operations/noeud.md' +--- # Installation diff --git a/content/operations/deploiement/noeud/_index.md b/content/operations/noeud.md similarity index 50% rename from content/operations/deploiement/noeud/_index.md rename to content/operations/noeud.md index d44044a..31604d4 100644 --- a/content/operations/deploiement/noeud/_index.md +++ b/content/operations/noeud.md @@ -1,14 +1,16 @@ -+++ -title = "Noeud" -description = "Déploiement d'un noeud" -date = 2022-08-23 -dateCreated = 2021-08-23 -sort_by = "weight" -+++ +--- +title: "Installer un noeud" +description: "Déploiement d'un noeud" +date: 2022-08-23 +dateCreated: 2021-08-23 +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 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). diff --git a/content/operations/pannes.md b/content/operations/pannes.md new file mode 100644 index 0000000..dc8042c --- /dev/null +++ b/content/operations/pannes.md @@ -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 ! diff --git a/content/operations/pannes/_index.md b/content/operations/pannes/_index.md deleted file mode 100644 index 474558b..0000000 --- a/content/operations/pannes/_index.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Pannes" -description = "Pannes" -weight = 70 -sort_by = "weight" -+++ diff --git a/content/operations/acces/pass.md b/content/operations/pass.md similarity index 97% rename from content/operations/acces/pass.md rename to content/operations/pass.md index 357db2e..795da1f 100644 --- a/content/operations/acces/pass.md +++ b/content/operations/pass.md @@ -1,8 +1,10 @@ -+++ -title = "Le dépôt des secrets" -description = "Le dépôt des secrets" -weight = 10 -+++ +--- +title: "Le dépôt des secrets" +description: "Le dépôt des secrets" +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). diff --git a/content/operations/pannes/petits-incidents.md b/content/operations/petits-incidents.md similarity index 92% rename from content/operations/pannes/petits-incidents.md rename to content/operations/petits-incidents.md index 658757f..d14e91c 100644 --- a/content/operations/pannes/petits-incidents.md +++ b/content/operations/petits-incidents.md @@ -1,10 +1,12 @@ -+++ -title = "Petits incidents" -description = "Petits incidents" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 1000 -+++ +--- +title: "Petits incidents" +description: "Petits incidents" +date: 2022-12-22 +dateCreated: 2022-12-22 +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é diff --git a/content/operations/sauvegardes/pg_basebackup.md b/content/operations/pg_basebackup.md similarity index 99% rename from content/operations/sauvegardes/pg_basebackup.md rename to content/operations/pg_basebackup.md index 357e11f..f680108 100644 --- a/content/operations/sauvegardes/pg_basebackup.md +++ b/content/operations/pg_basebackup.md @@ -1,8 +1,10 @@ -+++ -title = "pg_basebackup" -description = "pg_basebackup" -weight=15 -+++ +--- +title: "pg_basebackup" +description: "pg_basebackup" +weight: 15 +extra: + parent: 'operations/sauvegardes.md' +--- ## Disclaimer diff --git a/content/operations/debogage/plume.md b/content/operations/plume.md similarity index 82% rename from content/operations/debogage/plume.md rename to content/operations/plume.md index c256a45..8b8aa2a 100644 --- a/content/operations/debogage/plume.md +++ b/content/operations/plume.md @@ -1,10 +1,12 @@ -+++ -title = "Plume" -description = "Plume" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 11 -+++ +--- +title: "Plume" +description: "Plume" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 11 +extra: + parent: 'operations/debogage.md' +--- ## Bug and debug diff --git a/content/operations/prestataires.md b/content/operations/prestataires.md new file mode 100644 index 0000000..ab1f796 --- /dev/null +++ b/content/operations/prestataires.md @@ -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 diff --git a/content/operations/prestataires/_index.md b/content/operations/prestataires/_index.md deleted file mode 100644 index 31d83fc..0000000 --- a/content/operations/prestataires/_index.md +++ /dev/null @@ -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 diff --git a/content/operations/deploiement/noeud/prérequis.md b/content/operations/prérequis.md similarity index 92% rename from content/operations/deploiement/noeud/prérequis.md rename to content/operations/prérequis.md index 27dc414..37d5179 100644 --- a/content/operations/deploiement/noeud/prérequis.md +++ b/content/operations/prérequis.md @@ -1,10 +1,12 @@ -+++ -title = "Prérequis pour un nœud" -description = "Prérequis pour un nœud" -date = 2022-01-09T13:29:29.710Z -dateCreated = 2021-12-28T14:33:59.088Z -weight = 10 -+++ +--- +title: "Prérequis pour un nœud" +description: "Prérequis pour un nœud" +date: 2022-01-09T13:29:29.710Z +dateCreated: 2021-12-28T14:33:59.088Z +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. @@ -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). 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*. - \ No newline at end of file + diff --git a/content/operations/sauvegardes/rclone.md b/content/operations/rclone.md similarity index 91% rename from content/operations/sauvegardes/rclone.md rename to content/operations/rclone.md index 85868c0..1352aaf 100644 --- a/content/operations/sauvegardes/rclone.md +++ b/content/operations/rclone.md @@ -1,9 +1,11 @@ -+++ -title = "rclone" -description = "rclone" -weight = 20 -sort_by = "weight" -+++ +--- +title: "rclone" +description: "rclone" +weight: 20 +sort_by: "weight" +extra: + parent: 'operations/sauvegardes.md' +--- Script de backup brut, on planifie une approche plus élégante à l'avenir : diff --git a/content/operations/sauvegardes/restic.md b/content/operations/restic.md similarity index 97% rename from content/operations/sauvegardes/restic.md rename to content/operations/restic.md index 73463d1..099d011 100644 --- a/content/operations/sauvegardes/restic.md +++ b/content/operations/restic.md @@ -1,8 +1,10 @@ -+++ -title = "restic" -description = "restic" -weight = 10 -+++ +--- +title: "restic" +description: "restic" +weight: 10 +extra: + parent: 'operations/sauvegardes.md' +--- Add the admin account as `deuxfleurs` to your `~/.mc/config` file diff --git a/content/operations/sauvegardes/_index.md b/content/operations/sauvegardes.md similarity index 72% rename from content/operations/sauvegardes/_index.md rename to content/operations/sauvegardes.md index b4d2c79..5c62980 100644 --- a/content/operations/sauvegardes/_index.md +++ b/content/operations/sauvegardes.md @@ -1,33 +1,35 @@ -+++ -title = "Sauvegardes" -description = "Sauvegardes" -weight = 30 -sort_by = "weight" -+++ +--- +title: "Sauvegardes" +description: "Sauvegardes" +weight: 50 +sort_by: "weight" +extra: + parent: 'operations/_index.md' +--- # 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. À terme, nous aimerions être en mesure de tout pouvoir stocker directement sur Garage 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. 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. -[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. À terme, nous aimerions remplacer cet outil par quelque chose de similaire à [s3s3mirror](https://github.com/cobbzilla/s3s3mirror). # 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. -[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. À terme il est possible qu'on décide de rationaliser nos sauvegardes et de choisir de sauvegarder S3. diff --git a/content/operations/ssh.md b/content/operations/ssh.md new file mode 100644 index 0000000..83b09bd --- /dev/null +++ b/content/operations/ssh.md @@ -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 diff --git a/content/operations/deploiement/grappe/stolon.md b/content/operations/stolon.md similarity index 94% rename from content/operations/deploiement/grappe/stolon.md rename to content/operations/stolon.md index 4a683f4..de20f09 100644 --- a/content/operations/deploiement/grappe/stolon.md +++ b/content/operations/stolon.md @@ -1,10 +1,12 @@ -+++ -title = "Stolon" -description = "Comment déployer Stolon" -date = 2022-12-22 -dateCreated = 2022-12-22 -weight = 11 -+++ +--- +title: "Stolon" +description: "Comment déployer Stolon" +date: 2022-12-22 +dateCreated: 2022-12-22 +weight: 11 +extra: + parent: 'operations/deployer.md' +--- Spawn container: diff --git a/content/operations/supervision.md b/content/operations/supervision.md new file mode 100644 index 0000000..5b76a2b --- /dev/null +++ b/content/operations/supervision.md @@ -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. diff --git a/content/operations/supervision/_index.md b/content/operations/supervision/_index.md deleted file mode 100644 index ee71625..0000000 --- a/content/operations/supervision/_index.md +++ /dev/null @@ -1,12 +0,0 @@ -+++ -title = "Supervision" -description = "Supervision" -weight = 40 -sort_by = "weight" -+++ - -# Métriques - -# Journaux - -# Alertes diff --git a/content/operations/vue_ensemble/_index.md b/content/operations/vue_ensemble.md similarity index 96% rename from content/operations/vue_ensemble/_index.md rename to content/operations/vue_ensemble.md index acd5d28..cbd337d 100644 --- a/content/operations/vue_ensemble/_index.md +++ b/content/operations/vue_ensemble.md @@ -1,9 +1,11 @@ -+++ -title = "Vue d'ensemble" -description = "Vue d'ensemble" -sort_by = "weight" -weight = 2 -+++ +--- +title: "Vue d'ensemble" +description: "Vue d'ensemble" +sort_by: "weight" +weight: 0 +extra: + parent: 'operations/_index.md' +--- *Ajouter un schéma* diff --git a/content/prise_en_main/_index.md b/content/prise_en_main/_index.md index 952d440..901f641 100644 --- a/content/prise_en_main/_index.md +++ b/content/prise_en_main/_index.md @@ -1,9 +1,11 @@ -+++ -title = "Prise en main" -description = "Prise en main" -weight = 10 -sort_by = "weight" -+++ +--- +title: "Prise en main" +description: "Prise en main" +weight: 10 +sort_by: "weight" +extra: + parent: 'prise_en_main/_index.md' +--- 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, @@ -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 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 diff --git a/content/prise_en_main/web/créer-du-contenu/avec-un-générateur.md b/content/prise_en_main/avec-un-générateur.md similarity index 65% rename from content/prise_en_main/web/créer-du-contenu/avec-un-générateur.md rename to content/prise_en_main/avec-un-générateur.md index 7bf57e0..e65cc54 100644 --- a/content/prise_en_main/web/créer-du-contenu/avec-un-générateur.md +++ b/content/prise_en_main/avec-un-générateur.md @@ -1,20 +1,25 @@ -+++ -title = "Avec un générateur" -description = "Créer du contenu avec un générateur" -sort_by = "weight" -date = 2022-09-01 -weight = 2 -+++ - -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) +--- +title: Avec un générateur +description: Créer du contenu avec un générateur +sort_by: weight +weight: 2 +draft: false +date: 2022-09-01 +extra: + 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 + 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 + 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 un sous-titre @@ -27,22 +32,26 @@ Voici du texte pour introduire la liste à puce qui va suivre : * second é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). -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 : + ``` -+++ -title = "Avec un générateur" -description = "Créer du contenu avec un générateur" -date = 2022-09-01 -+++ +--- +title: "Avec un générateur" +description: "Créer du contenu avec un générateur" +date: 2022-09-01 +--- # Titre 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. ### 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) ! diff --git a/content/prise_en_main/web/publier-le-contenu/aws-cli.md b/content/prise_en_main/aws-cli.md similarity index 76% rename from content/prise_en_main/web/publier-le-contenu/aws-cli.md rename to content/prise_en_main/aws-cli.md index 9316d33..8761739 100644 --- a/content/prise_en_main/web/publier-le-contenu/aws-cli.md +++ b/content/prise_en_main/aws-cli.md @@ -1,11 +1,13 @@ -+++ -title = "aws-cli" -description = "Publier avec aws-cli" -date = 2022-09-01 -weight = 1 -+++ +--- +title: "aws-cli" +description: "Publier avec aws-cli" +date: 2022-09-01 +weight: 1 +extra: + parent: "prise_en_main/publier-le-contenu.md" +--- -Nous allons désormais verser votre site sur Garage, ce dernier le servira à toutes les personnes qui voudront le voir. Vous aurez besoin de l'identifiant de votre clé d'accès et de la clé d'accès secrète, obtenus dans la partie «[Initialiser votre accès](../initialiser-votre-acces/)». +Nous allons désormais verser votre site sur Garage, ce dernier le servira à toutes les personnes qui voudront le voir. Vous aurez besoin de l'identifiant de votre clé d'accès et de la clé d'accès secrète, obtenus dans la partie «[Initialiser votre accès](@/prise_en_main/initialiser-votre-accès.md)». ### Paramétrer votre accès localement Pour verser votre site sur Garage, nous allons utiliser l'outil de base pour faire des commandes S3 : [aws-cli](https://github.com/aws/aws-cli) et son binaire, `aws`. À chaque fois, il aura besoin de savoir : @@ -50,6 +52,10 @@ s'il est en version 1.x . Pensez à remplacer `exemple-un.fr` par votre nom de ### Publier On y est ! Avec un terminal, positionnez-vous dans le répertoire qui reflète ce que vous voulez mettre en ligne. Celui-ci devrait contenir des fichiers en `.html`, `.css`, ou `.js`, mais pas de `.md`. Si vous ne l'avez pas fait, faites `source ~/.awsrc`, et lancez ensuite : ``` -aws s3 sync . s3://exemple-un.fr +aws s3 sync --delete . s3://exemple-un.fr ``` -si vous avez `aws` en version 2. N'oubliez pas de mettre votre nom de domaine à la place d'`exemple-un.fr`. Vos fichiers devrait être téléversés. Une fois le processus fini, vous devriez pouvoir ouvrir un navigateur internet tel que Firefox par exemple, tapez votre nom de domaine dans la barre URL, et naviguer sur votre site. En cas de pépin, essayez d'actualiser la page en faisant `ctrl`+`shift`+`r` avec votre clavier, ça vous garantira que votre navigateur récupère le vrai contenu en ligne au lieu de piocher dans le cache local sur votre ordinateur. +Cette commande suppose que vous avez `aws` en version 2. N'oubliez pas de mettre votre nom de domaine à la place d'`exemple-un.fr`. + +L'option `--delete` supprime les fichiers distants qui ne sont pas présents localement, ce qui est généralement une bonne idée pour éviter de laisser traîner des vieux fichiers sur les serveurs de Deuxfleurs. Mais attention à ne pas supprimer par mégarde des morceaux de votre site web. + +Vos fichiers devraient être téléversés. Une fois le processus fini, vous devriez pouvoir ouvrir un navigateur web tel que Firefox par exemple, taper votre nom de domaine dans la barre URL, et naviguer sur votre site web. En cas de pépin, essayez d'actualiser la page en faisant `ctrl`+`shift`+`r` avec votre clavier, ça vous garantira que votre navigateur récupère le vrai contenu en ligne au lieu de piocher dans le cache local sur votre ordinateur. diff --git a/content/prise_en_main/compte.md b/content/prise_en_main/compte.md index 31562ae..c9f18cb 100644 --- a/content/prise_en_main/compte.md +++ b/content/prise_en_main/compte.md @@ -1,8 +1,10 @@ -+++ -title = "Compte unique" -description = "Compte unique pour tous les services" -weight = 10 -+++ +--- +title: "Compte unique" +description: "Compte unique pour tous les services" +weight: 10 +extra: + parent: "prise_en_main/_index.md" +--- Vous bénéficier d'un compte unique pour accéder à (presque) tous les services de Deuxfleurs. diff --git a/content/prise_en_main/creer-du-contenu.md b/content/prise_en_main/creer-du-contenu.md new file mode 100644 index 0000000..49b1841 --- /dev/null +++ b/content/prise_en_main/creer-du-contenu.md @@ -0,0 +1,13 @@ +--- +title: "Créer du contenu" +description: "Comment écrire ses pages et son contenu" +sort_by: "weight" +weight: 0 +date: 2022-09-01 +extra: + parent: "prise_en_main/web.md" +--- + +Votre site est désormais complètement configuré. Avant de publier du contenu, il faut écrire celui-ci ! + +Vous pouvez, au choix, [l'écrire à la main](@/prise_en_main/à-la-main.md), ou vous [faire assister par un générateur](@/prise_en_main/avec-un-générateur.md). diff --git a/content/prise_en_main/cryptpad.md b/content/prise_en_main/cryptpad.md index fef5115..610c07f 100644 --- a/content/prise_en_main/cryptpad.md +++ b/content/prise_en_main/cryptpad.md @@ -1,8 +1,10 @@ -+++ -title = "Cryptpad" -description = "Cryptpad" -weight = 50 -+++ +--- +title: "Cryptpad" +description: "Cryptpad" +weight: 50 +extra: + parent: 'prise_en_main/_index.md' +--- # Accès à Cryptpad diff --git a/content/prise_en_main/stockage/drive_garage.md b/content/prise_en_main/drive_garage.md similarity index 98% rename from content/prise_en_main/stockage/drive_garage.md rename to content/prise_en_main/drive_garage.md index 5b30263..cde90b4 100644 --- a/content/prise_en_main/stockage/drive_garage.md +++ b/content/prise_en_main/drive_garage.md @@ -1,8 +1,10 @@ -+++ -title = "Sous Linux (avancé)" -description = "Drive Garage avec Rclone (guide avancé)" -weight = 10 -+++ +--- +title: "Sous Linux (avancé)" +description: "Drive Garage avec Rclone (guide avancé)" +weight: 10 +extra: + parent: 'prise_en_main/stockage.md' +--- **Public visé:** des utilisateurs sous Linux n'ayant pas peur de la ligne de commande. diff --git a/content/prise_en_main/emails.md b/content/prise_en_main/emails.md index 215f29e..acdddb4 100644 --- a/content/prise_en_main/emails.md +++ b/content/prise_en_main/emails.md @@ -1,8 +1,10 @@ -+++ -title = "Emails" -description = "Emails" -weight = 20 -+++ +--- +title: "Emails" +description: "Emails" +weight: 20 +extra: + parent: 'prise_en_main/_index.md' +--- **ATTENTION**. Le service email est actuellement en phase de test. Nous limitons le nombre de comptes et prévoyons de nombreuses maintenances dans les mois à venir. diff --git a/content/prise_en_main/web/initialiser-votre-accès.md b/content/prise_en_main/initialiser-votre-accès.md similarity index 92% rename from content/prise_en_main/web/initialiser-votre-accès.md rename to content/prise_en_main/initialiser-votre-accès.md index 328b106..819e0e4 100644 --- a/content/prise_en_main/web/initialiser-votre-accès.md +++ b/content/prise_en_main/initialiser-votre-accès.md @@ -1,11 +1,11 @@ -+++ -title = "Initialiser votre accès" -description = "Initialiser le stockage objet sur Garage" -date = 2022-09-01 -weight = 0 -[extra] -weight_custom = 2 -+++ +--- +title: "Initialiser votre accès" +description: "Initialiser le stockage objet sur Garage" +date: 2022-09-01 +weight: 0 +extra: + parent: "prise_en_main/web.md" +--- De par l'utilisation de son logiciel Garage, Deuxfleurs conserve et sert les sites web en recourant au stockage objet. Pour chaque site, on a un bucket (seau en français), partageant le même nom que lui. On peut voir un bucket comme un récipient dans lequel on va mettre tout nos fichiers à publier. Pour des raisons de sécurité, l'initialisation de ce dispositif et des identifiants d'accès ne peut être faite que par un administrateur du stockage de Deuxfleurs. Une fois tout ceci mis en place, vous pourrez gérer votre site seul·e. @@ -31,4 +31,4 @@ Si `exemple-un.fr` n'est pas à gauche dans la même colonne que `exemple-deux.e exemple-un.fr 4bdce6:exemple-un.fr 56a0f10929f0d63d0177415a22a0b636cf1efe92845f2b00e04b91298656e78e exemple-deux.eu 941956ebfffa8fd564ad6b40e4bb5ac2f2b93bdbba1d1bf88fe6daff2cf4df6c ``` -C'est réglé. [Vous pouvez désormais vous occuper du DNS](../mettre-place-dns/). \ No newline at end of file +C'est réglé. [Vous pouvez désormais vous occuper du DNS](@/prise_en_main/mettre-place-DNS.md). diff --git a/content/prise_en_main/jitsi.md b/content/prise_en_main/jitsi.md index ca2f199..2117037 100644 --- a/content/prise_en_main/jitsi.md +++ b/content/prise_en_main/jitsi.md @@ -1,8 +1,10 @@ -+++ -title = "Jitsi" -description = "Visioconférence avec Jitsi" -weight = 40 -+++ +--- +title: "Jitsi" +description: "Visioconférence avec Jitsi" +weight: 40 +extra: + parent: 'prise_en_main/_index.md' +--- # Accéder à Jitsi diff --git a/content/prise_en_main/matrix.md b/content/prise_en_main/matrix.md index 9b19916..40ccc0d 100644 --- a/content/prise_en_main/matrix.md +++ b/content/prise_en_main/matrix.md @@ -1,10 +1,12 @@ -+++ -title = "Matrix" -description = "Messagerie Instantanée avec Matrix" -date = 2022-03-09T19:13:51.671Z -dateCreated = 2021-11-09T12:13:36.265Z -weight = 30 -+++ +--- +title: "Matrix" +description: "Messagerie Instantanée avec Matrix" +date: "2022-03-09T19:13:51.671Z" +dateCreated: "2021-11-09T12:13:36.265Z" +weight: 30 +extra: + parent: 'prise_en_main/_index.md' +--- Matrix est un réseau de communication instantanée que vous pouvez utiliser pour rester en contact avec votre famille, avec vos amis ou avec votre collectif ou association. diff --git a/content/prise_en_main/web/mettre-place-DNS.md b/content/prise_en_main/mettre-place-DNS.md similarity index 91% rename from content/prise_en_main/web/mettre-place-DNS.md rename to content/prise_en_main/mettre-place-DNS.md index d27489a..b125d4c 100644 --- a/content/prise_en_main/web/mettre-place-DNS.md +++ b/content/prise_en_main/mettre-place-DNS.md @@ -1,11 +1,11 @@ -+++ -title = "Mettre en place le DNS" -description = "Mise en place du nom de domaine" -date = 2022-09-01 -weight = 0 -[extra] -weight_custom = 3 -+++ +--- +title: "Mettre en place le DNS" +description: "Mise en place du nom de domaine" +date: 2022-09-01 +weight: 0 +extra: + parent: "prise_en_main/web.md" +--- # Louer son nom de domaine Les noms de domaine sont gérés et loués par les _registraires de nom de domaine_. Ce sont eux qui proposent aux clients finaux de réserver des noms. On peut citer [Gandi](https://www.gandi.net/fr), [OVHcloud](https://www.ovhcloud.com/fr/), ou [Scaleway](https://www.scaleway.com/fr/) par exemple. Lorsqu'on veut s'offrir `exemple-un.fr` notamment, c'est chez eux que ça se passe; ensuite, à leur tour, ils vont enregistrer notre demande auprès de l'organisme correspondant à l'extension choisie : l'association française [AFNIC](https://www.afnic.fr/) pour `.fr`, l'association états-unienne [Public Internet Registry ](https://thenew.org/) pour `.org`, l'association européenne (belge en particulier) [EURid](https://eurid.eu/fr/) pour `.eu`... Nous recommandons de privilégier l'une de ces trois extensions parmis la myriade qui existe, car ces entités ont pour historique de ne pas augmenter arbitrairement les prix tout en garantissant la disponibilité de votre nom de domaine. @@ -35,4 +35,4 @@ Choisissez alors «ALIAS» comme type, et `garage.deuxfleurs.fr` comme nom d'hô ![dns5.png](/img/dns5.png) -Maintenant que votre configuration DNS est réglée, vous pouvez [préparer votre contenu](../créer-du-contenu/) ! +Maintenant que votre configuration DNS est réglée, vous pouvez [préparer votre contenu](@/prise_en_main/creer-du-contenu.md) ! diff --git a/content/prise_en_main/plume.md b/content/prise_en_main/plume.md index c20f18c..2e85eb5 100644 --- a/content/prise_en_main/plume.md +++ b/content/prise_en_main/plume.md @@ -1,15 +1,17 @@ -+++ -title = "Plume" -description = "Plume" -weight = 60 -+++ - +--- +title: Plume +description: Plume +weight: 60 +extra: + parent: 'prise_en_main/_index.md' +--- # Accéder à Plume - - [🌐 Accéder via le navigateur](https://plume.deuxfleurs.fr) +- [🌐 Accéder via le navigateur](https://plume.deuxfleurs.fr) # Le Fédiverse # S'abonner # Créer du contenu + diff --git a/content/prise_en_main/web/publier-le-contenu/_index.md b/content/prise_en_main/publier-le-contenu.md similarity index 55% rename from content/prise_en_main/web/publier-le-contenu/_index.md rename to content/prise_en_main/publier-le-contenu.md index bffea49..b58c2e7 100644 --- a/content/prise_en_main/web/publier-le-contenu/_index.md +++ b/content/prise_en_main/publier-le-contenu.md @@ -1,19 +1,19 @@ -+++ -title = "Publier le contenu" -description = "Comment mettre en ligne son contenu" -date = 2022-09-01 -weight = 0 -sort_by = "weight" -[extra] -weight_custom = 5 -+++ +--- +title: "Publier le contenu" +description: "Comment mettre en ligne son contenu" +date: 2022-09-01 +weight: 0 +sort_by: "weight" +extra: + parent: "prise_en_main/web.md" +--- -Nous allons désormais verser votre site sur Garage, et ce dernier le servira à toutes les personnes qui voudront le voir. Vous aurez besoin de l'identifiant de votre clé d'accès et de la clé d'accès secrète, obtenus dans la partie «[Initialiser votre accès](../initialiser-votre-acces/)». +Nous allons désormais verser votre site sur Garage, et ce dernier le servira à toutes les personnes qui voudront le voir. Vous aurez besoin de l'identifiant de votre clé d'accès et de la clé d'accès secrète, obtenus dans la partie «[Initialiser votre accès](@/prise_en_main/initialiser-votre-accès.md)». Vous avez le choix entre trois méthodes : -* [Faire ça en ligne de commande avec `aws-cli`](aws-cli/). C'est la méthode la plus habituelle et la plus éprouvée, cependant il faut utiliser le terminal, et être sur linux est grandement conseillé pour celle-ci. -* [Faire ça avec l'utilitaire graphique `rclone`](rclone/). Cette méthode vous paraîtra peut-être moins intimidante grâce à l'interface graphique du logiciel rclone. Celui-ci tourne sur Linux, Windows, et MacOS. -* [Faire ça avec l'utilitaire graphique `winscp`](winscp/). Cette méthode propose elle également une interface graphique, mais ne fonctionne que sur Windows. +* [Faire ça en ligne de commande avec `aws-cli`](@/prise_en_main/aws-cli.md). C'est la méthode la plus habituelle et la plus éprouvée, cependant il faut utiliser le terminal, et être sur linux est grandement conseillé pour celle-ci. +* [Faire ça avec l'utilitaire graphique `rclone`](@/prise_en_main/rclone.md). Cette méthode vous paraîtra peut-être moins intimidante grâce à l'interface graphique du logiciel rclone. Celui-ci tourne sur Linux, Windows, et MacOS. +* [Faire ça avec l'utilitaire graphique `winscp`](@/prise_en_main/winscp.md). Cette méthode propose elle également une interface graphique, mais ne fonctionne que sur Windows. ### Bravo ! Une fois l'un de ces trois guides suivi, vous aurez désormais votre propre site web accessible publiquement en ligne ! diff --git a/content/prise_en_main/web/publier-le-contenu/rclone.md b/content/prise_en_main/rclone.md similarity index 95% rename from content/prise_en_main/web/publier-le-contenu/rclone.md rename to content/prise_en_main/rclone.md index 3b82c15..34bb825 100644 --- a/content/prise_en_main/web/publier-le-contenu/rclone.md +++ b/content/prise_en_main/rclone.md @@ -1,10 +1,12 @@ -+++ -title = "Rclone Browser" -description = "Publier avec Rclone Browser" -weight = 2 -date = 2021-11-25T14:31:35.570Z -dateCreated = 2021-11-25T14:02:30.997Z -+++ +--- +title: "Rclone Browser" +description: "Publier avec Rclone Browser" +weight: 2 +date: 2021-11-25T14:31:35.570Z +dateCreated: 2021-11-25T14:02:30.997Z +extra: + parent: "prise_en_main/publier-le-contenu.md" +--- Rclone browser est un outil simple qui vous permet d'accéder directement à Garage. diff --git a/content/prise_en_main/stockage/rclone_mount.md b/content/prise_en_main/rclone_mount.md similarity index 92% rename from content/prise_en_main/stockage/rclone_mount.md rename to content/prise_en_main/rclone_mount.md index 9b31d24..7884687 100644 --- a/content/prise_en_main/stockage/rclone_mount.md +++ b/content/prise_en_main/rclone_mount.md @@ -1,10 +1,12 @@ -+++ -title = "Sous Windows (avancé)" -description = " Rclone Mount" -weight = 20 -date = 2022-03-28T09:28:19.870Z -dateCreated = 2022-02-01T16:23:58.635Z -+++ +--- +title: "Sous Windows (avancé)" +description: " Rclone Mount" +weight: 20 +date: "2022-03-28T09:28:19.870Z" +dateCreated: "2022-02-01T16:23:58.635Z" +extra: + parent: 'prise_en_main/stockage.md' +--- Nous aurons besoin de télécharger 3 programmes : - [winfsp](http://www.secfs.net/winfsp/rel/) - téléchargez l'installateur et installez normalement diff --git a/content/prise_en_main/web/statique-comment-ça.md b/content/prise_en_main/statique-comment-ça.md similarity index 92% rename from content/prise_en_main/web/statique-comment-ça.md rename to content/prise_en_main/statique-comment-ça.md index 29c363d..14e2b96 100644 --- a/content/prise_en_main/web/statique-comment-ça.md +++ b/content/prise_en_main/statique-comment-ça.md @@ -1,11 +1,11 @@ -+++ -title = "Statique ? Comment ça ?" -description = "Clarification sur le contenu statique" -date = 2022-09-01 -weight = 0 -[extra] -weight_custom = 1 -+++ +--- +title: "Statique ? Comment ça ?" +description: "Clarification sur le contenu statique" +date: 2022-09-01 +weight: 0 +extra: + parent: "prise_en_main/web.md" +--- Au commencement du web (au début des années 90), le contenu présent en ligne était statique : quand un client veut un fichier ou une page, il spécifie le chemin via un URL, et le serveur répond tout le temps la même chose. Dès le milieu des années 90 ont apparu au sein du web des pages dynamiques, avec [CGI](https://fr.wikipedia.org/wiki/Common_Gateway_Interface) et [PHP](https://fr.wikipedia.org/wiki/PHP). Pour une même page, le serveur peut répondre un contenu différent, variant selon des paramètres rajoutés en fin de chemin URL, selon des données dans la mémoire du serveur, ou selon n'importe quel facteur qui passe par la tête du développeur. diff --git a/content/prise_en_main/stockage/_index.md b/content/prise_en_main/stockage.md similarity index 65% rename from content/prise_en_main/stockage/_index.md rename to content/prise_en_main/stockage.md index 99264f1..96b39c0 100644 --- a/content/prise_en_main/stockage/_index.md +++ b/content/prise_en_main/stockage.md @@ -1,7 +1,10 @@ -+++ -title = "Stockage de fichiers" -description = "Stocker ses fichiers chez Deuxfleurs" -sort_by = "weight" -+++ +--- +title: "Stockage de fichiers" +description: "Stocker ses fichiers chez Deuxfleurs" +sort_by: "weight" +weight: 99 +extra: + parent: 'prise_en_main/_index.md' +--- Dans cette section, vous trouverez plusieurs tutoriels expliquant comment stocker vos fichiers chez Deuxfleurs sur Garage. Malheureusement, nous n'avons pas encore d'interface facile pour accéder à cette fonctionnalité: **les guides dans cette section sont donc à destination d'un public avancé**. diff --git a/content/prise_en_main/web/_index.md b/content/prise_en_main/web.md similarity index 56% rename from content/prise_en_main/web/_index.md rename to content/prise_en_main/web.md index 6b4d7fa..6a1b471 100644 --- a/content/prise_en_main/web/_index.md +++ b/content/prise_en_main/web.md @@ -1,23 +1,29 @@ -+++ -title = "Site web" -description = "Héberger un site web" -sort_by = "weight" -+++ +--- +title: "Site web" +description: "Héberger un site web" +sort_by: "weight" +weight: 10 +extra: + parent: 'prise_en_main/_index.md' +--- Vous en avez marre de faire toute votre communication associative via Facebook ? Vous voulez créer votre propre site pour raconter vos dernières vacances ou publier vos poèmes ? Bref, publier en indépendance ? Deuxfleurs peut vous aider en vous fournissant l'hébergement. Suivez le guide ! -1. [Statique ? Comment ça ?](./statique-comment-ca/) -2. [Initialiser votre accès](./initialiser-votre-acces/) -3. [Mettre en place le DNS](./mettre-place-dns/) -4. [Créer du contenu](./créer-du-contenu/) -5. [Publier le contenu](./publier-le-contenu/) +1. [Statique ? Comment ça ?](@/prise_en_main/statique-comment-ça.md) +2. [Initialiser votre accès](@/prise_en_main/initialiser-votre-accès.md) +3. [Mettre en place le DNS](@/prise_en_main/mettre-place-DNS.md) +4. [Créer du contenu](@/prise_en_main/creer-du-contenu.md) +5. [Publier le contenu](@/prise_en_main/publier-le-contenu.md) # Ils nous font confiance pour leur site web + - [declic-lelivre.com](https://declic-lelivre.com) - *Exploitation des données privées, surveillance généralisée, addiction au smartphone, disparition de pans entiers de l'économie... Les critiques du monde du numérique ne cessent de s'amplifier ; difficile d'ignorer les conséquences de l'utilisation d'Amazon, Facebook, Google, Instagram ou Netflix. Et s'il existait un autre Internet, respectueux de nos libertés ?* + - [envieappartagee.fr](https://www.envieappartagee.fr) - *Association Envie Appart'Agée, projet de coloc Alzheimer pour habiter et être accompagné autrement en Vendée.* + - [giraud.eu](https://giraud.eu) - *Site d'un ingénieur en informatique* - [anneprudhomoz.fr](https://anneprudhomoz.fr) - *De la terre, du fer, de l'eau, beaucoup de feu, un peu d'huile, encore du béton et du plâtre ! ... sans oublier le crayon à papier et les carnets.* - [colineaubert.com](https://colineaubert.com) - *D'un côté graphiste, illustratrice et conceptrice d'outils pédagogiques, je mets en images et en mots différents sujets scientifiques et culturels.* - [estherbouquet.com](https://estherbouquet.com) - *Esther Bouquet questions how narratives—both historical and literary—are being built by creating tangible experiences ranging from the size of the sheet of paper to the volume of a space; somewhere between writing, archiving, drawing, designing, and programming.* - [quentin.dufour.io](https://quentin.dufour.io) - *Portfolio et blog d'un ingénieur en informatique* - [erwan.dufour.io](https://erwan.dufour.io) - *Portfolio et blog d'un passionné d'électronique* + - [luxeylab.net](https://luxeylab.net) - *Site d'un prof en informatique* - [rfid.deuxfleurs.fr](https://rfid.deuxfleurs.fr) - *Rencontres Francophones de l'Infonuagique Décentralisé* - - [giraud.eu](https://giraud.eu) - *Site d'un ingénieur en informatique* diff --git a/content/prise_en_main/web/créer-du-contenu/_index.md b/content/prise_en_main/web/créer-du-contenu/_index.md deleted file mode 100644 index 44fc976..0000000 --- a/content/prise_en_main/web/créer-du-contenu/_index.md +++ /dev/null @@ -1,13 +0,0 @@ -+++ -title = "Créer du contenu" -description = "Comment écrire ses pages et son contenu" -sort_by = "weight" -weight = 0 -date = 2022-09-01 -[extra] -weight_custom = 4 -+++ - -Votre site est désormais complètement configuré. Avant de publier du contenu, il faut écrire celui-ci ! - -Vous pouvez, au choix, [l'écrire à la main](./a-la-main/), ou vous [faire assister par un générateur](./avec-un-generateur/). \ No newline at end of file diff --git a/content/prise_en_main/web/publier-le-contenu/_index.md~ b/content/prise_en_main/web/publier-le-contenu/_index.md~ deleted file mode 100644 index 442cd27..0000000 --- a/content/prise_en_main/web/publier-le-contenu/_index.md~ +++ /dev/null @@ -1,16 +0,0 @@ -+++ -title = "Publier le contenu" -description = "Comment mettre en ligne son contenu" -date = 2022-09-01 -weight = 0 -sort_by = "weight" -[extra] -weight_custom = 5 -+++ - -Nous allons désormais verser votre site sur Garage, et ce dernier le servira à toutes les personnes qui voudront le voir. Vous aurez besoin de l'identifiant de votre clé d'accès et de la clé d'accès secrète, obtenus dans la partie «[Initialiser votre accès](../initialiser-votre-acces/)». - -Vous avez le choix entre trois méthodes : -* [Faire ça en ligne de commande avec `aws-cli`](../aws-cli/). C'est la méthode la plus habituelle et la plus éprouvée, cependant il faut utiliser le terminal, et être sur linux est grandement conseillé pour celle-ci. -* [Faire ça avec l'utilitaire graphique `rclone`](../rclone/). Cette méthode vous paraîtra peut-être moins intimidante grâce à l'interface graphique du logiciel rclone. Celui-ci tourne sur Linux, Windows, et MacOS. -* [Faire ça avec l'utilitaire graphique `winscp`](../winscp/). Cette méthode propose elle également une interface graphique, mais ne fonctionne que sur Windows. diff --git a/content/prise_en_main/web/publier-le-contenu/aws-cli.md~ b/content/prise_en_main/web/publier-le-contenu/aws-cli.md~ deleted file mode 100644 index ba74e8c..0000000 --- a/content/prise_en_main/web/publier-le-contenu/aws-cli.md~ +++ /dev/null @@ -1,71 +0,0 @@ -+++ -title = "aws-cli" -description = "Publier avec aws-cli" -date = 2022-09-01 -weight = 1 -+++ - -Nous allons désormais verser votre site sur Garage, ce dernier le servira à toutes les personnes qui voudront le voir. Vous aurez besoin de l'identifiant de votre clé d'accès et de la clé d'accès secrète, obtenus dans la partie «[Initialiser votre accès](../initialiser-votre-acces/)». - -### Paramétrer votre accès localement -Pour verser votre site sur Garage, nous allons utiliser l'outil de base pour faire des commandes S3 : [aws-cli](https://github.com/aws/aws-cli) et son binaire, `aws`. À chaque fois, il aura besoin de savoir : -* l'identifiant de votre clé d'accès -* votre clé d'accès secrète -* la région et l'URL de l'infrastructure Garage qui hébergera votre site - -En temps normal, il faudrait préciser ces paramètres à chaque fois (donc toutes les fois que vous voulez mettre quelque chose sur votre site, ou le modifier). Pour éviter ça, on va stocker ces informations dans un fichier ; il suffira de l'invoquer avant de faire ses modifications. Dans votre répertoire personnel, créez un fichier nommé par exemple `.awsrc`. À l'intérieur, mettez le contenu suivant : -``` -export AWS_ACCESS_KEY_ID={votre identifiant de clé d'accès} -export AWS_SECRET_ACCESS_KEY={votre clé d'accès privée} -export AWS_DEFAULT_REGION='garage' - -function aws { command aws --endpoint-url https://garage.deuxfleurs.fr $@ ; } -aws --version -``` -Il vous faut bien entendu insérer vos deux clés aux endroits spécifiés. Une fois ceci fait, dans le futur, avant d'utiliser `aws`, il vous faudra faire `source ~/.awsrc`, et cela mettra en place tous les paramètres pour vous. Vous serez automatiquement authentifié et vous parlerez à la bonne infrastructure Garage. - -### Configurer la page par défaut et celle pour les erreurs -Puisqu'on est sur la configuration S3, profitons-en pour paramétrer une page d'accueil et une page d'erreur. En effet, les URL qu'on utilise pour naviguer sur votre site correspondront à la hiérarchie de fichiers présents sur Garage. Si on visite `https://votre-site.fr/blog/recette-de-gateau.html`, Garage va simplement servir le fichier `blog/recette-de-gateau.html`, en partant de la racine du bucket. Mais que ce passe-t-il si on demande à voir `https://votre-site.fr/blog/` ? Garage ne peut pas retourner un dossier; et de toute façon cela ne fonctionnerait pas, puisqu'un dossier n'a pas données propre à lui-même, il ne fait que contenir des fichiers distincts en son sein. On voit pourtant souvent ce genre d'URL en ligne. En fait, les serveurs web sont configurés pour que si aucun fichier du dossier n'est spécifié, alors on va utiliser celui avec un nom paramétré à l'avance. C'est de ça dont on parle. -De même, lorsque quelqu'un demande une page qui n'existe pas, que peut faire Garage ? Dans la même logique, on va lui donner un nom de fichier à servir par défaut si jamais cela arrive. - -Après avoir fait votre `source ~/.awsrc`, faites : -``` -aws s3 website exemple-un.fr --index-document index.html --error-document erreur.html -``` -si votre `aws` est en version 2.x, ou -``` -aws s3api put-bucket-website --bucket exemple-un.fr --website-configuration ' -{ - "ErrorDocument": { - "Key": "/errors/4xx.html" - }, - "IndexDocument": { - "Suffix": "index.html" - } -} -' -``` -s'il est en version 1.x . Pensez à remplacer `exemple-un.fr` par votre nom de domaine à vous ! - -### Publier -On y est ! Avec un terminal, positionnez-vous dans le répertoire qui reflète ce que vous voulez mettre en ligne. Celui-ci devrait contenir des fichiers en `.html`, `.css`, ou `.js`, mais pas de `.md`. Si vous ne l'avez pas fait, faites `source ~/.awsrc`, et lancez ensuite : -``` -aws s3 sync . s3://exemple-un.fr -``` -si vous avez `aws` en version 2. N'oubliez pas de mettre votre nom de domaine à la place d'`exemple-un.fr`. Vos fichiers devrait être téléversés. Une fois le processus fini, vous devriez pouvoir ouvrir un navigateur internet tel que Firefox par exemple, tapez votre nom de domaine dans la barre URL, et naviguer sur votre site. En cas de pépin, essayez d'actualiser la page en faisant `ctrl`+`shift`+`r` avec votre clavier, ça vous garantira que votre navigateur récupère le vrai contenu en ligne au lieu de piocher dans le cache local sur votre ordinateur. - -### Bravo ! -Fécilicitations ! Vous avez désormais votre propre site web accessible publiquement en ligne ! -Vous pouvez rajouter dessus le badge attestant fièrement son hébergement sur Garage: - -[![Badge indiquant qu'un site est hébergé sur Garage en français](/img/garage_fr.png)](https://garagehq.deuxfleurs.fr/) -[![Badge indiquant qu'un site est hébergé sur Garage en anglais](/img/garage_en.png)](https://garagehq.deuxfleurs.fr/) - -En HTML: -``` -Badge indiquant que ce site est propulsé par le logiciel Garage -``` -En Markdown: -``` -[![Badge indiquant qu'un site est hébergé sur Garage en français](/img/garage_fr.png)](https://garagehq.deuxfleurs.fr/) -``` diff --git a/content/prise_en_main/web/publier-le-contenu/rclone.md~ b/content/prise_en_main/web/publier-le-contenu/rclone.md~ deleted file mode 100644 index d7e03d1..0000000 --- a/content/prise_en_main/web/publier-le-contenu/rclone.md~ +++ /dev/null @@ -1,104 +0,0 @@ -+++ -title = "Rclone Browser" -description = "Rclone Browser" -weight = 30 -date = 2021-11-25T14:31:35.570Z -dateCreated = 2021-11-25T14:02:30.997Z -[extra] -weight_custom = 15 -+++ - - -rclone browser est un outil simple qui vous permet d'accéder directement à Garage. - -# Installation - -Si vous êtes sous macOS ou Windows, vous pouvez télécharger la dernière version depuis la page [github de rclone-browser](https://github.com/kapitainsky/RcloneBrowser/releases) (descendez un peu pour voir les liens). - -Sous Ubuntu (lubuntu, kubuntu, etc.), Debian et Linux Mint, cherchez et installez "Rclone Browser" dans la logithèque ("App Store") ou lancez directement depuis un terminal : - -```bash -sudo apt-get install -y rclone-browser -``` - ---- - -Le paquet existe aussi pour d'autres distributions : - -```bash -sudo dnf install -y rclone-browser # fedora -sudo yay -S rclone-browser # arch linux -sudo nix-env -iA nixos.rclone-browser # nix os -``` - -# Premier lancement - -Avant de lancer Rclone Browser, ouvrez un éditeur de texte. -Moi j'utilise "Éditeur de texte" sous Gnome aussi connu sous le nom de `gedit`. Sous Windows il s'appelle Bloc-Note Windows (ou `notepad.exe`). - -![gedit.png](/img/rclone_gedit.png) - -Entrez le texte suivant dedans, tout en remplaçant bien les lignes 5 et 6 par vos identifiants communiqués précédemment : - -```toml -[garage] -type = s3 -provider = Other -env_auth = false -access_key_id = -secret_access_key = -region = garage -endpoint = garage.deuxfleurs.fr -bucket_acl = private -force_path_style = true -no_check_bucket = true -``` - -Maintenant enregistrez le à un endroit où vous ne le perdrez pas. Dans mon cas, j'ai choisi de le mettre dans Mon Dossier Personnel > Documents > Configuration et je l'ai appelé `rclone.conf`. - -![rclone-conf.png](/img/rclone_conf.png) - -Maintenant lancez "Rclone Browser" en cherchant l'application dans votre menu d'application - -![capture_d’écran_de_2021-11-25_14-43-03.png](/img/rclone_menu.png) - -L'application devrait se lancer : - -![rclone_init.png](/img/rclone_init.png) - -Cliquez sur "File" (Fichiers) en haut à gauche, puis sur "Preferences...". La fenêtre suivante s'ouvre : - -![rclone-conf2.png](/img/rclone_conf2.png) - -Repérez la deuxième ligne intitulée `rclone.conf location:`. Tout au bout de la ligne, cliquez sur le bouton avec les trois points `[...]`. Vous aurez alors la possibilité d'indiquer à Rclone Browser où se trouve le fichier de configuration créé juste avant (pour ma part, je rappelle, "Dossier personnel > Documents > Configuration > rclone.conf", on voit que le chemin complet vers le fichier apparait maintenant dans le champs texte. - -Appuyez sur OK, et la fenêtre principale devrait maintenant ressembler à ça : - -![rclone-s3.png](/img/rclone_s3.png) - -Cliquez sur "S3 garage" puis cliquez sur "Open". Si vous voyez des dossiers apparaitre, c'est gagné ! - -![rclone-conn.png](/img/rclone_conn.png) - -Vous pouvez maintenant naviguer dans vos dossiers, envoyer des fichiers sur Garage ou en récupérer. Attention, vous ne pouvez pas créer de "nouveaux dossiers" à la racine, mais vous pouvez créer des sous-dossiers dans les dossiers existants pré-alablement créés pour vous. - -# Utiliser comme un drive - -Ce n'est pas forcément très pratique de devoir passer par cette interface pour envoyer ou récupérer des fichiers. Ce qui serait génial, c'est que ces dossiers apparaissent sur votre ordinateur comme des dossiers normaux. - -Pour cela, sélectionnez un dossier racine, moi j'ai choisi `quentin.bibliotheque` puis cliquez sur le bouton "Mount". - -![rclone-mount.png](/img/rclone_mount.png) - -Un sélecteur de fichier s'ouvre alors. Je vais dans "Dossier Personnel > Documents", je créer un nouveau dossier que j'appelle "Distant". Je vais dedans et clique sur "Choisir" (ou Ok). - -Maintenant, quand je vais dans un explorateur de fichier, je vois les fichiers sur Garage comme si ils étaient sur mon ordinateur. - -![nautilus-distant.png](/img/rclone_nautilus.png) - -Je peux aussi accéder à ces documents depuis mon logiciel préféré, comme ici "LibreOffice Calc" : - -![capture_d’écran_de_2021-11-25_15-01-42.png](/img/rclone_calc.png) - - - diff --git a/content/prise_en_main/web/publier-le-contenu/winscp.md~ b/content/prise_en_main/web/publier-le-contenu/winscp.md~ deleted file mode 100644 index 6f63d97..0000000 --- a/content/prise_en_main/web/publier-le-contenu/winscp.md~ +++ /dev/null @@ -1,62 +0,0 @@ -+++ -title = "WinSCP" -description = "WinSCP " -weight = 20 -[extra] -weight_custom = 10 -+++ - - -# Installation - -Commencez par télécharger l'outil [WinSCP](https://winscp.net/eng/download.php). - -![winscp_dl.png](/img/winscp_dl.png) - -Installez le logiciel. - -# Configuration - -Lancez le. La fenêtre de connexion suivante devrait apparaitre : - -![](/img/winscp_login.png) - -Vous devez : - 1. Vérifier que c'est bien "Nouveau site" qui est sélectionné - 2. Dans *protocole de fichier*, vous devez choisir *Amazon S3* - 3. Dans *nom d'hôte*, vous devez mettre `garage.deuxfleurs.fr` - 4. Dans *numéro de port*, vous devez mettre (ou plutôt laisser) `443` - 5. Dans *id de clé d'accès*, vous devez mettre l'identifiant de votre clé d'accès, exemple : `GK...` - 6. Dans *clé d'accès secrète*, vous devez mettre votre clé d'accès secrète. - 7. Maintenant, cliquez sur le bouton *Avancé*. (Cliquez bien sur le mot "Avancé" et non sur la flèche à droite). Une fenêtre s'ouvre : - -![](/img/winscp_avance.png) - - 1. Dans le menu de gauche, cliquez sur *S3* - 2. Dans la partie de droite, pour *Région par défaut*, inscrivez au clavier *garage* - 3. Toujours à droite, dans *Style URL*, choisissez *Chemin* - 4. Cliquez sur OK - -Vous voilà de retour sur la fenêtre de connexion : - -![](/img/winscp_sauvegarder.png) - - 1. Cliquez sur *Sauver* (cliquez bien sur le texte et non sur la flèche noire à droite) - -La fenêtre suivante apparait : - -![](/img/winscp_session.png) - - 1. Dans *Enregistrer la sessions sous :*, donnez un nom qui identifie bien votre site web, c'est ce qui vous permettra de l'identifier dans la liste de connexion. - 2. Pour la case *Enregistrer le mot de passe*, nous vous conseillons de la cocher sauf si vous êtes sur un ordinateur public (bibliothèque, cybercafé, etc.) ou au travail. - 3. Pour la case *Créer un raccourci sur le bureau*, nous vous conseillons de la cocher, vous pourrez alors mettre votre site en ligne en un seul clic (ou presque) depuis votre bureau. - 4. Cliquez sur OK - -Vous pouvez maintenant cliquer sur "Connexion". - -# Envoyer votre site web - -À gauche, naviguez jusqu'au dossier de votre site web. -Faites en un glisser déposer à droite à l'intérieur du dossier qui contient le nom de votre site web. - -![commander.png](/img/winscp_commander.png) diff --git a/content/prise_en_main/web/publier-le-contenu/winscp.md b/content/prise_en_main/winscp.md similarity index 94% rename from content/prise_en_main/web/publier-le-contenu/winscp.md rename to content/prise_en_main/winscp.md index f88e6dd..6528836 100644 --- a/content/prise_en_main/web/publier-le-contenu/winscp.md +++ b/content/prise_en_main/winscp.md @@ -1,8 +1,10 @@ -+++ -title = "WinSCP" -description = "Publier avec WinSCP" -weight = 3 -+++ +--- +title: "WinSCP" +description: "Publier avec WinSCP" +weight: 3 +extra: + parent: 'prise_en_main/publier-le-contenu.md' +--- # Installation diff --git a/content/prise_en_main/web/créer-du-contenu/à-la-main.md b/content/prise_en_main/à-la-main.md similarity index 90% rename from content/prise_en_main/web/créer-du-contenu/à-la-main.md rename to content/prise_en_main/à-la-main.md index 541a009..bc4c3ad 100644 --- a/content/prise_en_main/web/créer-du-contenu/à-la-main.md +++ b/content/prise_en_main/à-la-main.md @@ -1,10 +1,12 @@ -+++ -title = "À la main" -description = "Créer du contenu à la main" -sort_by = "weight" -date = 2022-09-01 -weight = 1 -+++ +--- +title: "À la main" +description: "Créer du contenu à la main" +sort_by: "weight" +date: 2022-09-01 +weight: 1 +extra: + parent: "prise_en_main/creer-du-contenu.md" +--- Garage, comme tout serveur web, va se contenter ici de servir des fichiers `.html`. Ces fichiers sont tout à fait lisibles et écrivables par un humain. Ainsi, si vous n'avez pas prévu d'avoir un site avec beaucoup de pages, il est souvent intéressant de façonner chacune d'entre elles à la main. @@ -36,4 +38,4 @@ body ``` Encore une fois, plein de ressources sont disponibles en ligne, et Mozilla propose encore une fois [une bonne base](https://developer.mozilla.org/fr/docs/Web/CSS). -Une fois que vous avez tous vos fichiers `.html` et `.css` réunis, [vous pouvez passer à la publication](../../publier-le-contenu/) ! +Une fois que vous avez tous vos fichiers `.html` et `.css` réunis, [vous pouvez passer à la publication](@/prise_en_main/publier-le-contenu.md) ! diff --git a/content/vie_associative/ag/AG2020.md b/content/vie_associative/AG2020.md similarity index 93% rename from content/vie_associative/ag/AG2020.md rename to content/vie_associative/AG2020.md index eac2889..684c9f6 100644 --- a/content/vie_associative/ag/AG2020.md +++ b/content/vie_associative/AG2020.md @@ -1,8 +1,10 @@ -+++ -title = "AG 2020" -description = "Assemblée Générale Constitutive" -weight = 10 -+++ +--- +title: "AG 2020" +description: "Assemblée Générale Constitutive" +weight: 10 +extra: + parent: 'vie_associative/ag.md' +--- Le 13 janvier 2020 à 19 heures, les fondateurs de l'association Deuxfleurs se sont réunis en assemblée générale constitutive au 24 rue diff --git a/content/vie_associative/ag/AG2021.md b/content/vie_associative/AG2021.md similarity index 97% rename from content/vie_associative/ag/AG2021.md rename to content/vie_associative/AG2021.md index 630e69b..750c247 100644 --- a/content/vie_associative/ag/AG2021.md +++ b/content/vie_associative/AG2021.md @@ -1,8 +1,10 @@ -+++ -title = "AG 2021" -description = "Seconde Assemblée Générale" -weight = 20 -+++ +--- +title: "AG 2021" +description: "Seconde Assemblée Générale" +weight: 20 +extra: + parent: 'vie_associative/ag.md' +--- Le 7 février 2021 se tenait la deuxième Assemblée Générale (AG) de Deuxfleurs. diff --git a/content/vie_associative/ag/AG2022.md b/content/vie_associative/AG2022.md similarity index 98% rename from content/vie_associative/ag/AG2022.md rename to content/vie_associative/AG2022.md index d3b3ab3..1c8f550 100644 --- a/content/vie_associative/ag/AG2022.md +++ b/content/vie_associative/AG2022.md @@ -1,8 +1,10 @@ -+++ -title = "AG 2022" -description = "Troisième Assemblée Générale" -weight = 30 -+++ +--- +title: "AG 2022" +description: "Troisième Assemblée Générale" +weight: 30 +extra: + parent: 'vie_associative/ag.md' +--- Le dimanche 27 février 2022, se tenait sur [Jitsi](https://jitsi.deuxfleurs.fr/) la troisième Assemblée Générale (AG) de Deuxfleurs : nous fêtions nos deux ans d'existence ! @@ -27,7 +29,7 @@ Deuxfleurs porte 3 actions principales : la **conception** de nos outils numéri # Changement du mode de scrutin -> ## Modification de l'article 8 de nos [statuts](/Association/Statuts) +> ## Modification de l'article 8 de nos [statuts](@/vie_associative/statuts.md) > > [...] Elle [L'Assemblée Générale] pourvoit, au scrutin secret, à la nomination ou au renouvellement des membres du conseil d'administration via un scrutin **au jugement majoritaire**. Elle fixe le montant de la cotisation annuelle. Les décisions de l'assemblée sont prises à la majorité des membres présents ou représentés. Chaque membre présent ne peut détenir plus d'une procuration. diff --git a/content/vie_associative/AG2023.md b/content/vie_associative/AG2023.md new file mode 100644 index 0000000..b8c402d --- /dev/null +++ b/content/vie_associative/AG2023.md @@ -0,0 +1,265 @@ +--- +title: "AG 2023" +description: "Quatrième Assemblée Générale" +weight: 40 +extra: + parent: 'vie_associative/ag.md' +--- + + + +Le dimanche 12 février 2023, se tenait sur Jitsi la quatrième Assemblée Générale (AG) de Deuxfleurs. + +[Lien d'accès aux slides de la présentation](https://pad.deuxfleurs.fr/slide/#/3/slide/view/84b9b62d9c0fa512a36ee49b25f95453/present/) + + +# En deux mots: + +- Une dizaine de membres étaient présents à l'AG +- L’adresse de l'association est changée à Lille chez Adrien. +- Le conseil d'administration 2023 est composé d'Adrien, Maximilien et Vincent, tous ayant fait partie du CA depuis la fondation de l'association. + +# Appel à candidatures + +Élection au jugement majoritaire du bureau 2023. Trois candidats déclarés : Vincent Giraud, Maximilien Richer, Adrien Luxey-Bitri. Alain ne se représente pas. Pas de nouveaux candidats lors de l'AG. 20 membres bénéficient du droit de vote. + +# Présentation de l'association. + +L’objectif de l'association Deuxfleurs est de « fabriquer un internet convivial ». + +Dans les statuts : association loi 1901 dont l'objectif est de défendre et promouvoir les libertés individuelles et collectives à travers la mise en place d’infrastructures numériques libres. + +Fondée en janvier 2023 à Rennes mais existait déjà sans forme juridique avant. 9 membres en 2020, 20 maintenant. + +Missions : + +- fabriquer des outils pour les communautés (CHATONS) +- proposer des services numériques au grand public +- plaidoyer, inspirer, essaimer + +Clarification faite en 2022 de la notion d'usager.ère vs membre. + +- Usager.ère = personne qui utilise les services Deuxfleurs, contre un prix libre. +- Membre = personne physique adhérente à l'asso, 10€/an, donne le droit de vote en AG. + +Clarification sur les usagers : accès donnés à prix libre à des personnes physiques et morales. Prix indicatif : 15€/an par personne physique. Dans le cas d'une personne morale, multiplier par le nombre de personnes physiques qui utiliseront effectivement les services. + +Le prix est LIBRE ! 0€ est possible aussi. + +*À faire :* publier les prix sur le site. + +Outils proposés en accès libre: CryptPad, Jitsi. + +Outils accessibles aux personnes ayant un compte : + +- Guichet (annuaire) +- hébergement de site statique (garage) +- Matrix (discussion) +- Plume (blog) +- emails et calendrier avec SoGo + +# Bilan moral 2022 + +**Projet NGI/Garage.** + +139000 € de subventions de l'Union Européenne, 3 salariés en CDD durant un an. Chronologie: + +- avril 2021 : dépôt de la candidature +- juin 2021 : projet accepté +- août 2021 : contrat de subvention signé +- oct 2021 : début du projet +- février 2022 : 3 jalons validés sur 5 +- ---- AG 2022 ---- +- mai 2022 : jalon 3a validé +- juillet 2022 : jalon 3b validé +- septembre 2022 : jalon 4 validé +- 1e octobre 2022 : clôture des contrats + +Bilan de l'aspect "financier" : on est passés dangereusement près des 0€ sur le compte. + +Bilan technique: + +- développement d'un logiciel de stockage distribué (Garage) +- support S3 robuste +- utilisé en production (deuxfleurs.fr) +- deux fois sur HackerNews en première page!🔥 +- début du support d'une API clef-valeur (`K2V`) +- début de serveur mail (`aerogramme`) +- Garage est aujourd'hui une pierre angulaire de l'infra Deuxfleurs +- communauté florissante qui contribue (v8.2 soon™) + +**Deuxfleurs et les CHATONS** + +- Deuxfleurs est officiellement un chaton depuis avril 2022. +- participation au Camps CHATONS à l'été 2022 +- des premiers usagers commencent à entrer en contact avec nous via chatons.org + +**Les camps Deuxfleurs de 2022** + +- camp d'été chez Alex en IdF +- camp d'hiver au Couvent des Clarisses à Lille + +Ont été l'occasion de discuter, d'échanger, de s'organiser, de partager. Un peu de discussions techniques, mais pas majoritairement. + +*À faire :* prévoir le camp d'été 2023 (quand et où?) + +**Interventions publiques** + +Soit des présentations/conférences données par des personnes de l'asso, soit juste des présences à des événements pour discuter. + +- Tarare micro club informatique +- Camp CHATONS au Moulin bleu +- Capitole du Libre 2022 +- Podcast : Open Tech Will Save Us +- FOSDEM 2022 +- Équipe de recherche STACK à Nantes +- Équipe de recherche SPIRALS à Lille +- Freedom Not Fear +- Open Source Experience +- Équipe de recherche TOCATTA à Saclay + +Plein de choses sont possibles, l'association peut soutenir financièrement ou donner du contenu pour les personnes qui voudraient faire ce genre de choses. + +**Bilan des objectifs techniques 2022** + +Pas mal d'achats de matériel qui ont permi de stabiliser des infras et d'essaimer des petits ordinateurs partout. + +Migration GlusterFS → Garage, Traefik → Tricot. Fiabilisation des services. Idée qu'on peut produire nous-même des outils, moins complets mais plus adaptables à notre config. + +Mise en place de sites statiques, infra multisite, métriques. + +Meilleure sécurisation des accès opérateur.ice. On a maintenant une charte operateur.ice à signer. + +*À faire :* énormément de choses. Par exemple : base de données multisite, soucis de stockage local (CryptPad, Plume, email), alerting. Projets en cours notamment sur les courriels (Aérogramme) et sur plume. + +# Bilan comptable 2022 + +Solde au 01/01/2022 : 53 122,70€ + +Revenus: 120 981 € + +- NGI/Garage : 120 716 € +- Cotisations : 170€ +- Dons : 95 € + +Dépenses : 158 872 € + +- NGI/Garage : 158 673 € +- Frais : 198 € + +Balance de l'année 2022 : -37 891,79 € + +Solde au 01/01/2023 : 15 230,91€ + +Dépenses de NGI en 2022 (découpage des 158 673 €) : + +- Salariat (incl. comptable, cotisations, mutuelle, etc) : 148 196 € +- Prestations : 5 000 € +- Évenements (3 camps) : 3 066 € +- Achat matériel : 1 674 € +- Frais pro : 601 € +- Achat stickers : 36 € + +# Perspectives 2023 et motions + +**Mise en place de cercles** + +Structuration des activités de l'asso autours d'un nombre de cercles, par exemple : CA, usages, infra, essaimage, dev, gestion, organisation des camps AFK, etc. + +On avait lancé ça en 2022, c'est encore balbutiant. + +Principe d'un cercle : + +- il y a un référent qui s'occupe d'avoir les infos (pas de pouvoir de décision) +- réunions récurrentes planifiées +- com interne (souvent un salon Matrix) +- se rendre visible (e.g mise jour du guide, faire des posts de blog sur Plume) + +Cercles actuels : + +- Le conseil d'administration + +- Infra → Alex et Quentin référents "de fait". On n'a plus d'employés à plein temps → il faut essayer de distribuer la charge de travail sur tout le monde, notamment pour le maintien de l'infra. Chantier à pousser : l'horizontalité de l'infra. + +Cercles en réflexion : + +- accueil : chan matrix pour coordonner les arrivées (e.g. quand on reçoit un mail sur coucou@deuxfleurs.fr) +- essaimage : on a écrit pas mal d'articles, il y a des volontés de continuer. Adrien motivé pour être référent du cercle +- stratégie : comment faire en sorte de pousser nos idées au sens large + +**Recherche de fonds** + +Pour l'instant les ex-salariés recherchent des financements de leur coté, pourrait-on envisager de refaire ça au niveau de l'asso ? + +Cotisations et dons par virements bancaires → pour l'instant, suffisant pour maintenir la base de l'asso : coûts bancaires, frais de fonctionnement. Pas plus. + +Envisager une plateforme de dons récurrents ? e.g. liberapay, opencollective, tipee, heloasso, utip, ko-fi. Si des gens ont des opinions sur ces plateformes, faites-nous en part. + +Rechercher de nouvelles subventions publiques ? + +**Poursuite de la maturité technique** + +Garage a énormément progressé durant NGI. On voudrait continuer à construire sur cet élan, avec la communauté. + +Au niveau infra, résoudre les soucis mentionnés précédemment pour que tout soit full redondé, que la coupure de fibre/d'élec ne pose littéralement aucun problème. + +**Tisser des liens** + +On a beaucoup parlé de l'aspect technique (s'extraire des datacenters, du modèle industriel). On a aussi des arguments politiques pour dire qu'il faut quitter les GAFAM. Comment faire le pont entre les deux et amener les gens à comprendre l'intérêt des chatons (ou du libre en général) et à les utiliser? + +Intervention dans un lieu à Vaulx-en-Velin (Bricologis) pour faire des ateliers. Proposition de Quentin : acheter des PC portables pour montrer aux gens, leur permettre de faire des choses dessus (e.g. aider les gens à faire leurs démarches administratives). Proposition de budget : 300€. + +2e proposition de Quention : faire une journée à la Cyberrance avec Club1 et Picasoft. Partir du truc des sites statiques, "poétiser le web", croiser la tech et l'art. Faire une journée un samedi de mai ou juin en région parisienne. Proposition de budget: 1000€. Être dans le constructif : faire une proposition d'informatique moins marchand, moins dans la commercialisation → "poétiser le web". La cyberrance = gens issus du monde de l'art, ça serait l'occasion de croiser des perspectives différentes. Très grand intérêt de la cyberrance et de club1 pour faire cette journée. + +Rien n'est fixé pour tout ça encore. Phase de discussion à lancer. + +# Votes et élections + +**Vote 1.** Changement d'adresse de Rennes a Lille chez Adrien (on ne peut pas garder l'adresse à Rennes, Adrien compte lui rester à Lille à terme, et d'ailleurs aussi héberger des serveurs). + +Nouvelle adresse: Adrien Luxey-Bitri +16 rue de la Convention, Appt. 1 RDC, +59800 Lille + +8 voix pour, 0 voix contre. Adopté. + +**Vote 2.** Maintenir le prix de la cotisation annuelle à l'association à 10€. (pas de nécessité de le changer, c'est juste que les statuts nous imposent de le voter en AG) + +8 voix pour, 0 voix contre. Adopté. + +**Élection du bureau.** Le dépouillement du scrutin à jugement majoritaire donne les trois candidats élus avec une mention médiane de Excellent : Adrien Luxey-Bitri, Vincent Giraud et Maximilien Richer. (unanimité d'excellent pour Maximilien). + +# Questions et remarques supplémentaires + +**Réflexion qualité de service.** Changement de vitesse (plus de salarié.e.s), mais on est toujours CHATONS avec des engagements. Mettre nos propres sites et nos mails sur l'infra Deuxfleurs (pour ceux qui l'ont pas fait) pour qu'on se motive plus à garantir son bon fonctionnement. → eat your own dogfood. + +Ne pas non plus se mettre trop de pression sur la qualité, penser plutôt qu'on se soucie des autres. On est bénévoles, on ne veut pas se tuer à la tâche, mais on veut avoir une attention aux usager.e.s qui n'ont pas accès aux infra et n'ont pas les moyens de réparer ou changer une config. Avoir un sens des responsabilités, pour éviter une approche féodale/gatekeeping. + +On met en place cet infra pour des raisons/des valeurs, ça serait bête d'utiliser autre chose (e.g. gandi/ovh/...) + +**Camp deuxfleurs de l'été 2023?** Vincent aimerait se charger de l'orga d'un camp quand il aura plus de temps. Garder en tête qu'on est en recherche de lieu pour l'été 2023. C'est peut-être le dernier où on aura suffisamment de fonds pour couvrir l'intégralité du séjour. Pour trouver des idées de lieu, regarder sur le forum CHATONS : à chaque camp ils identifient plusieurs lieux, au total ça fait beaucoup de possibilités. Regarder quels sont leurs réseaux, de fil en aiguille on peut trouver des choses. Ne pas exclure de retourner au Couvent des Clarisses. +Anciela discute régulièrement avec Esther et Quentin au sujet de l'asso, a peut-être aussi quelques pistes. + +À la montagne, planter la tente ? Beaucoup de possibilités. + +**Réunions prévues prochainement**. Tous les 1ers mardis du mois, réunion mensuelle au coin du feu. Réunions techniques planifiées petit à petit. + +**Calendrier partagé CalDav sur SoGo** + +_Authenticated User Access_ (on voit tout et on peut tout modifier si on a un compte deuxfleurs) + +- CalDAV URL +- WebDAV XML URL + +_Public Access_ (on voit seulement les trucs publics) + +- CalDAV URL +- WebDAV ICS URL +- WebDAV XML URL + +*À faire :* mettre l'adresse sur le guide. + +*À faire :* mise à jour automatique du calendrier sur la page d'accueil de Deuxfleurs ? + +**Appel à participation au CA** On peut être jusqu'à 6, n'hésitez pas a vous impliquer. Charge de travail relativement faible, surtout depuis la fin de NGI. Lire les mails, tâches de compta/trésorerie, tenue de l'AG, organisation des camps, parfois gestion des conflits. Être responsable moralement de l'association. Pour des personnes voulant s'impliquer, ça peut être une bonne façon de découvrir le fonctionnement de l'asso, bon point de vue pour lancer des projets, etc. Et même les personnes extérieures au CA formellement peuvent prendre une part dans tout ça pour alléger la charge du CA. Pas de tâche foncièrement dévolue au CA où les autres ne peuvent pas s'impliquer, rien n'est interdit. diff --git a/content/vie_associative/_index.md b/content/vie_associative/_index.md index bd0a57f..718aabf 100644 --- a/content/vie_associative/_index.md +++ b/content/vie_associative/_index.md @@ -1,8 +1,10 @@ -+++ -title = "Vie associative" -description = "Vie associative" -weight = 50 -sort_by = "weight" -+++ +--- +title: "Vie associative" +description: "Vie associative" +weight: 50 +sort_by: "weight" +extra: + parent: '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. diff --git a/content/vie_associative/ag.md b/content/vie_associative/ag.md new file mode 100644 index 0000000..373e621 --- /dev/null +++ b/content/vie_associative/ag.md @@ -0,0 +1,17 @@ +--- +title: "Assemblées Générales" +description: "Assemblées Générales" +weight: 50 +sort_by: "weight" +extra: + parent: 'vie_associative/_index.md' +--- + +[↣ AG 2020](@/vie_associative/AG2020.md) - Assemblée générale constitutive + +[↣ AG 2021](@/vie_associative/AG2021.md) - Un an d'existence + +[↣ AG 2022](@/vie_associative/AG2022.md) - En plein développement de Garage + +[↣ AG 2023](@/vie_associative/AG2023.md) - De nouvelles perspectives + diff --git a/content/vie_associative/ag/_index.md b/content/vie_associative/ag/_index.md deleted file mode 100644 index b23e937..0000000 --- a/content/vie_associative/ag/_index.md +++ /dev/null @@ -1,9 +0,0 @@ -+++ -title = "Assemblées Générales" -description = "Assemblées Générales" -weight = 20 -sort_by = "weight" -+++ - - - diff --git a/content/vie_associative/charte_operateurice/_index.md b/content/vie_associative/charte_operateurice.md similarity index 97% rename from content/vie_associative/charte_operateurice/_index.md rename to content/vie_associative/charte_operateurice.md index be44bdf..fd70ebe 100644 --- a/content/vie_associative/charte_operateurice/_index.md +++ b/content/vie_associative/charte_operateurice.md @@ -1,8 +1,10 @@ -+++ -title = "Charte opérateur·ice" -description = "Charte opérateur·ice" -weight = 30 -+++ +--- +title: "Charte opérateur·ice" +description: "Charte opérateur·ice" +weight: 30 +extra: + parent: 'vie_associative/_index.md' +--- *Ce document est inspiré de [la charte du Parti Pirate](https://wiki.partipirate.org/images/4/45/Charte_de_l%27administrateur_-_Type.pdf)*. diff --git a/content/vie_associative/kb/ergonomie.md b/content/vie_associative/ergonomie.md similarity index 72% rename from content/vie_associative/kb/ergonomie.md rename to content/vie_associative/ergonomie.md index 4b7984c..36f6d97 100644 --- a/content/vie_associative/kb/ergonomie.md +++ b/content/vie_associative/ergonomie.md @@ -1,9 +1,12 @@ -+++ -title = "Ergonomie" -description = "Comment travailler durablement et en toute sécurité" -date = 2022-04-06T12:36:35.582Z -dateCreated = 2022-04-06T12:34:35.012Z -+++ +--- +title: "Ergonomie" +description: "Comment travailler durablement et en toute sécurité" +date: 2022-04-06T12:36:35.582Z +dateCreated: 2022-04-06T12:34:35.012Z +weight: 50 +extra: + parent: 'vie_associative/kb.md' +--- # Ergonomie diff --git a/content/vie_associative/groupes_interets/_index.md b/content/vie_associative/groupes_interets.md similarity index 93% rename from content/vie_associative/groupes_interets/_index.md rename to content/vie_associative/groupes_interets.md index 6235b2b..cf70e91 100644 --- a/content/vie_associative/groupes_interets/_index.md +++ b/content/vie_associative/groupes_interets.md @@ -1,8 +1,10 @@ -+++ -title = "Groupes d'intérêts" -description = "Groupes d'intérêts" -weight = 10 -+++ +--- +title: "Groupes d'intérêts" +description: "Groupes d'intérêts" +weight: 10 +extra: + parent: 'vie_associative/_index.md' +--- # Conseil d'administration diff --git a/content/vie_associative/kb/_index.md b/content/vie_associative/kb.md similarity index 59% rename from content/vie_associative/kb/_index.md rename to content/vie_associative/kb.md index e219a50..bac644a 100644 --- a/content/vie_associative/kb/_index.md +++ b/content/vie_associative/kb.md @@ -1,8 +1,10 @@ -+++ -title = "Base de connaissance" -description = "Base de connaissance" -weight = 100 -+++ +--- +title: "Base de connaissance" +description: "Base de connaissance" +weight: 100 +extra: + parent: 'vie_associative/_index.md' +--- Une base de connaissance contient des recettes en vrac, des procédés, des retours d'expériences, etc. Son objectif est d'éviter d'avoir à passé deux fois par une phase d'apprentissage. diff --git a/content/vie_associative/kb/nouvelle_personne_ca.md b/content/vie_associative/nouvelle_personne_ca.md similarity index 66% rename from content/vie_associative/kb/nouvelle_personne_ca.md rename to content/vie_associative/nouvelle_personne_ca.md index 4fccf61..9995ca6 100644 --- a/content/vie_associative/kb/nouvelle_personne_ca.md +++ b/content/vie_associative/nouvelle_personne_ca.md @@ -1,9 +1,12 @@ -+++ -title = "Quand une personne rejoint le CA" -description = "Que faut-il faire pour l'accueillir ?" -date = 2022-03-02T09:00:00.009Z -dateCreated = 2022-03-02T08:58:55.011Z -+++ +--- +title: "Quand une personne rejoint le CA" +description: "Que faut-il faire pour l'accueillir ?" +date: 2022-03-02T09:00:00.009Z +dateCreated: 2022-03-02T08:58:55.011Z +weight: 60 +extra: + parent: 'vie_associative/kb.md' +--- # Comment accueillir une nouvelle personne au CA @@ -16,4 +19,4 @@ dateCreated = 2022-03-02T08:58:55.011Z * La former à l'utilisation de [HomeBank](http://homebank.free.fr/fr/) pour la comptabilité. Notre fichier de sauvegarde HomeBank étant stocké dans `git`, former l'administrateur⋅ice à `git`. -* S'assurer qu'elle dispose de comptes admin sur les services qui ne sont pas gérés par le [Bottin](/Technique/Developpement/Bottin). \ No newline at end of file +* S'assurer qu'elle dispose de comptes admin sur les services qui ne sont pas gérés par le [Bottin](@/infrastructures/bottin.md). diff --git a/content/vie_associative/ré-employer-urssaf.md b/content/vie_associative/ré-employer-urssaf.md new file mode 100644 index 0000000..eea9952 --- /dev/null +++ b/content/vie_associative/ré-employer-urssaf.md @@ -0,0 +1,13 @@ +--- +title: Ré-employer (URSSAF) +weight: 50 +draft: false +date: 2023-03-13 +extra: + parent: vie_associative/kb.md +--- +La DGFIP nous a fait peur : on a cru qu'on allait devoir remplir une DSN à néant tous les mois du monde, à moins de ne plus jamais employer ! La conclusion : il vallait mieux appeler l'URSSAF : + +> 3957, service gratuit + prix d'appel Depuis l'étranger au +33 9 69 36 00 57 + +Ils nous ont clôturé notre statut d'employeur. Si l'on souhaitait ré-employer des salarié⋅es, c'est ici que ça se passerait : [https://www.due.urssaf.fr/declarant/formulaireDueLibre.jsf](https://www.due.urssaf.fr/declarant/formulaireDueLibre.jsf) diff --git a/content/vie_associative/statuts/_index.md b/content/vie_associative/statuts.md similarity index 97% rename from content/vie_associative/statuts/_index.md rename to content/vie_associative/statuts.md index 0c4d8c3..ae12aec 100644 --- a/content/vie_associative/statuts/_index.md +++ b/content/vie_associative/statuts.md @@ -1,8 +1,10 @@ -+++ -title = "Statuts" -description = "Statuts de l'association" -weight = 40 -+++ +--- +title: "Statuts" +description: "Statuts de l'association" +weight: 1 +extra: + parent: 'vie_associative/_index.md' +--- # Article 1. Constitution et dénomination diff --git a/static/admin/config.yml b/static/admin/config.yml new file mode 100644 index 0000000..529588e --- /dev/null +++ b/static/admin/config.yml @@ -0,0 +1,280 @@ +backend: + name: gitea + repo: deuxfleurs/guide.deuxfleurs.fr + base_url: https://teabag.deuxfleurs.fr + api_root: https://git.deuxfleurs.fr/api/v1 + branch: main + +media_folder: 'static/img/' +site_url: https://guide.deuxfleurs.fr +display_url: https://guide.deuxfleurs.fr +locale: 'fr' + +collections: + - name: 'special' + label: 'Accueil' + editor: + preview: false + files: + - name: accueil + label: Accueil + file: 'content/_index.md' + fields: + - label: Title + name: title + widget: string + - label: Sort by + name: sort_by + widget: string + - label: Body + name: body + widget: markdown + + + - name: 'prise_en_main' + label: 'Prise en main' + description: "Les tutoriels pour se lancer" + folder: 'content/prise_en_main' + editor: + preview: false + create: true + view_filters: + - label: 'Brouillons' + field: draft + pattern: true + view_groups: + - label: 'Section' + field: 'extra.parent' + pattern: '.*' + fields: + - label: Titre menu + name: title + widget: string + - label: Titre page (description) + name: description + widget: string + - label: Poids + name: weight + default: 50 + widget: number + - label: Brouillon (ne pas publier encore) + name: draft + widget: boolean + default: false + - label: Date + name: date + widget: datetime + date_format: 'dd/MM/yyyy' # e.g. 24/12/2022 + time_format: false + format: 'yyyy-MM-dd' # e.g. 2022-12-24 + - label: Extra + name: extra + widget: object + fields: + - name: parent + label: Parent + widget: relation + collection: 'prise_en_main' + value_field: 'prise_en_main/{{filename}}.{{extension}}' + search_fields: [ 'title', 'filename', 'slug' ] + default: 'prise_en_main/_index.md' + display_fields: ['{{title}} ({{filename}})', 'filename'] + - label: Corps + name: body + widget: markdown + + - name: 'formations' + label: 'Se former' + description: 'Des ressources pour apprendre en profondeur' + folder: 'content/formations' + editor: + preview: false + create: true + view_filters: + - label: 'Brouillons' + field: draft + pattern: true + view_groups: + - label: 'Section' + field: 'extra.parent' + pattern: '.*' + fields: + - label: Titre + name: title + widget: string + - label: Poids + default: 50 + name: weight + widget: number + - label: Brouillon (ne pas publier encore) + name: draft + widget: boolean + default: false + - label: Date + name: date + widget: datetime + date_format: 'dd/MM/yyyy' # e.g. 24/12/2022 + time_format: false + format: 'yyyy-MM-dd' # e.g. 2022-12-24 + - label: Extra + name: extra + widget: object + fields: + - name: parent + label: Parent + widget: relation + collection: 'formations' + value_field: 'formations/{{filename}}.{{extension}}' + search_fields: [ 'title', 'filename', 'slug' ] + default: 'formations/_index.md' + display_fields: ['{{title}} ({{filename}})', 'filename'] + - label: Corps + name: body + widget: markdown + + - name: 'vie_associative' + label: 'Vie associative' + description: "Tout ce qui a rapport à l'organisation et l'administration de l'asso" + folder: 'content/vie_associative' + editor: + preview: false + create: true + view_filters: + - label: 'Brouillons' + field: draft + pattern: true + view_groups: + - label: 'Section' + field: 'extra.parent' + pattern: '.*' + fields: + - label: Titre + name: title + widget: string + - label: Poids + default: 50 + name: weight + widget: number + - label: Brouillon (ne pas publier encore) + name: draft + widget: boolean + default: false + - label: Date + name: date + widget: datetime + date_format: 'dd/MM/yyyy' # e.g. 24/12/2022 + time_format: false + format: 'yyyy-MM-dd' # e.g. 2022-12-24 + - label: Extra + name: extra + widget: object + fields: + - name: parent + label: Parent + widget: relation + collection: 'vie_associative' + value_field: 'vie_associative/{{filename}}.{{extension}}' + search_fields: [ 'title', 'filename', 'slug' ] + default: 'vie_associative/_index.md' + display_fields: ['{{title}} ({{filename}})', 'filename'] + - label: Corps + name: body + widget: markdown + + - name: 'infrastructures' + label: 'Infrastructures' + description: "Des informations d'intéret générale sur la technique" + folder: 'content/infrastructures' + editor: + preview: false + create: true + view_filters: + - label: 'Brouillons' + field: draft + pattern: true + view_groups: + - label: 'Section' + field: 'extra.parent' + pattern: '.*' + fields: + - label: Titre + name: title + widget: string + - label: Poids + default: 50 + name: weight + widget: number + - label: Brouillon (ne pas publier encore) + name: draft + widget: boolean + default: false + - label: Date + name: date + widget: datetime + date_format: 'dd/MM/yyyy' # e.g. 24/12/2022 + time_format: false + format: 'yyyy-MM-dd' # e.g. 2022-12-24 + - label: Extra + name: extra + widget: object + fields: + - name: parent + label: Parent + widget: relation + collection: 'infrastructures' + value_field: 'infrastructures/{{filename}}.{{extension}}' + search_fields: [ 'title', 'filename', 'slug' ] + default: 'infrastructures/_index.md' + display_fields: ['{{title}} ({{filename}})', 'filename'] + - label: Corps + name: body + widget: markdown + + - name: 'operations' + label: 'Opérations' + description: "Base de connaissance technique à destination des operateur-ices" + folder: 'content/operations' + editor: + preview: false + create: true + view_filters: + - label: 'Brouillons' + field: draft + pattern: true + view_groups: + - label: 'Section' + field: 'extra.parent' + pattern: '.*' + fields: + - label: Titre + name: title + widget: string + - label: Poids + default: 50 + name: weight + widget: number + - label: Brouillon (ne pas publier encore) + name: draft + widget: boolean + default: false + - label: Date + name: date + widget: datetime + date_format: 'dd/MM/yyyy' # e.g. 24/12/2022 + time_format: false + format: 'yyyy-MM-dd' # e.g. 2022-12-24 + - label: Extra + name: extra + widget: object + fields: + - name: parent + label: Parent + widget: relation + collection: 'operations' + value_field: 'operations/{{filename}}.{{extension}}' + search_fields: [ 'title', 'filename', 'slug' ] + default: 'operations/_index.md' + display_fields: ['{{title}} ({{filename}})', 'filename'] + - label: Corps + name: body + widget: markdown diff --git a/static/admin/index.html b/static/admin/index.html new file mode 100644 index 0000000..b914f88 --- /dev/null +++ b/static/admin/index.html @@ -0,0 +1,14 @@ + + + + + + Content Manager + + + + + + + + diff --git a/static/admin/static-cms-app.js b/static/admin/static-cms-app.js new file mode 100644 index 0000000..230c3a2 --- /dev/null +++ b/static/admin/static-cms-app.js @@ -0,0 +1,1012 @@ +/*! For license information please see static-cms-app.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.StaticCmsApp=t():e.StaticCmsApp=t()}(globalThis,(()=>(()=>{var __webpack_modules__={936:(e,t,n)=>{"use strict";var r=n(204),i=n(489);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n