diff --git a/debian/.gitignore b/debian/.gitignore
index fdcf9b3..a7a2be8 100644
--- a/debian/.gitignore
+++ b/debian/.gitignore
@@ -19,5 +19,6 @@
 /openvswitch-testcontroller
 /openvswitch-vtep
 /ovn-common
+/ovn-host
 /python-openvswitch
 /tmp
diff --git a/debian/automake.mk b/debian/automake.mk
index 2b6f098..422cdc9 100644
--- a/debian/automake.mk
+++ b/debian/automake.mk
@@ -52,6 +52,13 @@ EXTRA_DIST += \
 	debian/openvswitch-vtep.manpages \
 	debian/ovn-common.install \
 	debian/ovn-common.manpages \
+	debian/ovn-host.dirs \
+	debian/ovn-host.init \
+	debian/ovn-host.install \
+	debian/ovn-host.manpages \
+	debian/ovn-host.postinst \
+	debian/ovn-host.postrm \
+	debian/ovn-host.template \
 	debian/ovs-monitor-ipsec \
 	debian/python-openvswitch.dirs \
 	debian/python-openvswitch.install \
diff --git a/debian/control b/debian/control
index 57285f1..725f552 100644
--- a/debian/control
+++ b/debian/control
@@ -112,6 +112,22 @@ Description: OVN common components
  .
  ovn-common provides components required by other OVN packages.
 
+Package: ovn-host
+Architecture: linux-any
+Depends: openvswitch-switch (= ${binary:Version}),
+         openvswitch-common (= ${binary:Version}),
+         ovn-common (= ${binary:Version}),
+         ${misc:Depends},
+         ${shlibs:Depends}
+Description: OVN host components
+ OVN, the Open Virtual Network, is a system to support virtual network
+ abstraction.  OVN complements the existing capabilities of OVS to add
+ native support for virtual network abstractions, such as virtual L2 and L3
+ overlays and security groups.
+ .
+ ovn-host provides the userspace components and utilities for
+ OVN that can be run on every host/hypervisor.
+
 Package: openvswitch-ipsec
 Architecture: linux-any
 Depends: ipsec-tools (>=0.8~alpha20101208),
diff --git a/debian/ovn-host.dirs b/debian/ovn-host.dirs
new file mode 100644
index 0000000..7d3c761
--- /dev/null
+++ b/debian/ovn-host.dirs
@@ -0,0 +1 @@
+/usr/share/ovn/host
diff --git a/debian/ovn-host.init b/debian/ovn-host.init
new file mode 100755
index 0000000..bddf628
--- /dev/null
+++ b/debian/ovn-host.init
@@ -0,0 +1,53 @@
+#! /bin/sh
+#
+### BEGIN INIT INFO
+# Provides:          ovn-host
+# Required-Start:    openvswitch-switch $remote_fs $syslog
+# Required-Stop:     $remote_fs
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: OVN host components
+# Description:       ovn-host provides the userspace
+#                    components and utilities for OVN that can be run on
+#                    every host/hypervisor.
+### END INIT INFO
+
+test -x /usr/bin/ovn-controller  || exit 0
+test -x /usr/share/openvswitch/scripts/ovn-ctl || exit 0
+
+_SYSTEMCTL_SKIP_REDIRECT=yes
+
+. /usr/share/openvswitch/scripts/ovs-lib
+if [ -e /etc/default/ovn-host ]; then
+    . /etc/default/ovn-host
+fi
+
+start () {
+    set /usr/share/openvswitch/scripts/ovn-ctl ${1-start_controller}
+    set "$@" $OVN_CTL_OPTS
+    "$@" || exit $?
+}
+
+case $1 in
+    start)
+        start
+        ;;
+    stop | force-stop)
+        /usr/share/openvswitch/scripts/ovn-ctl stop_controller
+        ;;
+    restart)
+        start restart_controller
+        ;;
+    status)
+        /usr/share/openvswitch/scripts/ovn-ctl status_controller
+        exit $?
+        ;;
+    reload | force-reload)
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|reload|force-reload|restart|status}" >&2
+        exit 1
+        ;;
+esac
+
+exit 0
diff --git a/debian/ovn-host.install b/debian/ovn-host.install
new file mode 100644
index 0000000..d2de82f
--- /dev/null
+++ b/debian/ovn-host.install
@@ -0,0 +1 @@
+usr/bin/ovn-controller
diff --git a/debian/ovn-host.manpages b/debian/ovn-host.manpages
new file mode 100644
index 0000000..4f9e7bc
--- /dev/null
+++ b/debian/ovn-host.manpages
@@ -0,0 +1 @@
+ovn/controller/ovn-controller.8
diff --git a/debian/ovn-host.postinst b/debian/ovn-host.postinst
new file mode 100755
index 0000000..05e80ad
--- /dev/null
+++ b/debian/ovn-host.postinst
@@ -0,0 +1,49 @@
+#!/bin/sh
+# postinst script for ovn-host
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    configure)
+	DEFAULT=/etc/default/ovn-host
+	TEMPLATE=/usr/share/ovn/host/default.template
+	if ! test -e $DEFAULT; then
+	    cp $TEMPLATE $DEFAULT
+	else
+            for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE)
+            do
+                if ! grep $var $DEFAULT >/dev/null 2>&1; then
+	            echo >> $DEFAULT
+	            sed -n "/$var:/,/$var=/p" $TEMPLATE >> $DEFAULT
+                fi
+            done
+	fi
+        ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+        ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+        ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/ovn-host.postrm b/debian/ovn-host.postrm
new file mode 100755
index 0000000..4cceb90
--- /dev/null
+++ b/debian/ovn-host.postrm
@@ -0,0 +1,44 @@
+#!/bin/sh
+# postrm script for ovn-host
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postrm> `remove'
+#        * <postrm> `purge'
+#        * <old-postrm> `upgrade' <new-version>
+#        * <new-postrm> `failed-upgrade' <old-version>
+#        * <new-postrm> `abort-install'
+#        * <new-postrm> `abort-install' <old-version>
+#        * <new-postrm> `abort-upgrade' <old-version>
+#        * <disappearer's-postrm> `disappear' <overwriter>
+#          <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    purge)
+        rm -f /etc/default/ovn-host
+        rm -f /var/log/openvswitch/ovn-controller.log* || true
+        ;;
+
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+        ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+        ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/ovn-host.template b/debian/ovn-host.template
new file mode 100644
index 0000000..7fd54ef
--- /dev/null
+++ b/debian/ovn-host.template
@@ -0,0 +1,5 @@
+# This is a POSIX shell fragment                -*- sh -*-
+
+# OVN_CTL_OPTS: Extra options to pass to ovs-ctl.  This is, for example,
+# a suitable place to specify --ovn-controller-wrapper=valgrind.
+# OVN_CTL_OPTS=
diff --git a/debian/rules b/debian/rules
index d8e90c7..f95f509 100755
--- a/debian/rules
+++ b/debian/rules
@@ -54,6 +54,9 @@ override_dh_install:
 	# openvswitch-switch
 	cp debian/openvswitch-switch.template debian/openvswitch-switch/usr/share/openvswitch/switch/default.template
 
+	# ovn-host
+	cp debian/ovn-host.template debian/ovn-host/usr/share/ovn/host/default.template
+
 	# openvswitch-datapath-source
 	cp debian/rules.modules debian/openvswitch-datapath-source/usr/src/modules/openvswitch-datapath/debian/rules
 	chmod 755 debian/openvswitch-datapath-source/usr/src/modules/openvswitch-datapath/debian/rules
