diff --git a/templates/neuvector/0/README.md b/templates/neuvector/0/README.md
new file mode 100644
index 0000000..3969ac6
--- /dev/null
+++ b/templates/neuvector/0/README.md
@@ -0,0 +1,19 @@
+# NeuVector
+
+### Info:
+
+NeuVector provides continuous network security for application containers.
+
+Deploy the NeuVector containers to protect running containers from violations, threats, and vulnerabilities. NeuVector also detects host and container privilege escalations / break outs.
+
+NeuVector can be deployed on greenfield or brownfield (already running) application environments.
+
+
+### Usage:
+
+Contact info@neuvector.com with your Docker Hub Id so we can add you to our private registry.
+After we confirm that you have been added, you can select the NeuVector catalog to deploy the Allinone and Enforcer containers.
+
+In Configuration Options, enter the Allinone/Controller IP address or name where the Controller will run.
+
+The Manager default port is 8443 for logging in to the console.
diff --git a/templates/neuvector/0/docker-compose.yml b/templates/neuvector/0/docker-compose.yml
new file mode 100644
index 0000000..7fa0b86
--- /dev/null
+++ b/templates/neuvector/0/docker-compose.yml
@@ -0,0 +1,41 @@
+allinone:
+ image: neuvector/allinone
+ container_name: neuvector.allinone
+ restart: always
+ privileged: true
+ environment:
+ - affinity:com.myself.name!=neuvector
+ - CLUSTER_JOIN_ADDR=${ALLINONE_ADDRESS}
+ ports:
+ - 18300:18300
+ - 18301:18301
+ - 18301:18301/udp
+ - 8443:8443
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - /proc:/host/proc:ro
+ - /sys/fs/cgroup:/host/cgroup:ro
+ labels:
+ com.myself.name: "neuvector"
+ io.rancher.scheduler.affinity:host_label: ${NV_ALLINONE_LABEL}
+ io.rancher.container.hostname_override: container_name
+enforcer:
+ image: neuvector/enforcer
+ container_name: neuvector.enforcer
+ restart: always
+ privileged: true
+ environment:
+ - affinity:com.myself.name!=neuvector
+ - CLUSTER_JOIN_ADDR=${ALLINONE_ADDRESS}
+ ports:
+ - 18301:18301
+ - 18301:18301/udp
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - /proc:/host/proc:ro
+ - /sys/fs/cgroup/:/host/cgroup/:ro
+ labels:
+ com.myself.name: "neuvector"
+ io.rancher.scheduler.global: true
+ io.rancher.scheduler.affinity:host_label_ne: ${NV_ALLINONE_LABEL}
+ io.rancher.container.hostname_override: container_name
diff --git a/templates/neuvector/0/rancher-compose.yml b/templates/neuvector/0/rancher-compose.yml
new file mode 100644
index 0000000..de7ef3a
--- /dev/null
+++ b/templates/neuvector/0/rancher-compose.yml
@@ -0,0 +1,18 @@
+.catalog:
+ name: "NeuVector"
+ version: "v0.9"
+ description: "Container Security Solution"
+ questions:
+ - variable: "NV_ALLINONE_LABEL"
+ label: "Allinone Host label"
+ description: "Specify a host label here that can be used to deploy the NeuVector AllInOne container, the NeuVector enforcer container will be deployed on any other hosts. Eg: neuvector.allinone_node=true (you could then add the label 'neuvector.allinone_node=true' to one host to use as management node)."
+ type: "string"
+ default: "neuvector.allinone_node=true"
+ required: true
+ - variable: "ALLINONE_ADDRESS"
+ description: Input the allinone service IP address here.
+ label: "NeuVector Allinone/Controller IP address"
+ default: "[allinone.neuvector.rancher.internal]"
+ required: true
+ type: "string"
+
\ No newline at end of file
diff --git a/templates/neuvector/catalogIcon-neuvector.png b/templates/neuvector/catalogIcon-neuvector.png
new file mode 100644
index 0000000..50e426d
Binary files /dev/null and b/templates/neuvector/catalogIcon-neuvector.png differ
diff --git a/templates/neuvector/config.yml b/templates/neuvector/config.yml
new file mode 100644
index 0000000..7e07e06
--- /dev/null
+++ b/templates/neuvector/config.yml
@@ -0,0 +1,6 @@
+name: NeuVector
+description: |
+ Container Application Security
+version: v0.9
+category: Security
+maintainer: support
\ No newline at end of file