install 4.3 version
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