From 9133b48b8e7f5dadf058252430adc7e9b2a177b2 Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Mon, 6 Jun 2022 20:12:35 +0200
Subject: [PATCH] doc(docker): rework docker documentation

---
 README.md                                     |  2 +-
 docker/compose/gdev-mirror.docker-compose.yml |  2 +-
 .../compose/gdev-validator.docker-compose.yml | 34 ++++++++-----------
 docs/user/{mirror.md => rpc.md}               | 14 +++++---
 docs/user/smith.md                            | 15 +++++---
 5 files changed, 36 insertions(+), 31 deletions(-)
 rename docs/user/{mirror.md => rpc.md} (75%)

diff --git a/README.md b/README.md
index 017486377..fbaee87c9 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ Minimal command to deploy a **temporary** mirror peer:
 docker run -it -p9944:9944 -e DUNITER_CHAIN_NAME=gdev duniter/duniter-v2s:v0.1.0 --tmp --execution=Wasm
 ```
 
-To go further, read [How to deploy a permanent mirror node on ÄžDev network](./docs/user/mirror.md).
+To go further, read [How to deploy a permanent mirror node on ÄžDev network](./docs/user/rpc.md).
 
 ### Create your local blockchain
 
diff --git a/docker/compose/gdev-mirror.docker-compose.yml b/docker/compose/gdev-mirror.docker-compose.yml
index ed881978d..c2c295b61 100644
--- a/docker/compose/gdev-mirror.docker-compose.yml
+++ b/docker/compose/gdev-mirror.docker-compose.yml
@@ -28,7 +28,7 @@ services:
       #
       # The PEER_ID should be replaced by the output of this command:
       # docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/  duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node.key
-      - "/dns/SERVER_DOMAIN/tcp/30333/p2p/PEER_ID"
+      - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}"
       - "--rpc-cors"
       - "all"
 
diff --git a/docker/compose/gdev-validator.docker-compose.yml b/docker/compose/gdev-validator.docker-compose.yml
index e9f3b57bc..0a3c07bb4 100644
--- a/docker/compose/gdev-validator.docker-compose.yml
+++ b/docker/compose/gdev-validator.docker-compose.yml
@@ -14,22 +14,20 @@ services:
       # p2p
       - 30333:30333
     volumes:
-      - ./duniter-rpc/:/var/lib/duniter/
+      - ./node.key:/etc/duniter/validator-node.key
+      - duniter-rpc-data:/var/lib/duniter/
     environment:
       - DUNITER_CHAIN_NAME=gdev
     command:
-      - "--execution"
-      - "Wasm"
-      - "--node-key-file"
-      - "/var/lib/duniter/node-key"
+      - "--execution=Wasm"
+      - "--node-key-file=/var/lib/duniter/node.key"
       - "--public-addr"
-      # SERVER_IP should be replaced by the public IP of your server
+      # SERVER_DOMAIN should be replaced by a domain name that point on your server
       #
       # The PEER_ID should be replaced by the output of this command:
       # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node-key.txt
-      - "/ip4/SERVER_IP/tcp/30333/p2p/PEER_ID"
-      - "--rpc-cors"
-      - "all"
+      - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}"
+      - "--rpc-cors=all"
 
   duniter-validator:
     image: duniter/duniter-v2s:v0.1.0
@@ -44,21 +42,19 @@ services:
       # p2p
       - 30334:30333
     volumes:
-      - ./duniter-validator/:/var/lib/duniter/
+      - ./node.key:/etc/duniter/validator-node.key
+      - duniter-validator-data:/var/lib/duniter/
     environment:
       - DUNITER_CHAIN_NAME=gdev
     command:
-      - "--execution"
-      - "Wasm"
-      - "--node-key-file"
-      - "/var/lib/duniter/node-key"
+      - "--execution=Wasm"
+      - "--node-key-file=/var/lib/duniter/node.key"
       - "--public-addr"
-      # SERVER_IP should be replaced by the public IP of your server
+      # SERVER_DOMAIN should be replaced by a domain name that point on your server
       #
       # The PEER_ID should be replaced by the output of this command:
-      # docker run --rm -it --entrypoint duniter -v $PWD/duniter-validator/:/var/lib/duniter/ duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node-key.txt
-      - "/ip4/SERVER_IP/tcp/30334/p2p/PEER_ID"
+      # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node-key.txt
+      - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${VALIDATOR_PEER_ID?VALIDATOR_PEER_ID should be set}"
+      - "--rpc-cors=all"
       - "--rpc-methods=Unsafe"
       - "--validator"
-      - "--rpc-cors"
-      - "all"
diff --git a/docs/user/mirror.md b/docs/user/rpc.md
similarity index 75%
rename from docs/user/mirror.md
rename to docs/user/rpc.md
index 0e3ecccd6..4ea4a2210 100644
--- a/docs/user/mirror.md
+++ b/docs/user/rpc.md
@@ -1,15 +1,19 @@
-# How to deploy a permanent mirror node on ÄžDev network
+# How to deploy a permanent rpc node on ÄžDev network
 
 ## Publish a node
 
 ### Duniter part
+
 - Add this docker-compose on your server :
-[docker/compose/gdev-mirror.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-mirror.docker-compose.yml)
-- Edit lines 26: `"/dns/SERVER_DOMAIN/tcp/30333/p2p/PEER_ID"`
-  with your domain name an the PEER_ID you get using te command in comment.
+[docker/compose/gdev-rpc.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-rpc.docker-compose.yml)
+- Create a `.env` file that defime environment variables `SERVER_DOMAIN` and `PEER_ID`:
+  - `SERVER_DOMAIN`: a domain name that point on your server
+  - `PEER_ID`: Your node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/  duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node.key`
 - If you have write access errors run in docker-compose.yml folder : `chmod o+rwX -R .`
 - `docker-compose up -d` to start your node
