From d20ee42dfb4c3492a28d859c9416a8444cbff4a2 Mon Sep 17 00:00:00 2001
From: David Trattnig <david.trattnig@o94.at>
Date: Wed, 23 Sep 2020 18:57:08 +0200
Subject: [PATCH] Allow liquidsoap run as root inside Docker. #17

---
 configuration/sample-development.engine.ini | 1 +
 configuration/sample-docker.engine.ini      | 5 +++--
 configuration/sample-production.engine.ini  | 1 +
 modules/liquidsoap/settings.liq             | 6 ++++++
 4 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/configuration/sample-development.engine.ini b/configuration/sample-development.engine.ini
index a5ecaa92..0804f7c7 100644
--- a/configuration/sample-development.engine.ini
+++ b/configuration/sample-development.engine.ini
@@ -126,6 +126,7 @@ fade_out_time="2.5"
 [lqs]
 liquidsoap_path="/home/david/.opam/4.08.0/bin/liquidsoap"
 liquidsoap_working_dir="modules/liquidsoap/"
+liquidsoap_as_root="false"
 
 # Liquidsoap execution delay in seconds; Crucial to keep things in sync
 lqs_delay_offset=1
diff --git a/configuration/sample-docker.engine.ini b/configuration/sample-docker.engine.ini
index 6c97073e..4fd544c6 100644
--- a/configuration/sample-docker.engine.ini
+++ b/configuration/sample-docker.engine.ini
@@ -122,8 +122,9 @@ fade_out_time="2.5"
 # all these settings from here to the bottom require a restart of the liquidsoap server
 
 [lqs]
-liquidsoap_path="/home/opam/.opam/4.08.0/bin/liquidsoap"
+liquidsoap_path="/usr/bin/liquidsoap"
 liquidsoap_working_dir="modules/liquidsoap/"
+liquidsoap_as_root="true"
 
 # Liquidsoap execution delay in seconds; Crucial to keep things in sync
 lqs_delay_offset=1
@@ -137,7 +138,7 @@ daemonuser="engineuser"
 socketdir="/srv/modules/liquidsoap"
 
 [audiofolder]
-audiofolder="/home/opam/audio/source"
+audiofolder="/var/audio/source"
 
 [fallback]
 # track_sensitive => fallback_folder track sensitivity
diff --git a/configuration/sample-production.engine.ini b/configuration/sample-production.engine.ini
index f04cb826..88f5fa1b 100644
--- a/configuration/sample-production.engine.ini
+++ b/configuration/sample-production.engine.ini
@@ -124,6 +124,7 @@ fade_out_time="2.5"
 [lqs]
 liquidsoap_path="/home/engineuser/.opam/4.08.0/bin/liquidsoap"
 liquidsoap_working_dir="modules/liquidsoap/"
+liquidsoap_as_root="false"
 
 # Liquidsoap execution delay in seconds; Crucial to keep things in sync
 lqs_delay_offset=1
diff --git a/modules/liquidsoap/settings.liq b/modules/liquidsoap/settings.liq
index b3bb02cc..9451b15f 100644
--- a/modules/liquidsoap/settings.liq
+++ b/modules/liquidsoap/settings.liq
@@ -24,6 +24,12 @@ config = list.hd(default=default_config, get_process_lines("ls /etc/aura/engine.
 log("Config file used: #{config}")
 ini = read_ini(config)
 
+# ALLOW LIQUIDSOAP RUN AS ROOT
+lqs_allow_root = list.assoc(default="false", "liquidsoap_as_root", ini)
+if lqs_allow_root == "true" then
+    set("init.allow_root", true)
+end
+
 # TELNET SETTINGS
 set("server.telnet", true)
 set("server.telnet.bind_addr", "0.0.0.0")
-- 
GitLab