diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b610ec64838e7b425a2ca5487b1119ecc2fbdfc1
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,26 @@
+---
+include:
+  - project: shore/ci-templates
+    file: templates/pre-commit.yml
+  - project: shore/ci-templates
+    file: templates/docker.yml
+
+stages:
+  - test
+  - build
+  - deploy
+
+variables:
+  IMAGE: ci-images
+
+build:
+  extends: .docker-build-shore
+  tags: [ns4.shore.co.il]
+  except:
+    - master
+
+push:
+  extends: .docker-push-shore
+  tags: [ns4.shore.co.il]
+  except:
+    - master
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..13d68fd1fc7fdca9e758d5db887f1b23ee812b77
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,48 @@
+---
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks.git
+    rev: v3.4.0
+    hooks:
+      - id: check-added-large-files
+      - id: check-executables-have-shebangs
+      - id: check-merge-conflict
+      - id: check-symlinks
+      - id: trailing-whitespace
+
+  - repo: https://github.com/Yelp/detect-secrets
+    rev: v0.14.3
+    hooks:
+      - id: detect-secrets
+
+  - repo: https://github.com/adrienverge/yamllint
+    rev: v1.25.0
+    hooks:
+      - id: yamllint
+
+  - repo: https://github.com/amperser/proselint/
+    rev: 0.10.2
+    hooks:
+      - id: proselint
+        types: [plain-text]
+        exclude: LICENSE
+
+  - repo: https://github.com/executablebooks/mdformat.git
+    rev: 0.5.3
+    hooks:
+      - id: mdformat
+
+  - repo: https://git.shore.co.il/nimrod/shell-pre-commit.git
+    rev: v0.6.0
+    hooks:
+      - id: shell-lint
+
+  - repo: https://github.com/shellcheck-py/shellcheck-py.git
+    rev: v0.7.1.1
+    hooks:
+      - id: shellcheck
+
+  - repo: https://git.shore.co.il/nimrod/docker-pre-commit.git/
+    rev: v0.3.0
+    hooks:
+      - id: hadolint
+      - id: docker-compose
diff --git a/README.md b/README.md
index 58539bfb230eb8d80bfbc26b69bec8ad29ac36b5..ffc94b9f82ac7b65623069c085ee7ab84c2abed7 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,14 @@
 # ci-images
 
+[![pipeline status](https://git.shore.co.il/shore/ci-images/badges/master/pipeline.svg)](https://git.shore.co.il/shore/ci-images/-/commits/master)
+
 > Docker images for CI.
 
 A collection of Docker images for quicker CI (negate the need to install common
-dependencies during CI leading to quicker runs). The repo is mirrored in
-[GitHub](https://github.com/adarnimrod/ci-images) and linked to [Docker
-Hub](https://hub.docker.com/r/adarnimrod/ci-images/). Each git branch is a
-different image tag (branch `pre-commit` builds tag `pre-commit`, branch
-`master` should be `latest` but isn't buildable).
+dependencies during CI leading to quicker runs). The images are pushed to
+https://registry.shore.co.il/. Each git branch is a different image tag (branch
+`pre-commit` builds tag `pre-commit`, branch `master` should be `latest` but
+isn't buildable).
 
 ## License
 
@@ -15,7 +16,7 @@ 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://git.shore.co.il/shore/>.
+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://git.shore.co.il/expore/>.