diff --git a/kibana/files/kibana.init b/kibana/files/kibana.init
new file mode 100755
index 0000000..d19ba7c
--- /dev/null
+++ b/kibana/files/kibana.init
@@ -0,0 +1,156 @@
+#!/bin/sh
+# Init script for kibana
+# Maintained by 
+# Generated by pleaserun.
+# Implemented based on LSB Core 3.1:
+#   * Sections: 20.2, 20.3
+#
+### BEGIN INIT INFO
+# Provides:          kibana
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: 
+# Description:       no description given
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+export PATH
+
+name=kibana
+program=/opt/kibana/bin/kibana
+args=''
+pidfile="/var/run/$name.pid"
+
+[ -r /etc/default/$name ] && . /etc/default/$name
+[ -r /etc/sysconfig/$name ] && . /etc/sysconfig/$name
+
+trace() {
+  logger -t "/etc/init.d/kibana" "$@"
+}
+
+emit() {
+  trace "$@"
+  echo "$@"
+}
+
+start() {
+
+  # Ensure the log directory is setup correctly.
+  [ ! -d "/var/log/kibana/" ] && mkdir "/var/log/kibana/"
+  chown "$user":"$group" "/var/log/kibana/"
+  chmod 755 "/var/log/kibana/"
+
+
+  # Setup any environmental stuff beforehand
+  
+
+  # Run the program!
+  
+  chroot --userspec "$user":"$group" "$chroot" sh -c "
+    
+    cd \"$chdir\"
+    exec \"$program\" $args
+  " >> /var/log/kibana/kibana.stdout 2>> /var/log/kibana/kibana.stderr &
+
+  # Generate the pidfile from here. If we instead made the forked process
+  # generate it there will be a race condition between the pidfile writing
+  # and a process possibly asking for status.
+  echo $! > $pidfile
+
+  emit "$name started"
+  return 0
+}
+
+stop() {
+  # Try a few times to kill TERM the program
+  if status ; then
+    pid=$(cat "$pidfile")
+    trace "Killing $name (pid $pid) with SIGTERM"
+    kill -TERM $pid
+    # Wait for it to exit.
+    for i in 1 2 3 4 5 ; do
+      trace "Waiting $name (pid $pid) to die..."
+      status || break
+      sleep 1
+    done
+    if status ; then
+      emit "$name stop failed; still running."
+    else
+      emit "$name stopped."
+    fi
+  fi
+}
+
+status() {
+  if [ -f "$pidfile" ] ; then
+    pid=$(cat "$pidfile")
+    if ps -p $pid > /dev/null 2> /dev/null ; then
+      # process by this pid is running.
+      # It may not be our pid, but that's what you get with just pidfiles.
+      # TODO(sissel): Check if this process seems to be the same as the one we
+      # expect. It'd be nice to use flock here, but flock uses fork, not exec,
+      # so it makes it quite awkward to use in this case.
+      return 0
+    else
+      return 2 # program is dead but pid file exists
+    fi
+  else
+    return 3 # program is not running
+  fi
+}
+
+force_stop() {
+  if status ; then
+    stop
+    status && kill -KILL $(cat "$pidfile")
+  fi
+}
+
+
+case "$1" in
+  force-start|start|stop|force-stop|restart)
+    trace "Attempting '$1' on kibana"
+    ;;
+esac
+
+case "$1" in
+  force-start)
+    PRESTART=no
+    exec "$0" start
+    ;;
+  start)
+    status
+    code=$?
+    if [ $code -eq 0 ]; then
+      emit "$name is already running"
+      exit $code
+    else
+      start
+      exit $?
+    fi
+    ;;
+  stop) stop ;;
+  force-stop) force_stop ;;
+  status) 
+    status
+    code=$?
+    if [ $code -eq 0 ] ; then
+      emit "$name is running"
+    else
+      emit "$name is not running"
+    fi
+    exit $code
+    ;;
+  restart) 
+    
+    stop && start 
+    ;;
+  *)
+    echo "Usage: $SCRIPTNAME {start|force-start|stop|force-start|force-stop|status|restart}" >&2
+    exit 3
+  ;;
+esac
+
+exit $?
diff --git a/kibana/init.sls b/kibana/init.sls
index 2003aa5..45e2ea3 100644
--- a/kibana/init.sls
+++ b/kibana/init.sls
@@ -1,5 +1,7 @@
 
