diff --git a/Makefile b/Makefile
index 5d56ebd..6e61121 100644
--- a/Makefile
+++ b/Makefile
@@ -334,16 +334,13 @@
 	docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-test_runner:${TAG} -f docker/Dockerfile.test_runner .
 endif
 
+@MAKE_ENV := $(shell echo '$(.VARIABLES)' | awk -v RS=' ' '/^[a-zA-Z0-9]+$$/')
+@SHELL_EXPORT := $(foreach v,$(MAKE_ENV),$(v)='$($(v))')
 start:
-	bash -c 'echo $$VOLTHA_LOGS &&  TMP_STACK_FILE=$$(mktemp -u) && \
-		echo $$TMP_STACK_FILE && \
-		SWARM_MANAGER_COUNT=$$(docker node ls | grep Ready | egrep "(Leader)|(Reachable)" | wc -l | sed -e "s/ //g") && \
-		cat ./compose/voltha-stack.yml.j2 2>&1 | docker run -e RADIUS_ROOT=$$RADIUS_ROOT -e CONSUL_ROOT=$$CONSUL_ROOT -e VOLTHA_LOGS=$$VOLTHA_LOGS -e SWARM_MANAGER_COUNT=$$SWARM_MANAGER_COUNT --rm -i ${REGISTRY}${REPOSITORY}voltha-j2:${TAG} - 2>&1 > $$TMP_STACK_FILE && \
-	        docker stack deploy -c $$TMP_STACK_FILE voltha && \
-	        rm -f $$TMP_STACK_FILE'
-
+	$(SHELL_EXPORT) STACK_TEMPLATE=./compose/voltha-stack.yml.j2 ./scripts/run-voltha.sh start
+	
 stop:
-	docker stack rm voltha
+	./scripts/run-voltha.sh stop
 
 tag: $(patsubst  %,%.tag,$(DOCKER_IMAGE_LIST))
 
diff --git a/scripts/run-voltha.sh b/scripts/run-voltha.sh
new file mode 100755
index 0000000..ea88c3b
--- /dev/null
+++ b/scripts/run-voltha.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+# Runs VOLTHA using a templatized docker stack file.
+# We need to use a templatized file to configure a few things that docker doesn't
+# make configurable through variables right now, namely number of replicas and
+# volume mounts. This runner script first substites some environment variables
+# in to the tempated stack file, then runs that stack file.
+#
+# Look in the stack file template to see what can be configured through environment
+# variables - these variable should be set in the environment that runs this script.
+
+set -e
+
+TAG=${TAG:-latest}
+STACK_TEMPLATE=${STACK_TEMPLATE:-"voltha-stack.yml.j2"}
+
+start () {
+    SWARM_MANAGER_COUNT=$(docker node ls | grep Ready | egrep "(Leader)|(Reachable)" | wc -l | sed -e "s/ //g")
+    if [ $SWARM_MANAGER_COUNT -lt 1 ]; then
+        echo "No swarm managers found. Run 'docker swarm init' to create a new manager"
+        exit 1
+    fi
+
+    downloaded=0
+    if [ ! -f "$STACK_TEMPLATE" ]; then
+        wget https://raw.githubusercontent.com/opencord/voltha/master/compose/voltha-stack.yml.j2
+        downloaded=1
+    fi
+
+    TMP_STACK_FILE=$(mktemp -u)
+
+    cat $STACK_TEMPLATE 2>&1 | docker run -e RADIUS_ROOT=$RADIUS_ROOT -e CONSUL_ROOT=$CONSUL_ROOT -e VOLTHA_LOGS=$VOLTHA_LOGS -e SWARM_MANAGER_COUNT=$SWARM_MANAGER_COUNT --rm -i ${REGISTRY}${REPOSITORY}voltha-j2:${TAG} - 2>&1 > $TMP_STACK_FILE
+    docker stack deploy -c $TMP_STACK_FILE voltha
+
+    rm -f $TMP_STACK_FILE
+
+    if [ $downloaded -eq 1 ]; then
+        rm -f $STACK_TEMPLATE
+    fi
+}
+
+stop () {
+    docker stack rm voltha
+}
+
+status() {
+    if [ -z "$(docker stack ls | grep voltha)" ]; then
+        echo "Stopped"
+        exit
+    fi
+
+    STATUS="Running"
+    for i in $(docker service ls --format '{{.Name}}/{{.Replicas}}' | grep "^voltha_" | grep -v voltha_config_push); do
+        NAME=$(echo $i | cut -d/ -f1)
+        HAVE=$(echo $i | cut -d/ -f2)
+        WANT=$(echo $i | cut -d/ -f3)
+        if [ $HAVE -ne $WANT ]; then
+            echo "$NAME not running: $HAVE of $WANT"
+            STATUS="Incomplete"
+        fi
+    done
+
+    echo $STATUS
+}
+
+case $1 in
+    start)
+        start
+        ;;
+    status)
+        status
+        ;;
+    stop)
+        stop
+        ;;
+    *)
+        echo "Usage: $0 {start|status|stop}" >&2
+        exit 1
+        ;;
+esac
\ No newline at end of file
