From cfb6fddac2509cbeb2a0526dba162a4f62f7f2f9 Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Sun, 12 Oct 2014 21:50:02 +0200 Subject: [PATCH] Switch conf parser to Config::Simple Fix #84 --- .gitignore | 2 +- conf/settings.ini.dist | 66 +++++++++++++++++ conf/{vroom.conf.sample => vroom.conf} | 26 +++---- templates/default/footer.html.ep | 2 +- templates/default/join.html.ep | 10 +-- templates/default/owner_password_modal.html.ep | 6 +- vroom.pl | 99 ++++++++++++++------------ 7 files changed, 142 insertions(+), 69 deletions(-) create mode 100644 conf/settings.ini.dist rename conf/{vroom.conf.sample => vroom.conf} (72%) diff --git a/.gitignore b/.gitignore index 076e65d..a759e9a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ signalmaster/node_modules/ signalmaster/dev_config.json -conf/vroom.conf +conf/settings.ini diff --git a/conf/settings.ini.dist b/conf/settings.ini.dist new file mode 100644 index 0000000..8947e9e --- /dev/null +++ b/conf/settings.ini.dist @@ -0,0 +1,66 @@ +[database] +; Database access settings +;dsn = 'DBI:mysql:database=devroom;host=localhost' +;user = 'vroom' +;password = 'password' + +[signaling] +; URI sent to clients where they can find the signaling server +;uri = 'https://vroom.exmple.com' + +[turn] +; The stun server sent to client. You can set it to your own stun server +;stun_server = 'stun.l.google.com:19302' +; The turn server sent to cliet, you should set it to your own server +;turn_server = '' +; the realm used for turn accounts. You shouldn't have to change it +;turn_realm = 'vroom' + +[email] +; Address set in the From field of email sent by VROOM +;from = 'no-reply@example.com' +; Recipient of the feedback messages +;contact = 'admin@example.com' +; Path to a sendmail compatible binary used to send emails +;sendmail = '/sbin/sendmail' + +[interface] +; You can customize the "powered by" at the bottom +;powered_by = 'Firewall Services' +; Template to use. Must be a directory under the templates dir +;template = 'default' +; ID of the chrome extension which will be proposed when sharing screen on Chrome +;chrome_extension_id = 'ecicdpoejfllflombfanbhfpgcimjddn' + +[cookie] +; Secret passphrase used to sign cookies. You must set this +;secret = '1zEewX24ZD%2RvtF%e' +; Cookie name, You shouldn't have to change this +;name = 'vroom' + +[rooms] +; After this amount of time in minutes, rooms without any activity will be purged +;inactivity_timeout = '3600' +; You can also purge reserved rooms +;reserved_inactivity_imeout = '5184000' +; A comma separated list of room names you don't want to be reservable +;common_names = 'test,test1,test123,0,1,2,3,4,5,6,7,8,9,123,1234,12345,a,aa,abc,azerty,qwerty,vroom,foo,bar,baz' + +[log] +; Verbosity of the web interface. Can be debug, info, warn, error or fatal +;level = 'warn' + +[etherpad] +; If you want to enabled etherpad-lite integratio, you must set +; the uri of your instance, and the API key +;uri = 'https://pad.example.com' +;api_key = 'be0f90cfc412b03c13e956e77d7944352c06a44e5d94da44ebfa79fb63d7e998' +; If you run vroom and etherpad-llite on different subdomains, you have to set the common part here +; For exmple, if you use vroom.domain.tld and pad.domain.tld, set domain.tld here +;base_domain = 'example.com' + +[daemon] +; IP the hypnotoad daemon will listen on. You can use * to bind on every IP/Interface +;listen_ip = '127.0.0.1' +; Port used by the hypnotoad daemon +;listen_port = '8090' diff --git a/conf/vroom.conf.sample b/conf/vroom.conf similarity index 72% rename from conf/vroom.conf.sample rename to conf/vroom.conf index 81b7e1f..5b47024 100644 --- a/conf/vroom.conf.sample +++ b/conf/vroom.conf @@ -1,24 +1,24 @@ { # Database -dbi => 'DBI:mysql:database=vroom;host=localhost', -dbUser => 'vroom', -dbPassword => 'vroom', +dbi => 'DBI:mysql:database=devroom;host=localhost', +dbUser => 'devroom', +dbPassword => 'prout', # Media & signaling -signalingServer => 'https://signal.example.com', -stunServer => 'stun.example.com:3478', -turnServer => 'turn.example.com', -realm => 'example.com', +signalingServer => 'https://dev.vroom.im', +stunServer => 'vroom.im:3478', +turnServer => 'vroom.im', +realm => 'vroom.im', # Web & contact -emailFrom => 'vroom@example.com', -feedbackRecipient => 'admin@example.com', +emailFrom => 'no-reply@vroom.im', +oeedbackRecipient => 'dani@fws.fr', poweredBy => 'Firewall Services', # Templates to use for web pages template => 'default', # Used to sign cookies -secret => 'ChangeMe!', +secret => 'NtPZDUEqNX68QlQGH5ohqb1ymmqEGJ3xyvLo4Fz3pDqEX/Dxutmp', # App # Rooms without any activity for that long (in seconds) will be destroyed @@ -42,11 +42,11 @@ chromeExtensionId => 'ecicdpoejfllflombfanbhfpgcimjddn', # For etherpad integration, set the etherpad base url # and API Key -#etherpadUri => '', -#etherpadApiKey => '', +etherpadUri => 'https://vroom.im/etherpad/', +etherpadApiKey => 'be0c00cfce12b00c13e956e77d7244352c06a44e5d94ca44ebfa79fb63d7e995', # You can also set the base domain common to both vroom and etherpad # For example, if you use vroom.example.com and pad.example.com, the base domain is example.com -#etherpadBaseDomain => '', +etherpadBaseDomain => 'vroom.im', # Various sendmail => '/sbin/sendmail' diff --git a/templates/default/footer.html.ep b/templates/default/footer.html.ep index e219508..50ecb3f 100644 --- a/templates/default/footer.html.ep +++ b/templates/default/footer.html.ep @@ -5,7 +5,7 @@

