Commit 04135d87 authored by David Trattnig's avatar David Trattnig
Browse files

Minimized required config options. #72

parent 85cb788c
...@@ -5,21 +5,17 @@ ...@@ -5,21 +5,17 @@
[general] [general]
# Path to the engine-core socket directory relative to the engine project root # Path to the engine-core socket directory relative to the engine project root
socket_dir="../engine-core/socket" socket_dir="../engine-core/socket"
# Directory where the log file resides
[database] log_dir="logs"
db_user="aura" # Possible values: debug, info, warning, error, critical
db_name="aura_engine" log_level="info"
db_pass="---SECRET--PASSWORD---"
db_host="localhost"
db_charset="utf8"
[monitoring] [monitoring]
# Mail server credentials for sending email notifications (Admin and Programme Coordination)
mail_server="mail.your-radio.org" mail_server="mail.your-radio.org"
mail_server_port="587" mail_server_port="587"
mail_user="aura@subsquare.at" mail_user="aura@subsquare.at"
mail_pass="---SECRET--PASSWORD---" mail_pass="---SECRET--PASSWORD---"
# Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false" # Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false"
mail_coordinator_enabled="true" mail_coordinator_enabled="true"
# If you want to address multiple programme-coordinators separate their emails by space # If you want to address multiple programme-coordinators separate their emails by space
...@@ -40,22 +36,14 @@ heartbeat_port = 43334 ...@@ -40,22 +36,14 @@ heartbeat_port = 43334
# Seconds how often the vitality of the Engine should be checked (0 = disabled) # Seconds how often the vitality of the Engine should be checked (0 = disabled)
heartbeat_frequency = 1 heartbeat_frequency = 1
logdir="/home/username/code/aura/engine/logs"
# Possible values: debug, info, warning, error, critical
loglevel="info"
[api] [api]
## STEERING ## ## STEERING ##
# The URL to get the health status # The URL to get the health status
api_steering_status="http://localhost:8000/api/v1/" api_steering_status="http://localhost:8000/api/v1/"
# The URL to get the Calendar via Steering # The URL to get the Calendar via Steering
api_steering_calendar="http://localhost:8000/api/v1/playout" api_steering_calendar="http://localhost:8000/api/v1/playout"
## TANK ## ## TANK ##
# The session name which is used to authenticate against Tank # The session name which is used to authenticate against Tank
api_tank_session="engine" api_tank_session="engine"
# The secret which is used to authenticate against Tank # The secret which is used to authenticate against Tank
...@@ -66,7 +54,6 @@ api_tank_status="http://localhost:8040/healthz/" ...@@ -66,7 +54,6 @@ api_tank_status="http://localhost:8040/healthz/"
api_tank_playlist="http://localhost:8040/api/v1/playlists/${ID}" api_tank_playlist="http://localhost:8040/api/v1/playlists/${ID}"
## ENGINE-API ## ## ENGINE-API ##
# Engine ID (1 or 2) # Engine ID (1 or 2)
api_engine_number=1 api_engine_number=1
# Engine API availability check # Engine API availability check
...@@ -78,11 +65,22 @@ api_engine_store_clock="http://localhost:8008/api/v1/clock" ...@@ -78,11 +65,22 @@ api_engine_store_clock="http://localhost:8008/api/v1/clock"
# Engine API endpoint to store health information # Engine API endpoint to store health information
api_engine_store_health="http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}" api_engine_store_health="http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}"
[scheduler]
[scheduling] # Base path as seen by "engine-core", not accessed by "engine"; this is required to construct the absolute audio file path (check "Audio Store" in the docs)
audio_source_folder="/var/audio/source"
audio_source_extension=".flac"
# Folder holding M3U Playlists to be scheduled in form of Engine Playlists
audio_playlist_folder="/var/audio/playlist"
# Offset in seconds how long it takes for Liquidsoap to actually execute a scheduler command; Crucial to keep things in sync
engine_latency_offset=0.5
# How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired # How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired
fetching_frequency=30 fetching_frequency=30
# The schedule is fetched on every "fetching_frequency" cycle and stored in a local database
db_user="aura"
db_name="aura_engine"
db_pass="---SECRET--PASSWORD---"
db_host="localhost"
db_charset="utf8"
# The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds # The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds
# and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window. # and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window.
scheduling_window_start=60 scheduling_window_start=60
...@@ -91,32 +89,12 @@ scheduling_window_end=60 ...@@ -91,32 +89,12 @@ scheduling_window_end=60
# contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in # contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in
# the past the offset is ignored and the entry is played as soon as possible # the past the offset is ignored and the entry is played as soon as possible
preload_offset=15 preload_offset=15
# Sometimes it might take longer to get a stream connected. Here you can define a viable length. # Sometimes it might take longer to get a stream connected. Here you can define a viable length.
# But note, that this may affect the preloading time (see `preload_offset`), hence affecting the # But note, that this may affect the preloading time (see `preload_offset`), hence affecting the
# overall playout, it's delays and possible fallbacks # overall playout, it's delays and possible fallbacks
input_stream_retry_delay=1 input_stream_retry_delay=1
input_stream_max_retries=10 input_stream_max_retries=10
input_stream_buffer=3.0 input_stream_buffer=3.0
# How long we have to fade in and out, when we select another mixer input (seconds))
fade_in_time="1.5"
[fading] fade_out_time="1.5"
# Sets the time how long we have to fade in and out, when we select another mixer input values are in seconds
fade_in_time="0.5"
fade_out_time="2.5"
# Liquidsoap execution delay in seconds; Crucial to keep things in sync
lqs_delay_offset=0.5
[user]
# the user and group under which this software will run
daemongroup="engineuser"
daemonuser="engineuser"
[socket]
socket_dir="/home/username/code/aura/engine/src/liquidsoap"
[audiosources]
audio_source_folder="/var/audio/source"
audio_source_extension=".flac"
audio_playlist_folder="/var/audio/playlist"
...@@ -5,21 +5,17 @@ ...@@ -5,21 +5,17 @@
[general] [general]
# Path to the engine-core socket directory relative to the engine project root # Path to the engine-core socket directory relative to the engine project root
socket_dir="../engine-core/socket" socket_dir="../engine-core/socket"
# Directory where the log file resides
[database] log_dir="logs"
db_user="aura" # Possible values: debug, info, warning, error, critical
db_name="aura_engine" log_level="info"
db_pass="---SECRET--PASSWORD---"
db_host="127.0.0.1"
db_charset="utf8"
[monitoring] [monitoring]
# Mail server credentials for sending email notifications (Admin and Programme Coordination)
mail_server="mail.your-radio.org" mail_server="mail.your-radio.org"
mail_server_port="587" mail_server_port="587"
mail_user="aura@subsquare.at" mail_user="aura@subsquare.at"
mail_pass="---SECRET--PASSWORD---" mail_pass="---SECRET--PASSWORD---"
# Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false" # Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false"
mail_coordinator_enabled="true" mail_coordinator_enabled="true"
# If you want to address multiple programme-coordinators separate their emails by space # If you want to address multiple programme-coordinators separate their emails by space
...@@ -40,22 +36,14 @@ heartbeat_port = 43334 ...@@ -40,22 +36,14 @@ heartbeat_port = 43334
# Seconds how often the vitality of the Engine should be checked (0 = disabled) # Seconds how often the vitality of the Engine should be checked (0 = disabled)
heartbeat_frequency = 1 heartbeat_frequency = 1
logdir="/srv/logs"
# Possible values: debug, info, warning, error, critical
loglevel="info"
[api] [api]
## STEERING ## ## STEERING ##
# The URL to get the health status # The URL to get the health status
api_steering_status="http://127.0.0.1:8000/api/v1/" api_steering_status="http://127.0.0.1:8000/api/v1/"
# The URL to get the Calendar via Steering # The URL to get the Calendar via Steering
api_steering_calendar="http://127.0.0.1:8000/api/v1/playout" api_steering_calendar="http://127.0.0.1:8000/api/v1/playout"
## TANK ## ## TANK ##
# The session name which is used to authenticate against Tank # The session name which is used to authenticate against Tank
api_tank_session="engine" api_tank_session="engine"
# The secret which is used to authenticate against Tank # The secret which is used to authenticate against Tank
...@@ -66,7 +54,6 @@ api_tank_status="http://127.0.0.1:8040/healthz/" ...@@ -66,7 +54,6 @@ api_tank_status="http://127.0.0.1:8040/healthz/"
api_tank_playlist="http://127.0.0.1:8040/api/v1/playlists/${ID}" api_tank_playlist="http://127.0.0.1:8040/api/v1/playlists/${ID}"
## ENGINE-API ## ## ENGINE-API ##
# Engine ID (1 or 2) # Engine ID (1 or 2)
api_engine_number=1 api_engine_number=1
# Engine API availability check # Engine API availability check
...@@ -78,11 +65,22 @@ api_engine_store_clock="http://127.0.0.1:8008/api/v1/clock" ...@@ -78,11 +65,22 @@ api_engine_store_clock="http://127.0.0.1:8008/api/v1/clock"
# Engine API endpoint to store health information # Engine API endpoint to store health information
api_engine_store_health="http://127.0.0.1:8008/api/v1/source/health/${ENGINE_NUMBER}" api_engine_store_health="http://127.0.0.1:8008/api/v1/source/health/${ENGINE_NUMBER}"
[scheduler]
[scheduling] # Base path as seen by "engine-core", not accessed by "engine"; this is required to construct the absolute audio file path (check "Audio Store" in the docs)
audio_source_folder="/var/audio/source"
audio_source_extension=".flac"
# Folder holding M3U Playlists to be scheduled in form of Engine Playlists
audio_playlist_folder="/var/audio/playlist"
# Offset in seconds how long it takes for Liquidsoap to actually execute a scheduler command; Crucial to keep things in sync
engine_latency_offset=0.5
# How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired # How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired
fetching_frequency=300 fetching_frequency=300
# The schedule is fetched on every "fetching_frequency" cycle and stored in a local database
db_user="aura"
db_name="aura_engine"
db_pass="---SECRET--PASSWORD---"
db_host="localhost"
db_charset="utf8"
# The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds # The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds
# and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window. # and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window.
scheduling_window_start=60 scheduling_window_start=60
...@@ -91,32 +89,12 @@ scheduling_window_end=60 ...@@ -91,32 +89,12 @@ scheduling_window_end=60
# contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in # contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in
# the past the offset is ignored and the entry is played as soon as possible # the past the offset is ignored and the entry is played as soon as possible
preload_offset=15 preload_offset=15
# Sometimes it might take longer to get a stream connected. Here you can define a viable length. # Sometimes it might take longer to get a stream connected. Here you can define a viable length.
# But note, that this may affect the preloading time (see `preload_offset`), hence affecting the # But note, that this may affect the preloading time (see `preload_offset`), hence affecting the
# overall playout, it's delays and possible fallbacks # overall playout, it's delays and possible fallbacks
input_stream_retry_delay=1 input_stream_retry_delay=1
input_stream_max_retries=10 input_stream_max_retries=10
input_stream_buffer=3.0 input_stream_buffer=3.0
# How long we have to fade in and out, when we select another mixer input (seconds))
fade_in_time="1.5"
[fading] fade_out_time="1.5"
# Sets the time how long we have to fade in and out, when we select another mixer input values are in seconds
fade_in_time="0.5"
fade_out_time="2.5"
# Liquidsoap execution delay in seconds; Crucial to keep things in sync
lqs_delay_offset=0.5
[user]
# the user and group under which this software will run
daemongroup="engineuser"
daemonuser="engineuser"
[socket]
socket_dir="/srv/src/liquidsoap"
[audiosources]
audio_source_folder="/var/audio/source"
audio_source_extension=".flac"
audio_playlist_folder="/var/audio/playlist"
...@@ -5,21 +5,17 @@ ...@@ -5,21 +5,17 @@
[general] [general]
# Path to the engine-core socket directory relative to the engine project root # Path to the engine-core socket directory relative to the engine project root
socket_dir="../engine-core/socket" socket_dir="../engine-core/socket"
# Directory where the log file resides
[database] log_dir="logs"
db_user="aura" # Possible values: debug, info, warning, error, critical
db_name="aura_engine" log_level="info"
db_pass="---SECRET--PASSWORD---"
db_host="localhost"
db_charset="utf8"
[monitoring] [monitoring]
# Mail server credentials for sending email notifications (Admin and Programme Coordination)
mail_server="mail.your-radio.org" mail_server="mail.your-radio.org"
mail_server_port="587" mail_server_port="587"
mail_user="aura@subsquare.at" mail_user="aura@subsquare.at"
mail_pass="---SECRET--PASSWORD---" mail_pass="---SECRET--PASSWORD---"
# Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false" # Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false"
mail_coordinator_enabled="true" mail_coordinator_enabled="true"
# If you want to address multiple programme-coordinators separate their emails by space # If you want to address multiple programme-coordinators separate their emails by space
...@@ -40,22 +36,14 @@ heartbeat_port = 43334 ...@@ -40,22 +36,14 @@ heartbeat_port = 43334
# Seconds how often the vitality of the Engine should be checked (0 = disabled) # Seconds how often the vitality of the Engine should be checked (0 = disabled)
heartbeat_frequency = 1 heartbeat_frequency = 1
logdir="/opt/aura/engine/logs"
# Possible values: debug, info, warning, error, critical
loglevel="info"
[api] [api]
## STEERING ## ## STEERING ##
# The URL to get the health status # The URL to get the health status
api_steering_status="http://aura.local:8000/api/v1/" api_steering_status="http://aura.local:8000/api/v1/"
# The URL to get the Calendar via Steering # The URL to get the Calendar via Steering
api_steering_calendar="http://aura.local:8000/api/v1/playout" api_steering_calendar="http://aura.local:8000/api/v1/playout"
## TANK ## ## TANK ##
# The session name which is used to authenticate against Tank # The session name which is used to authenticate against Tank
api_tank_session="engine" api_tank_session="engine"
# The secret which is used to authenticate against Tank # The secret which is used to authenticate against Tank
...@@ -66,7 +54,6 @@ api_tank_status="http://aura.local:8040/healthz/" ...@@ -66,7 +54,6 @@ api_tank_status="http://aura.local:8040/healthz/"
api_tank_playlist="http://aura.local:8040/api/v1/playlists/${ID}" api_tank_playlist="http://aura.local:8040/api/v1/playlists/${ID}"
## ENGINE-API ## ## ENGINE-API ##
# Engine ID (1 or 2) # Engine ID (1 or 2)
api_engine_number=1 api_engine_number=1
# Engine API availability check # Engine API availability check
...@@ -78,11 +65,22 @@ api_engine_store_clock="http://localhost:8008/api/v1/clock" ...@@ -78,11 +65,22 @@ api_engine_store_clock="http://localhost:8008/api/v1/clock"
# Engine API endpoint to store health information # Engine API endpoint to store health information
api_engine_store_health="http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}" api_engine_store_health="http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}"
[scheduler]
[scheduling] # Base path as seen by "engine-core", not accessed by "engine"; this is required to construct the absolute audio file path (check "Audio Store" in the docs)
audio_source_folder="/var/audio/source"
audio_source_extension=".flac"
# Folder holding M3U Playlists to be scheduled in form of Engine Playlists
audio_playlist_folder="/var/audio/playlist"
# Offset in seconds how long it takes for Liquidsoap to actually execute a scheduler command; Crucial to keep things in sync
engine_latency_offset=0.5
# How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired # How often should the calendar be fetched in seconds. This determines the time of the last changes applied, before a specific show aired
fetching_frequency=300 fetching_frequency=300
# The schedule is fetched on every "fetching_frequency" cycle and stored in a local database
db_user="aura"
db_name="aura_engine"
db_pass="---SECRET--PASSWORD---"
db_host="localhost"
db_charset="utf8"
# The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds # The scheduling window defines when the entries of each timeslot are queued for play-out. The windows start at (timeslot.start - window_start) seconds
# and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window. # and ends at (timeslot.end - window.end) seconds. Its also worth noting, that timeslots can only be deleted before the start of the window.
scheduling_window_start=60 scheduling_window_start=60
...@@ -91,29 +89,12 @@ scheduling_window_end=60 ...@@ -91,29 +89,12 @@ scheduling_window_end=60
# contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in # contents which take longer to load (big files, bad connectivity to streams etc.). If the planned start time is in
# the past the offset is ignored and the entry is played as soon as possible # the past the offset is ignored and the entry is played as soon as possible
preload_offset=15 preload_offset=15
# Sometimes it might take longer to get a stream connected. Here you can define a viable length. # Sometimes it might take longer to get a stream connected. Here you can define a viable length.
# But note, that this may affect the preloading time (see `preload_offset`), hence affecting the # But note, that this may affect the preloading time (see `preload_offset`), hence affecting the
# overall playout, it's delays and possible fallbacks # overall playout, it's delays and possible fallbacks
input_stream_retry_delay=1 input_stream_retry_delay=1
input_stream_max_retries=10 input_stream_max_retries=10
input_stream_buffer=3.0 input_stream_buffer=3.0
# How long we have to fade in and out, when we select another mixer input (seconds))
fade_in_time="1.5"
[fading] fade_out_time="1.5"
# Sets the time how long we have to fade in and out, when we select another mixer input values are in seconds
fade_in_time="0.5"
fade_out_time="2.5"
# Liquidsoap execution delay in seconds; Crucial to keep things in sync
lqs_delay_offset=0.5
[user]
# the user and group under which this software will run
daemongroup="engineuser"
daemonuser="engineuser"
[audiosources]
audio_source_folder="/var/audio/source"
audio_source_extension=".flac"
audio_playlist_folder="/var/audio/playlist"
[program:aura-engine]
user = engineuser
directory = /opt/aura/engine
command = /opt/aura/engine/run.sh lqs
priority = 999
autostart = true
autorestart = true
stopsignal = TERM
redirect_stderr = true
stdout_logfile = /opt/aura/engine/logs/engine-core-stdout.log
stderr_logfile = /opt/aura/engine/logs/engine-core-error.log
\ No newline at end of file
...@@ -9,5 +9,5 @@ autorestart = true ...@@ -9,5 +9,5 @@ autorestart = true
stopsignal = TERM stopsignal = TERM
redirect_stderr = true redirect_stderr = true
stdout_logfile = /opt/aura/engine/logs/engine-core-stdout.log stdout_logfile = /opt/aura/engine/logs/engine-stdout.log
stderr_logfile = /opt/aura/engine/logs/engine-core-error.log stderr_logfile = /opt/aura/engine/logs/engine-error.log
\ No newline at end of file \ No newline at end of file
[Unit]
Description=Aura Engine - Playout Server (Core)
After=network.target
Documentation=https://gitlab.servus.at/aura/engine
[Service]
Type=simple
User=engineuser
WorkingDirectory=/opt/aura/engine
ExecStart=/opt/aura/engine/run.sh core
Restart=always
[Install]
WantedBy=multi-user.target
Alias=aura-engine-core.service
\ No newline at end of file
[Unit]
Description=Aura Engine - Playout Server (Liquidsoap)
Documentation=https://gitlab.servus.at/aura/engine
After=network.target
[Service]
Type=simple
User=engineuser
WorkingDirectory=/opt/aura/engine
ExecStart=/opt/aura/engine/engine/run.sh lqs
Restart=always
[Install]
WantedBy=default.target
Alias=aura-engine-lqs.service
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
Description=Aura Engine - Playout Server Description=Aura Engine - Playout Server
Documentation=https://gitlab.servus.at/aura/engine Documentation=https://gitlab.servus.at/aura/engine
After=network.target After=network.target
Requires=aura-engine-lqs.service Requires=aura-engine-core.service
[Service] [Service]
Type=simple Type=simple
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment