sample-production.engine.ini 11 KB
Newer Older
David Trattnig's avatar
David Trattnig committed
1

David Trattnig's avatar
David Trattnig committed
2
###################
3
# Engine Settings #
David Trattnig's avatar
David Trattnig committed
4
5
###################

David Trattnig's avatar
David Trattnig committed
6
7
[station]
station_name="Radio Aura"
8
9
station_logo_url="https://o94.at/themes/custom/radio_orange/logo1.png"
station_logo_size="180px"
David Trattnig's avatar
David Trattnig committed
10
11


David Trattnig's avatar
David Trattnig committed
12
[database]
David Trattnig's avatar
David Trattnig committed
13
db_user="aura"
David Trattnig's avatar
David Trattnig committed
14
db_name="aura_engine"
15
db_pass="---SECRET--PASSWORD---"
David Trattnig's avatar
David Trattnig committed
16
db_host="localhost"
David Trattnig's avatar
David Trattnig committed
17
18
19
db_charset="utf8"

[redis]
David Trattnig's avatar
David Trattnig committed
20
redis_host="localhost"
David Trattnig's avatar
David Trattnig committed
21
22
23
redis_port=6379
redis_db=0

David Trattnig's avatar
David Trattnig committed
24
[monitoring]
David Trattnig's avatar
David Trattnig committed
25
mail_server="mail.example.com"
David Trattnig's avatar
David Trattnig committed
26
27
mail_server_port="587"
mail_user="aura@subsquare.at"
28
mail_pass="---SECRET--PASSWORD---"
David Trattnig's avatar
David Trattnig committed
29
# If you want to send multiple adminmails, make them space separated
David Trattnig's avatar
David Trattnig committed
30
admin_mail="david@subsquare.at"
David Trattnig's avatar
David Trattnig committed
31
# Which from mailadress should be used
David Trattnig's avatar
David Trattnig committed
32
from_mail="monitoring@aura.engine"
David Trattnig's avatar
David Trattnig committed
33
34
# The beginning of the subject. With that you can easily apply filter rules using a mail client
mailsubject_prefix="[Aura Engine]"
David Trattnig's avatar
David Trattnig committed
35
# Server where heartbeat info is sent to
David Trattnig's avatar
Typo.    
David Trattnig committed
36
heartbeat_server = "127.0.0.1"
David Trattnig's avatar
David Trattnig committed
37
38
39
40
# Some UDP port
heartbeat_port = 43334 
# Seconds how often the vitality of the Engine should be checked (0 = disabled)
heartbeat_frequency = 1
David Trattnig's avatar
David Trattnig committed
41

42
43
44
45
logdir="/var/log/aura"
# *ossible values: debug, info, warning, error, critical
loglevel="info"

46
47
[api]

48
49
## STEERING ##

David Trattnig's avatar
David Trattnig committed
50
# The URL to get the health status 
51
api_steering_status="http://aura.local:8000/api/v1/"
52
# The URL to get the Calendar via Steering
David Trattnig's avatar
David Trattnig committed
53
api_steering_calendar="http://aura.local:8000/api/v1/playout"
54

David Trattnig's avatar
David Trattnig committed
55
56
## TANK ##

57
58
59
60
# The session name which is used to authenticate against Tank
api_tank_session="engine"
# The secret which is used to authenticate against Tank
api_tank_secret="rather-secret"
David Trattnig's avatar
David Trattnig committed
61
# The URL to get the health status 
62
api_tank_status="http://aura.local:8040/healthz/"
David Trattnig's avatar
David Trattnig committed
63
# The URL to get playlist details via Tank
David Trattnig's avatar
David Trattnig committed
64
api_tank_playlist="http://aura.local:8040/api/v1/playlists/${ID}"
David Trattnig's avatar
David Trattnig committed
65

David Trattnig's avatar
David Trattnig committed
66
67
68
## ENGINE-API ##

# Engine ID (1 or 2)
69
api_engine_number=1
David Trattnig's avatar
David Trattnig committed
70
71
# Engine API availability check
api_engine_status="http://localhost:8008/api/v1/ui/"
David Trattnig's avatar
David Trattnig committed
72
# Engine API endpoint to store playlogs
73
api_engine_store_playlog="http://localhost:8008/api/v1/playlog/store"
David Trattnig's avatar
David Trattnig committed
74
# Engine API endpoint to store clock information
75
api_engine_store_clock="http://localhost:8008/api/v1/clock"
David Trattnig's avatar
David Trattnig committed
76
# Engine API endpoint to store health information
77
api_engine_store_health="http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}"
David Trattnig's avatar
David Trattnig committed
78

David Trattnig's avatar
David Trattnig committed
79

