diff --git a/build.gradle b/build.gradle
index 71fedd7..ae02221 100644
--- a/build.gradle
+++ b/build.gradle
@@ -110,11 +110,11 @@
 }
 
 task buildRepoImage (dependsOn: copyLocalRepo, type: Exec) {
-    commandLine 'docker', 'build', '-t', 'cordproject/mavenrepo', '.'
+    commandLine 'docker', 'build', '-t', 'opencord/mavenrepo', '.'
 }
 
 task tagMavenRepoImage (type: Exec) {
-    commandLine 'docker', 'tag', 'cordproject/mavenrepo', "$targetReg/mavenrepo:$targetTag"
+    commandLine 'docker', 'tag', 'opencord/mavenrepo', "$targetReg/mavenrepo:$targetTag"
 }
 
 task publishMavenRepoImage (type: Exec) {
@@ -122,6 +122,35 @@
     commandLine 'docker', 'push', "$targetReg/mavenrepo:$targetTag"
 }
 
+List.metaClass.asParam = { prefix, sep ->
+  if (delegate.size() == 0) {
+    ""
+  }
+  String result = "--" + prefix + "="
+  String p = ""
+  delegate.each {
+    result += p + "${it}"
+    p = sep
+  }
+  result
+}
+
+List.metaClass.p = { value, name ->
+  if (value != null && value != "") {
+      delegate << name + "=" + value
+  } else {
+      delegate
+  }
+}
+
+List.metaClass.p = { spec ->
+  if (spec != null && spec != "") {
+      delegate += spec
+  } else {
+      delegate
+  }
+}
+
 // ~~~~~~~~~~~~~~~~~~~ Global tasks ~~~~~~~~~~~~~~~~~~~~~~~
 
 task fetch {
@@ -138,6 +167,44 @@
     dependsOn publishMavenRepoImage
 }
 
+task deploy (dependsOn: publishMavenRepoImage, type: Exec) {
+     println "Using deployment config: $deployConfig"
+    File configFile = new File(deployConfig)
+    def yaml = new Yaml()
+    def config = yaml.load(configFile.newReader())
+
+    executable = "ansible-playbook"
+    args = ["-i", config.seedServer.ip + ',']
+
+    if ( config.seedServer.user != null && config.seedServer.user != "" ) {
+        args = args << "--user=$config.seedServer.user"
+    }
+
+    def extraVars = []
+    if (config.seedServer) {
+        extraVars = extraVars.p(config.seedServer.extraVars)
+            .p(config.seedServer.password, "ansible_ssh_pass")
+            .p(config.seedServer.sudoPassword, "ansible_sudo_pass")
+            .p(config.seedServer.domain, "domain")
+    }
+
+    if (config.otherServers) {
+        extraVars = extraVars.p(config.otherServers.location, "prov_location")
+        .p(config.otherServers.rolesPath, "prov_role_path")
+        .p(config.otherServers.role, "prov_role")
+    }
+
+    if (config.docker) {
+        extraVars = extraVars.p(config.docker.registry, "docker_registry")
+            .p(config.docker.imageVersion, "docker_image_version")
+    }
+
+    def skipTags = [].p(config.seedServer.skipTags)
+
+    args = args.p(skipTags.asParam("skip-tags", ",")).p(extraVars.asParam("extra-vars", " ")) << "mavenrepo.yml"   
+}
+
+
 // Depending on the version of the apps this will either make a release or publish a snapshot
 task release (type: Exec) {
     workingDir './apps'
diff --git a/mavenrepo.yml b/mavenrepo.yml
new file mode 100644
index 0000000..a3644f2
--- /dev/null
+++ b/mavenrepo.yml
@@ -0,0 +1,4 @@
+- hosts: all
+  serial: 1
+  roles:
+    - mavenrepo
diff --git a/roles/mavenrepo/tasks/main.yml b/roles/mavenrepo/tasks/main.yml
new file mode 100644
index 0000000..7453ca1
--- /dev/null
+++ b/roles/mavenrepo/tasks/main.yml
@@ -0,0 +1,18 @@
+- name: Install compose for mavenrepo
+  become: yes
+  template:
+    src: templates/{{ item }}.j2
+    dest: /etc/maas/{{ item }}
+    owner: maas
+    group: maas
+    mode: 0644
+  with_items:
+    - mavenrepo.yml
+  tags: [repo]
+
+- name: Ensure mavenrepo Running
+  become: yes
+  command: docker-compose -f /etc/maas/{{ item }} up -d
+  with_items:
+    - mavenrepo.yml
+  tags: [repo]
diff --git a/roles/mavenrepo/templates/mavenrepo.yml.j2 b/roles/mavenrepo/templates/mavenrepo.yml.j2
new file mode 100644
index 0000000..b8d8e1e
--- /dev/null
+++ b/roles/mavenrepo/templates/mavenrepo.yml.j2
@@ -0,0 +1,5 @@
+mavenrepo:
+    image: "docker-registry/mavenrepo:{{ docker.image_version }}"
+    container_name: mavenrepo
+    ports:
+      - "8080:80"
diff --git a/roles/mavenrepo/vars/main.yml b/roles/mavenrepo/vars/main.yml
new file mode 100644
index 0000000..7f3b796
--- /dev/null
+++ b/roles/mavenrepo/vars/main.yml
@@ -0,0 +1,3 @@
+docker:
+    registry: "{{ docker_registry | default('opencord') }}"
+    image_version: "{{ docker_image_version | default('latest') }}"
