# ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # Before you set out to tweak and tune the configuration, make sure you # understand what are you trying to accomplish and the consequences. # # The primary way of configuring a node is via this file. This template lists # the most important settings you may want to configure for a production cluster. # # Please see the documentation for further information on configuration options: # # # ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # cluster.name: gchange-pod-g1 # # Host for remote access to the cluster - used by P2P and share modules (default: = not accessible) # cluster.remote.host: aries.copylaradio.com # # Port for remote access to the cluster (Default: 80) # cluster.remote.port: 443 # # Does remote access need SSL ? (default: 'true' if port=443, 'false' otherwise) # cluster.remote.useSsl: true # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: (default: will be generated) # node.name: aries # # Add custom attributes to the node: (Default: none) # # 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: 9200 http.cors.allow-origin: "/.*/" http.cors.enabled: true # #http.compression: true # # Internal transport layer # # transport.tcp.port: 9210-9220 # # For more information, see the documentation at: # # # --------------------------------- 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: # # # ---------------------------------- 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: # # # ---------------------------------- 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 always be DISABLE # security.manager.enabled: false # # ---------------------------------- Cesium+ Pod --------------------------------- # # Enable Cesium+ pod core plugin (default: true) # duniter.enable: true # # Endpoint API for core module (indices on blockchain, peers, etc) (default: ES_CORE_API) # duniter.core.api: GCHANGE_API # # 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 (default: true) # duniter.blockchain.enable: false # # Enabling blockchain movement indexation ? (default: ${duniter.blockchain.enable}) # # duniter.blockchain.movement.enable: false # # Include/exclude blockchain movement, using regexp on `TX.comment` (default: ) # duniter.blockchain.movement.includes.comment: ["GCHANGE:*"] # # duniter.blockchain.movement.excludes.comment: [] # # Enabling blockchain peers indexation ? (default: ${duniter.blockchain.enable}) # /!\ WARNING: should always be DISABLE for gchange-pod # duniter.blockchain.peer.enable: false # # Enabling pending memberships indexation ? (default: ${duniter.blockchain.enable}) # /!\ WARNING: should always be DISABLE for gchange-pod # duniter.blockchain.membership.pending.enable: false # # Enable user event on blockchain ? (default: true) # /!\ WARNING: should always be DISABLE for gchange-pod # duniter.blockchain.event.user.enable: false # # Enable events for the node admin (e.g. node start/stop) (default: true) # # duniter.blockchain.event.admin.enable: false # # Force blockchain full synchronization - /!\ WARNING: all user events will be reset to 'unread' # # duniter.blockchain.reload: true # duniter.blockchain.reload.from: 18900 # duniter.blockchain.reload.to: 19000 # # Duniter node address # duniter.host: g1.presles.fr duniter.port: 443 duniter.useSsl: true # # Network timeout, in millisecond (default: 20000 = 20s) # # duniter.network.timeout: 5000 # # Compute statistics on indices (each hour) ? (default: true) # # duniter.stats.enable: false # # Software name (used when calling GET request on /node/summary) (default: 'cesium-plus-pod') # duniter.software.name: gchange-pod # # ---------------------------------- Cesium+ Pod > 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 known ES indices # /!\ WARNING: should be enable for production use # duniter.security.enable: true # # ---------------------------------- Cesium+ Pod > P2P module ------------------------- # # Enable P2P synchronize between ES peers ? (default: true) # # duniter.p2p.enable: false # # Enable P2P synchronisation using websocket ? (default: true) # # duniter.p2p.ws.enable: false # # Time delay (in seconds) to request last documents to peer (e.g. if peer's clock is late). (default: 3600s = 1h) # # duniter.p2p.peerTimeOffset: 3600 # # Enable discovery on network peers, to automatically synchronize this peers (default: true) # # duniter.p2p.discovery.enable: false # # Pass a list of hosts to always synchronize (default: ) # duniter.p2p.includes.endpoints: [ "GCHANGE_API data.gchange.fr 443", "GCHANGE_SUBSCRIPTION_API data.gchange.fr 443" ] # # Pass a list of pubkeys to always synchronize (default: ) # # duniter.p2p.includes.pubkeys: [""] # # Enable a full synchro. This will compare each documents from other peers. (default: false) # # duniter.p2p.fullResyncAtStartup: true # # Peer API to index (default : ["BASIC_MERKLE_API", "BMAS", "WS2P" ] UNION ${duniter.p2p.peering.targetedApis} UNION ${duniter.p2p.peering.publishedApis}) # duniter.p2p.peer.indexedApis: [ "GCHANGE_API" ] # # 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: ["BASIC_MERKLED_API", "BMAS"]) # This API should accept a POST request to '/network/peering' (will send a see the Duniter protocol) # duniter.p2p.peering.targetedApis: [ "GCHANGE_API" ] # # Define cluster API to publish (if peering is enable). By default, all compatible API # duniter.p2p.peering.publishedApis: [ "GCHANGE_API", "GCHANGE_SUBSCRIPTION_API" ] # # Interval for publishing peer document to the network, in seconds. (Default: 7200 =2h) # # duniter.p2p.peering.interval: 7200 # # Cache time for peers (GET request /network/peers and /network/peering/peers), in seconds. (Default: 600 = 10min) # Use 0 (zero) to disable the cache # # duniter.p2p.peers.cache.timeToLive: 0 # # ---------------------------------- Cesium+ Pod > document moderation --------------- # # Filter too old document, if time older that 'maxPastDelta' (in seconds). (default: 7200 =2h) # # duniter.document.time.maxPastDelta: 7200 # # Filter document in the future, if time greater that 'maxFutureDelta' (in seconds). (default: 600 =10min) # # 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: ) # duniter.document.moderators.pubkeys: [ 'HmH5beJqKGMeotcQUrSW7Wo5tKvAksHmfYXfiSQ9EbWz', # Admin of gchange.fr '8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z', # B. Lavenier (gchange maintainer) '47JpfrGkoHJWtumeu7f67fbAxkvaHYVQBNo5GszNs61Z' # B. Presles (gchange developer) ] # # ---------------------------------- Cesium+ Pod > Mail module ----------------------- # # Enable mail module ? # duniter.mail.enable: false # # Mail: SMTP server configuration (host and port) # # duniter.mail.smtp.host: localhost # 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: no-reply@domain.com # # Mail: admin address # # duniter.mail.admin: user@domain.com # # Mail: subject prefix (default: '[Cesium+]') # duniter.mail.subject.prefix: '[Ğchange]' # # ---------------------------------- Cesium+ Pod > User module --------------------------- # # Enable user module (Allow to store User profile, private message, page, group...) (default: true) # # duniter.user.enable: false # # Endpoint API for user data (use by P2P synchronization) (default: 'ES_USER_API') # duniter.user.api: 'GCHANGE_API' # # Requirements to send abuse report on document (profile, page, etc.) (default: ['member']) # duniter.abuse.issuer.requirements: ['profile'] # # Requirements to send likes on document (profile, page, etc.) (default: empty) # duniter.like.issuer.requirements: ['profile'] # # ---------------------------------- Cesium+ Pod > Subscription module ------------------- # # Enable subscription module (Need to enable mail features) (default: true) # # duniter.subscription.enable: false # # Endpoint API for subscription data (use by P2P synchronization) (default: ES_SUBSCRIPTION_API) # duniter.subscription.api: 'GCHANGE_SUBSCRIPTION_API' # # 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: 3 # # Email subscription: URL to a web site, for links in the email content (default: https://g1.duniter.fr) # duniter.subscription.email.link.url: 'https://gchange.fr' # # Name of the button in the email, to access to notifications (default: 'Cesium') # duniter.subscription.email.link.name: 'Ğchange' # # ---------------------------------- Cesium+ Pod > Share module ------------------- # # Share title: `og:site_name` (default: 'Cesium') # duniter.share.site.name: 'Ğchange' # # 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://www.gchange.fr/#/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://www.gchange.fr/#/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://www.gchange.fr/img/logo_200px.png' # # Share market link (e.g. Ad): (default: https://gchange.fr/#/app/market/view/{id}/{title} ) # Note: available variables are {id} and {title} # duniter.share.market.link.url: 'https://www.gchange.fr/#/app/market/view/{id}/{title}' #