diff --git a/apps/minio/Dockerfile b/apps/minio/Dockerfile
new file mode 100644
index 0000000..0f1c204
--- /dev/null
+++ b/apps/minio/Dockerfile
@@ -0,0 +1,25 @@
+FROM golang:1.13-alpine as builder
+
+WORKDIR /home
+
+ENV GOPATH /go
+ENV CGO_ENABLED 0
+ENV GO111MODULE on
+
+RUN go get github.com/minio/minio
+WORKDIR /go/pkg/mod/github.com/minio/minio@v0.0.0-20200426024807-6ecc98fddbfb
+RUN go build -tags kqueue -trimpath -o minio
+
+FROM arm32v7/alpine:3.11
+COPY --from=builder /go/pkg/mod/github.com/minio/minio@v0.0.0-20200426024807-6ecc98fddbfb/minio /usr/bin/
+COPY --from=builder /go/pkg/mod/github.com/minio/minio@v0.0.0-20200426024807-6ecc98fddbfb/dockerscripts/docker-entrypoint.sh /usr/bin/
+RUN chmod +x /usr/bin/minio
+RUN chmod +x /usr/bin/docker-entrypoint.sh
+
+EXPOSE 9000
+
+ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
+
+VOLUME ["/data"]
+
+CMD ["minio"]
\ No newline at end of file
diff --git a/apps/rpuppy/Dockerfile b/apps/rpuppy/Dockerfile
new file mode 100644
index 0000000..47a32c9
--- /dev/null
+++ b/apps/rpuppy/Dockerfile
@@ -0,0 +1,24 @@
+FROM golang:1-alpine AS build
+
+RUN apk update && apk upgrade && \
+    apk add --no-cache bash git openssh
+
+WORKDIR /app
+RUN go get github.com/itaysk/regogo
+COPY main.go /app/main.go
+
+ENV GOOS linux
+ENV GOARCH arm
+ENV CGO_ENABLED 0
+ENV GO111MODULE off
+RUN go build -o rpuppy -trimpath -ldflags="-s -w" main.go
+
+FROM arm32v7/alpine:latest
+WORKDIR /
+COPY --from=build /app/rpuppy /usr/bin/rpuppy
+
+ENV PORT 80
+EXPOSE ${PORT}
+CMD rpuppy --port=${PORT}
+
+
diff --git a/apps/rpuppy/main.go b/apps/rpuppy/main.go
new file mode 100644
index 0000000..85264d0
--- /dev/null
+++ b/apps/rpuppy/main.go
@@ -0,0 +1,49 @@
+package main
+
+import (
+	"flag"
+	"fmt"
+	"io/ioutil"
+	"log"
+	"net/http"
+
+	"github.com/itaysk/regogo"
+)
+
+var port = flag.Int("port", 3000, "Port to listen on")
+
+func handle(w http.ResponseWriter, r *http.Request) {
+	log.Printf("---------- %s", r.RemoteAddr)
+	resp, err := http.Get("https://dog.ceo/api/breeds/image/random")
+	if err != nil {
+		log.Print(err)
+		return
+	}
+	respBody, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		log.Print(err)
+		return
+	}
+	imgPath, err := regogo.Get(string(respBody), "input.message")
+	if err != nil {
+		log.Print(err)
+		return
+	}
+	w.Write([]byte(fmt.Sprintf(`
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Photos</title>
+    </head>
+    <script src="static/photos.js"></script>
+    <body>
+      <img src="%s"></img>
+    </body>
+</html>`, imgPath.String())))
+}
+
+func main() {
+	flag.Parse()
+	http.HandleFunc("/", handle)
+	log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", *port), nil))
+}
