forked from jekhokie/raspberry-noaa-v2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
299 lines (299 loc) · 15.7 KB
/
docker-compose.yml
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
version: '3.8'
services:
raspi-noaa2:
image: ghcr.io/kx1t/raspberry-noaa-v2
container_name: noaa
hostname: noaa
restart: always
environment:
# base station configurations
# latitude: south values are negative
# longitude: west values are negative
- latitude=40.712776
- longitude=-74.005974
- altitude=0.0
#
# time zone offset from UTC (for example, '-5' for US Eastern)
- timezone_offset=-5
#
# ntp configurations
# ntp_server - if you have a local server (e.g. stratum1), you can use this setting
# to specify a hostname or ip address to communicate with the ntp server
- ntp_server=''
#
# test settings when running test scripts
# test_gain - gain to use for scanner test scripts
# test_sdr_device_id - device ID of the SDR device to be used for scanner test scripts
# test_sdr_device_serial - Serial string of the SDR device. If not empty, it will replace the corresponding sdr_device_id
# This is implemented to allow dynamic assignment of the device ID in case you have multiple SDRs
# test_enable_bias_tee - whether to enable bias tee when running scanner test scripts
# test_freq_offset - receiver frequency offset (PPM)
- test_gain=7.7
- test_sdr_device_id=0
- test_sdr_device_serial=''
- test_enable_bias_tee=true
- test_freq_offset=0
#
# receiver settings
# noaa_receiver - which receiver method to use (either 'rtl_fm' or 'gnuradio')
# meteor_receiver - which receiver method to use (either 'rtl_fm' or 'gnuradio')
# **WARNING**: 'gnuradio' does not work with certain SDR devices (e.g. it will not currently
# work with a RTL-SDR v3 dongle, as no image will be decoded from the bitstream)
#
- meteor_receiver='rtl_fm'
- noaa_receiver='rtl_fm'
#
# whether to schedule specific orbiting objects for capture
# <satellite_name>_schedule - whether to schedule captures for the satellite
# <satellite_name>_sdr_device_id - device ID of the SDR device to be used for recording for the satellite
# <satellite_name>_sdr_device_serial - Serial string of the SDR device. If not empty, it will replace the corresponding sdr_device_id
# This is implemented to allow dynamic assignment of the device ID in case you have multiple SDRs
# <satellite_name>_freq_offset - receiver frequency offset (PPM) for the satellite capture
# <satellite_name>_enable_bias_tee - whether to enable bias tee for the recording of the satellite
# <satellite_name>_gain - gain setting for specific satellite captures
# <satellite_name>_sun_min_elevation - threshold for sun elevation for specific satellite captures
# <satellite_name>_sat_min_elevation - threshold for sat elevation for specific satellite captures
# <sat_type>_memory_threshold - minimum free TMPFS disk space (MB) required to store pass in RAM
#
- noaa_memory_threshold=600
#
- noaa_15_schedule=true
- noaa_15_sdr_device_id=0
- noaa_15_sdr_device_serial=''
- noaa_15_freq_offset=0
- noaa_15_enable_bias_tee=true
- noaa_15_gain=48.0
#
- noaa_15_sun_min_elevation=6
- noaa_15_sat_min_elevation=30
#
- noaa_18_schedule=true
- noaa_18_sdr_device_id=0
- noaa_18_sdr_device_serial=''
- noaa_18_freq_offset=0
- noaa_18_enable_bias_tee=true
- noaa_18_gain=48.0
#
- noaa_18_sun_min_elevation=6
- noaa_18_sat_min_elevation=30
#
- noaa_19_schedule=true
- noaa_19_sdr_device_id=0
- noaa_19_sdr_device_serial=''
- noaa_19_freq_offset=0
- noaa_19_enable_bias_tee=true
- noaa_19_gain=48.0
- noaa_19_sun_min_elevation=6
- noaa_19_sat_min_elevation=30
#
- meteor_m2_schedule=true
- meteor_m2_sdr_device_id=0
- meteor_m2_sdr_device_serial=''
- meteor_m2_freq_offset=0
- meteor_m2_enable_bias_tee=true
- meteor_m2_gain=48.0
- meteor_m2_sun_min_elevation=6
- meteor_m2_sat_min_elevation=30
- meteor_m2_memory_threshold=600
#
# whether audio files should be deleted after images are created
- delete_audio=false
#
# processing settings
# flip_meteor_image - whether the meteor image should be flipped
# produce_spectrogram - whether to produce a spectrogram image of the audio recording
# noaa_crop_telemetry - whether to crop the left/right telemetry in image captures
# image_annotation_location - where to place the annotation in images - valid options are:
# NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast
# extend_for_annotation - whether to create a black extension on the north/south location of
# the image to place the annotation into (vs. overlaying on the captured data)
# (note: this will ONLY work if the image_annotation_location is NOT one of [West|Center|East])
# produce_noaa_pristine_image - whether to produce a pristine image (unmodified) for larger
# composite-based use cases
# produce_noaa_pristine_histogram - whether to produce a histogram of the NOAA pristine image
# produce_polar_az_el_graph - whether to produce a polar graph that shows the pass
# azimuth and elevation over the course of the pass, truncated to satellite min elevation
# produce_polar_direction_graph - whether to produce a polar graph that shows the pass
# direction over the course of the pass, including AOS and LOS
# ground_station_location - free-form text for indicating ground station location in image
# annotation (leave blank if you wish to exclude the ground station annotation)
# antenna_information - free-form text for indicating antenna information in image
# annotation (leave blank if you wish to exclude the antenna information annotation)
# show_sun_elevation - whether to show sun elevation in annotation
# show_pass_direction - show which direction the satellite is moving in the image annotation
# noaa_daytime_enhancements - list of enhancements to create images using during daytime captures
# (note: default value seen includes list of ALL supported image processors excluding 'avi' which must be explicitly added when opting to 'enable_animation' below )
# noaa_nighttime_enhancements - list of enhancements to create images using during nighttime captures
#
# (note: default value is total list of supported image processors)
# noaa_crop_toptobottom - shows entire image including noise at start and end.
# noaa_interpolate - produces a larger, higher quality image
# noaa_apt (experimental) - an alternative demodulator and image rendering option to wxtoimg
#
- flip_meteor_image=true
- produce_spectrogram=true
- noaa_crop_telemetry=false
- image_annotation_location='NorthWest'
- extend_for_annotation=false
- produce_noaa_pristine_image=false
- produce_noaa_pristine_histogram=false
- produce_polar_az_el_graph=false
- produce_polar_direction_graph=true
- ground_station_location=''
- antenna_information=''
- show_sun_elevation=true
- show_pass_direction=true
- noaa_daytime_enhancements='MCIR MCIR-precip MSA MSA-precip HVC-precip HVCT-precip HVC HVCT ZA therm CC HE HF MD BD MB JF JJ LC TA WV NO sea'
- noaa_nighttime_enhancements='MCIR MCIR-precip HVCT ZA therm NO TA sea'
- meteor_create_spreaded_images_without_overlay=true
- meteor_create_rain_probability_overlay=true
- meteor_create_equidistant_projection=true
- meteor_create_mercator_projection=false
- noaa_crop_toptobottom=true
- noaa_interpolate=false
#
# noaa map configurations
# http://usradioguy.com/wp-content/uploads/2020/05/wxtoimgcommand-line.pdf
#
# note - colors are in format 0xRRGGBB (only applicable when the
# feature is enabled), where:
# RR: Red hex value
# GG: Green hex value
# BB: Blue hex value
# Colors can alternatively be specified as one of the following:
# black, white, gray, light-gray, dark-gray, red, pink dark-red,
# light-red, # green, light-green, dark-green, black-green, blue,
# light-blue, dark-blue, black-blue, yellow, light-yellow, dark-yellow,
# magenta, light-magenta, dark-magenta, cyan, light-cyan, dark-cyan,
# orange, dark-orange, purple, lavender, violet, navy, turquoise,
# aquamarine, chartreuse, gold, beige, tan, brown, and maroon
#
# noaa_map_crosshair_enable - whether to place a crosshairs on the base station location
# noaa_map_crosshair_color - color of base station crosshair
# noaa_map_grid_degrees - latitude/longitude lines drawn every grid degrees (default 10.0, 0.0 to disable)
# noaa_map_grid_color - color of gridlines for latitude/longitude
# noaa_map_country_border_enable - whether to enable country borders in images
# noaa_map_country_border_color - color of country borders
# noaa_map_state_border_enable - whether to enable state borders in images (Americas only)
# noaa_map_state_border_color - color of state borders (Americas only)
- noaa_map_crosshair_enable=false
- noaa_map_crosshair_color="0xffff00"
- noaa_map_grid_degrees=10.0
- noaa_map_grid_color="0xff0000"
- noaa_map_country_border_enable=true
- noaa_map_country_border_color="0xffff00"
- noaa_map_state_border_enable=true
- noaa_map_state_border_color="0xffff00"
#
# settings for thermal map output for NOAA captures
# noaa_thermal_temp_overlay - whether to overlay a thermal map for color codes to temperature
# noaa_thermal_temp_overlay_location - where to place the thermal map in images - valid options are:
# NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast
- noaa_thermal_temp_overlay=false
- noaa_thermal_temp_overlay_location='NorthEast'
#
# locale settings for timezone and language
# timezone: see https://www.php.net/manual/en/timezones.php
# lang_setting: see the 'webpanel/App/Lang' folder for available
# languages (2-letter filename - e.g. ar, bg, de, en, es, nl, sr)
- timezone=America/New_York
- lang_setting=en
#
# web server configuration settings
# web_server_name - server name to use for the TLS certs and web endpoint - this MUST be
# resolvable to the IP of this host (if you don't have DNS, simply use
# the IP of the Raspberry Pi host)
# enable_non_tls - whether to enable a clear-text web listener (default port 80)
# web_port - port to run the web server clear-text (non-encrypted) endpoint on
# enable_tls - whether to enable the TLS-encrypted web listener (default port 443)
# web_tls_port - port to run the TLS listener on
# cert_valid_days - number of days the TLS certificates should be valid for - note that
# you will need to re-install the certificates once this timeline expires
# lock_admin_page - whether to require username/password when attempting to access the admin page
# of the webpanel - WARNING: DO NOT SET THIS TO TRUE UNLESS YOU ONLY HAVE A TLS
# ENABLED SITE - SETTING TO TRUE AND RUNNING A CLEARTEXT SITE IS ALMOST CERTAINLY
# ASKING FOR YOUR CREDENTIALS TO BE STOLEN MID-REQUEST
# admin_username - username used to access the 'admin' endpoint of the webpanel (WARNING: see 'lock_admin_page' above)
# admin_password - password used to access the 'admin' endpoint of the webpanel (WARNING: see 'lock_admin_page' above)
# NOTE: MAKE SURE YOU SET THIS TO SOMETHING REASONABLY COMPLICATED!
# web_datetime_format - format to display date and time in the web interface - note that this MUST conform to
# https://www.php.net/manual/en/datetime.format.php or else bad things will happen
- web_server_name=raspberry-noaa.localdomain
- enable_non_tls=false
- web_port=80
- enable_tls=true
- web_tls_port=443
- cert_valid_days=365
- lock_admin_page=false
- admin_username='admin'
- admin_password='admin'
- web_datetime_format='m/d/Y H:i:s'
#
# log level for output from scripts
- log_level=DEBUG
#
# whether to enable the satvis visualization for satellite tracking
# in the passes view - note that this iframe-driven visualization is
# by default disabled on "extra-small" devices such as phones due to
# the processing and space requirements
- enable_satvis=true
#
# pruning capabilities - set to 0 to disable
# delete_oldest_n - how many oldest captures to delete on each run
# delete_older_than_n - delete all images older than this many days
- delete_oldest_n=0
- delete_older_than_n=0
#
# operating system configurations
# disable_wifi_power_mgmt - if running wireless internet and you want to
# disable "sleep" mode of your wifi device (assuming it's wlan0), set
# this to true (note: updating this requires a reboot)
# disable_at_mail - if you do not want "at" to send mail after job execution
- disable_wifi_power_mgmt=false
- disable_at_mail=false
#
# push processing settings for sending images elsewhere
# * NOTE: Make sure you set up your ~/.msmtprc file before enabling email push!
# enable_email_push - whether to send all images to an external email
# email_push_address - if enabled, address to send all images to
# enable_email_schedule_push - whether to email an image of the nightly-created
# pass-list schedule to the email destination
# enable_discord_push - whether to push images to a Discord channel
# discord_webhook_url - webhook url for the Discord channel
# enable_twitter_push - whether to push images to a Twitter feed
# * see docs/twitter_push.md for instructions
# enable_matrix_push - whether to push images to a Matrix room
# * see docs/matrix_push.md for instructions
- enable_email_push=false
- email_push_address=test@ifttt.com
- enable_email_schedule_push=false
- enable_discord_push=false
- discord_webhook_url=''
- enable_twitter_push=false
- enable_slack_push=false
- slack_push_url=''
- slack_push_to=''
- slack_link='https://XXXX/captures/listImages'
- enable_matrix_push=false
#
# Other parameters unique to the Docker implementation:
# If you use a reverse web proxy, set web_baseurl to the base URL of your website
# If you do not use a reverse web proxy, set web_baseurl to false or ''
- web_baseurl=false
# VERBOSELOG if set to anything but empty will echo the RaspiNOAA V2 logs to the docker logs so you can see them with "docker logs noaa"
- VERBOSELOG=true
ports:
- 89:80
- 8073:8073 # for audio testing
devices:
- /dev/bus/usb
tmpfs:
- /tmp
- /run:exec
- /var/log
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- /opt/noaa/srv:/srv
- /opt/noaa/db:/RaspiNOAA2/db
- /opt/noaa/annotation:/RaspiNOAA2/config/annotation