Files
runtipi-appstore/apps/wazuh-runtipi/docker-compose.json
Hermes Agent d24d0c194b
Test / test (pull_request) Canceled after 0s
fix(apps): normalize environment mappings
2026-09-02 17:23:48 +02:00

352 lines
10 KiB
JSON

{
"schemaVersion": 2,
"services": [
{
"name": "wazuh-certs",
"image": "wazuh/wazuh-certs-generator:0.0.3",
"hostname": "wazuh-certs-generator",
"entrypoint": [
"sh",
"/scripts/init-certs.sh"
],
"environment": {
"CERT_TOOL_VERSION": "4.14"
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/config",
"containerPath": "/config"
},
{
"hostPath": "${APP_DATA_DIR}/data/config/wazuh_ssl_certs",
"containerPath": "/certificates"
},
{
"hostPath": "${APP_DATA_DIR}/data/indexer-data",
"containerPath": "/indexer-data"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-api",
"containerPath": "/manager-api"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-logs",
"containerPath": "/manager-logs"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-queue",
"containerPath": "/manager-queue"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-shared",
"containerPath": "/manager-shared"
},
{
"hostPath": "${APP_DATA_DIR}/data/dashboard-config",
"containerPath": "/dashboard-config"
},
{
"hostPath": "${APP_DATA_DIR}/data/indexer-security",
"containerPath": "/indexer-security"
},
{
"hostPath": "${APP_DATA_DIR}/data/scripts",
"containerPath": "/scripts"
}
],
"healthCheck": {
"test": "test -f /certificates/root-ca.pem",
"interval": "5s",
"timeout": "5s",
"retries": 10
}
},
{
"name": "wazuh-indexer",
"image": "wazuh/wazuh-indexer:4.14.1",
"hostname": "wazuh.indexer",
"user": "1000:1000",
"depends_on": {
"wazuh-certs": {
"condition": "service_healthy"
}
},
"environment": {
"OPENSEARCH_JAVA_OPTS": "-Xms1g -Xmx1g -Dlog4j2.formatMsgNoLookups=true",
"DISABLE_INSTALL_DEMO_CONFIG": "true",
"bootstrap.memory_lock": "true",
"network.host": "wazuh.indexer",
"node.name": "wazuh.indexer",
"cluster.initial_cluster_manager_nodes": "wazuh.indexer",
"node.max_local_storage_nodes": "1",
"plugins.security.allow_default_init_securityindex": "true",
"NODES_DN": "CN=wazuh.indexer,OU=Wazuh,O=Wazuh,L=California,C=US",
"plugins.security.ssl.http.clientauth_mode": "OPTIONAL"
},
"ulimits": {
"memlock": {
"soft": -1,
"hard": -1
},
"nofile": {
"soft": 65536,
"hard": 65536
}
},
"deploy": {
"resources": {
"limits": {
"cpus": "1.0",
"memory": "2G"
},
"reservations": {
"cpus": "0.5",
"memory": "1G",
"devices": []
}
}
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/indexer-data",
"containerPath": "/var/lib/wazuh-indexer"
},
{
"hostPath": "${APP_DATA_DIR}/data/config/wazuh_ssl_certs",
"containerPath": "/usr/share/wazuh-indexer/config/certs"
},
{
"hostPath": "${APP_DATA_DIR}/data/indexer-security",
"containerPath": "/usr/share/wazuh-indexer/opensearch-security"
}
],
"healthCheck": {
"test": "curl -ks https://wazuh.indexer:9200 -u ${INDEXER_USERNAME:-admin}:${INDEXER_PASSWORD:-admin}",
"interval": "10s",
"timeout": "5s",
"retries": 15,
"startPeriod": "120s"
}
},
{
"name": "wazuh-indexer-init",
"image": "wazuh/wazuh-indexer:4.14.1",
"hostname": "wazuh-indexer-init",
"depends_on": {
"wazuh-indexer": {
"condition": "service_healthy"
}
},
"entrypoint": [
"bash",
"/scripts/init-indexer-init.sh"
],
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/config/wazuh_ssl_certs",
"containerPath": "/usr/share/wazuh-indexer/config/certs"
},
{
"hostPath": "${APP_DATA_DIR}/data/indexer-security",
"containerPath": "/mnt/host-security"
},
{
"hostPath": "${APP_DATA_DIR}/data/scripts",
"containerPath": "/scripts"
}
],
"healthCheck": {
"test": "test -f /mnt/host-security/.init-complete",
"interval": "5s",
"timeout": "5s",
"retries": 60,
"startPeriod": "120s"
}
},
{
"name": "wazuh-manager",
"image": "wazuh/wazuh-manager:4.14.1",
"hostname": "wazuh.manager",
"entrypoint": [
"bash",
"/scripts/init-manager.sh"
],
"depends_on": {
"wazuh-indexer-init": {
"condition": "service_healthy"
}
},
"environment": {
"WAZUH_INDEXER_HOSTS": "wazuh.indexer:9200",
"WAZUH_NODE_NAME": "manager",
"WAZUH_NODE_TYPE": "master",
"WAZUH_CLUSTER_NODES": "wazuh.manager",
"WAZUH_CLUSTER_BIND_ADDR": "wazuh.manager",
"INDEXER_URL": "https://wazuh.indexer:9200",
"INDEXER_USERNAME": "${INDEXER_USERNAME:-admin}",
"INDEXER_PASSWORD": "${INDEXER_PASSWORD:-admin}",
"FILEBEAT_SSL_VERIFICATION_MODE": "full",
"SSL_CERTIFICATE_AUTHORITIES": "/var/ossec/etc/certs/root-ca.pem",
"SSL_CERTIFICATE": "/var/ossec/etc/certs/server.pem",
"SSL_KEY": "/var/ossec/etc/certs/server-key.pem",
"API_USERNAME": "wazuh-wui",
"API_PASSWORD": "${API_PASSWORD:-MyS3cr37P450r.*-}"
},
"ulimits": {
"memlock": {
"soft": -1,
"hard": -1
},
"nofile": {
"soft": 655360,
"hard": 655360
}
},
"deploy": {
"resources": {
"limits": {
"cpus": "2.0",
"memory": "2G"
},
"reservations": {
"cpus": "1.0",
"memory": "1G",
"devices": []
}
}
},
"addPorts": [
{
"containerPort": 1514,
"hostPort": 1514,
"tcp": true
},
{
"containerPort": 1515,
"hostPort": 1515,
"tcp": true
},
{
"containerPort": 514,
"hostPort": 514,
"udp": true
},
{
"containerPort": 55000,
"hostPort": 55000,
"tcp": true
}
],
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/manager-api",
"containerPath": "/var/ossec/api/configuration"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-etc",
"containerPath": "/var/ossec/etc/custom"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-logs",
"containerPath": "/var/ossec/logs"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-queue",
"containerPath": "/var/ossec/queue"
},
{
"hostPath": "${APP_DATA_DIR}/data/config/wazuh_ssl_certs",
"containerPath": "/var/ossec/etc/certs"
},
{
"hostPath": "${APP_DATA_DIR}/data/manager-shared",
"containerPath": "/var/ossec/etc/shared"
},
{
"hostPath": "${APP_DATA_DIR}/data/scripts",
"containerPath": "/scripts"
}
],
"healthCheck": {
"test": "/var/ossec/bin/wazuh-control status | grep -E 'wazuh-db is running|wazuh-analysisd is running|wazuh-remoted is running' | wc -l | grep -q 3",
"interval": "30s",
"timeout": "10s",
"retries": 10,
"startPeriod": "180s"
}
},
{
"name": "wazuh-dashboard",
"image": "wazuh/wazuh-dashboard:4.14.1",
"hostname": "wazuh.dashboard",
"entrypoint": [
"bash",
"/scripts/init-dashboard.sh"
],
"isMain": true,
"internalPort": "5601",
"depends_on": {
"wazuh-indexer-init": {
"condition": "service_healthy"
},
"wazuh-manager": {
"condition": "service_healthy"
}
},
"environment": {
"SERVER_HOST": "0.0.0.0",
"OPENSEARCH_HOSTS": "https://wazuh.indexer:9200",
"SERVER_SSL_ENABLED": "true",
"INDEXER_USERNAME": "${INDEXER_USERNAME:-admin}",
"INDEXER_PASSWORD": "${INDEXER_PASSWORD:-admin}",
"WAZUH_API_URL": "https://wazuh.manager",
"DASHBOARD_USERNAME": "${DASHBOARD_USERNAME:-kibanaserver}",
"DASHBOARD_PASSWORD": "${DASHBOARD_PASSWORD:-kibanaserver}",
"API_USERNAME": "wazuh-wui",
"API_PASSWORD": "${API_PASSWORD:-MyS3cr37P450r.*-}",
"SERVER_SSL_CERTIFICATE": "/usr/share/wazuh-dashboard/config/certs/dashboard.pem",
"SERVER_SSL_KEY": "/usr/share/wazuh-dashboard/config/certs/dashboard-key.pem",
"OPENSEARCH_SSL_CERTIFICATE_AUTHORITIES": "/usr/share/wazuh-dashboard/config/certs/root-ca.pem"
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/config/wazuh_ssl_certs",
"containerPath": "/usr/share/wazuh-dashboard/config/certs"
},
{
"hostPath": "${APP_DATA_DIR}/data/dashboard-config",
"containerPath": "/usr/share/wazuh-dashboard/config/custom"
},
{
"hostPath": "${APP_DATA_DIR}/data/dashboard-custom",
"containerPath": "/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom"
},
{
"hostPath": "${APP_DATA_DIR}/data/scripts",
"containerPath": "/scripts"
}
],
"deploy": {
"resources": {
"limits": {
"cpus": "0.4",
"memory": "2G"
},
"reservations": {
"cpus": "0.2",
"memory": "512M",
"devices": []
}
}
},
"healthCheck": {
"test": "curl -ks https://localhost:5601/app/wazuh -o /dev/null -w '%{http_code}' | grep -qE '302|200' || exit 1",
"interval": "30s",
"timeout": "10s",
"retries": 15,
"startPeriod": "240s"
}
}
]
}