diff --git a/README.md b/README.md
index a4fed1e70e4d925ad8fa16952ad5c07dd0cd1bf5..c442c07940dd32c17fd11c1f2d7deaeafa19234a 100644
--- a/README.md
+++ b/README.md
@@ -39,11 +39,34 @@ If load balancer is required, the HTTP can be served in HTTP mode.
 For HTTPS traffic load balancer should be run in TCP-mode.
 If load balancer is run in SSL-offloading mode the custom TLS certificate will not work.
 
+### Environment setup
+
+In order to properly build the go binary, you'll need to configure the GOPATH and GOROOT of your application user
+
+Assuming you've got Go installed to /home/user/go, add the following to your /home/user/.bashrc
+``` bash
+export GOROOT=/home/user/go
+export GOPATH=/home/user/Go
+export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
+```
+
+Once that's been completed, you'll need to implement a workaround to build the go binary by linking the source into the `$GOPATH/src` directory
+
+```
+cd ~
+git clone git@gitlab.com:gitlab-org/gitlab-pages.git
+export GODIR=$GOPATH/src/gitlab.com/gitlab-org/gitlab-pages
+mkdir -p "$(dirname "$GODIR")"
+ln -sfv "$(pwd -P)" "$GODIR"
+```
+
 ### How to run it
 
 Example:
 ```
+cd $GOPATH/src/gitlab.com/gitlab-org/gitlab-pages
 CGO_ENABLED=0 GO15VENDOREXPERIMENT=1 go build
+cd ~/gitlab-pages
 ./gitlab-pages -listen-https "" -listen-http ":8090" -pages-root path/to/gitlab/shared/pages -pages-domain example.com
 ```
 
@@ -63,7 +86,9 @@ This make it possible to listen on privileged ports and makes it harded the proc
 
 Example:
 ```
+cd $GOPATH/src/gitlab.com/gitlab-org/gitlab-pages
 go build
+cd ~/gitlab-pages
 sudo ./gitlab-pages -listen-http ":80" -pages-root path/to/gitlab/shared/pages -pages-domain example.com -daemon-uid 1000 -daemon-gid 1000
 ```