diff --git a/.travis.yml b/.travis.yml
index 2d90ff29bf21adad2adaf211cbf28b86287f6fc2..5acd20b08c744e2a8dc45aabadbc4f8c26c4afb0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,6 +16,16 @@ language: go
 go:
   - stable
 
+env:
+  - DEP_VERSION="0.4.1"
+
+before_install:
+  # Install Go Dep
+  - curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
+
+install:
+  - dep ensure
+
 before_deploy:
   # Create binaries for many OSs and architures as tarballs.
   # the -osarch="!a/b !c/d" option is used to exclude OS-arch pairs
diff --git a/Gopkg.lock b/Gopkg.lock
new file mode 100644
index 0000000000000000000000000000000000000000..41b3025e1dbbd38a3fcf4aaa26cc98c76a2a7404
--- /dev/null
+++ b/Gopkg.lock
@@ -0,0 +1,90 @@
+# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
+
+
+[[projects]]
+  branch = "master"
+  name = "github.com/Azure/go-ansiterm"
+  packages = [
+    ".",
+    "winterm"
+  ]
+  revision = "d6e3b3328b783f23731bc4d058875b0371ff8109"
+
+[[projects]]
+  branch = "master"
+  name = "github.com/docker/docker"
+  packages = [
+    "pkg/term",
+    "pkg/term/windows"
+  ]
+  revision = "e2593239d949eee454935daea7a5fe025477322f"
+
+[[projects]]
+  name = "github.com/docker/machine"
+  packages = [
+    "libmachine/drivers",
+    "libmachine/drivers/plugin",
+    "libmachine/drivers/plugin/localbinary",
+    "libmachine/drivers/rpc",
+    "libmachine/log",
+    "libmachine/mcnflag",
+    "libmachine/mcnutils",
+    "libmachine/ssh",
+    "libmachine/state",
+    "libmachine/version",
+    "version"
+  ]
+  revision = "b48dc28d9139c93d166f07d8b3a049b59bceef9c"
+  version = "v0.15.0"
+
+[[projects]]
+  name = "github.com/hetznercloud/hcloud-go"
+  packages = [
+    "hcloud",
+    "hcloud/schema"
+  ]
+  revision = "f4c8a4379a2c0a24e9c4fc242be72b9110e1426d"
+  version = "v1.7.0"
+
+[[projects]]
+  name = "github.com/pkg/errors"
+  packages = ["."]
+  revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
+  version = "v0.8.0"
+
+[[projects]]
+  name = "github.com/sirupsen/logrus"
+  packages = ["."]
+  revision = "c155da19408a8799da419ed3eeb0cb5db0ad5dbc"
+  version = "v1.0.5"
+
+[[projects]]
+  branch = "master"
+  name = "golang.org/x/crypto"
+  packages = [
+    "curve25519",
+    "ed25519",
+    "ed25519/internal/edwards25519",
+    "internal/chacha20",
+    "internal/subtle",
+    "poly1305",
+    "ssh",
+    "ssh/terminal"
+  ]
+  revision = "7f39a6fea4fe9364fb61e1def6a268a51b4f3a06"
+
+[[projects]]
+  branch = "master"
+  name = "golang.org/x/sys"
+  packages = [
+    "unix",
+    "windows"
+  ]
+  revision = "fc8bd948cf46f9c7af0f07d34151ce25fe90e477"
+
+[solve-meta]
+  analyzer-name = "dep"
+  analyzer-version = 1
+  inputs-digest = "6e814739f702baed8e2a248403682785b2a3de37ee636d7392b1cec0b0832ef3"
+  solver-name = "gps-cdcl"
+  solver-version = 1
diff --git a/Gopkg.toml b/Gopkg.toml
new file mode 100644
index 0000000000000000000000000000000000000000..9360d5ac504490ae689d340fcfc42b7012ab6af9
--- /dev/null
+++ b/Gopkg.toml
@@ -0,0 +1,46 @@
+# Gopkg.toml example
+#
+# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
+# for detailed Gopkg.toml documentation.
+#
+# required = ["github.com/user/thing/cmd/thing"]
+# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
+#
+# [[constraint]]
+#   name = "github.com/user/project"
+#   version = "1.0.0"
+#
+# [[constraint]]
+#   name = "github.com/user/project2"
+#   branch = "dev"
+#   source = "github.com/myfork/project2"
+#
+# [[override]]
+#   name = "github.com/x/y"
+#   version = "2.4.0"
+#
+# [prune]
+#   non-go = false
+#   go-tests = true
+#   unused-packages = true
+
+
+[[constraint]]
+  name = "github.com/docker/machine"
+  version = "0.15.0"
+
+[[constraint]]
+  name = "github.com/hetznercloud/hcloud-go"
+  version = "1.7.0"
+
+[[constraint]]
+  name = "github.com/pkg/errors"
+  version = "0.8.0"
+
+[[constraint]]
+  branch = "master"
+  name = "golang.org/x/crypto"
+
+[prune]
+  go-tests = true
+  unused-packages = true
diff --git a/README.md b/README.md
index fe44731ac3b7793cd5d4e594f7faa5f546f38262..3d3778f3617983e61012b4f9f01e8bc8355b7c33 100644
--- a/README.md
+++ b/README.md
@@ -133,7 +133,7 @@ was used during creation.
 
 ## Building from source
 
-Use an up-to-date version of [Go](https://golang.org/dl)
+Use an up-to-date version of [Go](https://golang.org/dl) and [dep](https://github.com/golang/dep)
 
 To use the driver, you can download the sources and build it locally:
 
@@ -145,6 +145,10 @@ $ go get github.com/jonasprogrammer/docker-machine-driver-hetzner
 $ export GOPATH=$(go env GOPATH)
 $ export GOBIN=$GOPATH/bin
 $ export PATH="$PATH:$GOBIN"
+$ cd $GOPATH/src/jonasprogrammer/docker-machine-driver-hetzner
+$ dep ensure
+$ go build -o docker-machine-driver-hetzner
+$ cp docker-machine-driver-hetzner /usr/local/bin/docker-machine-driver-hetzner
 ```
 
 ## Development