diff --git a/conf/default b/conf/default
new file mode 100644
index 0000000..8414d9b
--- /dev/null
+++ b/conf/default
@@ -0,0 +1,11 @@
+description "statsd"
+author "etsy"
+
+start on startup
+stop on shutdown
+
+script
+    chdir /srv/statsd
+
+    exec sudo -u statsd /srv/statsd/scripts/start
+end script
diff --git a/conf/init b/conf/init
new file mode 100644
index 0000000..b7b7320
--- /dev/null
+++ b/conf/init
@@ -0,0 +1,158 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: statsd
+# Required-Start: $network $local_fs
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+
+# Do NOT "set -e"
+
+PATH=$PATH:/usr/local/bin:/usr/bin:/bin
+NODE_BIN=$(which nodejs||which node)
+
+if [ ! -x "$NODE_BIN" ]; then
+  echo "Can't find executable nodejs or node in PATH=$PATH"
+  exit 1
+fi
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="StatsD"
+NAME=statsd
+DAEMON=$NODE_BIN
+DAEMON_ARGS="/srv/statsd/stats.js /etc/statsd/localConfig.js 2>&1 >> /var/log/statsd/statsd.log "
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+CHDIR="/srv/statsd"
+
+# Exit if the package is not installed
+# [ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+# Return
+# 0 if daemon has been started
+# 1 if daemon was already running
+# 2 if daemon could not be started
+start-stop-daemon --start --quiet -m --pidfile $PIDFILE --startas $DAEMON --background --test > /dev/null \
+|| return 1
+start-stop-daemon --start --quiet -m --pidfile $PIDFILE --startas $DAEMON --background --chdir $CHDIR -- \
+$DAEMON_ARGS > /dev/null 2> /var/log/$NAME-stderr.log \
+|| return 2
+# Add code here, if necessary, that waits for the process to be ready
+# to handle requests from services started subsequently which depend
+# on this one. As a last resort, sleep for some time.
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+# Return
+# 0 if daemon has been stopped
+# 1 if daemon was already stopped
+# 2 if daemon could not be stopped
+# other if a failure occurred
+start-stop-daemon --stop --quiet --retry=0/0/KILL/5 --pidfile $PIDFILE
+RETVAL="$?"
+[ "$RETVAL" = 2 ] && return 2
+# Wait for children to finish too if this is a daemon that forks
+# and if the daemon is only ever run from this initscript.
+# If the above conditions are not satisfied then add some other code
+# that waits for the process to drop all resources that could be
+# needed by services started subsequently. A last resort is to
+# sleep for some time.
+start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+[ "$?" = 2 ] && return 2
+# Many daemons don't delete their pidfiles when they exit.
+rm -f $PIDFILE
+return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+#
+# If the daemon can reload its configuration without
+# restarting (for example, when it is sent a SIGHUP),
+# then implement that here.
+#
+start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+return 0
+}
+
+case "$1" in
+  start)
+[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+do_start
+case "$?" in
+0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+esac
+;;
+  stop)
+[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+do_stop
+case "$?" in
+0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+esac
+;;
+  #reload|force-reload)
+#
+# If do_reload() is not implemented then leave this commented out
+# and leave 'force-reload' as an alias for 'restart'.
+#
+#log_daemon_msg "Reloading $DESC" "$NAME"
+#do_reload
+#log_end_msg $?
+#;;
+  restart|force-reload)
+#
+# If the "reload" option is implemented then remove the
+# 'force-reload' alias
+#
+log_daemon_msg "Restarting $DESC" "$NAME"
+do_stop
+case "$?" in
+0|1)
+do_start
+case "$?" in
+0) log_end_msg 0 ;;
+1) log_end_msg 1 ;; # Old process is still running
+*) log_end_msg 1 ;; # Failed to start
+esac
+;;
+*)
+# Failed to stop
+log_end_msg 1
+;;
+esac
+;;
+  status)
+    status_of_proc $DAEMON "$NAME"
+    ;;
+  *)
+echo "Usage: $SCRIPTNAME {start|stop|restart|status|force-reload}" >&2
+exit 3
+;;
+esac
+
+:
diff --git a/conf/localConfig.js b/conf/localConfig.js
new file mode 100644
index 0000000..35236de
--- /dev/null
+++ b/conf/localConfig.js
@@ -0,0 +1,18 @@
+{
+	{%- for backend in pillar.statsd.backends %}
+	{%- if backend.type == 'graphite' %}
+	graphitePort: {{ backend.port }},
+	graphiteHost: "{{ backend.host }}",
+	{%- endif %}
+	{%- if backend.type == 'amqp' %}
+	amqpHost: '{{ backend.host }}',
+	amqpPort: {{ backend.port }},
+	amqpLogin: '{{ backend.user }}',
+	amqpPassword: '{{ backend.password }}',
+	amqpVhost: '{{ backend.virtual_host }}',
+	amqpQueue: '{{ backend.queue }}',
+	amqpDefaultExchange: '{{ backend.exchange }}',
+	{%- endif %}
+	{%- endfor %}
+	port: {{ pillar.statsd.bind_port }}
+}
\ No newline at end of file
diff --git a/conf/start b/conf/start
new file mode 100644
index 0000000..7cba342
--- /dev/null
+++ b/conf/start
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+PATH=$PATH:/usr/local/bin:/usr/bin:/bin
+NODE_BIN=$(which nodejs||which node)
+
+if [ ! -x "$NODE_BIN" ]; then
+echo "Can't find executable nodejs or node in PATH=$PATH"
+  exit 1
+fi
+
+$NODE_BIN /srv/statsd/stats.js /etc/statsd/localConfig.js 2>&1 >> /var/log/statsd/statsd.log
