sample-development.engine.ini 10.8 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
8
9
10
11
[station]
station_name="Radio Aura"
station_logo_url=https://o94.at/themes/custom/radio_orange/logo1.png
station_logo_size=180px


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"


David Trattnig's avatar
David Trattnig committed
20
[monitoring]
21
mail_server="mail.your-radio.org"
David Trattnig's avatar
David Trattnig committed
22
23
mail_server_port="587"
mail_user="aura@subsquare.at"
24
mail_pass="---SECRET--PASSWORD---"
25

26
27
28
29
# Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false"
mail_coordinator_enabled="true"
# If you want to address multiple programme-coordinators separate their emails by space
coordinator_mail="programme-coordinator@your-radio.org"
30
31
# Set to "true" if you want to notify admins about incidents, otherwise "false"
mail_admin_enabled="true"
32
33
# If you want to address multiple administrators separate their emails by space
admin_mail="david@subsquare.at"
34
# The FROM email address used when sending
David Trattnig's avatar
David Trattnig committed
35
from_mail="monitoring@aura.engine"
36
37
# A subject prefix allows applying filter rules in your mail client
mailsubject_prefix="[AURA Engine]"
38

David Trattnig's avatar
David Trattnig committed
39
# Server where heartbeat info is sent to
David Trattnig's avatar
Typo.    
David Trattnig committed
40
heartbeat_server = "127.0.0.1"   
David Trattnig's avatar
David Trattnig committed
41
42
43
44
# 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
45

46
logdir="/home/username/code/aura/engine/logs"
47
# Possible values: debug, info, warning, error, critical
48
49
loglevel="info"

50

51
52
[api]

David Trattnig's avatar
David Trattnig committed
53
54
55
## STEERING ##

# The URL to get the health status 
56
api_steering_status="http://localhost:8000/api/v1/"
57
58
59
# The URL to get the Calendar via Steering
api_steering_calendar="http://localhost:8000/api/v1/playout"

David Trattnig's avatar
David Trattnig committed
60
61
## TANK ##

62
63
64
65
# 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
66
# The URL to get the health status 
67
api_tank_status="http://localhost:8040/healthz/"
David Trattnig's avatar
David Trattnig committed
68
# The URL to get playlist details via Tank
David Trattnig's avatar
David Trattnig committed
69
api_tank_playlist="http://localhost:8040/api/v1/playlists/${ID}"
David Trattnig's avatar
David Trattnig committed
70

David Trattnig's avatar
David Trattnig committed
71
72
73
## ENGINE-API ##

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

David Trattnig's avatar
David Trattnig committed
84

David Trattnig's avatar
David Trattnig committed
85
[scheduling]
86

David Trattnig's avatar
David Trattnig committed
87
# How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired
88
fetching_frequency=30
89
# The scheduling window defines when the entries of each timeslot are queued for play-out in an ideal scenario. 
90
91
92

# 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. 
David Trattnig's avatar
David Trattnig committed
93
94
95
# 
# Following operations are related to the scheduling window:
# 
96
#   - Deletion of timeslots: Those are only accepted until the **start** of the scheduling window
David Trattnig's avatar
David Trattnig committed
97
98
#   - Update/Delete/Assignment of playlists and entries: Those are accepted until the **end** of the the scheduling window; existing queued entries are updated
#
99
# After the end of the scheduling window the pre-loading phase starts.
100
# Note, the values for windows is defined as a offset minus the actual start of the timeslot in seconds.
David Trattnig's avatar
David Trattnig committed
101
scheduling_window_start=120
102
scheduling_window_end=15
David Trattnig's avatar
David Trattnig committed
103
# How many seconds before the actual schedule time the entry should be pre-rolled. Note to provide enough timeout for
David Trattnig's avatar
David Trattnig committed
104
# contents which take longer to load (big files, bad connectivity to streams etc.)
105
preload_offset=10
David Trattnig's avatar
David Trattnig committed
106
107

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

114

David Trattnig's avatar
David Trattnig committed
115
[fading]
116
# Sets the time how long we have to fade in and out, when we select another mixer input values are in seconds
David Trattnig's avatar
David Trattnig committed
117
118
119
fade_in_time="0.5"
fade_out_time="2.5"

David Trattnig's avatar
David Trattnig committed
120

David Trattnig's avatar
David Trattnig committed
121
#######################
122
# Liquidsoap Settings #
David Trattnig's avatar
David Trattnig committed
123
124
125
126
#######################

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

127
[lqs]
128
liquidsoap_path="/home/username/.opam/4.08.0/bin/liquidsoap"
129
liquidsoap_working_dir="src/liquidsoap/"
130
liquidsoap_as_root="false"
131
132