David Trattnig's avatar
David Trattnig committed
80
81
[scheduling]
# How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired
David Trattnig's avatar
David Trattnig committed
82
fetching_frequency=300
David Trattnig's avatar
David Trattnig committed
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# The scheduling window defines when the entries of each schedule are queued for play-out. The actual window (scheduling_window_start - scheduling_window_end)
# should be higher then the `fetching_frequency` to allow proper queuing. Otherwise the fetch might never hit the scheduling window, because the scheduling
# logic is attached to the fetching logic. 
# 
# Following operations are related to the scheduling window:
# 
#   - Deletion of schedules/timeslots: Those are only accepted until the **start** of the scheduling window
#   - Update/Delete/Assignment of playlists and entries: Those are accepted until the **end** of the the scheduling window; existing queued entries are updated
#   - Pro-active fallback handling: Within the window it is continousely evaluated if some fallback playlist should be applied. The queued items are updated accordingly
#
# After the end of the scheduling window the pre-rolling phase starts. It's recommended that the end of the windows is approximately 4x times
# higher than the preroll_offset, to leave enough space for all 4 fallback scenarios to pre-roll (normal, show, timeslot and station).
# Note, the values for windows is defined as a offset minus the actual start of the schedule in seconds.
scheduling_window_start=600
scheduling_window_end=120
98
99
# Playlist ID which is used for station fallbacks. Only used if no station fallback ID is provided via Steering. "0" means it is disabled.
scheduling_station_fallback_id=0
David Trattnig's avatar
David Trattnig committed
100
101
102
# How many seconds before the actual schedule time the entry should be pre-rolled. Note to provide enough timeout for
# contents which take longer to load (big files, bad connectivity to streams etc.)
preroll_offset=30
David Trattnig's avatar
David Trattnig committed
103
104
105

# Sometimes it might take longer to get a stream connected. Here you can define a viable length.
# But note, that this may affect the preroll time (see `preroll_offset`), hence affecting the 
David Trattnig's avatar
David Trattnig committed
106
# overall playout, it's delays and possible fallbacks
David Trattnig's avatar
David Trattnig committed
107
108
input_stream_retry_delay=1
input_stream_max_retries=10
109
input_stream_buffer=3.0
David Trattnig's avatar
David Trattnig committed
110

David Trattnig's avatar
David Trattnig committed
111
112
113
114
115
116
117
118
# sets the time how long we have to fade in and out, when we select another mixer input
# values are in seconds
# this is solved on engine level because it is kind of tough with liquidsoap
[fading]
fade_in_time="0.5"
fade_out_time="2.5"

#######################
119
# Liquidsoap Settings #
David Trattnig's avatar
David Trattnig committed
120
121
122
123
#######################

# all these settings from here to the bottom require a restart of the liquidsoap server

124
[lqs]
David Trattnig's avatar
David Trattnig committed
125
liquidsoap_path="/home/engineuser/.opam/4.08.0/bin/liquidsoap"
126
liquidsoap_working_dir="modules/liquidsoap/"
127
liquidsoap_as_root="false"
128
129

# Liquidsoap execution delay in seconds; Crucial to keep things in sync
130
131
lqs_delay_offset=1

David Trattnig's avatar
David Trattnig committed
132
133
[user]
# the user and group under which this software will run
David Trattnig's avatar
David Trattnig committed
134
135
daemongroup="engineuser"
daemonuser="engineuser"
David Trattnig's avatar
David Trattnig committed
136
137

[socket]
138
socketdir="/opt/aura/engine/modules/liquidsoap"
David Trattnig's avatar
David Trattnig committed
139

140
[audiosources]
141
audio_source_folder="var/audio/source"
142
audio_source_extension=".flac"
David Trattnig's avatar
David Trattnig committed
143
144

[fallback]
David Trattnig's avatar
David Trattnig committed
145
# track_sensitive => fallback_folder track sensitivity
David Trattnig's avatar
David Trattnig committed
146
147
148
149
150
151
# max_blank => maximum time of blank from source (defaults to 20., seconds, float)
# min_noise => minimum duration of noise on source to switch back over (defaults to 0, seconds, float)
# threshold => power in dB under which the stream is considered silent (defaults to -40., float)
fallback_max_blank="20."
fallback_min_noise="0."
fallback_threshold="-50."
152
# A playlist holding music for Station Fallbacks (optonal)
David Trattnig's avatar
David Trattnig committed
153
fallback_music_playlist= "/opt/aura/engine/configuration/playlists/station-fallback-playlist.m3u"
154
155
156
# A folder holding music for Station Fallbacks (optional)
fallback_music_folder="/var/audio/station"
# The time in seconds how often the folder should be re-scanned
David Trattnig's avatar
David Trattnig committed
157
# Do not reload too often when using large folders
158
fallback_music_folder_reload="300"
David Trattnig's avatar
David Trattnig committed
159

