diff --git a/salt/pillar/gnuviechadmin/database.sls b/salt/pillar/gnuviechadmin/database.sls
new file mode 100644
index 0000000..d150d1c
--- /dev/null
+++ b/salt/pillar/gnuviechadmin/database.sls
@@ -0,0 +1,7 @@
+include:
+  - gnuviechadmin.database.common
+
+gnuviechadmin-database:
+  owner:
+    user: gnuviechadmin
+    password: k4TG0oWeJ08urz697GVfavjK
diff --git a/salt/pillar/gnuviechadmin/database/common.sls b/salt/pillar/gnuviechadmin/database/common.sls
new file mode 100644
index 0000000..a1c69c1
--- /dev/null
+++ b/salt/pillar/gnuviechadmin/database/common.sls
@@ -0,0 +1,4 @@
+gnuviechadmin-database:
+  database: gnuviechadmin
+  hostname: localhost
+  port: 5432
diff --git a/salt/pillar/gnuviechadmin/init.sls b/salt/pillar/gnuviechadmin/init.sls
new file mode 100644
index 0000000..ed911fd
--- /dev/null
+++ b/salt/pillar/gnuviechadmin/init.sls
@@ -0,0 +1,21 @@
+include:
+  - gnuviechadmin.database
+  - gnuviechadmin.queues
+
+gnuviechadmin:
+  mailfrom: admin@gnuviech-server.de
+  adminemail: admin@gnuviech-server.de
+  sitename: Gnuviech Customer Self Service
+  domainname: localhost
+  checkout: /srv/www/gnuviechadmin
+  virtualenv: /home/gva/.virtualenvs/gnuviechadmin
+  devinstance: True
+  minosuid: 10000
+  minosgid: 10000
+  osuserprefix: usr
+  osuserhomedirbase: /home
+  osuserdefaultshell: /usr/bin/rssh
+  uploadserver: upload.example.com
+  webmail_url: https://webmail.example.com/
+  phpmyadmin_url: https://phpmyadmin.example.com/
+  phppgadmin_url: https://phppgadmin.example.com/
diff --git a/salt/pillar/gnuviechadmin/queues.sls b/salt/pillar/gnuviechadmin/queues.sls
new file mode 100644
index 0000000..5ac2d7b
--- /dev/null
+++ b/salt/pillar/gnuviechadmin/queues.sls
@@ -0,0 +1,62 @@
+gnuviechadmin-queues:
+  vhost: /gnuviechadmin
+  owner:
+    user: gnuviechadmin
+    password: WxyKeo7Xunhwv29C
+  users:
+    cli:
+      password: bUQ4QEB8yQEfsB0i
+      perms:
+          '/gnuviechadmin':
+            - '.*'
+            - '.*'
+            - '.*'
+      tags:
+    quotajob:
+      password: TaNoj2H3ZNDIz1rt
+      perms:
+          '/gnuviechadmin':
+            - '^quotatool$'
+            - '^quotatool$'
+            - '^quotatool|amq.default$'
+      tags:
+    ldap:
+      password: tl0ALc4aQBAl0W2e
+      perms:
+          '/gnuviechadmin':
+            - '.*'
+            - '.*'
+            - '.*'
+      tags:
+    file:
+      password: StR6EgMjLyNGP1F8
+      perms:
+          '/gnuviechadmin':
+            - '.*'
+            - '.*'
+            - '.*'
+      tags:
+    mysql:
+      password: Bhruvz8Oe9rXxRc7
+      perms:
+          '/gnuviechadmin':
+            - '.*'
+            - '.*'
+            - '.*'
+      tags:
+    pgsql:
+      password: rWOawAtb7MEmGZo3
+      perms:
+          '/gnuviechadmin':
+            - '.*'
+            - '.*'
+            - '.*'
+      tags:
+    web:
+      password: 1fBXqCu175rU7SWA
+      perms:
+          '/gnuviechadmin':
+            - '.*'
+            - '.*'
+            - '.*'
+      tags:
diff --git a/salt/pillar/top.sls b/salt/pillar/top.sls
index e69de29..2fbfb95 100644
--- a/salt/pillar/top.sls
+++ b/salt/pillar/top.sls
@@ -0,0 +1,3 @@
+base:
+  '*':
+    - gnuviechadmin
diff --git a/salt/roots/gnuviechadmin/database.sls b/salt/roots/gnuviechadmin/database.sls
index e69de29..1323368 100644
--- a/salt/roots/gnuviechadmin/database.sls
+++ b/salt/roots/gnuviechadmin/database.sls
@@ -0,0 +1,30 @@
+include:
+  - postgresql-server
+
+gnuviechadmin-database:
+  postgres_user.present:
+    - name: {{ salt['pillar.get']('gnuviechadmin-database:owner:user') }}
+    - user: postgres
+    - password: {{ salt['pillar.get']('gnuviechadmin-database:owner:password') }}
+    - login: True
+    - require:
+      - service: postgresql
+  postgres_database.present:
+    - name: {{ salt['pillar.get']('gnuviechadmin-database:database') }}
+    - user: postgres
+    - owner: {{ salt['pillar.get']('gnuviechadmin-database:owner:user') }}
+    - encoding: UTF8
+    - template: template0
+    - require:
+      - service: postgresql
+      - postgres_user: {{ salt['pillar.get']('gnuviechadmin-database:owner:user') }}
+
+{% for gnuviechadmin_db_role in salt['pillar.get']('gnuviechadmin-database:users') %}
+gnuviechadmin-dbuser-{{ gnuviechadmin_db_role }}:
+  postgres_user.present:
+    - name: {{ salt['pillar.get']('gnuviechadmin-database:users:' + gnuviechadmin_db_role + ':user') }}
+    - password: {{ salt['pillar.get']('gnuviechadmin-database:users:' + gnuviechadmin_db_role + ':password') }}
+    - login: True
+    - require:
+      - service: postgresql
+{% endfor %}
diff --git a/salt/roots/gnuviechadmin/init.sls b/salt/roots/gnuviechadmin/init.sls
deleted file mode 100644
index e69de29..0000000
diff --git a/salt/roots/gnuviechadmin/queues.sls b/salt/roots/gnuviechadmin/queues.sls
index e69de29..3a33604 100644
--- a/salt/roots/gnuviechadmin/queues.sls
+++ b/salt/roots/gnuviechadmin/queues.sls
@@ -0,0 +1,30 @@
+include:
+  - rabbitmq-server
+
+gnuviechadmin-queues:
+  rabbitmq_user.present:
+    - name: {{ salt['pillar.get']('gnuviechadmin-queues:owner:user') }}
+    - password: {{ salt['pillar.get']('gnuviechadmin-queues:owner:password') }}
+  rabbitmq_vhost.present:
+    - name: {{ salt['pillar.get']('gnuviechadmin-queues:vhost') }}
+    - owner: {{ salt['pillar.get']('gnuviechadmin-queues:owner:user') }}
+    - require:
+      - rabbitmq_user: {{ salt['pillar.get']('gnuviechadmin-queues:owner:user') }}
+
+{% for user in salt['pillar.get']('gnuviechadmin-queues:users') %}
+gnuviechadmin-queue-user-{{ user }}:
+  rabbitmq_user.present:
+    - name: {{ user }}
+    - password: {{ salt['pillar.get']('gnuviechadmin-queues:users:%s:password' % user) }}
+{% if salt['pillar.get']('gnuviechadmin-queues:users:%s:perms' % user) %}
+    - perms:
+{% for vhost, perms in salt['pillar.get']('gnuviechadmin-queues:users:%s:perms' % user).iteritems() %}
+      - {{ vhost }}:
+        - {{ perms[0] }}
+        - {{ perms[1] }}
+        - {{ perms[2] }}
+{% endfor %}
+{% endif %}
+    - require:
+      - rabbitmq_vhost: {{ salt['pillar.get']('gnuviechadmin-queues:vhost') }}
+{% endfor %}
diff --git a/salt/roots/postgresql-server/init.sls b/salt/roots/postgresql-server/init.sls
new file mode 100644
index 0000000..f08ace7
--- /dev/null
+++ b/salt/roots/postgresql-server/init.sls
@@ -0,0 +1,9 @@
+locales-all:
+  pkg.installed
+
+postgresql:
+  pkg:
+    - installed
+  service.running:
+    - require:
+      - pkg: postgresql
diff --git a/salt/roots/rabbitmq-server/init.sls b/salt/roots/rabbitmq-server/init.sls
new file mode 100644
index 0000000..32ac09f
--- /dev/null
+++ b/salt/roots/rabbitmq-server/init.sls
@@ -0,0 +1,11 @@
+rabbitmq-server:
+  pkg:
+    - installed
+  service:
+    - running
+    - requires:
+      - pkg: rabbitmq-server
+
+guest:
+  rabbitmq_user:
+    - absent