-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yaml
139 lines (135 loc) · 2.95 KB
/
docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
version: '3.3'
x-mongoenv: &mongoenv
MONGO_URI: mongodb://ts-db:27017/
MONGO_DB_NAME: timeseries-visualization-test
MONGO_COLLECTION_NAME: sensor_data
x-mqttenv: &mqttenv
MQTT_HOST: mqtt-broker
MQTT_PORT: 1883
services:
################################
# data ingestion and storage
################################
mongodb:
container_name: ts-db
image: mongo:6.0.3
ports:
- 27017:27017
mqtt-broker:
container_name: mqtt-broker
build:
context: mqtt-broker
ports:
- 1883:1883
depends_on:
- mongodb
data-consumer:
container_name: data-consumer
build:
context: data-consumer
target: base
environment:
<<: [*mongoenv, *mqttenv]
depends_on:
- mqtt-broker
################################
# REST API
################################
api:
container_name: ts-api
build:
context: data-api
target: api
ports:
- 8000:8000
environment:
<<: *mongoenv
depends_on:
- data-consumer
################################
# visualization dashboards
################################
dashboard-angular:
container_name: dashboard-angular
build:
context: dashboard-angular
target: prod
ports:
- 80:80
depends_on:
- api
dashboard-plotly:
container_name: dashboard-plotly
build:
context: dashboard-plotly
target: dash
ports:
- 8050:8050
environment:
<<: *mongoenv
depends_on:
- data-consumer
volumes:
- ./dashboard-plotly/dashboard:/app/dashboard
command: bash -c "python /app/dashboard/main.py"
dashboard-nicegui:
container_name: dashboard-nicegui
build:
context: dashboard-nicegui
ports:
- 8060:8060
environment:
<<: *mongoenv
depends_on:
- data-consumer
volumes:
- ./dashboard-nicegui/dashboard:/app/dashboard
command: bash -c "python /app/dashboard/main.py"
################################
# sensors
################################
ts-sensor-1:
container_name: ts-sensor-1
build:
context: data-sensor
target: sensor
environment:
<<: *mqttenv
SENSOR_AREA: KITCHEN
SENSOR_TYPE: TEMPERATURE
depends_on:
- data-consumer
ts-sensor-2:
container_name: ts-sensor-2
build:
context: data-sensor
target: sensor
environment:
<<: *mqttenv
SENSOR_AREA: KITCHEN
SENSOR_TYPE: TEMPERATURE
depends_on:
- data-consumer
ts-sensor-3:
container_name: ts-sensor-3
build:
context: data-sensor
target: sensor
environment:
<<: *mqttenv
SENSOR_TYPE: HUMIDITY
SENSOR_AREA: BEDROOM
depends_on:
- data-consumer
ts-sensor-4:
container_name: ts-sensor-4
build:
context: data-sensor
target: sensor
environment:
<<: *mqttenv
SENSOR_TYPE: TEMPERATURE
SENSOR_AREA: BEDROOM
depends_on:
- data-consumer