Replaces rocky-docker-lxc/, caddy-vm/, monitoring-vm/, and automation/ with a single stacks/ tree grouped by function (identity-and-security, platform, media, productivity, dev-tools) - 55 stacks total, every one a real directory in the private repos today. Resolves all outstanding drift: adds Wazuh (previously entirely missing), Firefly III and Postiz (never mirrored), the internal-zone Caddy instance and the Cron Scheduler's separate NocoDB instance (both previously conflated with their counterparts under one shared folder); renames Calibre-Web to calibre-web-automated and splits Kodi-MariaDB into kodi + mariadb-latest to match what the private repos actually run now; drops the decommissioned NetBox stack. Also removes automation/iac/old-content/ and automation/ansible/old-playbooks/ in the same pass - both folders were entirely stale content describing a superseded architecture (GitLab instead of Gitea, HAProxy+mTLS SSO instead of the current Caddy+Authentik setup), now replaced by docs/iac-pipeline.md.
107 lines
4.5 KiB
YAML
107 lines
4.5 KiB
YAML
name: single-node
|
|
# Wazuh App Copyright (C) 2017, Wazuh Inc. (License GPLv2)
|
|
services:
|
|
wazuh.manager:
|
|
image: wazuh/wazuh-manager:4.14.6
|
|
hostname: wazuh.manager
|
|
restart: always
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 655360
|
|
hard: 655360
|
|
ports:
|
|
- "1514:1514"
|
|
- "1515:1515"
|
|
- "514:514/udp"
|
|
- "55000:55000"
|
|
env_file:
|
|
- .env.secrets # INDEXER_PASSWORD, API_PASSWORD — never committed
|
|
environment:
|
|
- TZ=${TZ}
|
|
- INDEXER_URL=https://wazuh.indexer:9200
|
|
- INDEXER_USERNAME=admin
|
|
- FILEBEAT_SSL_VERIFICATION_MODE=full
|
|
- SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem
|
|
- SSL_CERTIFICATE=/etc/ssl/filebeat.pem
|
|
- SSL_KEY=/etc/ssl/filebeat.key
|
|
- API_USERNAME=wazuh-wui
|
|
volumes:
|
|
- /path/to/wazuh/manager/api_configuration:/var/ossec/api/configuration
|
|
- /path/to/wazuh/manager/etc:/var/ossec/etc
|
|
- /path/to/wazuh/manager/logs:/var/ossec/logs
|
|
- /path/to/wazuh/manager/queue:/var/ossec/queue
|
|
- /path/to/wazuh/manager/var_multigroups:/var/ossec/var/multigroups
|
|
- /path/to/wazuh/manager/integrations:/var/ossec/integrations
|
|
- /path/to/wazuh/manager/active_response:/var/ossec/active-response/bin
|
|
- /path/to/wazuh/manager/agentless:/var/ossec/agentless
|
|
- /path/to/wazuh/manager/wodles:/var/ossec/wodles
|
|
- /path/to/wazuh/manager/filebeat_etc:/etc/filebeat
|
|
- /path/to/wazuh/manager/filebeat_var:/var/lib/filebeat
|
|
- ./config/wazuh_indexer_ssl_certs/root-ca-manager.pem:/etc/ssl/root-ca.pem
|
|
- ./config/wazuh_indexer_ssl_certs/wazuh.manager.pem:/etc/ssl/filebeat.pem
|
|
- ./config/wazuh_indexer_ssl_certs/wazuh.manager-key.pem:/etc/ssl/filebeat.key
|
|
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
|
|
|
wazuh.indexer:
|
|
image: wazuh/wazuh-indexer:4.14.6
|
|
hostname: wazuh.indexer
|
|
restart: always
|
|
ports:
|
|
- "9200:9200"
|
|
environment:
|
|
- TZ=${TZ}
|
|
- "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
volumes:
|
|
- /path/to/wazuh/indexer/data:/var/lib/wazuh-indexer
|
|
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-indexer/config/certs/root-ca.pem
|
|
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer-key.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.key
|
|
- ./config/wazuh_indexer_ssl_certs/wazuh.indexer.pem:/usr/share/wazuh-indexer/config/certs/wazuh.indexer.pem
|
|
- ./config/wazuh_indexer_ssl_certs/admin.pem:/usr/share/wazuh-indexer/config/certs/admin.pem
|
|
- ./config/wazuh_indexer_ssl_certs/admin-key.pem:/usr/share/wazuh-indexer/config/certs/admin-key.pem
|
|
- ./config/wazuh_indexer/wazuh.indexer.yml:/usr/share/wazuh-indexer/config/opensearch.yml
|
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml
|
|
|
|
wazuh.dashboard:
|
|
image: wazuh/wazuh-dashboard:4.14.6
|
|
hostname: wazuh.dashboard
|
|
restart: always
|
|
ports:
|
|
- 443:5601
|
|
env_file:
|
|
- .env.secrets # INDEXER_PASSWORD, DASHBOARD_PASSWORD, API_PASSWORD — never committed
|
|
environment:
|
|
- TZ=${TZ}
|
|
- INDEXER_USERNAME=admin
|
|
- WAZUH_API_URL=https://wazuh.manager
|
|
- DASHBOARD_USERNAME=kibanaserver
|
|
- API_USERNAME=wazuh-wui
|
|
entrypoint:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
sed "s/__API_USERNAME__/$$API_USERNAME/;s/__API_PASSWORD__/$$API_PASSWORD/" /wazuh-config-mount/wazuh.yml.tpl > /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
|
|
exec /entrypoint.sh
|
|
volumes:
|
|
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard.pem
|
|
- ./config/wazuh_indexer_ssl_certs/wazuh.dashboard-key.pem:/usr/share/wazuh-dashboard/certs/wazuh-dashboard-key.pem
|
|
- ./config/wazuh_indexer_ssl_certs/root-ca.pem:/usr/share/wazuh-dashboard/certs/root-ca.pem
|
|
- ./config/wazuh_dashboard/opensearch_dashboards.yml:/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml
|
|
- ./config/wazuh_dashboard/wazuh.yml.tpl:/wazuh-config-mount/wazuh.yml.tpl:ro
|
|
- /path/to/wazuh/dashboard/config:/usr/share/wazuh-dashboard/data/wazuh/config
|
|
- /path/to/wazuh/dashboard/custom:/usr/share/wazuh-dashboard/plugins/wazuh/public/assets/custom
|
|
depends_on:
|
|
- wazuh.indexer
|
|
links:
|
|
- wazuh.indexer:wazuh.indexer
|
|
- wazuh.manager:wazuh.manager
|