<%=l 'VROOM_IS_FREE_SOFTWARE' %>

-

<%=l 'POWERED_BY' %> <%== $config->{poweredBy} %>

+

<%=l 'POWERED_BY' %> <%= $config->{'interface.powered_by'} %>

diff --git a/templates/default/join.html.ep b/templates/default/join.html.ep index 7d3be12..b9cc1a8 100644 --- a/templates/default/join.html.ep +++ b/templates/default/join.html.ep @@ -700,7 +700,7 @@ <%=l 'VROOM_CHROME_EXTENSION' %>

- + @@ -869,7 +869,7 @@ setTimeout(function(){ etherpad = { enabled: <%= $etherpad %>, - uri: "<%= $config->{etherpadUri} %>", + uri: "<%= $config->{'etherpad.uri'} %>", group: "<%= $etherpadGroup %>" }; <% if ($video eq 'false'){ %> @@ -882,11 +882,11 @@ }; <% } %> webrtc = new SimpleWebRTC({ - url: "<%= $config->{signalingServer} %>", + url: "<%= $config->{'signaling.uri'} %>", peerConnectionConfig: { iceServers: [ - {"url":"stun:<%= $config->{stunServer} %>"}, - <%== ($config->{turnServer} && $config->{turnServer} ne '') ? "{\"url\":\"turn:$config->{turnServer}\", \"username\":\"$room\", \"credential\":\"$turnPassword\"}":'' %> + {"url":"stun:<%= $config->{'turn.stun_server'} %>"}, + <%== ($config->{'turn.turn_server'} && $config->{'turn.turn_server'} ne '') ? "{\"url\":\"turn:$config->{'turn.turn_server'}\", \"username\":\"$room\", \"credential\":\"$turnPassword\"}":'' %> ] }, localVideoEl: 'webRTCVideoLocal', diff --git a/templates/default/owner_password_modal.html.ep b/templates/default/owner_password_modal.html.ep index 6af890e..937c8ab 100644 --- a/templates/default/owner_password_modal.html.ep +++ b/templates/default/owner_password_modal.html.ep @@ -15,12 +15,12 @@ <%=l 'SET_OWNER_PASS' %>