Skip to main content
Version: 2.1.0

Defense Center Configuration Reference

This page documents all available environment variables for the Mata Elang Defense Center.

Sensor API Configuration

VariableDescriptionPossible ValuesDefault
MES_SERVER_HOSTBind address for the gRPC serverIP address or 0.0.0.00.0.0.0
MES_SERVER_PORTgRPC server listening portPort number50051
MES_SERVER_KAFKA_BROKERSKafka broker address (internal Docker network)host:portbroker:19094
MES_SERVER_KAFKA_TOPICKafka topic to publish incoming sensor eventsTopic name stringsensor_events
MES_SERVER_SCHEMA_REGISTRY_URLURL of the Confluent Schema RegistryHTTPS URLhttps://schema-registry:8081
MES_SERVER_SECURITY_PROTOCOLKafka security protocolSSL, PLAINTEXTSSL
MES_SERVER_MAX_MESSAGE_SIZEMaximum accepted gRPC message size in MBInteger (MB)1024

gRPC / TLS Configuration

VariableDescriptionPossible ValuesDefault
MES_SERVER_SECUREEnable TLS on the gRPC servertrue, falsetrue
MES_SERVER_CERTIFICATEPath to server TLS certificate (inside container)Absolute path/app/server.crt
MES_SERVER_KEYPath to server TLS private key (inside container)Absolute path/app/server.key

Kafka mTLS Configuration

VariableDescriptionPossible ValuesDefault
MES_SERVER_PATH_TO_CAPath to CA certificate for Kafka broker verificationAbsolute path/app/ca.pem
MES_SERVER_PATH_TO_CLIENT_KEYSTOREPath to PKCS12 client keystore for Kafka mTLSAbsolute path/app/sensor-client.p12
MES_SERVER_CLIENT_KEYSTORE_PASSWORDPassword for the PKCS12 client keystoreString(none — required)
Important

MES_SERVER_CLIENT_KEYSTORE_PASSWORD must match SSL_PASSWORD and the ssl.password value in config.toml on each sensor. A mismatch will cause the sensor-api to fail connecting to the Kafka broker.

OpenSearch Configuration

VariableDescriptionPossible ValuesDefault
OPENSEARCH_INITIAL_ADMIN_PASSWORDInitial admin password for the OpenSearch clusterString (min. 8 chars: uppercase, lowercase, digit, special char)(none — required)
Note

OpenSearch enforces password complexity at startup. A weak password will prevent the opensearch-node1 container from starting. Use a pattern such as MyStr0ng!Pass.

SSL / Keystore Configuration

VariableDescriptionPossible ValuesDefault
SSL_PASSWORDShared password for all Kafka JKS/PKCS12 keystores and truststoresString(none — required)
Important

SSL_PASSWORD must be identical to MES_SERVER_CLIENT_KEYSTORE_PASSWORD and the ssl.password field in each sensor's config.toml. All three values are set during the Certificate Generation step and must remain in sync.

File Ownership Configuration

VariableDescriptionPossible ValuesDefault
HOST_UIDHost user UID mapped into containers for volume permission managementInteger1000
HOST_GIDHost user GID mapped into containers for volume permission managementInteger1000
Note

Run id -u && id -g on the Defense Center host to get the correct values for your user. Mismatched UID/GID can cause permission errors on mounted volumes (certificates, OpenSearch data, etc.).

OpenCTI Integration (Optional Add-on)

VariableDescriptionPossible ValuesDefault
OPENCTI_URLBase URL of the OpenCTI instanceHTTP/HTTPS URL(none — optional)
OPENCTI_API_KEYAPI token for authenticating to OpenCTIUUID string(none — optional)
Note

These variables are only required when deploying the OpenCTI Integration Add-on via compose.opencti-connector.yml. Leave them commented out if you are not using OpenCTI.

Complete Example

# ─── Sensor API (gRPC Server) ─────────────────────────────────────────
MES_SERVER_HOST=0.0.0.0
MES_SERVER_PORT=50051
MES_SERVER_KAFKA_BROKERS=broker:19094
MES_SERVER_KAFKA_TOPIC=sensor_events
MES_SERVER_SCHEMA_REGISTRY_URL=https://schema-registry:8081
MES_SERVER_SECURITY_PROTOCOL=SSL
MES_SERVER_MAX_MESSAGE_SIZE=1024

# ─── gRPC Server TLS ──────────────────────────────────────────────────
MES_SERVER_SECURE=true
MES_SERVER_CERTIFICATE=/app/server.crt
MES_SERVER_KEY=/app/server.key

# ─── Kafka mTLS (client certificate) ─────────────────────────────────
MES_SERVER_PATH_TO_CA=/app/ca.pem
MES_SERVER_PATH_TO_CLIENT_KEYSTORE=/app/sensor-client.p12
MES_SERVER_CLIENT_KEYSTORE_PASSWORD=SecurePassword@123

# ─── OpenSearch ────────────────────────────────────────────────────────
# Minimum 8 characters: uppercase, lowercase, digit, and special character
OPENSEARCH_INITIAL_ADMIN_PASSWORD=SecurePassword@123

# ─── SSL / Kafka Keystores ────────────────────────────────────────────
# Must match MES_SERVER_CLIENT_KEYSTORE_PASSWORD and ssl.password in config.toml
SSL_PASSWORD=SecurePassword@123

# ─── File Ownership ───────────────────────────────────────────────────
# Run: id -u && id -g to get your host user values
HOST_UID=1000
HOST_GID=1000

# ─── Add-on: OpenCTI (optional) ──────────────────────────────────────
# OPENCTI_URL=http://your-opencti-host:8080
# OPENCTI_API_KEY=your-opencti-api-token