Installer et configurer un noeud miroir avec Docker

Docker est une plateforme permettant de lancer certaines applications dans des conteneurs, ce qui permet une exécution plus sécurisée. pour en savoir plus

Ce document vous indique les différentes étapes pour installer un noeud miroir avec Docker. Certaines étapes sont documentées sur des pages annexes : les prérequis et la mise en place du reverse-proxy. Nous vous conseillons de prendre votre temps et de bien faire chaque étape.

Table des matières

  1. Prérequis
  2. Installation de Docker
  3. Création du dockerfile
  4. Lancement du service
  5. Vérifier le bon fonctionnement du noeud
  6. Configuration du pare-feu
  7. Configuration du reverse-proxy

Prérequis

Ce tutoriel suppose que :

Connectez-vous à votre serveur en SSH.

Installation de Docker

Nous allons commencer par installer Docker. Cette partie est basée sur la documentation Docker.

Mettre à jour le système :

sudo apt-get update ; sudo apt-get upgrade

Supprimer les paquets Docker éventuellement déjà installés :

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

Configurer les dépôts Apt de docker :

# Ajouter la clef PGP officielle de Docker:
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Ajouter le dépôt Docker à notre liste de dépôts :
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Installer les paquets :

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Vérifier l'installation en lançant l'image hello-world :

sudo docker run hello-world

Création du dockerfile

Les images Docker utilisent une série de paramètres au lancement, qu'on configure dans un fichier docker-compose. Ce fichier doit se trouver dans un dossier spécifique.

Créer le dossier et le docker-compose :

cd ~
mkdir duniter
cd duniter
nano docker-compose.yml

La commande nano a ouvert un éditeur de texte. Copiez-y la configuration suivante :

version: "3.5"

services:
  duniter-mirror:
    image: duniter/duniter-v2s-gdev-800
    restart: unless-stopped
    ports:
      # Prometheus endpoint
      - 9615:9615
      # rpc
      - 9944:9944
      # p2p
      - 30333:30333
    volumes:
      - data-mirror:/var/lib/duniter/
    environment:
      - DUNITER_CHAIN_NAME=gdev
      - DUNITER_NODE_NAME=<my-node-name>

volumes:
  data-mirror:

Remplacez <my-node-name> par le nom que vous souhaitez donner au noeud, et gdev par le réseau que vous voulez rejoindre.

Cette configuration est minimale. Elle implique que les ports 9944 et 30333 du serveur soient ouverts. Si vous souhaitez l'adapter (par exemple en modifiant des ports), reportez-vous aux variables d'environnement disponibles

Lancement du service

Pour lancer le service, placez-vous dans le dossier qui contient le docker-compose.yml et lancez la commande suivante :

docker compose up -d

Pour voir les logs en temps réel :

docker compose logs -f

Pour avoir des informations sur le conteneur :

docker container ls
CONTAINER ID   IMAGE                             COMMAND               CREATED          STATUS         PORTS                                                                                                                                 NAMES
86bf09f0bd24   duniter/duniter-v2s-gdev:latest   "docker-entrypoint"   22 seconds ago   Up 6 seconds   0.0.0.0:9615->9615/tcp, :::9616->9615/tcp, 0.0.0.0:9944->9944/tcp, :::9944->9944/tcp, 0.0.0.0:30333->30333/tcp, :::30333->30333/tcp   node_duniter-smith_1

Vérifier le bon fonctionnement du noeud

Si vous ne l'avez pas déjà fait, installez Ğcli sur votre serveur.

Puis regardez si le noeud est accessible en local :

gcli -u ws://localhost:9944 blockchain current-block

on doit obtenir :

on ws://localhost:9944
finalized block	2208389
current block	2295714

Configuration du pare-feu

Si vous ne prévoyez pas d'installer de reverse-proxy, suivez la documentation pour ouvrir les ports :

Si vous souhaitez uniquement héberger un noeud miroir, sans mettre en place le chiffrement TLS, vous pouvez vous arréter là.

Configuration du reverse-proxy

Mettre en place un reverse-proxy vous permet par exemple, d'héberger plusieurs services sur le même serveur, par exemple un noeud Ğ1 à coté d'un noeud Ğdev. Il permet également de mettre en place le chiffrement des communications par TLS.

Reportez-vous à notre documentation