@@ -32,9 +32,9 @@ services:
3232 - CORS_ALLOW_ORIGIN=https://${SENTINELKIT_FRONTEND_HOSTNAME}
3333 volumes :
3434 - ./config/docker-config/backend-entrypoint.sh:/usr/local/bin/backend-entrypoint.sh:ro
35- - ./config/certificates/jwt:/var/www/html/config/jwt
3635 - ./sentinel-kit_server_backend:/var/www/html:delegated
3736 - ./sentinel-kit_server_backend/public:/var/www/html/public:delegated
37+ - sentinel-kit_certificates_jwt:/var/www/html/config/jwt
3838 - sentinel-kit_server_backend_vendor_cache:/var/www/html/vendor
3939 - sentinel-kit_server_backend_var_cache:/var/www/html/var
4040 stdin_open : true
@@ -59,9 +59,6 @@ services:
5959 volumes :
6060 - ./config/fluentbit_server:/fluent-bit/etc
6161 - ./data/log_ingest_data:/var/log:ro
62- ports :
63- - " 24224:24224"
64- - " 24224:24224/udp"
6562 networks :
6663 - sentinel-kit-network
6764 depends_on :
@@ -79,6 +76,7 @@ services:
7976 networks :
8077 - sentinel-kit-network
8178 working_dir : /home/${SFTP_USER}/uploads
79+ profiles : ["sftp"]
8280
8381 sentinel-kit-db-mysql :
8482 container_name : sentinel-kit-db-mysql
@@ -109,8 +107,8 @@ services:
109107 - " 443:443"
110108 volumes :
111109 - ./config/caddy_server/Caddyfile:/etc/caddy/Caddyfile
112- - ./config/certificates/caddy_server:/data/caddy/pki/authorities/local
113110 - ./data/caddy_logs:/var/log/caddy
111+ - sentinel-kit_certificates_caddy:/data/caddy/pki/authorities/local
114112 - sentinel-kit_server_caddy_data:/data
115113 - sentinel-kit_server_caddy_config:/config
116114 networks :
@@ -120,56 +118,20 @@ services:
120118 - sentinel-kit-app-backend
121119 - sentinel-kit-db-mysql
122120
123- sentinel-kit-db -elasticsearch-setup :
121+ sentinel-kit-conf -elasticsearch-setup :
124122 image : docker.elastic.co/elasticsearch/elasticsearch:${ELASTICSTACK_VERSION}
125- container_name : sentinel-kit-db -elasticsearch-setup
123+ container_name : sentinel-kit-conf -elasticsearch-setup
126124 restart : on-failure
127125 volumes :
128- - ./config/certificates/elasticsearch:/usr/share/elasticsearch/config/certs
126+ - sentinel-kit_certificates_elasticsearch:/usr/share/elasticsearch/config/certs
127+ - ./config/elasticsearch/ca-setup.sh:/usr/share/elasticsearch/ca-setup.sh:ro
129128 user : " 0"
130- command : >
131- bash -c '
132- if [ x${ELASTICSEARCH_PASSWORD} == x ]; then
133- echo "Set the ELASTICSEARCH_PASSWORD environment variable in the .env file";
134- exit 1;
135- fi;
136- if [ ! -f config/certs/ca.zip ]; then
137- echo "Creating CA";
138- bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;
139- unzip config/certs/ca.zip -d config/certs;
140- fi;
141- if [ ! -f config/certs/certs.zip ]; then
142- echo "Creating certs";
143- echo -ne \
144- "instances:\n"\
145- " - name: sentinel-kit-db-elasticsearch-es01\n"\
146- " dns:\n"\
147- " - sentinel-kit-db-elasticsearch-es01\n"\
148- " - localhost\n"\
149- " ip:\n"\
150- " - 127.0.0.1\n"\
151- " - name: sentinel-kit-db-elasticsearch-es02\n"\
152- " dns:\n"\
153- " - sentinel-kit-db-elasticsearch-es02\n"\
154- " - localhost\n"\
155- " ip:\n"\
156- " - 127.0.0.1\n"\
157- > config/certs/instances.yml;
158- bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;
159- unzip config/certs/certs.zip -d config/certs;
160- fi;
161- echo "Setting file permissions"
162- chown -R root:root config/certs;
163- find . -type d -exec chmod 750 \{\} \;;
164- find . -type f -exec chmod 640 \{\} \;;
165- echo "Waiting for Elasticsearch availability";
166- until curl -s --cacert config/certs/ca/ca.crt https://sentinel-kit-db-elasticsearch-es01:9200 | grep -q "missing authentication credentials"; do sleep 30; done;
167- echo "Setting kibana_system password";
168- until curl -s -X POST --cacert config/certs/ca/ca.crt -u "elastic:${ELASTICSEARCH_PASSWORD}" -H "Content-Type: application/json" https://sentinel-kit-db-elasticsearch-es01:9200/_security/user/kibana_system/_password -d "{\"password\":\"s3nt1n3lkit_k1b4n4_syst3m_p4sswd\"}" | grep -q "^{}"; do sleep 10; done;
169- echo "All done!";
170- '
129+ command : ' sh -c "/usr/share/elasticsearch/ca-setup.sh"'
130+ environment :
131+ - ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD}
132+ - ELASTICSEARCH_CLUSTER_MODE=${ELASTICSEARCH_CLUSTER_MODE}
171133 healthcheck :
172- test : ["CMD-SHELL", "[ -f config/certs/es01/es01.crt ]"]
134+ test : ["CMD-SHELL", "[ -f /usr/share/elasticsearch/ config/certs/es01/es01.crt ]"]
173135 interval : 1s
174136 timeout : 5s
175137 retries : 120
@@ -178,18 +140,17 @@ services:
178140
179141 sentinel-kit-db-elasticsearch-es01 :
180142 depends_on :
181- - sentinel-kit-db -elasticsearch-setup
143+ - sentinel-kit-conf -elasticsearch-setup
182144 image : docker.elastic.co/elasticsearch/elasticsearch:${ELASTICSTACK_VERSION}
183145 container_name : sentinel-kit-db-elasticsearch-es01
184146 restart : on-failure
185147 volumes :
186- - ./config/certificates/elasticsearch :/usr/share/elasticsearch/config/certs
148+ - sentinel-kit_certificates_elasticsearch :/usr/share/elasticsearch/config/certs
187149 - sentinel-kit_db_elasticsearch_es01_data:/usr/share/elasticsearch/data
188150 environment :
189151 - node.name=sentinel-kit-db-elasticsearch-es01
190152 - cluster.name=${ELASTICSEARCH_CLUSTER_NAME}
191- - cluster.initial_master_nodes=sentinel-kit-db-elasticsearch-es01,sentinel-kit-db-elasticsearch-es02
192- - discovery.seed_hosts=sentinel-kit-db-elasticsearch-es02
153+ - cluster.initial_master_nodes=sentinel-kit-db-elasticsearch-es01
193154 - ELASTIC_PASSWORD=${ELASTICSEARCH_PASSWORD}
194155 - bootstrap.memory_lock=true
195156 - xpack.security.enabled=true
@@ -224,16 +185,17 @@ services:
224185 sentinel-kit-db-elasticsearch-es02 :
225186 depends_on :
226187 - sentinel-kit-db-elasticsearch-es01
188+ - sentinel-kit-conf-elasticsearch-setup
227189 image : docker.elastic.co/elasticsearch/elasticsearch:${ELASTICSTACK_VERSION}
228190 container_name : sentinel-kit-db-elasticsearch-es02
229191 restart : on-failure
230192 volumes :
231- - ./config/certificates/elasticsearch :/usr/share/elasticsearch/config/certs
193+ - sentinel-kit_certificates_elasticsearch :/usr/share/elasticsearch/config/certs
232194 - sentinel-kit_db_elasticsearch_es02_data:/usr/share/elasticsearch/data
233195 environment :
234196 - node.name=sentinel-kit-db-elasticsearch-es02
235197 - cluster.name=${ELASTICSEARCH_CLUSTER_NAME}
236- - cluster.initial_master_nodes=sentinel-kit-db-elasticsearch-es01,sentinel-kit-db-elasticsearch-es02
198+ - cluster.initial_master_nodes=sentinel-kit-db-elasticsearch-es01
237199 - discovery.seed_hosts=sentinel-kit-db-elasticsearch-es01
238200 - ELASTIC_PASSWORD=${ELASTICSEARCH_PASSWORD}
239201 - bootstrap.memory_lock=true
@@ -265,6 +227,7 @@ services:
265227 retries : 120
266228 networks :
267229 - sentinel-kit-network
230+ profiles : ["es-secondary-node"]
268231
269232 sentinel-kit-utils-kibana :
270233 container_name : sentinel-kit-utils-kibana
@@ -273,21 +236,17 @@ services:
273236 depends_on :
274237 sentinel-kit-db-elasticsearch-es01 :
275238 condition : service_healthy
276- sentinel-kit-db-elasticsearch-es02 :
277- condition : service_healthy
278- sentinel-kit-db-elasticsearch-setup :
279- condition : service_completed_successfully
280239 image : docker.elastic.co/kibana/kibana:${ELASTICSTACK_VERSION}
281240 volumes :
282- - ./config/certificates/elasticsearch :/usr/share/kibana/config/certs
241+ - sentinel-kit_certificates_elasticsearch :/usr/share/kibana/config/certs/elasticsearch:ro
283242 - ./data/kibana:/usr/share/kibana/data
284243 environment :
285244 - SERVERNAME=sentinel-kit-utils-kibana
286245 - KIBANA_FLEET_PACKAGE_UPDATE_ENABLED=false
287246 - ELASTICSEARCH_HOSTS=https://sentinel-kit-db-elasticsearch-es01:9200
288247 - ELASTICSEARCH_USERNAME=kibana_system
289248 - ELASTICSEARCH_PASSWORD=s3nt1n3lkit_k1b4n4_syst3m_p4sswd
290- - ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt
249+ - ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/elasticsearch/ ca/ca.crt
291250 mem_limit : ${ELASTICSEARCH_MEMORY_LIMIT}
292251 healthcheck :
293252 test :
@@ -300,6 +259,7 @@ services:
300259 retries : 120
301260 networks :
302261 - sentinel-kit-network
262+ profiles : ["kibana"]
303263
304264 sentinel-kit-utils-prometheus :
305265 container_name : sentinel-kit-utils-prometheus
@@ -311,6 +271,7 @@ services:
311271 - sentinel-kit-network
312272 depends_on :
313273 - sentinel-kit-server-fluentbit
274+ profiles : ["internal-monitoring"]
314275
315276 sentinel-kit-utils-grafana :
316277 container_name : sentinel-kit-utils-grafana
@@ -319,7 +280,7 @@ services:
319280 restart : on-failure
320281 user : " 0"
321282 volumes :
322- - ./config/certificates/elasticsearch/ca/ca.crt :/etc/grafana/certs/elasticsearch-ca.crt :ro
283+ - sentinel-kit_certificates_elasticsearch :/etc/grafana/certs/elasticsearch:ro
323284 - ./data/grafana:/var/lib/grafana
324285 - ./config/grafana/datasources:/etc/grafana/provisioning/datasources
325286 - ./config/grafana/dashboards:/etc/grafana/provisioning/dashboards
@@ -337,9 +298,10 @@ services:
337298 - /bin/sh
338299 - -c
339300 - |
340- cp /etc/grafana/certs/elasticsearch- ca.crt /usr/local/share/ca-certificates/elasticsearch-ca.crt
301+ cp /etc/grafana/certs/elasticsearch/ca/ ca.crt /usr/local/share/ca-certificates/elasticsearch-ca.crt
341302 update-ca-certificates
342303 /run.sh
304+ profiles : ["internal-monitoring"]
343305
344306 sentinel-kit-utils-phpmyadmin :
345307 container_name : sentinel-kit-utils-phpmyadmin
@@ -353,7 +315,7 @@ services:
353315 - sentinel-kit-network
354316 depends_on :
355317 - sentinel-kit-db-mysql
356-
318+ profiles : ["phpmyadmin"]
357319networks :
358320 sentinel-kit-network :
359321 driver : bridge
@@ -365,4 +327,7 @@ volumes:
365327 sentinel-kit_db_elasticsearch_es02_data :
366328 sentinel-kit_server_backend_vendor_cache :
367329 sentinel-kit_server_backend_var_cache :
368- sentinel-kit_server_backend_public:
330+ sentinel-kit_server_backend_public :
331+ sentinel-kit_certificates_elasticsearch :
332+ sentinel-kit_certificates_caddy :
333+ sentinel-kit_certificates_jwt:
0 commit comments