diff --git a/Dockerfile.dev b/Dockerfile.dev
new file mode 100644
index 0000000000000000000000000000000000000000..05bf31281d63f36abeb68debfae97caa941d6361
--- /dev/null
+++ b/Dockerfile.dev
@@ -0,0 +1,20 @@
+FROM golang as build-back
+WORKDIR /wg-gen-web
+ADD . .
+RUN go build -o wg-gen-web-linux-amd64
+
+FROM node:10-alpine as build-front
+WORKDIR /ui
+ADD ui .
+RUN npm install
+RUN npm run build
+
+FROM debian:stable-slim
+WORKDIR /app
+COPY --from=build-back /wg-gen-web/wg-gen-web-linux-amd64 .
+COPY --from=build-front /ui/dist ./ui/dist
+ADD .env .
+RUN chmod +x ./wg-gen-web-linux-amd64
+EXPOSE 8080
+
+CMD ["/app/wg-gen-web-linux-amd64"]
diff --git a/README.md b/README.md
index 74b424f5764bbddbdc1b7b6ea2eb32d7b8ac12f4..bad370a8126a80dafe6a1b88d2a1f5f21aa0d27e 100644
--- a/README.md
+++ b/README.md
@@ -124,7 +124,7 @@ Feel free to modify this file in order to use your existing keys
 ## What is out of scope
 
  * Generation or application of any `iptables` or `nftables` rules
- * Application of configuration to WireGuard
+ * Application of configuration to WireGuard by Wg Gen Web itself
 
 ## TODO
 
diff --git a/repository/repository.go b/repository/repository.go
index f52cd1f4e87ad97116464308251670a388d303be..7e64a00d22cf958503804413b85cf2d102ab73c0 100644
--- a/repository/repository.go
+++ b/repository/repository.go
@@ -337,7 +337,7 @@ func UpdateServer(server *model.Server) (*model.Server, error) {
 
 // Write object to disk
 func serialize(id string, c interface{}) error {
-	b, err := json.Marshal(c)
+	b, err := json.MarshalIndent(c, "", "  ")
 	if err != nil {
 		return err
 	}