Infrastructure Monero auto-hébergée

🧭 Présentation

Cette stack Monero permet d'héberger un noeud complet, de miner via P2Pool, et de faire tourner XMRig optimisé pour ton CPU. Elle est contenue dans Docker pour être facile à maintenir, à déployer, et à isoler du reste du système.

🧱 Architecture

  • monerod : Nœud Monero complet
  • p2pool : Minage décentralisé solo
  • xmrig : Mineur CPU optimisé
  • Docker : Conteneurisation de chaque service

💡 Pourquoi faire ?

Monero est une cryptomonnaie axée sur la confidentialité, où toutes les transactions sont chiffrées par défaut. En hébergeant ta propre stack, tu gardes le contrôle total sur ta synchronisation, ton minage et tes connexions, sans dépendre de services tiers.

Grâce à son algorithme de minage RandomX, Monero reste accessible au minage sur CPU, même si les performances peuvent varier fortement selon l’architecture. Ce projet est donc adapté à des profils techniques souhaitant contribuer au réseau, sécuriser leurs transactions, ou simplement apprendre à auto-héberger un système complet.

Illustration de la stack Monero

⚙️ Mise en place

Voici comment configurer chaque élément de la stack.

docker-compose.yml

Utilise un fichier docker-compose.yml pour gérer les trois services :monerod, p2pool et xmrig.

Voici un exemple minimaliste :


version: '3.7'
  services:
    monerod:
      image: monero:latest
      ports:
        - "18081:18081"
        - "18083:18083"
      volumes:
        - ./data/monerod:/home/monero/.bitmonero
      command: --non-interactive --restricted-rpc --rpc-bind-ip=0.0.0.0
    p2pool:
      image: p2pool/p2pool:latest
      ports:
        - "3333:3333"
      volumes:
        - ./data/p2pool:/data
      depends_on:
        - monerod
    xmrig:
      image: xmrig/xmrig:latest
      command: ["--url", "p2pool:3333", "--user", "wallet_address"]

Volumes & persistance

Les volumes Docker garantissent la persistance de la blockchain, des fichiers wallet et des logs. Place-les dans un dossier versionné ou sauvegardé pour éviter toute perte de données en cas de mise à jour ou plantage.

Configuration réseau

Expose les bons ports dans ton `docker-compose.yml` ou dans Traefik :

  • 18081 : RPC public de monerod
  • 18083 : RPC Wallet (optionnel mais utile en local)
  • 3333 : Port P2Pool pour XMRig

XMRig optimisé

Pour de meilleures performances, compile XMRig directement sur la machine cible avec :

cmake -DWITH_HWLOC=ON -DHWLOC_DIR=/path/to/hwloc -DCMAKE_BUILD_TYPE=Release -DXMRIG_DEPS=scripts/deps -Bbuild -H. -march=native

Sinon, utilise une image Docker comme xmrig/xmrig:latest, moins performante mais plus rapide à déployer.

Connexion wallet

Si ton nœud est accessible depuis l’extérieur (via Traefik et HTTPS), tu peux le connecter à Cake Wallet ou Monerujo en ajoutant un nœud personnalisé :

  • Adresse : https://monero.monsite.fr
  • Port : 443 (grâce au reverse proxy)
  • Type : Nœud distant personnalisé (custom node)