diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000000000000000000000000000000000000..32567e667980f2e374b1fbd8fdea7fd2d3ff838c --- /dev/null +++ b/docker/README.md @@ -0,0 +1,81 @@ +# duniter/duniter-v2s + +Duniter is the software that supports the [Äž1 libre-currency blockchain](https://duniter.org/). + +[Duniter v2s](https://git.duniter.org/nodes/rust/duniter-v2s) is a complete rewrite of Duniter based on the Substrate / Polkadot framework. **This is alpha state work in progress.** + +# Minimal docker-compose file for an RPC (non validator) node + +``` +version: "3.5" + +services: + duniter-rpc: + image: duniter/duniter-v2s:latest + restart: unless-stopped + ports: + # Prometheus endpoint + - 9615:9615 + # rpc via http + - 9933:9933 + # rpc via websocket + - 9944:9944 + # p2p + - 30333:30333 + volumes: + - data-rpc:/var/lib/duniter/ + environment: + - DUNITER_CHAIN_NAME=gdev + - DUNITER_NODE_NAME=<my-node-name> + +volumes: + data-rpc: +``` + +# Minimal docker-compose file for a validator node + +``` +version: "3.5" + +services: + duniter-validator: + image: duniter/duniter-v2s:latest + restart: unless-stopped + ports: + # Prometheus endpoint + - 9615:9615 + # p2p + - 30333:30333 + volumes: + - data-validator:/var/lib/duniter/ + environment: + - DUNITER_CHAIN_NAME=gdev + - DUNITER_VALIDATOR=true + - DUNITER_NODE_NAME=<my-validator-node-name> + +volumes: + data-validator: +``` + +# Environment variables + +| Name | Description | Default | +| ---- | ----------- | ------- | +| `DUNITER_NODE_NAME` | The node name. This name will appear on the Substrate telemetry server when telemetry is enabled. | Random name | +| `DUNITER_CHAIN_NAME` | The currency to process. "gdev" uses the embeded chainspec. A path allows to use a local json raw chainspec. | `dev` (development mode) | +| `DUNITER_PUBLIC_ADDR` | The libp2p public address base. See [libp2p documentation](https://docs.libp2p.io/concepts/fundamentals/addressing/). This variable is useful when the node is behind a reverse-proxy with its ports not directly exposed.<br>Note: the `p2p/<peer_id>` part of the address shouldn't be set in this variable. It is automatically added by Duniter. | duniter-v2s guesses one from the node's IPv4 address. | +| `DUNITER_LISTEN_ADDR` | The libp2p listen address. See [libp2p documentation](https://docs.libp2p.io/concepts/fundamentals/addressing/). This variable is useful when running a validator node behind a reverse proxy, to force the P2P end point in websocket mode with:<br> `DUNITER_LISTEN_ADDR=/ip4/0.0.0.0/tcp/30333/ws` | Non validator node: `/ip4/0.0.0.0/tcp/30333/ws`<br>Validator node: `/ip4/0.0.0.0/tcp/30333` | +| `DUNITER_RPC_CORS` | Value of the polkadot `--rpc-cors` option. | `all` | +| `DUNITER_VALIDATOR` | Boolean (`true` / `false`) to run the node in validator mode. Configure the polkadot options `--validator --rpc-methods Unsafe`. | `false` | +| `DUNITER_DISABLE_PROMETHEUS` | Boolean to disable the Prometheus endpoint on port 9615. | `false` | +| `DUNITER_DISABLE_TELEMETRY` | Boolean to disable connecting to the Substrate tememetry server. | `false` | + +# Other duniter options + +You can pass any other option to duniter using the `command` docker-compose element: +``` + command: + # workaround for substrate issue #12073 + # https://github.com/paritytech/substrate/issues/12073 + - "--wasm-execution=interpreted-i-know-what-i-do" +```