Configuration du serveur Duniter avec proxy Nginx

J’ai eu beaucoup de mal à mettre en place un noeud Duniter public.

L’interface web semble un peu buggée et demande de renseigner des IP réseau publiques qui n’ont rien à faire ici.

Voici la solution pour mettre en place un noeud duniter exposé au public à travers Nginx avec chiffrement SSL des communications.

Je pars du principe que vous avez installé le paquet Debian. Le service duniter n’est pas démarré.

Pour installer ses clés

# sudo -u duniter duniter wizard key

Pour configurer la connexion réseau en écoute sur les ports locaux 10901 et 20901:

# sudo -u duniter duniter wizard network
 ? IPv4 interface lo 127.0.0.1
 ? IPv6 interface None
 ? Port 10901
 ? Remote IPv4 lo 127.0.0.1
 ? Remote port 10901
 ? Does this server has a DNS name? Yes
 ? DNS name: duniter.jesuislibre.net

#sudo -u duniter duniter config --ws2p-public

#sudo -u duniter duniter config --ws2p-noupnp --ws2p-port 20901 --ws2p-host 127.0.0.1 --ws2p-remote-port 443 --ws2p-remote-host duniter.jesuislibre.net

#sudo -u duniter duniter config --ws2p-remote-path /ws2

Pour synchroniser le noeud avec le contenu actuel de la blockchain (attention ca va prendre 20 minutes) :

# sudo -u duniter duniter sync g1.duniter.org

On passe au fichier de configuration Nginx pour écouter en public sur le port 443 avec chiffrement SSL :

map $http_upgrade $connection_upgrade {
 default upgrade;
 '' close;
}

server {
    listen                    443 ssl http2;
    listen                    [::]:443 ssl http2;
    server_name               duniter.jesuislibre.net;

    ssl_certificate           /etc/letsencrypt/live/jesuislibre.net/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/jesuislibre.net/privkey.pem;
    ssl_trusted_certificate   /etc/letsencrypt/live/jesuislibre.net/chain.pem;
    include snippets/ssltuning.conf;
    include snippets/headers.conf;

    location / {
        proxy_pass http://127.0.0.1:10901;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    location /ws2p {
                proxy_pass http://127.0.0.1:20901;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
    }
}

Pour démarrer les services, nginx et duniter sont gérés par systemd sous Debian. Donc vous savez quoi faire (systemctl start, reload, enable tout ca)

Sources : CrazyPanda et Normandie-libre

7 réactions sur “ Configuration du serveur Duniter avec proxy Nginx ”

  1. vincentux

    Merci pour ce tuto ;)
    tu peux ajouter l’option –store-txs pour synchroniser aussi les transactions.

  2. Tuxicoman

    ok. Il existe une doc sur toutes les options qui sont dans le fichier de config de Duniter?

  3. guenoel

    Salut.
    J’ai exactement cette config nginx qui fonctionnait sur Debian 9 mais il semble que j’ai un souci maintenant.
    Je suis à présent sur Debian 11, nginx 1.18.0 et Duniter 1.8.7 je suis synchro mais quand je clique sur mon noeud dans cesium ca affiche: « Récupération des informations du noeud impossible » et je suis affiché accès privé (alors que non)
    Y a t il des mise à jour de la conf à prévoir en 2023 ?

  4. guenoel

    Ca fonctionne toujours cette conf nginx. Le probleme etait la configuration reseau de duniter

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.