David Trattnig's avatar
David Trattnig committed
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179

[soundcard]
# choose your weapon
# if you are starving for pain in the ass choose alsa
# if you don't care about latency choose pulseaudio
# if you want low latency and a bit of experimenting, choose jack
soundsystem="alsa"

# you can define up to 5 inputs and outputs
# it is tested with
#  - ALSA with ONE input and ONE output
#  - pulseaudio with ONE input and ONE output (should work with multiple ins/outs)
#  - jack with multiple inputs and outputs
#
# boundaries:
#  - if you use jack, you have to kill liquidsoap. somehow liquidsoap cannot disconnect from jackd when shutting down
#
# with alsa you have to write the devicenames like hw:0
# with pulse and jack => an non empty value means it is used
# devices with empty string are ignored and not used
David Trattnig's avatar
David Trattnig committed
180
input_device_0=""
David Trattnig's avatar
David Trattnig committed
181
182
183
184
185
input_device_1=""
input_device_2=""
input_device_3=""
input_device_4=""
# same same, but different
David Trattnig's avatar
David Trattnig committed
186
output_device_0="default"
David Trattnig's avatar
David Trattnig committed
187
188
189
190
191
192
193
194
195
output_device_1=""
output_device_2=""
output_device_3=""
output_device_4=""

# if you are using alsa, you most probably have to tweak these values
# out of the box you will hear alot of cracklings and artifacts

# alsa_buffer => int
196
197
#alsa_buffer="8192"
alsa_buffer="16384"
David Trattnig's avatar
David Trattnig committed
198
# alsa_buffer_length => int
David Trattnig's avatar
David Trattnig committed
199
alsa_buffer_length="25"
David Trattnig's avatar
David Trattnig committed
200
# alsa_periods => int
David Trattnig's avatar
David Trattnig committed
201
alsa_periods="0"
David Trattnig's avatar
David Trattnig committed
202
203
204
205
206
207
208
209
210
211
# frame_duration => double
frame_duration=""
# frame_size => int
frame_size=""

#####################
# Recorder Settings #
#####################

# you can define up to 5 recorder types.
212
# flac, mp3, ogg, opus and wav is supported
David Trattnig's avatar
David Trattnig committed
213
214
215
216
217
218

[recording]
# flac example
# enable this recorder. everything else than 'y' is considered as disabled
rec_0="n"
# first set a folder
David Trattnig's avatar
David Trattnig committed
219
rec_0_folder="/var/recordings/flac"
David Trattnig's avatar
David Trattnig committed
220
221
222
223
224
225
226
227
228
# after how many minutes the recording will be cut
rec_0_duration="30"
# file (or encoding-) type
rec_0_encoding="flac"
# bitrate (with encoding types without bitrate like flac or wav it is substituted. 32 => very poor quality. 320 => very high quality)
rec_0_bitrate="128"
# channels: everything else than 2 is considered as mono
rec_0_channels="2"

229
# mp3 example
David Trattnig's avatar
David Trattnig committed
230
rec_1="n"
231
rec_1_folder="/var/audio/rec/mp3"
David Trattnig's avatar
David Trattnig committed
232
rec_1_duration="30"
233
234
rec_1_encoding="mp3"
rec_1_bitrate="320"
David Trattnig's avatar
David Trattnig committed
235
236
237
238
rec_1_channels="2"

# mp3 example
rec_2="n"
239
rec_2_folder="/var/audio/rec/mp3"
David Trattnig's avatar
David Trattnig committed
240
241
rec_2_duration="30"
rec_2_encoding="mp3"
242
rec_2_bitrate="192"
David Trattnig's avatar
David Trattnig committed
243
244
245
246
rec_2_channels="2"

# ogg example
rec_3="n"
David Trattnig's avatar
David Trattnig committed
247
rec_3_folder="/var/recordings/ogg"
David Trattnig's avatar
David Trattnig committed
248
249
250
251
252
253
254
rec_3_duration="30"
rec_3_encoding="ogg"
rec_3_bitrate="320"
rec_3_channels="2"

# opus example
rec_4="n"
David Trattnig's avatar
David Trattnig committed
255
rec_4_folder="/var/recordings/opus"
David Trattnig's avatar
David Trattnig committed
256
257
258
259
260
261
262
rec_4_duration="30"
rec_4_encoding="opus"
rec_4_bitrate="32"
rec_4_channels="2"

# wav example
#rec_4="n"
David Trattnig's avatar
David Trattnig committed
263
#rec_4_folder="/var/recordings/wav"
David Trattnig's avatar
David Trattnig committed
264
265
266
267
268
269
270
271
272
273
#rec_4_duration="30"
#rec_4_filetype="wav"
#rec_4_bitrate="320"
#rec_4_channels="2"

