forked from brian7704/OpenTAKServer-Docker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
162 lines (153 loc) · 4.66 KB
/
Copy pathdocker-compose.yml
File metadata and controls
162 lines (153 loc) · 4.66 KB
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
services:
ots:
build:
context: .
dockerfile: Dockerfile
container_name: opentakserver
hostname: opentakserver
restart: unless-stopped
tty: true
ports:
- "8081:8081" # OTS listens on this port on the loopback interface for HTTP(S) requests
volumes:
- "./ots:/app/ots:rw"
#- "./.opentakserver_venv:/app/venv/:rw"
depends_on:
rabbitmq:
condition: service_healthy
mediamtx:
condition: service_started
healthcheck:
test: curl --fail http://localhost:8081/api/health || exit 1
interval: 60s
timeout: 5s
retries: 3
start_period: 60s
env_file: ots_config.env
ots_cot_parser:
image: ghcr.io/brian7704/ots_cot_parser:master
container_name: ots_cot_parser
hostname: ots-cot_parser
restart: unless-stopped
tty: true
command: python3 /app/venv/bin/cot_parser
healthcheck:
disable: true
volumes:
- "./ots:/app/ots:rw"
depends_on:
ots:
condition: service_healthy
env_file: ots_config.env
ots_eud_handler:
image: ghcr.io/brian7704/ots_eud_handler:master
container_name: ots_eud_handler
hostname: ots_eud_handler
restart: unless-stopped
tty: true
command: python3 /app/venv/bin/eud_handler
ports:
- "0.0.0.0:8088:8088" # TCP CoT streaming port
healthcheck:
disable: true
volumes:
- "./ots:/app/ots:rw"
env_file: ots_config.env
ots_eud_handler_ssl:
image: ghcr.io/brian7704/ots_eud_handler_ssl:master
container_name: ots_eud_handler_ssl
hostname: ots_eud_handler_ssl
restart: unless-stopped
tty: true
command: python3 /app/venv/bin/eud_handler --ssl
ports:
- "0.0.0.0:8089:8089" # SSL CoT streaming port
healthcheck:
disable: true
volumes:
- "./ots:/app/ots"
env_file: ots_config.env
depends_on:
ots:
condition: service_healthy
ots-webui:
image: ghcr.io/brian7704/opentakserver-ui:master
container_name: ots-webui
hostname: opentakserver-webui
nginx-proxy:
build:
context: .
dockerfile: ots/configs/nginx/Dockerfile
container_name: nginx-proxy
hostname: nginx-proxy
restart: unless-stopped
ports:
- "0.0.0.0:80:80" # HTTP Web UI
- "0.0.0.0:443:443" # HTTPS Web UI
- "0.0.0.0:8080:8080" # HTTP API requests to OpenTAKServer port 8081
- "0.0.0.0:8443:8443" # HTTPS API requests to OpenTAKServer port 8081
- "0.0.0.0:8446:8446" # Proxy for certificate enrollment to OpenTAKServer port 8081
- "0.0.0.0:8883:8883" # Proxy for MQTT / Meshtastic to Rabbitmq port 1883
volumes:
- "./ots/ca:/app/ots/ca:ro"
- "./ots/configs/nginx/templates:/etc/nginx/templates:ro"
- ./ots/configs/nginx/letsencrypt/www:/var/www/certbot/:rw
- ./ots/configs/nginx/letsencrypt/certs/:/etc/letsencrypt/:rw
depends_on:
ots:
condition: service_healthy
certbot:
image: certbot/certbot:latest
volumes:
- ./ots/configs/nginx/letsencrypt/www:/var/www/certbot/:rw
- ./ots/configs/nginx/letsencrypt/certs/:/etc/letsencrypt/:rw
rabbitmq:
image: rabbitmq:latest
container_name: rabbitmq
hostname: rabbitmq
restart: unless-stopped
volumes:
- "/etc/timezone:/etc/timezone:ro"
- "./ots/configs/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro"
- "./ots/configs/rabbitmq/99-opentakserver.conf:/etc/rabbitmq/conf.d/99-opentakserver.conf:ro"
healthcheck:
test: rabbitmq-diagnostics -q ping
interval: 30s
timeout: 30s
retries: 3
mediamtx:
image: bluenviron/mediamtx:1.13.0-ffmpeg
container_name: mediamtx
hostname: mediamtx
restart: unless-stopped
# network_mode: host
ports:
- "0.0.0.0:1935:1935" # RTMP video streams
- "0.0.0.0:1936:1936" # RTMPS video streams
- "0.0.0.0:8000:8000/udp" # RTP video streams
- "0.0.0.0:8001:8001/udp" # RTCP video streams
- "0.0.0.0:8189:8189/udp" # WebRTC
- "0.0.0.0:8322:8322" # RTSP(S) video streams
- "0.0.0.0:8554:8554" # RTSP video streams
- "0.0.0.0:8888:8888" # HLS video streams
- "0.0.0.0:8889:8889" # WebRTC streams
- "0.0.0.0:8890:8890/udp" # SRT streams
- "0.0.0.0:9997:9997" # MediaMTX API
volumes:
- "./ots:/app/ots"
- "./ots/mediamtx/mediamtx.yml:/mediamtx.yml"
ots-db:
image: postgis/postgis:18-3.6
container_name: ots-db
hostname: ots-db
restart: unless-stopped
env_file: ots_config.env
volumes:
- "./ots/pgdata:/var/lib/postgresql"
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 1s
timeout: 5s
retries: 10
ports:
- "5432:5432"