[Tutoriel]: installation d'un noeud Duniter sur Raspberry Pi (sans Yunohost)


#1
  1. Préambule

Depuis quelques temps j’ai l’idée de proposer un tutoriel type “Comment construire un nœud Duniter avec un Raspberry PI”. Ce tutoriel est participatif dans le sens ou des informations complémentaires peuvent être ajouter par la communauté. Ce tutoriel abordera l’aspect “hardware”, “software”, “firewall” et “backup” du nœud.
Quand ce tutoriel sera fini, je projette d’en faire un petit fascicule qui pourrait être distribué pendant les rencontres de monnaies libres.

Nota: Peut-être que faire ce tutoriel sur le forum n’est pas forcement une bonne idée. Un wiki serai le plus approprié à mon sens.

  1. Matériel

Pour construire un nœud Duniter, il faut un Raspberry Pi. A ce jour j’ai testé sur un Raspberry Pi2 et Pi3 mais pas encore sur un Raspberry Pizero qui est le moins cher mais moins pratique à installer.

Liste (unité en €):

  • Raspberri Pi3 (ou Raspberry Pi2)
    Sites au 29/07/2017 (sans les frais de port):
    https://www.modmypi.com (38,39)
    https://thepihut.com (36,56)
    https://www.amazon.fr (39,08)

  • Une alimentation 5.1V/2.5A:
    Sites au 29/07/2017 (sans les frais de port):
    https://www.modmypi.com (version non officiel pour Raspberry: 7,19, version officiel pour Raspberry: 7,80)

  • Une carte Micro SD 16GO, classe 10:
    J’utilise depuis plusieurs années des cartes Micro SD de la marque Transcend (je n’ai pas d’actions de chez eux! :slight_smile: ) et je n’ai jamais eu pour l’instant de problème. D’autres marques de carte peuvent être utilisées mais prendre des classes 10 de préférence à partir de la liste http://elinux.org/RPi_SD_cards car certaines cartes sont incompatibles avec le Raspberry Pi.
    Sites au 29/07/2017 (sans les frais de port):
    https://www.amazon.fr (indisponible pour l’instant)

  • Un jeu de radiateurs (non nécessaire si la carte d’extension batterie est choisie avec l’option ventilateur)
    Site au 25/08/2017 (sans les frais de port):
    https://www.modmypi.com/raspberry-pi/accessories-198/heat-sinks-and-cooling/raspberry-pi-heat-sink-kit-black (4,80)

  • Un lecteur de carte Micro SD:
    Des PC, souvent des portables, ont souvent un lecteur de carte SD et les cartes Micro SD sont parfois vendues avec un adaptateur carte Micro SD/SD. Dans ce cas, le lecteur de carte Micro SD/USB devient optionnel.

  • Un clavier et une souris USB (temporaire):
    Le clavier et la souris USB sont utilisés uniquement pendant la configuration du Raspberry Pi. Ils ne seront plus nécessaires par la suite car nous nous connecterons via un autre ordinateur ou un smartphone (moins pratique) via l’interface SSH. Nous y reviendrons plus tard.

  • Un écran (temporaire):
    Avec un cordon HDMI. Comme pour le clavier et la sourie, l’écran est nécessaire uniquement pendant la configuration du Raspberry Pi. Les télévisions récentes ont au moins un connecteur HDMI et peuvent donc être utilisés pour la configuration du Raspberry Pi.

  • Un boitier (optionnel):
    Le boitier n’est pas obligatoire cependant cela permet de protéger le Raspberry Pi.
    Si j’ai le temps je proposerai un fichier pour imprimante 3D afin d’avoir un boitier personnaliser Duniter.

  • Une batterie (optionnel):
    Pour éviter que le nœud Duniter s’arrête brutalement lors d’une coupure de courant, il est possible d’utiliser une carte d’extension spécifique (“HAT”) avec une batterie intégrée: http://www.pimodulescart.com.
    Sites au 29/07/2017 (sans les frais de port):
    http://www.pimodulescart.com/shop/item.aspx?itemid=24 (27,99)
    https://www.modmypi.com (32,39)

  • Un écran de contrôle (optionnel):
    L’écran de contrôle permet de vérifier le bon fonctionnement du nœud sans avoir à se connecter au Raspberry Pi.
    L’écran proposé ici est un écran OLED 128x32 pixels de 52Pi:
    Sites au 14/08/2017 (sans les frais de port):
    https://www.modmypi.com/raspberry-pi/breakout-boards-229/52pi/52pi-0.91-128x32-oled-screen-for-raspberry-pi/?search=52pi (15.60)

Informations pouvant être affichés:

Nota:
L’utilisation de l’écran nécessite de lancer le nœud en mode web (duniter webstart).

