diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..72e8ffc0db8aad71a934dd11e5968bd5109e54b4
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+*
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..3e66e1d5821e755498f864e372ae1dbe23c29414
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,49 @@
+~*
+*~
+*.sw[op]
+*.py[cod]
+.DS_Store
+__pycache__/
+.vagrant/
+vendor/
+Thumbs.db
+*.retry
+.svn/
+.sass-cache/
+*.log
+*.out
+*.so
+node_modules/
+.npm/
+nbproject/
+*.ipynb
+.idea/
+*.egg-info/
+*.[ao]
+.classpath
+.cache/
+bower_components/
+*.class
+*.[ewj]ar
+secring.*
+.*.kate-swp
+.swp.*
+.directory
+.Trash-*
+build/
+_build/
+dist/
+.tox/
+*.pdf
+*.exe
+*.dll
+*.gz
+*.tgz
+*.tar
+*.rar
+*.zip
+*.pid
+*.lock
+*.env
+.bundle/
+!Pipfile.lock
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f4770f0259d54285c6c78d931451cc5b3a6b2424
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,25 @@
+# vim:ff=unix ts=2 sw=2 ai expandtab
+---
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v2.2.3
+    hooks:
+      - id: check-added-large-files
+      - id: check-merge-conflict
+      - id: detect-private-key
+      - id: trailing-whitespace
+  - repo: https://github.com/adrienverge/yamllint
+    rev: v1.16.0
+    hooks:
+      - id: yamllint
+  - repo: https://github.com/amperser/proselint
+    rev: 0.10.2
+    hooks:
+      - id: proselint
+        types: [plain-text]
+        exclude: LICENSE
+  - repo: https://www.shore.co.il/git/docker-pre-commit
+    rev: v0.3.0
+    hooks:
+      - id: hadolint
+      - id: dockerfile-lint
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..b7f8677688f4fe197acb2f1a36cd863e3ba66aaa
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,37 @@
+ARG Version="1.5.0"
+ARG AlpineVersion="3.10"
+
+FROM alpine:$AlpineVersion as builder
+# hadolint ignore=DL3018
+RUN apk add --update --no-cache \
+    autoconf \
+    automake \
+    bison \
+    build-base \
+    flex \
+    libev-dev \
+    openssl-dev
+ARG Version
+ENV VERSION="$Version"
+# Tar fails without an error in Docker Hub but succeeds on my laptop. For now
+# ignore the error as the build is fine even with it.
+RUN wget "https://github.com/varnish/hitch/archive/${VERSION}.tar.gz" && \
+    tar -vxzf "${VERSION}.tar.gz" || true
+WORKDIR /hitch-${Version}
+ENV LDFLAGS="--static"
+RUN ./bootstrap && \
+    ./configure && \
+    make && \
+    make install
+
+FROM alpine:$AlpineVersion
+# hadolint ignore=DL3018
+RUN apk add --update --no-cache ca-certificates tini netcat-openbsd openssl
+COPY --from=builder /usr/local/sbin/hitch /usr/local/sbin/
+ARG Version
+ENV VERSION="$Version"
+RUN [ "$(hitch --version)" = "hitch $VERSION" ]
+ENTRYPOINT ["tini", "--", "hitch"]
+HEALTHCHECK CMD pgrep hitch || exit 1
+LABEL Name="Hitch"
+LABEL Version="${Version}"
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..17196c5e9c0a73784b3bb2ba6299933de5c80980
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Adar Nimrod
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..438faa548dc4c5b03d6df6a1566882194721cc8f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,21 @@
+# Hitch Docker image
+
+## Usage example
+
+```
+docker run -p 80:80 adarnimrod/hitch --client --backend [google.com]:443 --frontend [*]:80 --log-level 1 --user=nobody /etc/ssl/cert.pem
+```
+
+Netcat and OpenSSL are included in the image, so you can also specify better
+healthchecks for your use-case.
+
+## License
+
+This software is licensed under the MIT license (see `LICENSE.txt`).
+
+## Author Information
+
+Nimrod Adar, [contact me](mailto:nimrod@shore.co.il) or visit my [website](
+https://www.shore.co.il/). Patches are welcome via [`git send-email`](
+http://git-scm.com/book/en/v2/Git-Commands-Email). The repository is located
+at: <https://www.shore.co.il/git/>.