# Installation d'un Pod Cesium+

**URL:** https://forum.duniter.org/t/installation-dun-pod-cesium/6952
**Category:** CS+
**Created:** [23 February 2020 07:12 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952 "2020-02-23T07:12:15Z")
**Posts on this page:** 7
**Page:** 2

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [14 April 2020 05:13 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/21 "2020-04-14T05:13:57Z")

</div>

> [@guenoel](#):
>
> Sinon apparemment il manque encore des choses. Tant que je suis pas affiché dans la liste des noeuds cesium+ ca veut dire c’est pas encore bon

Non, a mon avis c’est simplement que mon Pod Cs+ n’est plus joignable 😕 (encore un soucis avec Orange ! faut que j’aille à mon boulot pour vérifier). Du coup, le tien ne sais pas a qui envoyer sa fiche de pair. Tu vois ?  
Tu peux donc remplacer dans la conf par celui de @bpresles par exemple.

---

<div class="post-metadata">

### Author: ![guenoel](https://forum.duniter.org/user_avatar/forum.duniter.org/guenoel/32/9075_2.png) [@guenoel](https://forum.duniter.org/u/guenoel)
#### Post date: [14 April 2020 14:29 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/22 "2020-04-14T14:29:32Z")

</div>

OK  
network.host: 127.0.0.1  
duniter.host: localhost  
duniter.p2p.includes.endpoints: [  
«&nbsp;ES\_CORE\_API [g1.data.presles.fr](http://g1.data.presles.fr) 443&nbsp;»,  
«&nbsp;ES\_USER\_API [g1.data.presles.fr](http://g1.data.presles.fr) 443&nbsp;»,  
«&nbsp;ES\_SUBSCRIPTION\_API [g1.data.presles.fr](http://g1.data.presles.fr) 443&nbsp;»  
]  
je décommente ou pas ça: ?  
duniter.p2p.includes.pubkeys: [  
«&nbsp;ici c’est ma clé publique ou celle de presles ?&nbsp;»  
]

Toujours «&nbsp;block&nbsp;»:"0- dans [https://cesiumplus.guenoel.fr/network/peering](https://cesiumplus.guenoel.fr/network/peering)  
Je crois que je vais abandonner ce projet jusqu’à la prochaine assistance

---

<div class="post-metadata">

### Author: ![kimamila](https://forum.duniter.org/user_avatar/forum.duniter.org/kimamila/32/185_2.png) [@kimamila](https://forum.duniter.org/u/kimamila)
#### Post date: [14 April 2020 16:20 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/23 "2020-04-14T16:20:06Z")

</div>

> [@guenoel](#):
>
> duniter.p2p.includes.pubkeys

tu peux laisser vide. Il s’agit d’un autre moyen de collecter les peers, par leur pubkey.  
Tu peux laisser en commentaire (ou vide)

> [@guenoel](#):
>
> Toujours « block »:"0- dans [https://cesiumplus.guenoel.fr/network/peering](https://cesiumplus.guenoel.fr/network/peering)  
> Je crois que je vais abandonner ce projet jusqu’à la prochaine assistance

mais non, t’inquietes. Dis toi quand allant au bout tu nous aide, car cela nous oblige à formaliser d’avantage, corriger les coquilles, etc.

Voici le fichier `config/elasticsearch.yml` d’un Pod (celui du Sou) :

```yml
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: g1-es-data

cluster.remote.host: g1.data.le-sou.org
cluster.remote.port: 443

# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: es-g1-01
#
# Add custom attributes to the node:
#
# node.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
# path.data: /path/to/data
#
# Path to log files:
#
# path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
# bootstrap.mlockall: true
#
# Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory
# available on the system and that the owner of the process is allowed to use this limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 127.0.0.1
#
# Set a custom port for HTTP:
#
http.port: 9701

http.cors.allow-origin: "/.*/"
http.cors.enabled: true

# Internal transport layer
#
# transport.tcp.port: 9210-9220
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
# discovery.zen.ping.unicast.hosts: ["host1", "host2"]
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):
#
# discovery.zen.minimum_master_nodes: 3
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
# gateway.recover_after_nodes: 3
#
# For more information, see the documentation at:
# <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>
#
# ---------------------------------- Various -----------------------------------
#
# Disable starting multiple nodes on a single system:
#
# node.max_local_storage_nodes: 1
#
# Require explicit names when deleting indices:
#
# action.destructive_requires_name: true
#
# Security to isolate plugin classpath - /!\ WARNING: should be DISABLE for Duniter4j
#
security.manager.enabled: false
#
# ---------------------------------- Duniter4j ---------------------------------
#
# Enable duniter4j plugins
#
# duniter.enabled: false
#
# Delete then create all indices at startup - /!\ WARNING: DO NOT set to true in production
#
# duniter.indices.reload: true
#
# Default string analyzer
#
duniter.string.analyzer: french
#
# Enabling blockchain synchronization
#
duniter.blockchain.enable: true
#
# Force blockchain full synchronization - /!\ WARNING: all user events will be reset to 'unread'
#
#duniter.blockchain.reload: true
#duniter.blockchain.reload.from: 92500
#
# Duniter node address
#
duniter.host: 127.0.0.1
duniter.port: 10901
# duniter.useSsl: true
#
# Compute statistics on indices (each hour) ? (default: true)
#
# duniter.stats.enable: false
#
# ---------------------------------- Duniter4j security module -------------------
#
# Keyring, use to sign emitted documents (user events, subscription, etc.).
# If not set, random keys will be generated.
#
duniter.keyring.salt: ' *****'
duniter.keyring.password: ' *****'
#
# Enable security - will restrict HTTP access to only Duniter4j known indices - /!\ WARNING: should be enable for production use
#
duniter.security.enable: true
#
# ---------------------------------- Duniter4j P2P module -------------------------
#
# Enable P2P synchronize between ES peers ? (default: true)
#
duniter.p2p.enable: true
#
# Enable P2P websocket direct synchronisation ? (default: true)
#
#duniter.p2p.ws.enable: true
#
# Max peer time offset, in seconds (max peer's clock error) - use to request peer's data. (default: 3600 = 1hour)
#
duniter.p2p.peerTimeOffset: 7200
#
# Enable discovery on network peers, to automatically synchronize this peers (default: true)
#
duniter.p2p.discovery.enable: true
#
# Pass an initial list of hosts to perform synchronization when new node is started:
#
duniter.p2p.includes.endpoints: [
  "ES_CORE_API g1.data.duniter.fr 443",
  "ES_USER_API g1.data.duniter.fr 443",
  "ES_SUBSCRIPTION_API g1.data.duniter.fr 443"
]
#duniter.p2p.ping.endpoints: [
# "g1:ES_USER_API server.e-is.pro 9222",
# "g1:ES_SUBSCRIPTION_API server.e-is.pro 9222"
#]
#
# Pass a list of pubkeys to always synchronize (default: <empty>)
#
#duniter.p2p.includes.pubkeys: [
# "38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"
#]
#
# Enable a full synchro. This will compare each documents from other peers.
#
duniter.p2p.fullResyncAtStartup: true
#
# Enable publishing of pod endpoints to the network (see the peer document in Duniter protocol). (Default: '${duniter.p2p.enable}')
#
duniter.p2p.peering.enable: true
#
# Define targeted API (for peers selection) where to send the peer document (if peering is enable). (Default: ["ES_CORE_API"])
# This API should accept a POST request to '/network/peering' (will send a see the Duniter protocol)
#
duniter.p2p.peering.targetedApis: [
  "ES_CORE_API"
]
#
# Define cluster API to publish (if peering is enable). By default, all compatible API
#
# duniter.p2p.peering.publishedApis: [
# "ES_CORE_API", "ES_USER_API", "ES_SUBSCRIPTION_API"
# ]
#
# Interval for publishing peer document to the network, in seconds. (Default: 7200 =2h)
#
#duniter.p2p.peering.interval: 7200
#
#
# ---------------------------------- Duniter4j document moderation ---------------
#
# Filter too old document, if time older that 'maxPastDelta' (in seconds). Default: 7200 (=2h)
#
#duniter.document.time.maxPastDelta: 7200
#duniter.document.time.maxPastDelta: 535680000
#
# Filter document in the futur, if time greater that 'maxFutureDelta' (in seconds). Default: 600 (10m)
#
# duniter.document.time.maxFutureDelta: 600
#
# Allow admin (define in duniter.keyring) to delete documents ? (default: true)
#
# duniter.document.moderators.admin: false
#
# Public keys of moderators. Moderators can delete any user documents (profile, page comment, etc.) (default: <empty>)
#
duniter.document.moderators.pubkeys: [
  '38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE', # Benoit Lavenier
  '47JpfrGkoHJWtumeu7f67fbAxkvaHYVQBNo5GszNs61Z', # Bertrand Presles
  'HmH5beJqKGMeotcQUrSW7Wo5tKvAksHmfYXfiSQ9EbWz' # Le Sou Mayennais
]
# ---------------------------------- Duniter4j Mail module -----------------------
#
# Enable mail module ?
#
duniter.mail.enable: true
#
# Mail: SMTP server configuration (host and port)
#
duniter.mail.smtp.host: '127.0.0.1'
duniter.mail.smtp.port: 25
#
# Mail: SMTP server SSL security
#
# duniter.mail.smtp.ssl: true
# duniter.mail.smtp.starttls: true
#
# Mail: SMTP server authentication
#
# duniter.mail.smtp.username:
# duniter.mail.smtp.password:
#
# Mail: 'from' address
#
duniter.mail.from: 'cesium@le-sou.org'
#
# Mail: admin address
#
duniter.mail.admin: 'benoit.lavenier@e-is.pro'
#
# Mail: subject prefix
#
duniter.mail.subject.prefix: '[LeSou / Ğ1]'
#
# ---------------------------------- Duniter4j Subscription module -------------------
#
# Enable subscription module (Need to enable mail features)
#
duniter.subscription.enable: true
#
# Email subscription: Day of the week to trigger weekly (default: 2 = monday)
#
# duniter.subscription.email.dayOfWeek: 2
#
# Email subscription: Hour in day to trigger daily email subscription (default: 3 AM)
#
duniter.subscription.email.hourOfDay: 2
#
# Email subscription: URL to a Cesium site, for links in the email content (default: https://g1.duniter.fr)
#
duniter.subscription.email.link.url: 'https://g1.le-sou.org'
# ---------------------------------- Cesium+ Pod > Share module -------------------
#
#
# Share title: `og:site_name` (default: 'Cesium')
#
duniter.share.site.name: 'Cesium - Ğ1'
#
# URL to a page (default: https://g1.duniter.fr/#/app/page/view/{id}/{title} )
# Note: available variables are {id} and {title}
#
duniter.share.page.link.url: 'https://g1.le-sou.org/#/app/page/view/{id}/{title}'
#
# URL to a user profile (default: https://g1.duniter.fr/#/app/wot/{pubkey}/{title} )
# Note: available variables are {pubkey} and {title}
#
duniter.share.user.link.url: 'https://g1.le-sou.org/#/app/wot/{pubkey}/{title}'
#
# Default image to share (min size of 200x200px) for `og:image` (default: https://g1.duniter.fr/img/logo_200px.png)
#
duniter.share.image.default.url: 'https://g1.le-sou.org/img/logo_200px.png'

```

Et la conf nginx associée :

```yml
# Map pour gérer les upgrade de connection (version HTTP)
map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

# Format des logs
log_format upstreamlog '$remote_addr - $remote_user [$time_local] '
                       '"$request" $status $body_bytes_sent '
                       '"$http_referer" "$http_user_agent" "$upstream_addr - $upstream_response_time"';

# Permet de définir un pool de noeuds ES, pour que nginx répartisse la charge
# Ici, je n'en ai qu'un seul
upstream es-g1 {
        least_conn;
        #ip_hash;
        server 127.0.0.1:9701 weight=3;
}

server {
        listen 443;
        listen [::]:443;

        server_name g1.data.le-sou.org;

        # Inclusion de config par default pour le https
        include includes/ssl.conf;

        root /var/www/le-sou.org/cesium;
        index index.html;

        #allow large uploads of files
        client_max_body_size 20m;

        location /ws/ {
                proxy_pass http://es-g1;
                proxy_next_upstream error timeout http_500 http_502;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_http_version 1.1;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 86400s;
                proxy_send_timeout 86400s;

                access_log /var/log/nginx/es-g1.log upstreamlog;
        }

        location / {
                proxy_pass http://es-g1;
                proxy_next_upstream error timeout http_500 http_502;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                # CORS: Preflighted requests
                if ($request_method = OPTIONS ) {
                        add_header "Access-Control-Allow-Origin" *;
                        add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS";
                        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
                        return 200;
                }

                access_log /var/log/nginx/es-g1.log upstreamlog;
        }

}

```

---

<div class="post-metadata">

### Author: ![guenoel](https://forum.duniter.org/user_avatar/forum.duniter.org/guenoel/32/9075_2.png) [@guenoel](https://forum.duniter.org/u/guenoel)
#### Post date: [23 April 2020 22:14 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/24 "2020-04-23T22:14:59Z")

</div>

Salut !  
Merci pour ton assistance aux amateurs !

J’ai récupéré tes conf (et adapté bien sur a mon cas !)

J’ai relancé tout ça et on verra demain.

> [2020-04-24 00:09:49,063][INFO][node] [es-g1-01] initializing …  
> [2020-04-24 00:09:51,302][INFO][plugins] [es-g1-01] modules [reindex, lang-expression, lang-groovy], plugins [mapper-attachments, cesium-plus-pod-core, cesium-plus-pod-subscription, cesium-plus-pod-user], sites   
> [2020-04-24 00:09:51,624][INFO][env] [es-g1-01] using [1] data paths, mounts [[/ (/dev/sda1)]], net usable\_space [20.9gb], net total\_space [36.1gb], spins? [possibly], types [ext4]  
> [2020-04-24 00:09:51,624][INFO][env] [es-g1-01] heap size [1007.3mb], compressed ordinary object pointers [true]  
> [2020-04-24 00:09:52,852][INFO][http] [es-g1-01] Using [org.elasticsearch.http.netty.NettyHttpServerTransport] as http transport, overridden by [cesium-plus-core]  
> [2020-04-24 00:10:00,118][INFO][duniter.network] [es-g1-01] Adding {ES\_CORE\_API} as published endpoint, inside the peering document.  
> [2020-04-24 00:10:00,221][INFO][duniter.security] [es-g1-01] Enable security on all indices  
> [2020-04-24 00:10:00,575][INFO][node] [es-g1-01] initialized  
> [2020-04-24 00:10:00,575][INFO][node] [es-g1-01] starting …  
> [2020-04-24 00:10:00,578][INFO][duniter.network] [es-g1-01] Adding {ES\_USER\_API} as published endpoint, inside the peering document.  
> [2020-04-24 00:10:00,590][INFO][duniter.network] [es-g1-01] Adding {ES\_SUBSCRIPTION\_API} as published endpoint, inside the peering document.  
> [2020-04-24 00:10:00,834][INFO][org.duniter.elasticsearch.PluginSettings] [es-g1-01] Starts i18n with locale [fr] at [/var/www/cesiumplus.guenoel.fr/cesiumplus/data/i18n]  
> [2020-04-24 00:10:01,072][INFO][transport] [es-g1-01] publish\_address {127.0.0.1:9300}, bound\_addresses {127.0.0.1:9300}  
> [2020-04-24 00:10:01,094][INFO][discovery] [es-g1-01] g1-es-data-guenoel/xyNOr16jTsqzltCcLlfDHA  
> [2020-04-24 00:10:04,130][INFO][cluster.service] [es-g1-01] new\_master {es-g1-01}{xyNOr16jTsqzltCcLlfDHA}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected\_as\_master, [0] joins received)  
> [2020-04-24 00:10:04,188][INFO][http] [es-g1-01] publish\_address {127.0.0.1:9701}, bound\_addresses {127.0.0.1:9701}  
> [2020-04-24 00:10:04,189][INFO][node] [es-g1-01] started  
> [2020-04-24 00:10:04,304][INFO][gateway] [es-g1-01] recovered [0] indices into cluster\_state  
> [2020-04-24 00:10:14,143][INFO][duniter.user] [es-g1-01] Starting user jobs… {blockchain user events:true}, {blockchain admin events:true}  
> [2020-04-24 00:10:14,149][INFO][duniter.history] [es-g1-01] Creating index [history/delete]  
> [2020-04-24 00:10:14,933][INFO][duniter.dao.user] [es-g1-01] Creating index [user]  
> [2020-04-24 00:10:15,250][INFO][duniter.message] [es-g1-01] Creating index [message/inbox]  
> [2020-04-24 00:10:15,428][INFO][duniter.dao.group] [es-g1-01] Creating index [group]  
> [2020-04-24 00:10:15,562][INFO][duniter.invitation] [es-g1-01] Creating index [invitation/certification]  
> [2020-04-24 00:10:16,298][INFO][duniter.dao.page] [es-g1-01] Creating index [page]  
> [2020-04-24 00:10:18,656][INFO][duniter.like] [es-g1-01] Creating index [like/record]  
> [2020-04-24 00:10:19,075][INFO][duniter.subscription] [es-g1-01] Starting subscription jobs… {enable:true}  
> [2020-04-24 00:10:19,078][INFO][duniter.dao.subscription] [es-g1-01] Creating index [subscription]  
> [2020-04-24 00:10:21,145][INFO][duniter.core] [es-g1-01] Starting core jobs… {blockchain: block:true, peer:true, pending:true}, {p2p: synchro:true, websocket:true, emit\_peering:true}, {doc\_stats:true}  
> [2020-04-24 00:10:21,147][INFO][duniter.dao.currency] [es-g1-01] Creating index [currency]  
> [2020-04-24 00:10:21,153][WARN][duniter.subscription] [es-g1-01] Impossible de traiter les abonnements email: la fonction d’envoi d’email est désactivée dans la configuration  
> [2020-04-24 00:10:21,441][INFO][duniter.dao.document] [es-g1-01] Creating index [document]  
> [2020-04-24 00:10:25,892][INFO][duniter.dao.g1] [es-g1-01] Creating index [g1]  
> [2020-04-24 00:10:26,421][INFO][duniter.core] [es-g1-01] [g1] Indexing blockchain…  
> [2020-04-24 00:10:26,423][INFO][duniter.blockchain] [es-g1-01] [g1] [BASIC\_MERKLED\_API 127.0.0.1 10901] Indexing last blocks…

---

<div class="post-metadata">

### Author: ![vincentux](https://forum.duniter.org/user_avatar/forum.duniter.org/vincentux/32/172_2.png) [@vincentux](https://forum.duniter.org/u/vincentux)
#### Post date: [13 June 2022 15:50 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/25 "2022-06-13T15:50:18Z")

</div>

Hello,

je souhaite «&nbsp;essayer&nbsp;» d’installer un pod Césium+, mais voici mon fichier `config/elasticsearch.yml`

```auto
                                      config/elasticsearch.yml *                                               
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: cesium-plus-pod-g1
#
# Host + port, to join your cluster, from external network
#
#cluster.remote.host: localhost
#
# Port for remote access to the cluster (Default: 80)
#
# cluster.remote.port: 9200
#
# Does remote access need SSL ? (default: 'true' if port=443, 'false' otherwise)
#
# cluster.remote.useSsl: true
#

```

Comme il ne ressemble pas à celui du dessus, est-ce que quelqu’un pourrait indiquer à chaque ligne quelles infos y mettre (avec des exemples) ? 🙏

Plus la doc sera compréhensible, plus y aura de nœud dans le réseau 😉

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [13 June 2022 16:10 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/26 "2022-06-13T16:10:34Z")

</div>

Si tu arrives à complémenter la documentation, il faudra le dire dans le post [How to install Cesium+ Data Pod](https://forum.duniter.org/t/how-to-install-cesium-data-pod/9425) ça pourra aider les espagnols qui sont aussi en galère de nœuds Cesium+

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [13 June 2022 16:49 UTC](https://forum.duniter.org/t/installation-dun-pod-cesium/6952/27 "2022-06-13T16:49:13Z")

</div>

Voilà ma conf qui tournait pour mon noeud de dev ya 1 an de celà:

[https://paste.ofcode.org/Aw5LFY3UphiPUpPeU7yDc7](https://paste.ofcode.org/Aw5LFY3UphiPUpPeU7yDc7)

[Previous page](https://forum.duniter.org/t/installation-dun-pod-cesium/6952.md?page=1)
