diff --git a/xos/grpc/grpc_server.py b/xos/grpc/grpc_server.py
index 7649640..cb5b2a7 100644
--- a/xos/grpc/grpc_server.py
+++ b/xos/grpc/grpc_server.py
@@ -154,6 +154,27 @@
         activator_func(service, self.server)
 
 
+def restart_chameleon():
+    import docker
+
+    def find_container(client, search_name):
+        for c in client.containers():
+            for c_name in c["Names"]:
+                if (search_name in c_name):
+                    return c
+        return None
+
+    client=docker.from_env()
+    chameleon_container = find_container(client, "xos_chameleon_1")
+    if chameleon_container:
+        try:
+            # the first attempt always fails with 404 error
+            # docker-py bug?
+            client.restart(chameleon_container["Names"][0])
+        except:
+            client.restart(chameleon_container["Names"][0])
+
+
 # This is to allow running the GRPC server in stand-alone mode
 
 if __name__ == '__main__':
@@ -161,6 +182,8 @@
 
     server = XOSGrpcServer().start()
 
+    restart_chameleon()
+
     import time
     _ONE_DAY_IN_SECONDS = 60 * 60 * 24
     try:
diff --git a/xos/synchronizers/onboarding/xosbuilder.py b/xos/synchronizers/onboarding/xosbuilder.py
index ac6f566..864e972 100644
--- a/xos/synchronizers/onboarding/xosbuilder.py
+++ b/xos/synchronizers/onboarding/xosbuilder.py
@@ -344,6 +344,9 @@
             "extra_hosts": extra_hosts,
             "volumes": volume_list}
 
+        # The core needs access to docker so it can restart Chameleon
+        core_volume_list = volume_list + [{"host_path": "/var/run/docker.sock", "container_path": "/var/run/docker.sock", "read_only": False}]
+
         containers["xos_core"] = {
             "image": "xosproject/xos-ui",
             "command": 'bash -c "cd grpc; bash ./start_grpc_server.sh"',
@@ -351,7 +354,7 @@
             "ports": {"50055": "50055", "50051" : "50051"},
             "external_links": external_links,
             "extra_hosts": extra_hosts,
-            "volumes": volume_list}
+            "volumes": core_volume_list}
 
         if xos.no_start:
             containers["xos_ui"]["command"] = "sleep 864000"