# Liquidsoap execution delay in seconds; Crucial to keep things in sync
133
134
lqs_delay_offset=1

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

[socket]
141
socketdir="/home/username/code/aura/engine/src/liquidsoap"
David Trattnig's avatar
David Trattnig committed
142

143
[audiosources]
144
audio_source_folder="var/audio/source"
145
audio_source_extension=".flac"
David Trattnig's avatar
David Trattnig committed
146
147

[fallback]
David Trattnig's avatar
David Trattnig committed
148
# track_sensitive => fallback_folder track sensitivity
David Trattnig's avatar
David Trattnig committed
149
150
151
152
153
# 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."
154
fallback_threshold="-80."
155
# A playlist holding music for Station Fallbacks (optonal)
156
fallback_music_playlist= "/home/username/code/aura/config/playlists/station-fallback-playlist.m3u"
157
158
159
# 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
160
# Do not reload too often when using large folders
161
fallback_music_folder_reload="300"
David Trattnig's avatar
David Trattnig committed
162

David Trattnig's avatar
David Trattnig committed
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182

[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
183
input_device_0=""
David Trattnig's avatar
David Trattnig committed
184
185
186
187
188
input_device_1=""
input_device_2=""
input_device_3=""
input_device_4=""
# same same, but different
David Trattnig's avatar
David Trattnig committed
189
output_device_0="default"
David Trattnig's avatar
David Trattnig committed
190
191
192
193
194
195
196
197
198
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
David Trattnig's avatar
David Trattnig committed
199
alsa_buffer="8192"
David Trattnig's avatar
David Trattnig committed
200
#alsa_buffer="16384"
David Trattnig's avatar
David Trattnig committed
201
# alsa_buffer_length => int
David Trattnig's avatar
David Trattnig committed
202
alsa_buffer_length="25"
David Trattnig's avatar
David Trattnig committed
203
# alsa_periods => int
David Trattnig's avatar
David Trattnig committed
204
alsa_periods="0"
David Trattnig's avatar
David Trattnig committed
205
206
207
208
209
210
211
212
213
214
# frame_duration => double
frame_duration=""
# frame_size => int
frame_size=""

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

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

[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
222
rec_0_folder="/var/recordings/flac"
David Trattnig's avatar
David Trattnig committed
223
224
225
226
227
228
229
230
231
# 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"

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

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

# ogg example
rec_3="n"
David Trattnig's avatar
David Trattnig committed
250
rec_3_folder="/var/recordings/ogg"
David Trattnig's avatar
David Trattnig committed
251
252
253
254
255
256
257
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
258
rec_4_folder="/var/recordings/opus"
David Trattnig's avatar
David Trattnig committed
259
260
261
262
263
264
265
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
266
#rec_4_folder="/var/recordings/wav"
David Trattnig's avatar
David Trattnig committed
267
268
269
270
271
272
273
274
275
276
#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
277
# flac, mp3, ogg and opus is supported
David Trattnig's avatar
David Trattnig committed
278
279
280

[stream]
# defines enabled or not
David Trattnig's avatar
David Trattnig committed
281
stream_0="n"
282
283
# possible values: flac, mp3, ogg, opus (depending on what liquidsoap-plugins you installed)
stream_0_encoding="ogg"
David Trattnig's avatar
David Trattnig committed
284
285
286
287
288
289
290
291
292
# 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
293
stream_0_mountpoint="aura-test-0.ogg"
David Trattnig's avatar
David Trattnig committed
294
295
296
# username
stream_0_user="source"
# and the password
David Trattnig's avatar
David Trattnig committed
297
stream_0_password="source"
David Trattnig's avatar
David Trattnig committed
298
299
300
301
302
303
304
305
306
# 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
307
stream_1="n"
David Trattnig's avatar
David Trattnig committed
308
309
310
311
312
313
314
315
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
316
stream_1_password="source"
David Trattnig's avatar
David Trattnig committed
317
318
319
320
321
322

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
323
stream_2="n"
David Trattnig's avatar
David Trattnig committed
324
325
326
327
328
329
330
331
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
332
stream_2_password="source"
David Trattnig's avatar
David Trattnig committed
333
334
335
336
337
338

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
339
stream_3="n"
David Trattnig's avatar
David Trattnig committed
340
341
342
343
344
345
346
347
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
348
stream_3_password="source"
David Trattnig's avatar
David Trattnig committed
349
350
351
352
353
354

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
355
stream_4="n"
David Trattnig's avatar
David Trattnig committed
356
357
358
359
360
361
362
363
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
364
stream_4_password="source"
David Trattnig's avatar
David Trattnig committed
365
366

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