+{%- if pillar.kibana is defined %}
 {%- if pillar.kibana.server is defined %}
 include:
 - kibana.server
 {%- endif %}
+{%- endif %}
diff --git a/kibana/map.jinja b/kibana/map.jinja
index a6736e3..1a220ee 100644
--- a/kibana/map.jinja
+++ b/kibana/map.jinja
@@ -1,7 +1,8 @@
 
 {% set server = salt['grains.filter_by']({
     'Debian': {
-        'pkgname': 'kibana',
+        'pkgs': ['kibana'],
         'service': 'kibana',
+        'dir': '/opt/kibana'
     },
 }, merge=salt['pillar.get']('kibana:server')) %}
diff --git a/kibana/meta/sphinx.yml b/kibana/meta/sphinx.yml
index 58af7b3..3aa536e 100644
--- a/kibana/meta/sphinx.yml
+++ b/kibana/meta/sphinx.yml
@@ -1,6 +1,6 @@
 doc:
   name: Kibana
-  description: Kibana is an open source (Apache Licensed), browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch.
+  description: Kibana is a browser based analytics and search interface to Logstash and other timestamped data sets stored in ElasticSearch.
   role:
   {%- if pillar.kibana.server is defined %}
     server:
diff --git a/kibana/server.sls b/kibana/server.sls
index 8122fdc..d98cc9d 100644
--- a/kibana/server.sls
+++ b/kibana/server.sls
@@ -1,35 +1,45 @@
 {%- from "kibana/map.jinja" import server with context %}
 {%- if server.enabled %}
 
-{%- if server.addrepo is defined and grains['os_family'] == 'Debian' %}
+kibana_user:
+  user.present:
+  - name: kibana
+  - system: True
+  - home: {{ server.dir }}
+  - require:
+    - file: {{ server.dir }}
 
-kibana_repo:
-  pkgrepo.managed:
-    - humanname: Kibana Repository
-    - name: deb http://packages.elastic.co/kibana/4.1/debian stable main
-    - dist: stable
-    - file: /etc/apt/sources.list.d/kibana.list
-    - key_url: https://packages.elastic.co/GPG-KEY-elasticsearch
+kibana_archive:
+  archive.extracted:
+  - name: {{ server.dir }}
+  - source: https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz
+  - archive_format: tar.gz
+  - if_missing: /opt/kibana/src
+  - require:
+    - user: kibana_user
 
-{%- endif %}
+/etc/init.d/kibana:
+  file.managed:
+  - source: salt://kibana/files/kibana.init
+  - user: kibana
+  - group: kibana
+  - mode: 700
+  - template: jinja
+  - require:
+    - archive: kibana_archive
+  - watch_in:
+    - service: kibana_service
 
-kibana_package:
-  pkg.installed:
-  - name: {{ server.pkgname }}
+/opt/kibana/src/config/kibana.yml:
+  file.managed:
+  - source: salt://kibana/files/kibana.yml
+  - template: jinja
+  - watch_in:
+    - service: kibana_service
 
 kibana_service:
   service.running:
   - enable: true
   - name: {{ server.service }}
-  - watch:
-    - file: /opt/kibana/config/kibana.yml
 
-/opt/kibana/config/kibana.yml:
-  file.managed:
-  - source: salt://kibana/files/kibana.yml
-  - template: jinja
-  - require:
-    - pkg: kibana_package
-
-{%- endif %}
-
+{%- endif %}
\ No newline at end of file
