diff --git a/lib/Vroom/Conf.pm b/lib/Vroom/Conf.pm
new file mode 100644
index 0000000..a4b6e0a
--- /dev/null
+++ b/lib/Vroom/Conf.pm
@@ -0,0 +1,66 @@
+package Vroom::Conf;
+
+use strict;
+use warnings;
+
+use Config::Simple;
+
+sub get_conf(){
+ my $file = _find_ini();
+ my $config = {};
+ if ($file){
+ my $cfg = new Config::Simple();
+ $cfg->read($file);
+ $config = $cfg->vars();
+ }
+ # Set default values if required
+ $config->{'database.dsn'} ||= 'DBI:mysql:database=vroom;host=localhost';
+ $config->{'database.user'} ||= 'vroom';
+ $config->{'database.password'} ||= 'vroom';
+ $config->{'signaling.uri'} ||= 'https://vroom.example.com/';
+ $config->{'turn.stun_server'} ||= 'stun.l.google.com:19302';
+ $config->{'turn.turn_server'} ||= undef;
+ $config->{'turn.credentials'} ||= 'static';
+ $config->{'turn.secret_key'} ||= '';
+ $config->{'turn.turn_user'} ||= '';
+ $config->{'turn.turn_password'} ||= '';
+ $config->{'video.frame_rate'} ||= 15;
+ $config->{'email.from '} ||= 'vroom@example.com';
+ $config->{'email.contact'} ||= 'admin@example.com';
+ $config->{'email.sendmail'} ||= '/sbin/sendmail';
+ $config->{'interface.powered_by'} ||= 'Firewall Services';
+ $config->{'interface.template'} ||= 'default';
+ $config->{'interface.chrome_extension_id'} ||= 'ecicdpoejfllflombfanbhfpgcimjddn';
+ $config->{'interface.chrome_extension_id'} ||= 0;
+ $config->{'cookie.secret'} ||= 'secret';
+ $config->{'cookie.name'} ||= 'vroom';
+ $config->{'rooms.inactivity_timeout'} ||= 60;
+ $config->{'rooms.reserved_inactivity_timeout'} ||= 86400;
+ $config->{'rooms.common_names'} ||= '';
+ $config->{'rooms.max_members'} ||= 0;
+ $config->{'etherpad.uri'} ||= '';
+ $config->{'etherpad.api_key'} ||= '';
+ $config->{'etherpad.base_domain'} ||= '';
+ $config->{'directories.cache'} ||= 'cache';
+ $config->{'daemon.listen_ip'} ||= '127.0.0.1';
+ $config->{'daemon.listen_port'} ||= '8090';
+ $config->{'daemon.backend'} ||= 'hypnotoad';
+ $config->{'daemon.log_level'} ||= 'warn';
+ $config->{'daemon.pid_file'} ||= '/tmp/vroom.pid';
+
+ return $config;
+}
+
+sub _find_ini() {
+ if (-e '/etc/vroom/settings.ini'){
+ return '/etc/vroom/settings.ini';
+ }
+ elsif (-e 'conf/settings.ini'){
+ return 'conf/settings.ini';
+ }
+ else{
+ return undef;
+ }
+}
+
+1;
diff --git a/vroom.pl b/vroom.pl
index cd69463..bbb5d23 100755
--- a/vroom.pl
+++ b/vroom.pl
@@ -10,6 +10,7 @@ use Mojolicious::Plugin::Mail;
use Mojolicious::Plugin::Database;
use Mojolicious::Plugin::StaticCompressor;
use Vroom::Constants;
+use Vroom::Conf;
use Crypt::SaltedHash;
use Digest::HMAC_SHA1 qw(hmac_sha1);
use MIME::Base64;
@@ -17,7 +18,6 @@ use File::stat;
use File::Basename;
use Etherpad::API;
use Session::Token;
-use Config::Simple;
use Email::Valid;
use Protocol::SocketIO::Handshake;
use Protocol::SocketIO::Message;
@@ -26,44 +26,7 @@ use Data::Dumper;
app->log->level('info');
-# Read conf file, and set default values
-my $cfg = new Config::Simple();
-$cfg->read('conf/settings.ini');
-our $config = $cfg->vars();
-
-$config->{'database.dsn'} ||= 'DBI:mysql:database=vroom;host=localhost';
-$config->{'database.user'} ||= 'vroom';
-$config->{'database.password'} ||= 'vroom';
-$config->{'signaling.uri'} ||= 'https://vroom.example.com/';
-$config->{'turn.stun_server'} ||= 'stun.l.google.com:19302';
-$config->{'turn.turn_server'} ||= undef;
-$config->{'turn.credentials'} ||= 'static';
-$config->{'turn.secret_key'} ||= '';
-$config->{'turn.turn_user'} ||= '';
-$config->{'turn.turn_password'} ||= '';
-$config->{'video.frame_rate'} ||= 15;
-$config->{'email.from '} ||= 'vroom@example.com';
-$config->{'email.contact'} ||= 'admin@example.com';
-$config->{'email.sendmail'} ||= '/sbin/sendmail';
-$config->{'interface.powered_by'} ||= 'Firewall Services';
-$config->{'interface.template'} ||= 'default';
-$config->{'interface.chrome_extension_id'} ||= 'ecicdpoejfllflombfanbhfpgcimjddn';
-$config->{'interface.chrome_extension_id'} ||= 0;
-$config->{'cookie.secret'} ||= 'secret';
-$config->{'cookie.name'} ||= 'vroom';
-$config->{'rooms.inactivity_timeout'} ||= 60;
-$config->{'rooms.reserved_inactivity_timeout'} ||= 86400;
-$config->{'rooms.common_names'} ||= '';
-$config->{'rooms.max_members'} ||= 0;
-$config->{'etherpad.uri'} ||= '';
-$config->{'etherpad.api_key'} ||= '';
-$config->{'etherpad.base_domain'} ||= '';
-$config->{'directories.cache'} ||= 'cache';
-$config->{'daemon.listen_ip'} ||= '127.0.0.1';
-$config->{'daemon.listen_port'} ||= '8090';
-$config->{'daemon.backend'} ||= 'hypnotoad';
-$config->{'daemon.log_level'} ||= 'warn';
-$config->{'daemon.pid_file'} ||= '/tmp/vroom.pid';
+our $config = Vroom::Conf::get_conf();
# Try to create the cache dir if they doesn't exist
foreach my $dir (qw/assets/){