###################
# Stream Settings #
###################

# You can define up to outgoing 5 streams
274
# flac, mp3, ogg and opus is supported
David Trattnig's avatar
David Trattnig committed
275
276
277

[stream]
# defines enabled or not
David Trattnig's avatar
David Trattnig committed
278
stream_0="n"
279
280
# possible values: flac, mp3, ogg, opus (depending on what liquidsoap-plugins you installed)
stream_0_encoding="ogg"
David Trattnig's avatar
David Trattnig committed
281
282
283
284
285
286
287
288
289
# bitrate (with encoding types without bitrate like flac or ogg it is substituted. 32 => very poor quality. 320 => very high quality)
stream_0_bitrate="128"
# how many channels? everything else than 2 is considered as mono
stream_0_channels="2"
# to where we are streaming..?
stream_0_host="localhost"
# and which port?
stream_0_port="8888"
# the name of the mountpoint
290
stream_0_mountpoint="aura-test-0.ogg"
David Trattnig's avatar
David Trattnig committed
291
292
293
# username
stream_0_user="source"
# and the password
David Trattnig's avatar
David Trattnig committed
294
stream_0_password="source"
David Trattnig's avatar
David Trattnig committed
295
296
297
298
299
300
301
302
303
# stream url
stream_0_url="http://www.fro.at"
# the name of the stream
stream_0_name="AURA Test Stream 0"
# the genre of the stream
stream_0_genre="mixed"
# description of the stream
stream_0_description="Test Stream 0"

David Trattnig's avatar
David Trattnig committed
304
stream_1="n"
David Trattnig's avatar
David Trattnig committed
305
306
307
308
309
310
311
312
stream_1_encoding="flac"
stream_1_bitrate="128"
stream_1_channels="2"

stream_1_host="localhost"
stream_1_port="8888"
stream_1_mountpoint="aura-test-1.flac"
stream_1_user="source"
David Trattnig's avatar
David Trattnig committed
313
stream_1_password="source"
David Trattnig's avatar
David Trattnig committed
314
315
316
317
318
319

stream_1_url="http://www.fro.at"
stream_1_name="AURA Test Stream 1"
stream_1_genre="mixed"
stream_1_description="Test Stream 1"

David Trattnig's avatar
David Trattnig committed
320
stream_2="n"
David Trattnig's avatar
David Trattnig committed
321
322
323
324
325
326
327
328
stream_2_encoding="mp3"
stream_2_bitrate="64"
stream_2_channels="2"

stream_2_host="localhost"
stream_2_port="8888"
stream_2_mountpoint="aura-test-2.mp3"
stream_2_user="source"
David Trattnig's avatar
David Trattnig committed
329
stream_2_password="source"
David Trattnig's avatar
David Trattnig committed
330
331
332
333
334
335

stream_2_url="http://www.fro.at"
stream_2_name="AURA Test Stream 2"
stream_2_genre="mixed"
stream_2_description="Test Stream 2"

David Trattnig's avatar
David Trattnig committed
336
stream_3="n"
David Trattnig's avatar
David Trattnig committed
337
338
339
340
341
342
343
344
stream_3_encoding="ogg"
stream_3_bitrate="64"
stream_3_channels="2"

stream_3_host="localhost"
stream_3_port="8888"
stream_3_mountpoint="aura-test-3.ogg"
stream_3_user="source"
David Trattnig's avatar
David Trattnig committed
345
stream_3_password="source"
David Trattnig's avatar
David Trattnig committed
346
347
348
349
350
351

stream_3_url="http://www.fro.at"
stream_3_name="AURA Test Stream 3"
stream_3_genre="mixed"
stream_3_description="Test Stream 3"

David Trattnig's avatar
David Trattnig committed
352
stream_4="n"
David Trattnig's avatar
David Trattnig committed
353
354
355
356
357
358
359
360
stream_4_encoding="opus"
stream_4_bitrate="64"
stream_4_channels="2"

stream_4_host="localhost"
stream_4_port="8888"
stream_4_mountpoint="aura-test-4.opus"
stream_4_user="source"
David Trattnig's avatar
David Trattnig committed
361
stream_4_password="source"
David Trattnig's avatar
David Trattnig committed
362
363

stream_4_url="http://www.fro.at"
David Trattnig's avatar
David Trattnig committed
364
stream_4_name="AURA Test Stream 3"
David Trattnig's avatar
David Trattnig committed
365
stream_4_genre="mixed"
David Trattnig's avatar
David Trattnig committed
366
stream_4_description="Test Stream 3"