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))
+}
