diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c9a67ee42db4b053470f09ec488ebd270503740..abca69658793c18b93b7798eeb3b602841838153 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,7 +23,7 @@ run_test_cases:
   stage: test
   before_script:
     - *install_requirements
-    - cp config/sample.engine.yaml config/engine.yaml
+    - cp config/engine-tests.yaml config/engine.yaml
   script:
     - make coverage
   coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
diff --git a/config/engine-tests.yaml b/config/engine-tests.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c1afa8b21420dc4c32d76a29824c949dfe376077
--- /dev/null
+++ b/config/engine-tests.yaml
@@ -0,0 +1,127 @@
+##############################################
+#            Engine Configuration            #
+##############################################
+
+general:
+  # Path to the engine-core socket directory relative to the engine project root
+  socket_dir: ../engine-core/socket
+  # Directory to store temporary data
+  cache_dir: ./.cache
+
+  # Details for the Station Fallback
+  fallback_show_name: Random Music
+  fallback_show_id: -1
+
+log:
+  # Directory where the log file resides
+  directory: logs
+  # Possible values: debug, info, warning, error, critical
+  level: debug
+
+monitoring:
+  mail:
+    # Mail server credentials for sending email notifications (Admin and Programme Coordination)
+    host: mail.your-radio.org
+    port: 587
+    user: aura@subsquare.at
+    pwd: ---SECRET--PASSWORD---
+
+    coordinator:
+      # Set to "true" if you want to notify programme-coordinators about about fallback situations, otherwise "false"
+      enabled: false
+      # If you want to address multiple programme-coordinators separate their emails by space
+      mail: programme-coordinator@your-radio.org
+
+    admin:
+      # Set to "true" if you want to notify admins about incidents, otherwise "false"
+      enabled: false
+      # If you want to address multiple administrators separate their emails by space
+      mail: david@subsquare.at
+
+    # The FROM email address used when sending
+    from: monitoring@aura.engine
+    # A subject prefix allows applying filter rules in your mail client
+    subject_prefix: "[AURA Engine]" # default: [AURA Engine]
+
+  heartbeat:
+    # Seconds how often the vitality of Engine Core should be checked (default: 1)
+    frequency: 1
+    # Host where heartbeat is sent to (disabled if empty string)
+    host: ""
+    # Some UDP port
+    port: 43334
+
+api:
+  ## STEERING ##
+  steering:
+    # The URL to get the health status
+    status: http://localhost:8000/api/v1/
+    # The URL to get the Calendar via Steering
+    calendar: http://localhost:8000/api/v1/playout
+
+  ## TANK ##
+  tank:
+    # The session name which is used to authenticate against Tank
+    session: engine
+    # The secret which is used to authenticate against Tank
+    secret: rather-secret
+    # The URL to get the health status
+    status: http://localhost:8040/healthz
+    # The URL to get playlist details via Tank
+    playlist: http://localhost:8040/api/v1/playlists/${ID}
+
+  ## ENGINE-API ##
+  engine:
+    # Engine ID (1 or 2)
+    number: 1
+    # Engine API availability check
+    status: http://localhost:8008/api/v1/ui/
+    # Engine API endpoint to store playlogs
+    store_playlog: http://localhost:8008/api/v1/playlog
+    # Engine API endpoint to store clock information
+    store_clock: http://localhost:8008/api/v1/clock
+    # Engine API endpoint to store health information
+    store_health: http://localhost:8008/api/v1/source/health/${ENGINE_NUMBER}
+
+scheduler:
+  # Database settings: Use 'postgresql', 'sqlite' or 'mysql'. In case of SQLite the "db_name" is the name of the file.
+  db:
+    type: sqlite
+    name: aura_engine
+    user: aura_engine
+    pwd: ---SECRET--PASSWORD---
+    host: localhost
+    charset: utf8
+    
+  # 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)
+  # Either provide an absolute base path or a relative one starting in the `engine` directory. In case of `engine-core` running in docker use `/var/audio/source`
+  audio:
+    source_folder: ../engine-core/audio/source
+    source_extension: .flac
+    # Folder holding M3U Playlists to be scheduled in form of Engine Playlists (similar as audio source folder above)
+    playlist_folder: ../engine-core/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 is aired
+  fetching_frequency: 30
+  # 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.
+  scheduling_window_start: 60
+  scheduling_window_end: 60
+  # How many seconds before the actual schedule time the entry should be pre-loaded. Note to provide enough timeout for
+  # 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
+  preload_offset: 15
+
+  # 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
+  # overall playout, its delays and possible fallbacks
+  input_stream:
+    retry_delay: 1
+    max_retries: 10
+    buffer: 3.0
+
+  # Fade duration when selecting another mixer input (seconds)
+  fade_in_time: 1.5
+  fade_out_time: 1.5