Nota:
Pour ceux qui sont déjà familiarisés avec l’installation d’un fichier image sur une carte Micro-SD, l’utilisation d’un clavier, d’une souris et d’un écran n’est plus nécessaire (https://raspbian-france.fr/raspberry-pi-sans-ecran-sans-clavier - Merci à @vincentux pour le lien)

  1. Système d’exploitation

Il y a plusieurs façons d’installer le système d’exploitation sur la carte Micro SD.
Il existe sur internet de multiples tutoriels sur l’installation du système d’exploitation. Voici un parmi d’autre: http://www.framboise314.fr/noobs-pour-un-demarrage-plus-facile-avec-le-raspberry-pi/
Dans notre cas, choisissons Raspbian comme système.

  1. Premier démarrage

Après avoir suivi le tutoriel proposé ou un autre tutoriel:

  • Dans une fenêtre LXTerminal (icon >_ ), taper sudo reboot.Ceci est souvent nécessaire afin que le clavier AZERTY soit bien pris en compte.
  • Après le reboot, dans une fenêtre LXTerminal taper sudo raspi-config et choisir 1 Change User Password.
    Je vous conseil de changer le password par défaut (raspberry) dés que possible. La navigation se fait avec les touches TAB, les flèches et la touche espace.
  • Vous pouvez en profiter pour indiquer ou vous vous trouvez pour avoir la bonne heure: 4 Localisation Options>I2 Change Timezone
  • Pour accéder au Raspberry Pi via l’interface SSH d’un autre ordinateur, activer l’option SSH dans le menu 5 Interface Options>P2 SSH
  • Sortir de la configuration et si besoin faire un sudo reboot.
  • Après le reboot faire une mise à jour du système en tapant sudo apt-get update suivi d’un sudo apt-get upgrade (cela peut prendre du temps).


#2

Il est possible de passer ce post en mode « Wiki », alors il devient éditable par tout utilisateur de niveau 1 ou plus sur ce forum.


#3

Comment devient-on utilisateur de niveau 1 ou plus?


#4

Salut @stephane

avec ce tuto (https://raspbian-france.fr/raspberry-pi-sans-ecran-sans-clavier/)
tu n’as plus besoin ni d’écran ni de clavier et souris …


#5

Merci @vincentux
Ce n’est pas possible avec l’utilisation de NOOBS. Je ne souhaite pas faire passer par Win32DiskImager pour l’image de Raspbian car il y a un risque pour les néophytes (du moins, c’est mon avis).


a scindé ce sujet #6

6 messages ont été intégrés dans un sujet existant : [Utilisation des sigles de monnaies non libres sur le forum]


#12

Est-ce que quelqu’un a déjà fait l’essai d’installer un nœud Duniter sur un raspberry pi zero wireless?


#13

À noter qu’on peut restreindre l’édition d’un post Wiki aux utilisateurs de niveau 1, 2, 3 ou 4. Par défaut la valeur est 1.


#14

@cgeek, Thanks & best regards.


#15

Nœud Duniter sur un raspberry Pi2 avec sa batterie et son écran de contrôle:


#16

Tu affiches quoi sur cet écran ?


#17

Pour l’instant l’adresse IP, la charge CPU, la mémoire disponible, l’espace disponible sur la carte SD.
On pourrai mettre le statut du serveur du nœud (car mon nœud plante de temps en temps), le nombre de membres, etc…
Ça se programme en Python et c’est très simple à installer.


#18

Des références à ce sujet ? En prépares-tu spécifiquement pour Duniter, comme ce que tu viens d’évoquer ? Je suis intéressé.


#19

Oui, ça fera partie d’une option du tutoriel (si j’arrive à avancer rapidement comme je le souhaiterai). Mais si quelqu’un veux le faire, aucun problème! :slight_smile:

Hardware: https://www.modmypi.com/raspberry-pi/breakout-boards-229/52pi/52pi-0.91-128x32-oled-screen-for-raspberry-pi/?search=52pi

Software: https://blog.jokielowie.com/en/2016/03/wyswietlacz-oled-ssd1306-i-raspberry-pi/


#21

Je crois que tu voulais avoir accès aux informations disponibles pour l’interface graphique de Duniter.

Tu les trouveras à l’adresse http://localhost:9220 (adresse par défaut), puis pour connaître l’ensemble des adresses disponibles il faut lire juste un peu de code :

https://github.com/duniter/duniter-ui/blob/master/server/lib/routes.js#L13-L45

La plupart des URLs sont des HTTP GET, donc assez simples à consulter.

Par exemple, si Duniter Desktop est lancé, tu peux accéder à http://localhost:9220/webmin/summary


#22

Merci. C’est tout à fait ce que je cherchais


#23

Voici un premier essai (j’ai pixelisé l’adresse IP du Raspberry):


#24

Excellente initiative !
Serait-ce possible d’avoir un petit supplément indiquant comment allouer dynamiquement la bande passante au nœud ?
Autrement pas besoin de dissipateur thermique ?
Merci d’avance.


Allocation dynamique de bande passante pour un nœud Duniter
#25

Je ne sais pas si cela est possible.
Dans Duniter il est possible de régler la charge CPU et par conséquence agir sur la température du CPU.
Néanmoins, je conseille de toujours mettre un radiateur ou un min-ventilateur.
Pour connaitre la température du CPU, il y a la commande /opt/vc/bin/vcgencmd measure_temp

Edit: j’ai ajouté les radiateurs dans le tutoriel.


#26

salut stephane,

sais-tu si ce reglage de charge est accessible de maniere dynamique ou c’est au lancement de l’application ?
Je pense au fait de pouvoir réguler ce traitement en fonction de la temperature.

Est ce que tu peux confirmer sous le RPI si la temperature est accessible directement via le systeme de fichier :

/sys/class/thermal/thermal_zone[0-*]
il y a de la doc ici :
https://www.kernel.org/doc/Documentation/thermal/sysfs-api.txt
(faire une recherche sur la page avec l’expression /sys/class/)