Add Kibble architecture diagram (#56)

diff --git a/docs/source/_static/images/kibble-architecture.png b/docs/source/_static/images/kibble-architecture.png
new file mode 100644
index 0000000..6fa6758
--- /dev/null
+++ b/docs/source/_static/images/kibble-architecture.png
Binary files differ
diff --git a/docs/source/_static/images/kibble-architecture.puml b/docs/source/_static/images/kibble-architecture.puml
new file mode 100644
index 0000000..4a924fa
--- /dev/null
+++ b/docs/source/_static/images/kibble-architecture.puml
@@ -0,0 +1,25 @@
+@startuml
+actor user
+database elasticsearch
+rectangle "Apache Kibble" {
+  file kibble.yaml
+  rectangle webserver {
+     collections "static files"
+  }
+  rectangle gunicorn {
+     rectangle API
+  }
+  rectangle API
+}
+user <-> webserver: (web app)
+webserver <--> gunicorn: (reverse proxy)
+API <-> elasticsearch
+API <~~ kibble.yaml
+
+rectangle "Apache Kibble Scanners" {
+  collections scanners
+  file config.yaml
+}
+scanners --> elasticsearch
+config.yaml ~> scanners
+@enduml
diff --git a/docs/source/setup.rst b/docs/source/setup.rst
index c4c43d7..ad82170 100644
--- a/docs/source/setup.rst
+++ b/docs/source/setup.rst
@@ -16,7 +16,7 @@
    This is the main database and UI Server. It serves as the hub for the
    scanners to connect to, and provides the overall management of
    sources as well as the visualizations and API end points.
-   
+
 The Kibble Scanner Applications (kibble-scanners)
    This is a collection of scanning applications each designed to work
    with a specific type of resource (a git repo, a mailing list, a JIRA
@@ -25,6 +25,10 @@
    multiple plugins capable of dealing with specific aspects of a
    resource.
 
+The following diagram shows Kibble architecture:
+
+.. figure:: _static/images/kibble-architecture.png
+
 **********************
 Component Requirements
 **********************