@@ -10,13 +10,105 @@ volumes:
1010 prometheus-data :
1111
1212services :
13- timesketch :
14- image : timesketch-timesketch/dev :latest
13+ setup :
14+ image : timesketch-setup :latest
1515 build :
1616 context : ../../..
1717 dockerfile : contrib/docker/dev/timesketch/Dockerfile
18+ target : setup
1819 args :
1920 BASE_IMAGE : " ${TIMESKETCH_BASE_IMAGE:?}"
21+ TIMESKETCH_USER_NAME : " ${TIMESKETCH_USER_NAME:?}"
22+ TIMESKETCH_USER_UID : " ${TIMESKETCH_USER_UID:?}"
23+ TIMESKETCH_USER_GID : " ${TIMESKETCH_USER_GID:?}"
24+ TIMESKETCH_CONF_DIR : " ${TIMESKETCH_CONF_DIR:?}"
25+ GIFT_PPA_TRACK : " ${GIFT_PPA_TRACK:?}"
26+ GIFT_PPA_URL : " ${GIFT_PPA_URL:?}"
27+ NODE_VERSION : " ${NODE_VERSION:?}"
28+ NODE_PPA_URL : " ${NODE_PPA_URL:?}"
29+ NODE_NPMRC : " ${NODE_NPMRC?}"
30+ YARN_YARNRC : " ${YARN_YARNRC?}"
31+ PYTHON_PIP_CONF : " ${PYTHON_PIP_CONF?}"
32+ command : timesketch
33+ env_file :
34+ - timesketch/timesketch.env
35+ volumes :
36+ - " ../../../:/usr/local/src/timesketch/"
37+ - " ./timesketch/timesketch.conf:${TIMESKETCH_CONF_DIR:?}/timesketch.conf:ro"
38+ - " ./timesketch/sigma_rules.txt:${TIMESKETCH_CONF_DIR:?}/sigma_rules.txt:ro"
39+ - " ../../../data/sigma_config.yaml:${TIMESKETCH_CONF_DIR:?}/sigma_config.yaml:ro"
40+ - " ../../../data/sigma:${TIMESKETCH_CONF_DIR:?}/sigma:ro"
41+ depends_on :
42+ postgresql :
43+ condition : service_healthy
44+ redis :
45+ condition : service_healthy
46+ networks :
47+ - timesketch-dev
48+
49+ celery-worker :
50+ image : timesketch-celery-worker:latest
51+ build :
52+ context : ../../..
53+ dockerfile : contrib/docker/dev/timesketch/Dockerfile
54+ target : celery-worker
55+ args :
56+ BASE_IMAGE : " ${TIMESKETCH_BASE_IMAGE:?}"
57+ TIMESKETCH_USER_NAME : " ${TIMESKETCH_USER_NAME:?}"
58+ TIMESKETCH_USER_UID : " ${TIMESKETCH_USER_UID:?}"
59+ TIMESKETCH_USER_GID : " ${TIMESKETCH_USER_GID:?}"
60+ TIMESKETCH_CONF_DIR : " ${TIMESKETCH_CONF_DIR:?}"
61+ GIFT_PPA_TRACK : " ${GIFT_PPA_TRACK:?}"
62+ GIFT_PPA_URL : " ${GIFT_PPA_URL:?}"
63+ NODE_VERSION : " ${NODE_VERSION:?}"
64+ NODE_PPA_URL : " ${NODE_PPA_URL:?}"
65+ NODE_NPMRC : " ${NODE_NPMRC?}"
66+ YARN_YARNRC : " ${YARN_YARNRC?}"
67+ PYTHON_PIP_CONF : " ${PYTHON_PIP_CONF?}"
68+ command : timesketch
69+ env_file :
70+ - timesketch/timesketch.env
71+ volumes :
72+ - " ../../../:/usr/local/src/timesketch/"
73+ - " ./timesketch/timesketch.conf:${TIMESKETCH_CONF_DIR:?}/timesketch.conf:ro"
74+ - " ../../../data/regex_features.yaml:${TIMESKETCH_CONF_DIR:?}/regex_features.yaml:ro"
75+ - " ../../../data/winevt_features.yaml:${TIMESKETCH_CONF_DIR:?}/winevt_features.yaml:ro"
76+ - " ../../../data/tags.yaml:${TIMESKETCH_CONF_DIR:?}/tags.yaml:ro"
77+ - " ../../../data/intelligence_tag_metadata.yaml:${TIMESKETCH_CONF_DIR:?}/intelligence_tag_metadata.yaml:ro"
78+ - " ../../../data/plaso.mappings:${TIMESKETCH_CONF_DIR:?}/plaso.mappings:ro"
79+ - " ../../../data/generic.mappings:${TIMESKETCH_CONF_DIR:?}/generic.mappings:ro"
80+ - " ../../../data/ontology.yaml:${TIMESKETCH_CONF_DIR:?}/ontology.yaml:ro"
81+ - " ../../../data/data_finder.yaml:${TIMESKETCH_CONF_DIR:?}/data_finder.yaml:ro"
82+ - " ../../../data/bigquery_matcher.yaml:${TIMESKETCH_CONF_DIR:?}/bigquery_matcher.yaml:ro"
83+ - " ../../../data/sigma_config.yaml:${TIMESKETCH_CONF_DIR:?}/sigma_config.yaml:ro"
84+ - " ../../../data/sigma:${TIMESKETCH_CONF_DIR:?}/sigma:ro"
85+ - " ../../../data/dfiq:${TIMESKETCH_CONF_DIR:?}/dfiq:ro"
86+ - " ../../../data/context_links.yaml:${TIMESKETCH_CONF_DIR:?}/context_links.yaml:ro"
87+ - " ../../../data/plaso_formatters.yaml:${TIMESKETCH_CONF_DIR:?}/plaso_formatters.yaml:ro"
88+ - " ../../../data/nl2q:${TIMESKETCH_CONF_DIR:?}/nl2q:ro"
89+ - " ../../../data/llm_summarize:${TIMESKETCH_CONF_DIR:?}/llm_summarize:ro"
90+ depends_on :
91+ postgresql :
92+ condition : service_healthy
93+ opensearch :
94+ condition : service_started
95+ redis :
96+ condition : service_healthy
97+ networks :
98+ - timesketch-dev
99+
100+ gunicorn :
101+ image : timesketch-gunicorn:latest
102+ build :
103+ context : ../../..
104+ dockerfile : contrib/docker/dev/timesketch/Dockerfile
105+ target : gunicorn
106+ args :
107+ BASE_IMAGE : " ${TIMESKETCH_BASE_IMAGE:?}"
108+ TIMESKETCH_USER_NAME : " ${TIMESKETCH_USER_NAME:?}"
109+ TIMESKETCH_USER_UID : " ${TIMESKETCH_USER_UID:?}"
110+ TIMESKETCH_USER_GID : " ${TIMESKETCH_USER_GID:?}"
111+ TIMESKETCH_CONF_DIR : " ${TIMESKETCH_CONF_DIR:?}"
20112 GIFT_PPA_TRACK : " ${GIFT_PPA_TRACK:?}"
21113 GIFT_PPA_URL : " ${GIFT_PPA_URL:?}"
22114 NODE_VERSION : " ${NODE_VERSION:?}"
@@ -29,9 +121,6 @@ services:
29121 - name : gunicorn
30122 published : " 5000"
31123 target : 5000
32- - name : vite
33- published : " 5001"
34- target : 5001
35124 - name : metrics
36125 published : " 8080"
37126 target : 8080
@@ -40,7 +129,6 @@ services:
40129 volumes :
41130 - " ../../../:/usr/local/src/timesketch/"
42131 - " ./timesketch/timesketch.conf:${TIMESKETCH_CONF_DIR:?}/timesketch.conf:ro"
43- - " ./timesketch/sigma_rules.txt:${TIMESKETCH_CONF_DIR:?}/sigma_rules.txt:ro"
44132 - " ../../../data/regex_features.yaml:${TIMESKETCH_CONF_DIR:?}/regex_features.yaml:ro"
45133 - " ../../../data/winevt_features.yaml:${TIMESKETCH_CONF_DIR:?}/winevt_features.yaml:ro"
46134 - " ../../../data/tags.yaml:${TIMESKETCH_CONF_DIR:?}/tags.yaml:ro"
@@ -61,9 +149,49 @@ services:
61149 postgresql :
62150 condition : service_healthy
63151 opensearch :
152+ condition : service_started
153+ redis :
64154 condition : service_healthy
155+ networks :
156+ - timesketch-dev
157+
158+ vue-cli-service :
159+ image : timesketch-vue-cli-service:latest
160+ build :
161+ context : ../../..
162+ dockerfile : contrib/docker/dev/timesketch/Dockerfile
163+ target : vue-cli-service
164+ args :
165+ BASE_IMAGE : " ${TIMESKETCH_BASE_IMAGE:?}"
166+ TIMESKETCH_USER_NAME : " ${TIMESKETCH_USER_NAME:?}"
167+ TIMESKETCH_USER_UID : " ${TIMESKETCH_USER_UID:?}"
168+ TIMESKETCH_USER_GID : " ${TIMESKETCH_USER_GID:?}"
169+ TIMESKETCH_CONF_DIR : " ${TIMESKETCH_CONF_DIR:?}"
170+ GIFT_PPA_TRACK : " ${GIFT_PPA_TRACK:?}"
171+ GIFT_PPA_URL : " ${GIFT_PPA_URL:?}"
172+ NODE_VERSION : " ${NODE_VERSION:?}"
173+ NODE_PPA_URL : " ${NODE_PPA_URL:?}"
174+ NODE_NPMRC : " ${NODE_NPMRC?}"
175+ YARN_YARNRC : " ${YARN_YARNRC?}"
176+ PYTHON_PIP_CONF : " ${PYTHON_PIP_CONF?}"
177+ command : timesketch
178+ ports :
179+ - name : vue-cli-service
180+ published : " 5001"
181+ target : 5001
182+ env_file :
183+ - timesketch/timesketch.env
184+ volumes :
185+ - " ../../../:/usr/local/src/timesketch/"
186+ depends_on :
187+ postgresql :
188+ condition : service_healthy
189+ opensearch :
190+ condition : service_started
65191 redis :
66192 condition : service_healthy
193+ gunicorn :
194+ condition : service_healthy
67195 networks :
68196 - timesketch-dev
69197
@@ -129,7 +257,8 @@ services:
129257
130258 command : --config.file=/etc/prometheus/prometheus.yml
131259 depends_on :
132- - timesketch
260+ gunicorn :
261+ condition : service_healthy
133262 networks :
134263 - timesketch-dev
135264
@@ -149,6 +278,6 @@ services:
149278 - " /tmp/:/usr/local/src/picadata/"
150279 depends_on :
151280 opensearch :
152- condition : service_healthy
281+ condition : service_started
153282 networks :
154283 - timesketch-dev
0 commit comments