diff --git a/containers/chameleon/Dockerfile.chameleon b/containers/chameleon/Dockerfile.chameleon
new file mode 100644
index 0000000..f03245d
--- /dev/null
+++ b/containers/chameleon/Dockerfile.chameleon
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM xosproject/xos-base
+
+MAINTAINER Scott Baker    <scottb@onlab.us>
+MAINTAINER Zsolt Haraszti <zharaszt@ciena.com>
+MAINTAINER Ali Al-Shabibi <ali.al-shabibi@onlab.us>
+MAINTAINER Nathan Knuth   <nathan.knuth@tibitcom.com>
+
+# xos-base already has protoc and dependencies installed
+
+# Bundle app source
+RUN mkdir /chameleon && touch /chameleon/__init__.py
+ENV PYTHONPATH=/chameleon
+COPY . /chameleon/chameleon
+
+# Build the protos
+RUN chdir chameleon/chameleon/protos && VOLTHA_BASE=anything make
+
+# Exposing process and default entry point
+CMD ["python", "chameleon/chameleon/main.py"]
diff --git a/containers/chameleon/Makefile b/containers/chameleon/Makefile
new file mode 100644
index 0000000..492eb77
--- /dev/null
+++ b/containers/chameleon/Makefile
@@ -0,0 +1,37 @@
+# Docker container Makefile for XOS
+#
+# Targets:
+#
+#  `base`   - XOS prerequistie files, no XOS code, builds xosproject/xos-base
+#  `build`  - base + XOS code, git pulled in Dockerfile from main repo,
+#             builds xosproject/xos
+#  `custom` - base + XOS code, git pulled in Dockerfile from selectable repo,
+#             builds xosproject/xos
+#  `devel`  - base + XOS code from local directory, builds xosproject/xos
+#  `test`   - xosproject/xos + nodejs testing frameworks, builds
+#             xosproject/xos-test
+#
+
+NO_DOCKER_CACHE    ?= false
+
+CONTAINER_NAME     ?= chameleon
+IMAGE_NAME         ?= xosproject/chameleon
+
+XOS_GIT_REPO       ?= https://github.com/opencord/xos.git
+XOS_GIT_BRANCH     ?= master
+
+XOS_GIT_COMMIT_HASH     ?= $(shell git log --pretty=format:'%H' -n 1 || echo -n "unknown" )
+XOS_GIT_COMMIT_DATE     ?= $(shell git log --pretty=format:'%ad' -n 1 || echo -n "unknown" )
+
+BUILD_ARGS =
+ifdef http_proxy
+BUILD_ARGS += --build-arg http_proxy=${http_proxy}
+endif
+ifdef https_proxy
+BUILD_ARGS += --build-arg https_proxy=${https_proxy}
+endif
+
+chameleon:
+	sudo cp Dockerfile.chameleon /opt/cord/component/chameleon 
+	sudo docker build --no-cache=${NO_DOCKER_CACHE} --rm \
+	-f /opt/cord/component/chameleon/Dockerfile.chameleon -t ${IMAGE_NAME} ${BUILD_ARGS} /opt/cord/component/chameleon
diff --git a/containers/chameleon/README.md b/containers/chameleon/README.md
new file mode 100644
index 0000000..9222a9e
--- /dev/null
+++ b/containers/chameleon/README.md
@@ -0,0 +1,5 @@
+This directory contains a dockerfile for building Chameleon for XOS use.
+
+Expect that shortly Chameleon will be pulled from Dockerhub rather than
+built locally, and that this Dockerfile may be left only as a convenience 
+for developers.
diff --git a/xos/grpc/protos/modeldefs.proto b/xos/grpc/protos/modeldefs.proto
index d738c49..85aa68b 100644
--- a/xos/grpc/protos/modeldefs.proto
+++ b/xos/grpc/protos/modeldefs.proto
@@ -44,7 +44,7 @@
 
   rpc ListModelDefs(google.protobuf.Empty) returns (ModelDefs) {
         option (google.api.http) = {
-            get: "/api/v1/modeldefs"
+            get: "/xosapi/v1/modeldefs"
         };
   }
 };
diff --git a/xos/tools/apigen/protobuf.template.txt b/xos/tools/apigen/protobuf.template.txt
index e3f5790..b38c88c 100644
--- a/xos/tools/apigen/protobuf.template.txt
+++ b/xos/tools/apigen/protobuf.template.txt
@@ -50,29 +50,29 @@
 {% for object in generator.all() %}
   rpc List{{ object.camel() }}(google.protobuf.Empty) returns ({{ object.camel() }}s) {
         option (google.api.http) = {
-            get: "/api/v1/{{ object.plural() }}"
+            get: "/xosapi/v1/{{ object.plural() }}"
         };
   }
   rpc Get{{ object.camel() }}(ID) returns ({{ object.camel() }}) {
         option (google.api.http) = {
-            get: "/api/v1/{{ object.plural() }}/{id}"
+            get: "/xosapi/v1/{{ object.plural() }}/{id}"
         };
   }
   rpc Create{{ object.camel() }}({{ object.camel() }}) returns ({{ object.camel() }}) {
         option (google.api.http) = {
-            post: "/api/v1/{{ object.plural() }}"
+            post: "/xosapi/v1/{{ object.plural() }}"
             body: "*"
         };
   }
   rpc Update{{ object.camel() }}({{ object.camel() }}) returns ({{ object.camel() }}) {
         option (google.api.http) = {
-            put: "/api/v1/{{ object.plural() }}/{id}"
+            put: "/xosapi/v1/{{ object.plural() }}/{id}"
             body: "*"
         };
   }
   rpc Delete{{ object.camel() }}(ID) returns (google.protobuf.Empty) {
         option (google.api.http) = {
-            delete: "/api/v1/{{ object.plural() }}/{id}"
+            delete: "/xosapi/v1/{{ object.plural() }}/{id}"
         };
   }
 {% endfor %}
