diff --git a/files/opendsa/on_update.sh b/files/opendsa/on_update.sh
index 5cd50b8f34ff1ec3e93474e952eebbec7b32f104..a2912aae220747d95ecc6e82aec52d83e3c0d9fa 100644
--- a/files/opendsa/on_update.sh
+++ b/files/opendsa/on_update.sh
@@ -8,7 +8,15 @@
 update_pip_fn=$(cat <<'EOF'
 cd
 python3 -m pip install --user -r OpenDSA/server/requirements.txt
+
+# Initialize the DB if required.
+if [[ ! -f OpenDSA/server/openDSA.db ]]
+then
+    cd OpenDSA/server/
+    ./main.py init_db
+fi
 EOF
+)
 
 # Run PIP as OpenDSA.
 sudo --user opendsa --group opendsa --set-home -- bash -c "$update_pip_fn"
diff --git a/files/update_repo.sh b/files/update_repo.sh
index 5efd735e62373f0a36c7225ad512fce849994da4..c871f416b5e32be90723fca95003573861de992e 100755
--- a/files/update_repo.sh
+++ b/files/update_repo.sh
@@ -90,7 +90,7 @@ then
     if [[ ! -z "$REPO_ON_UPDATE" ]]
     then
 	# Run it if it is there.
-	$REPO_ON_UPDATE
+	eval "$REPO_ON_UPDATE"
     fi
     exit 0
 else
diff --git a/manifests/aes_broker.pp b/manifests/aes_broker.pp
index 89adf822716dfb41c0f99919456c7968f6256106..8b7ab129dd6fa749630db8ded1192c0a6f3514f2 100644
--- a/manifests/aes_broker.pp
+++ b/manifests/aes_broker.pp
@@ -22,7 +22,7 @@ class aes::aes_broker {
 
   user { "${broker_user}" :
     ensure => present,
-    home => "${broker_user}",
+    home => "${broker_home}",
     comment => 'Message broker for AES',
     managehome => false,
     membership => inclusive,
diff --git a/manifests/opendsa.pp b/manifests/opendsa.pp
index 448eb548359dead713c0a92571603707038821df..fc2662a2e195818c7ee9edeb4adbf103159b5d46 100644
--- a/manifests/opendsa.pp
+++ b/manifests/opendsa.pp
@@ -27,12 +27,20 @@ class aes::opendsa {
     ensure => present,
     owner => root,
     group => root,
-    mode  => '0600',
+    mode  => '0700',
     source => "puppet:///modules/${module_name}/opendsa/on_update.sh",
   }
 
+  file { "/etc/systemd/system/${opendsa_service}.service":
+    ensure => present,
+    owner  => root,
+    group  => root,
+    mode => '0644',
+    source => "puppet:///modules/${module_name}/opendsa/opendsa.service",
+  }
+
   exec { 'update-repo':
-    command => "/opt/utils/update_repo.sh ${opendsa_home}/OpenDSA https://oauth2:taNPRZid9Hv6jJtdW_T8@gitlab.liu.se:opendsa/OpenDSA.git exam",
+    command => "/opt/utils/update_repo.sh ${opendsa_home}/OpenDSA https://oauth2:taNPRZid9Hv6jJtdW_T8@gitlab.liu.se/opendsa/OpenDSA.git exam",
     environment => [ "REPO_USER=${opendsa_user}", "REPO_GROUP=${opendsa_group}", "REPO_ON_UPDATE=${opendsa_home}/on_update.sh" ],
     # This command will need to run "on_update" as root in order to restart the service.
     user => root,
@@ -48,20 +56,15 @@ class aes::opendsa {
     source => "puppet:///modules/${module_name}/opendsa/manage.sh",
   }
 
-  exec { "${opendsa_home}/OpenDSA/server/main.py init_db" : 
-    cwd => "${opendsa_home}/OpenDSA/server/",
-    creates => "${opendsa_home}/OpenDSA/server/openDSA.db",
-    user => "${opendsa_user}",
-    group => "${opendsa_group}",
+  # Temporary!
+  file { '/opt/utils/update_repo.sh':
+    ensure  => file,
+    mode    => '0755',
+    owner   => root,
+    group   => root,
+    content => file("${module_name}/update_repo.sh"),
   }
 
-  file { "/etc/systemd/system/${opendsa_service}.service":
-    ensure => present,
-    owner  => root,
-    group  => root,
-    mode => '0644',
-    source => "puppet:///modules/${module_name}/opendsa/opendsa.service",
-  }
 
  # Do we need port 12000 open? NO
   service { "${opendsa_service}" :