elasticsearch-cloudron/elasticsearch.yml
2025-03-16 17:36:42 +01:00

92 lines
3.2 KiB
YAML

# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
cluster.name: cloudron-cluster
# ------------------------------------ Node ------------------------------------
node.name: ${HOSTNAME}
# The following settings are deprecated in Elasticsearch 8.x
# node.master: true
# node.data: true
# In Elasticsearch 8.x, a node is both a master-eligible and data node by default
# To change this behavior, use roles instead
#node.roles: [ master, data ]
# ----------------------------------- Paths ------------------------------------
path.data: /app/data/elasticsearch
path.logs: /app/data/logs
# ---------------------------------- Network -----------------------------------
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
# --------------------------------- Discovery ----------------------------------
discovery.type: single-node
# --------------------------------- Security ----------------------------------
xpack.security.enabled: true
# Transport layer settings (for node-to-node communication)
xpack.security.transport.ssl.enabled: false
# xpack.security.transport.ssl.verification_mode: none
# xpack.security.transport.ssl.keystore.path: /app/data/config/elastic-certificates.p12
# xpack.security.transport.ssl.truststore.path: /app/data/config/elastic-certificates.p12
# HTTP layer settings (for client connections)
xpack.security.http.ssl.enabled: false
# Allow basic auth
xpack.security.authc.token.enabled: false
xpack.security.authc.api_key.enabled: false
# Required password hashing algorithm
xpack.security.authc.password_hashing.algorithm: bcrypt
# ----------------------------------- Memory ----------------------------------
bootstrap.memory_lock: false
# ---------------------------------- Various ----------------------------------
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization"
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
# ---------------------------------- Performance Optimizations ----------------------------------
# Circuit breaker settings
indices.breaker.total.limit: 70%
# Memory optimization
indices.fielddata.cache.size: 20%
indices.memory.index_buffer_size: 20%
# Thread pool and queue sizes
thread_pool.write.queue_size: 1000
thread_pool.search.queue_size: 1000
# Indexing settings
indices.queries.cache.size: 15%
bootstrap.memory_lock: true
# I/O optimization
bootstrap.system_call_filter: false
# Refresh interval - Set to a higher value if you prioritize indexing speed over search freshness
# indices.refresh_interval: 30s
# This setting should be applied per index, not globally
# Index defaults
index.number_of_shards: 1
index.number_of_replicas: 0
# Merge settings for better indexing performance
index.merge.scheduler.max_thread_count: 1
index.merge.policy.floor_segment: 2mb
index.merge.policy.max_merge_at_once: 4
index.merge.policy.segments_per_tier: 8
# GC settings - these complement the JVM options set in start.sh
processors: ${PROCESSORS:1}