diff --git "a/controller/\043Dockerfile\043" "b/controller/\043Dockerfile\043"
new file mode 100644
index 0000000..62cc057
--- /dev/null
+++ "b/controller/\043Dockerfile\043"
@@ -0,0 +1,31 @@
+FROM ubuntu:latest
+
+RUN apt-get update --fix-missing
+RUN apt-get -y upgrade
+RUN apt-get -y install wget git bash unzip
+
+WORKDIR /tmp
+RUN wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
+RUN tar -xvf go1.14.linux-amd64.tar.gz
+RUN mv go /usr/local
+RUN rm go1.14.linux-amd64.tar.gz
+
+ENV GOROOT=/usr/local/go
+ENV GOPATH=/src/go
+ENV GOBIN=$GOPATH/bin
+ENV PATH=$GOBIN:$GOROOT/bin:$PATH
+
+RUN go get -u google.golang.org/grpc
+
+WORKDIR /src/protoc
+RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-linux-x86_64.zip
+RUN unzip protoc-3.11.4-linux-x86_64.zip
+RUN rm protoc-3.11.4-linux-x86_64.zip
+ENV PATH=/src/protoc/bin:$PATH
+
+RUN go get -u github.com/golang/protobuf/protoc-gen-go
+RUN go get -u google.golang.org/protobuf/encoding/prototext
+RUN go get -u github.com/google/uuid
+
+WORKDIR /src/go/src/github.com/giolekva/pcloud/controller
+
diff --git "a/controller/.\043Dockerfile" "b/controller/.\043Dockerfile"
new file mode 120000
index 0000000..ab8b67a
--- /dev/null
+++ "b/controller/.\043Dockerfile"
@@ -0,0 +1 @@
+lekva@gl.local.21823
\ No newline at end of file
diff --git a/controller/Dockerfile b/controller/Dockerfile
new file mode 100644
index 0000000..125fb4a
--- /dev/null
+++ b/controller/Dockerfile
@@ -0,0 +1,30 @@
+FROM ubuntu:latest
+
+RUN apt-get update --fix-missing
+RUN apt-get -y upgrade
+RUN apt-get -y install wget git bash unzip
+
+WORKDIR /tmp
+RUN wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
+RUN tar -xvf go1.14.linux-amd64.tar.gz
+RUN mv go /usr/local
+RUN rm go1.14.linux-amd64.tar.gz
+
+ENV GOROOT=/usr/local/go
+ENV GOPATH=/src/go
+ENV GOBIN=$GOPATH/bin
+ENV PATH=$GOBIN:$GOROOT/bin:$PATH
+
+RUN go get -u google.golang.org/grpc
+
+WORKDIR /src/protoc
+RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-linux-x86_64.zip
+RUN unzip protoc-3.11.4-linux-x86_64.zip
+RUN rm protoc-3.11.4-linux-x86_64.zip
+ENV PATH=/src/protoc/bin:$PATH
+
+RUN go get -u github.com/golang/protobuf/protoc-gen-go
+RUN go get -u google.golang.org/protobuf/encoding/prototext
+RUN go get -u github.com/google/uuid
+
+WORKDIR /src/go/src/github.com/giolekva/pcloud/controller
diff --git a/controller/controller.yaml b/controller/controller.yaml
new file mode 100644
index 0000000..c593a30
--- /dev/null
+++ b/controller/controller.yaml
@@ -0,0 +1,43 @@
+---
+kind: Service 
+apiVersion: v1
+metadata:
+  name: pcloud-controller-service
+spec:
+  type: ClusterIP
+  selector:
+    app: pcloud-controller 
+  ports:
+    - nodePort: 
+      port: 1111
+      targetPort: 1234
+---
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: pcloud-controller
+spec:
+  selector:
+    matchLabels:
+      app: pcloud-controller
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: pcloud-controller
+    spec:
+      containers:
+      - name: pfs-controller
+        image: pcloud-controller:latest
+        imagePullPolicy: Never
+        ports:
+        - containerPort: 1234
+        volumeMounts:
+        - name: code
+          mountPath: /src/go/src/github.com/giolekva/pcloud/controller
+        command: ["/bin/sh", "-c"]
+        args: ["go run main.go --port=1234 --graphql_address=http://dgraph-public.default.svc:8080/graphql"]
+      volumes:
+      - name: code
+        hostPath:
+          path: "/Users/lekva/dev/go/src/github.com/giolekva/pcloud/controller"
diff --git a/controller/main.go b/controller/main.go
new file mode 100644
index 0000000..49fda14
--- /dev/null
+++ b/controller/main.go
@@ -0,0 +1,59 @@
+package main
+
+import (
+	"bytes"
+	"encoding/json"
+	"flag"
+	"fmt"
+	"io/ioutil"
+	"log"
+	"net/http"
+)
+
+var port = flag.Int("port", 123, "Port to listen on.")
+var graphql_address = flag.String("graphql_address", "", "GraphQL server address.")
+
+func minio_webhook_handler(w http.ResponseWriter, r *http.Request) {
+	body, err := ioutil.ReadAll(r.Body)
+	if len(body) == 0 {
+		return
+	}
+	log.Print(string(body))
+	if err != nil {
+		log.Print("-----")
+		log.Print(err)
+		http.Error(w, "Could not read HTTP request body", http.StatusInternalServerError)
+		return
+	}
+	event := make(map[string]interface{})
+	err = json.Unmarshal(body, &event)
+	if err != nil {
+		log.Print("++++++")
+		log.Print(err)
+		http.Error(w, "Could not parse Event JSON object", http.StatusBadRequest)
+		return
+	}
+	buf := []byte("{ \"query\": \"mutation { addImage(input: [{ objectPath: \\\"" + event["Key"].(string) + "\\\"}]) { image { id } }} \" }")
+	log.Print(string(buf))
+	resp, err := http.Post(*graphql_address, "application/json", bytes.NewReader(buf))
+	if err != nil {
+		log.Print("#######")
+		log.Print(err)
+		http.Error(w, "Could not post to GraphQL", http.StatusInternalServerError)
+		return
+	}
+	body, err = ioutil.ReadAll(resp.Body)
+	if err != nil {
+		log.Print("@@@@@@")
+		log.Print(err)
+		http.Error(w, "Could not parse GraphQL response", http.StatusInternalServerError)
+		return
+	}
+	log.Print(string(body))
+}
+
+func main() {
+	flag.Parse()
+	http.HandleFunc("/minio_webhook", minio_webhook_handler)
+	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", *port), nil))
+}