+
 ### Reverse-proxy part (with Nginx)
+
 In `/etc/nginx/sites-enabled/gdev.YOUR_DOMAIN` put (you can probably do simpler) :
 ```
 server {
@@ -55,7 +59,7 @@ and replace `YOUR_DOMAIN` by your domain each time.
   if you don't already have a wildcard certificate.
 - `service nginx reload`
 
-Your node is now online as a mirror node. It's fully capable for wallet use.
+Your node is now online as a rpc node. It's fully capable for wallet use.
 
 To go further, read [How to become a (black)smith](./smith.md)
 
diff --git a/docs/user/smith.md b/docs/user/smith.md
index d29f3d29d..5a671923a 100644
--- a/docs/user/smith.md
+++ b/docs/user/smith.md
@@ -3,14 +3,19 @@
 ## Publish a node
 
 ### Duniter part
+
 - Add this docker-compose on your server :
 [docker/compose/gdev-validator.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-validator.docker-compose.yml)
-- Edit lines 26 and 51 : `/ip4/SERVER_IP/tcp/30333/p2p/PEER_ID`
-  with your IP or domain an the PEER_ID you get using te command in comment.
+- Create a `.env` file that define environment variables `SERVER_DOMAIN`, `PEER_ID` and `VALIDATOR_PEER_ID`:
+  - `SERVER_DOMAIN`: a domain name that point on your server
+  - `PEER_ID`: Your rpc node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint -v $PWD:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/rpc-node.key`
+  - `VALIDATOR_PEER_ID`: Your validator node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint -v $PWD:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/validator-node.key`
   Note: duniter-rpc PEER_ID and duniter-validator PEER_ID isn't the same.
 - If you have write access errors run in docker-compose.yml folder : `chmod o+rwX -R .`
 - `docker-compose up -d` to start your node
+
 ### Reverse-proxy part (with Nginx)
+
 In `/etc/nginx/sites-enabled/gdev.YOUR_DOMAIN` put (you can probably do simpler) :
 ```
 server {
@@ -56,9 +61,10 @@ and replace `YOUR_DOMAIN` by your domain each time.
   if you don't already have a wildcard certificate.
 - `service nginx reload`
 
-Your node is now online as a mirror node. It's fully capable for wallet use.
+Your node is now online as a rpc node. It's fully capable for wallet use.
 
 ## Join the Smith WoT
+
 - add polkadot webextension to be able to authentificate with your account.
 - Go to [any node with polkadotjs ui](https://gdev.1000i100.fr/dev-ui/?rpc=wss://gdev.1000i100.fr/ws)
 - Ask to join Smith WoT (you need to already be in the main WoT)
@@ -70,8 +76,6 @@ Your node is now online as a mirror node. It's fully capable for wallet use.
 
 When you have at least 3 certifications, your'in !
 
-
-
 ## Validate blocks (blacksmith work)
 
 - Generate and publish your session keys
@@ -85,6 +89,7 @@ When you have at least 3 certifications, your'in !
   - In the UI : developer > extrinsics > YOUR_SMITH_ACCOUNT > authorityMembers > goOnline()
 
 If you're not able to monitor, reboot, act on your node, goOffline() to avoid penality to the blockchain and to you.
+
 ## Upgrade your node with minimal interruption
 
 1. Modify docker image tag on your compose file
-- 
GitLab