diff --git a/content/wiki/doc-v2/0_docker-kesako.md b/content/wiki/doc-v2/0_docker-kesako.md new file mode 100644 index 0000000000000000000000000000000000000000..71c3d9d46ad255870fb6af367fcb8a44f564c950 --- /dev/null +++ b/content/wiki/doc-v2/0_docker-kesako.md @@ -0,0 +1,150 @@ ++++ +title="Docker ? Kesako" +# date = 2024-06-28 +weight = 1 +sort_by = "weight" +insert_anchor_links = "right" + +# [taxonomies] +# authors = ["JossRendall",] ++++ + +{% note(type="warning", markdown="true") %} +**Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs +{% end %} + + +# Docker ? Kézako ? + +[TOC] + +Docker est une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. +Nous n’allons pas vous donner une formation complète sur Docker mais des éléments de compréhension de cet outil et de ses bases afin de mieux le comprendre. + +Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n’importe quel serveur. Il ne s’agit pas de virtualisation, mais de conteneurisation, une forme plus légère qui s'appuie sur certaines parties de la machine hôte pour son fonctionnement. + +Cette approche permet d’accroître la flexibilité et la portabilité d’exécution d’une application, laquelle va pouvoir tourner de façon fiable et prévisible sur une grande variété de machines hôtes, que ce soit sur la machine locale, un cloud privé ou public, une machine nue, etc. + +## La notion de conteneur Docker + +L’objectif d’un conteneur est le même que pour un serveur dédié virtuel : héberger des services sur un même serveur physique tout en les isolant les uns des autres. + +Un conteneur est cependant moins figé qu’une machine virtuelle en matière de taille de disque et de ressources allouées. + +Un conteneur permet d’isoler chaque service : le serveur web, la base de données, des applications pouvant être exécutées de façon indépendante dans leur conteneur dédié, contenant uniquement les dépendances nécessaires. Chaque conteneur peut être relié aux autres par des réseaux virtuels. + +Il est possible de monter des volumes de disque de la machine hôte dans un conteneur. Si aucun processus n’est démarré dans le conteneur, alors celui-ci s’arrête. + +On parle parfois de virtualisation d’OS : contrairement à la virtualisation qui émule par logiciel différentes machines sur une machine physique, la conteneurisation émule différents OS sur un seul OS. + +## Liste des éléments principaux utilisés par un conteneur + +### Image + +Qu’est-ce qu’une image Docker ? + +Les images Docker sont bien plus que de simples paquets logiciels. + +Imaginez-les comme des boîtes magiques qui renferment tout ce dont une application a besoin pour fonctionner, du code source aux dépendances, le tout encapsulé dans un ensemble léger et autonome. Ces images servent de fondation à la technologie de conteneurisation, permettant aux développeurs de créer des environnements d’exécution cohérents, indépendamment des variations du système hôte et donc elles offrent une solution élégante aux défis de la gestion des dépendances logicielles et de la portabilité des applications. + +Dans notre exploration de l’univers Docker, il est essentiel de comprendre cette distinction fondamentale. + +Une image est un package qui contient tout ce dont une application a besoin pour fonctionner, tandis qu’un conteneur est une instance en cours d’exécution de cette image, offrant une isolation et une portabilité. + +Le processus d’obtention d’images Docker depuis un référentiel, une étape cruciale dans le déploiement et la gestion d’applications conteneurisées. +Les référentiels Docker, tels que Docker Hub, abritent un éventail d’images prêtes à l’emploi, couvrant tout, des serveurs web aux bases de données. + +Lien vers la source officielle des images devant être utilisées pour faire fonctionner La Monnaie Libre : + +[https://hub.docker.com/u/duniter](https://hub.docker.com/u/duniter) + +Lien vers le « repositorie » de Duniter v2 utilisant la Blockchain Gdev : + +[https://hub.docker.com/r/duniter/duniter-v2s-gdev/tags](https://hub.docker.com/r/duniter/duniter-v2s-gdev/tags) + +### Volume + +Il est essentiel de comprendre que les données stockées dans un conteneur Docker peuvent être éphémères. + +Un conteneur peut être stoppé, supprimé, ou redémarré à tout moment, emportant avec lui les données qu’il contient. Cela signifie que les bases de données et les applications avec état nécessitent une attention particulière. Si nous ne prenons pas les mesures appropriées, ces données disparaîtront à chaque redémarrage ou suppression du conteneur. + +Grâce aux volumes gérés par Docker, les données sont stockées dans une partie du système de fichiers hôte, généralement sous « /var/lib/docker/volumes/ » sous Linux, assurant ainsi leur persistance après la suppression du conteneur. + +En termes simples, un volume Docker est un répertoire ou un espace de stockage dédié qui peut être partagé entre les conteneurs et persiste même lorsque le conteneur associé est arrêté ou supprimé. + +Cette fonctionnalité fait des volumes un outil essentiel pour la gestion des données dans un environnement Docker. + +### Réseaux docker + +Imaginez un monde où vos applications s’exécutent dans des conteneurs isolés, comme des îles dans un archipel. +Chaque île est autonome, avec ses propres ressources et son propre environnement. Mais que faire si vous souhaitez que vos applications communiquent entre elles ? C’est là que les réseaux Docker entrent en jeu. + +Les réseaux Docker fournissent un moyen pour les conteneurs de communiquer entre eux, que ce soit sur une même machine hôte ou sur des machines hôtes différentes dans un environnement distribué. Ces réseaux permettent d’isoler les communications entre les conteneurs, offrant ainsi une couche de sécurité supplémentaire. Autrement ils sont comme des ponts qui relient vos îles conteneurisées. + +Ils permettent aux conteneurs de communiquer de manière transparente, comme s’ils étaient sur le même réseau physique. + +Les réseaux Docker ont révolutionné la façon dont nous gérons les conteneurs. Ils ont rendu la communication entre conteneurs simple, efficace et sécurisée. + +Parmi les problèmes que les réseaux Docker résolvent : +- **Isolation** : Les conteneurs sont isolés par défaut, ce qui signifie qu’ils ne peuvent pas communiquer entre eux sans configuration supplémentaire. +- **Connectivité** : Ils permettent aux conteneurs de communiquer de manière transparente, comme s’ils étaient sur le même réseau physique. +- **Sécurité** : Ils peuvent être segmentés pour limiter l’accès aux ressources et protéger vos applications contre les attaques. +- **Simplicité** : Ils sont faciles à configurer et à gérer, ce qui vous permet de gagner du temps et de vous concentrer sur vos applications. + +En résumé, les réseaux Docker sont un élément essentiel de la technologie des conteneurs. + +Ils permettent de connecter vos conteneurs, ce qui vous permet de créer des applications distribuées plus puissantes et plus flexibles. + +### Fichier compose + +Docker Compose offre une solution simple et efficace pour orchestrer et gérer les applications conteneurisées. + +Il s’agit d’une extension de Docker qui utilise des fichiers de configuration YAML, généralement nommés « docker-compose.yml », pour définir les services, les réseaux, les volumes et d’autres ressources indispensables à une application. + +La structure d’un fichier compose est très importante et doit être respectée afin que celui-ci soit compris par Docker. + +Ci-après, un exemple de format YAML, pour docker-compose, destiné à créer un conteneur faisant tourner un nœud miroir. + +```yml +version: "3.5" + +services: + duniter-v2s-mirror: + image: duniter/duniter-v2s-gdev:latest + container_name: duniter-v2s-mirror + restart: unless-stopped + ports: + # Prometheus endpoint + - 9615:9615 + # rpc via websocket + - 9944:9944 + # p2p + - 30333:30333 + volumes: + - data-mirror:/var/lib/duniter/ + environment: + - DUNITER_CHAIN_NAME=gdev + - DUNITER_NODE_NAME=Toto-Gdev-Mirror + networks: + - npm-nw + +volumes: + data-mirror: + +networks: + npm-nw: + external: true +``` +Grâce à cet exemple, nous pouvons remarquer qu’il y a plusieurs sections principales dans le fichier. + +- **version** : Indique la version du format de fichier Docker Compose utilisée. +- **services** : Définis les services qui composent l’application. Chaque service est défini par un nom et une configuration. +- **image** : Définis l’image qui sera utilisée par le conteneur +- **ports** : Définis les ports qui seront utilisés par le conteneur +- **volumes** : Définis les volumes de données persistants utilisés par les services. +- **environment** : Définis les variables et leurs valeurs utilisées par le conteneur. +- **networks** : Définis les réseaux utilisés par les services. + +## Conclusion + +Avec les éléments décrits ci-dessus, vous avez maintenant de quoi mieux comprendre l'environnement Docker et où appliquer les réglages qui vous seront demandés pour faire tourner un Noeud Duniter. diff --git a/content/wiki/doc-v2/1b_NoeudMirroir_YunoHost.md b/content/wiki/doc-v2/1b_NoeudMirroir_YunoHost.md new file mode 100644 index 0000000000000000000000000000000000000000..b6b7097e4188a62ddfb7f02c94e9ba69d5e26449 --- /dev/null +++ b/content/wiki/doc-v2/1b_NoeudMirroir_YunoHost.md @@ -0,0 +1,43 @@ ++++ +title="Duniter Miroir YunoHost" + +# date = 2024-06-28 + +weight = 10 +sort_by = "weight" +insert_anchor_links = "right" ++++ + +# Installation d'un Noeud Mirroir sur YunoHost + +{% note(type="warning", markdown="true") %} +**Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs +{% end %} + +:::spoiler test + +::: + +> Source de [Bgallois](https://forum.duniter.org/t/paquet-yunohost-pour-duniter/12326) + +Pour l'instant le package YunoHost n'est pas disponible dans le catalogue YunoHost, il faut l'installer en manuelle avec cette ligne de commande : + +``` +yunohost app install https://git.duniter.org/bgallois/duniter-v2s_ynh +``` + +Vu que le package n'est pas encore validé, vous aurez un message d'alerte qui vous demandera si vous êtes sur de vouloir effectuer cette installation : + +> DANGER! This app is not part of YunoHost's app catalog. Installing third-party apps may compromise the inte grity and security of your system. You should probably NOT install it unless you know what you are doing. N O SUPPORT will be provided if this app doesn't work or breaks your system… If you are willing to take that risk anyway, type 'Yes, I understand': + +``` +Yes, I understand +``` + +> ========== This is a dummy disclaimer to display prior to the install ========== WARNING: You should check the app notifications above before continuing, there might be important stuff to know. \[Press enter to continue\]: + +::: warn +L’installation de Duniter-V2 sur un serveur YunoHost qui fait déjà tourner un Noeud Duniter-V1 n’est pas possible. Vous aurez un beau message d’erreur : +**"Error: duniter is already installed"** + +::: \ No newline at end of file diff --git a/content/wiki/doc-v2/_index.md b/content/wiki/doc-v2/_index.md index b0dd6836103873df8d48580b983c14684f62518b..4aa598b51632cd6692e91c3f99dc846c655fbb2d 100644 --- a/content/wiki/doc-v2/_index.md +++ b/content/wiki/doc-v2/_index.md @@ -13,10 +13,13 @@ insert_anchor_links = "right" **Document de travail.** Ce document n'a pas été validé et ne doit pas être diffusé en dehors du groupe des forgerons et des développeurs {% end %} +[TOC] # Duniter v2 -Duniter v2 est une réécriture de Duniter v1 avec le FrameWork Substrat avec l’objectif de migrer la monnaie Ğ1. Ce nouveau logiciel est actuellement en cours de développement et doit être testé. Vous trouverez ici, la documentation utilisateur extraite du dépôt git de Duniter ainsi que des explications générales. +Duniter v2 est une réécriture de Duniter v1 avec le FrameWork Substrat avec l’objectif de migrer la monnaie Ğ1. +Ce nouveau logiciel est actuellement en cours de développement et doit être testé. +Vous trouverez ici, la documentation utilisateur extraite du dépôt Git de Duniter ainsi que des explications générales. - Git Repository [https://git.duniter.org/nodes/rust/duniter-v2s/](https://git.duniter.org/nodes/rust/duniter-v2s/) @@ -24,8 +27,10 @@ Duniter v2 est une réécriture de Duniter v1 avec le FrameWork Substrat avec l - Forum Duniter Section Protocole [https://forum.duniter.org/c/protocols/g1v2proto/](https://forum.duniter.org/c/protocols/g1v2proto/60) - Forum Duniter Section Support [https://forum.duniter.org/c/support/duniter-v2/83](https://forum.duniter.org/c/support/duniter-v2/83) -Vous trouverez ci-dessous tout le nécessaire pour commencer à rejoindre le réseau Gdev, Blockchain provisoire, servant de support au développement et à l'adaptation de tous les clients (CésiumV2, Ginkgo, G1 SuperBot). +Vous trouverez ci-dessous tout le nécessaire pour commencer à rejoindre le réseau Gdev, Blockchain provisoire, servant de support au développement et à l'adaptation de tous les clients (CésiumV2, Ginkgo, G1 SuperBot, etc...). + **Ce réseau Gdev n'est pas le réseau définitif**. + Si vous voyez qu’il manque quelque chose, s’il vous plaît, venez dans la section de soutien du [forum Duniter](https://forum.duniter.org/), cela nous aidera à améliorer les tutoriels et vous apporterez une contribution précieuse! ## Pré-requis techniques @@ -40,12 +45,14 @@ A la date du 28 juin 2024, suivant les informations disponibles et obtenues aupr [Docker](https://docker.com/) est une plateforme permettant de lancer certaines applications dans des conteneurs logiciels lancée en 2013. Nous utiliserons sa version serveur, open source, nommée [Docker Engine](https://docs.docker.com/engine/install/). -Nous n’allons pas vous donner une formation complète sur Docker mais des éléments de compréhension de cet outil et de ses bases destinés aux débutants afin de mieux le comprendre. Pour faciliter son utilisation, nous conseillons d'ajouter à Docker le conteneur "[Portainer](https://www.portainer.io/install)" qui donne accès à une interface graphique (GUI). +Pour faciliter son utilisation, nous conseillons d'ajouter à Docker le conteneur "[Portainer](https://www.portainer.io/install)" qui donne accès à une interface graphique (GUI). Si vous choisissez un environnement Docker différent, vous devrez : - adapter, par vous même, les configurations - vous passer, éventuellement, d'un support de la commission forgeron destinée à accompagner les nouveaux arrivants... mais on fera le maximum quand même !!! +Nous n’allons pas vous donner une formation complète sur Docker mais des éléments de compréhension de cet outil et de ses bases destinés aux débutants afin de mieux le comprendre. **_[Suivre ce lien](@/wiki/doc-v2/0_docker-kesako.md)_** + {% note(type="warning", markdown="true") %} **Remarque importante :** @@ -58,29 +65,29 @@ Lors du lancement officiel et définitif de la version finale de Duniter v2, il ## Monter un Noeud Mirroir -Un nœud miroir est un nœud auquel le Junisste se connecte grâce à son logiciel client via l’API RPC. +Un nœud miroir est un nœud auquel le Juniste se connecte grâce à son logiciel client via l’API RPC. L’exécution d’un nœud miroir Duniter est utile pour la redondance du réseau, elle permet de partager la charge entre différents serveurs et d’augmenter la résilience aux pannes. C’est également la première étape technique à maitriser avec aisance avant de vouloir devenir Smith et forger des blocs. -- [créer un nœud miroir](@/wiki/doc-v2/installer/tmp.md) pour fournir un point supplémentaire à la blockchain. -- [configurer son nœud (docker)](@/wiki/doc-v2/installer/tmp.md) (Descrition des variables d'environnement) -- [inspecter son nœud grâce à Polkadotjs](@/wiki/doc-v2/installer/tmp.md) pour apprendre à quoi il ressemble -- [lancer un "Indexer"](@/wiki/doc-v2/installer/tmp.md) pour fournir un point de terminaison pour l'indexation -- [lancer un "Datapod"](@/wiki/doc-v2/installer/tmp.md) pour stocker hors chain des données +- [créer un nœud miroir](@/wiki/doc-v2/tmp.md) pour fournir un point supplémentaire à la blockchain. +- [configurer son nœud (docker)](@/wiki/doc-v2/tmp.md) (Descrition des variables d'environnement) +- [inspecter son nœud grâce à Polkadotjs](@/wiki/doc-v2/tmp.md) pour apprendre à quoi il ressemble +- [lancer un "Indexer"](@/wiki/doc-v2/tmp.md) pour fournir un point de terminaison pour l'indexation +- [lancer un "Datapod"](@/wiki/doc-v2/tmp.md) pour stocker hors chain des données Un nœud miroir en mode *archive* est nécessaire pour lancer un *indexer*. ## Monter un Noeud Forgeron -Dans le [vocabulaire de Duniter](@/wiki/doc-v2/glossaire.md), le terme "smith" est attribué à une personne autorisée à ajouter des blocs dans la blockchain. Contrairement à Duniter v1, le rôle de forgeron est principalement technique, la gouvernance étant effectuée *sur la chaîne*. Les compétences nécessaires pour devenir forgeron sont moins techniques qu'humaines. Un forgeron doit : +Dans le [vocabulaire de Duniter](@/wiki/doc-v2/glossaire.md), le terme "smith" est attribué à une personne autorisée à ajouter des blocs dans la blockchain. Contrairement à Duniter v1, le rôle de forgeron est principalement technique, la gouvernance étant effectuée *sur la chaîne*. Les compétences nécessaires pour devenir forgeron sont moins techniques qu'humaines. +Un forgeron doit : - suivre de bonnes pratiques de sécurité pour ses clés et son nœud - être capable de réagir rapidement en cas de défaillance (ou de mise hors ligne) - contribuer au réseau de confiance des smiths en invitant d'autres smiths à se joindre à lui. Voici les étapes à suivre pour devenir "smith": - -1. [créer un nœud forgeron](@/wiki/doc-v2/installer/tmp.md) (un nœud autorisée à forger des blocs) -1. [devenir "Smith"](@/wiki/doc-v2/installer/tmp.md) (devenir un membre de la [Toile de Confiance Smith](@/wiki/doc-v2/tmp.md)) -1. [créer un Oracle de Distance](@/wiki/doc-v2/installer/tmp.md) (qui calcul et vérifi les règles de distance de la toile de confiance) \ No newline at end of file +1. [créer un nœud forgeron](@/wiki/doc-v2/tmp.md) (un nœud autorisée à forger des blocs) +1. [devenir "Smith"](@/wiki/doc-v2/tmp.md) (devenir un membre de la [Toile de Confiance Smith](@/wiki/doc-v2/tmp.md)) +1. [créer un Oracle de Distance](@/wiki/doc-v2/tmp.md) (qui calcul et vérifie les règles de distance de la toile de confiance) \ No newline at end of file