diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 80272484b8c673ae867ea0e22f5ed3a497d4fbd5..0288a39de68039ca01b3488f1cac97c113c29255 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,33 +1,78 @@
 ---
 repos:
-  - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v3.4.0
+  - repo: https://github.com/pre-commit/pre-commit-hooks.git
+    rev: v4.0.1
     hooks:
+      - id: check-added-large-files
+      - id: check-executables-have-shebangs
+      - id: check-json
       - id: check-merge-conflict
+      - id: check-shebang-scripts-are-executable
+      - id: check-symlinks
+      - id: check-toml
+      - id: check-xml
+      - id: check-yaml
+      - id: detect-private-key
+      - id: end-of-file-fixer
       - id: trailing-whitespace
+        exclude: \.diff$
 
-  - repo: https://github.com/adrienverge/yamllint
-    rev: v1.25.0
+  - repo: https://github.com/codespell-project/codespell.git
+    rev: v2.1.0
     hooks:
-      - id: yamllint
+      - id: codespell
+
+  - repo: https://github.com/Yelp/detect-secrets.git
+    rev: v1.1.0
+    hooks:
+      - id: detect-secrets
+
+  - repo: https://gitlab.com/devopshq/gitlab-ci-linter.git
+    rev: v1.0.4
+    hooks:
+      - id: gitlab-ci-linter
+        args:
+          - "--server"
+          - https://git.shore.co.il
 
-  - repo: https://github.com/amperser/proselint/
+  - repo: https://github.com/amperser/proselint.git
     rev: 0.10.2
     hooks:
       - id: proselint
         types: [plain-text]
         exclude: LICENSE
 
-  - repo: https://github.com/Yelp/detect-secrets
-    rev: v0.14.3
+  - repo: https://github.com/adrienverge/yamllint.git
+    rev: v1.26.3
     hooks:
-      - id: detect-secrets
+      - id: yamllint
 
   - repo: https://github.com/executablebooks/mdformat.git
-    rev: 0.7.9
+    rev: 0.7.10
     hooks:
       - id: mdformat
 
+  - repo: https://github.com/pre-commit/pre-commit.git
+    rev: v2.15.0
+    hooks:
+      - id: validate_manifest
+
+  - repo: https://git.shore.co.il/nimrod/pre-commit-hooks.git
+    rev: v0.2.0
+    hooks:
+      - id: shell-validate
+      - id: docker-compose
+
+  - repo: https://github.com/shellcheck-py/shellcheck-py.git
+    rev: v0.7.2.1
+    hooks:
+      - id: shellcheck
+
+  - repo: https://github.com/AleksaC/hadolint-py.git
+    rev: v2.1.0
+    hooks:
+      - id: hadolint
+
   - repo: https://gitlab.com/devopshq/gitlab-ci-linter
     rev: v1.0.3
     hooks:
diff --git a/README.md b/README.md
index ba1a71588137c8a035b4ab98b5d55a0022d2a691..80031a4eabc2ced97f3956589f781e3b89458c5e 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-# CI templates
+# CI Stuff
 
-[![pipeline status](https://git.shore.co.il/shore/ci-templates/badges/master/pipeline.svg)](https://git.shore.co.il/shore/ci-templates/-/commits/master)
+[![pipeline status](https://git.shore.co.il/shore/ci-stuff/badges/master/pipeline.svg)](https://git.shore.co.il/shore/ci-stuff/-/commits/master)
 
-GitLab CI templates.
+GitLab CI templates and images.
 
 ## License
 
diff --git a/images/README.md b/images/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..0f68dcd36242736b69750a01eff237b0c4a66848
--- /dev/null
+++ b/images/README.md
@@ -0,0 +1,3 @@
+# CI container images
+
+Containerfiles for building container images for CI.
diff --git a/templates/README.md b/templates/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..f1d8040ebfc79d26d550cb229b7dc8c5eccc69ea
--- /dev/null
+++ b/templates/README.md
@@ -0,0 +1,3 @@
+# GitLab CI templates
+
+See https://docs.gitlab.com/ee/development/cicd/templates.html .
diff --git a/templates/pre-commit.yml b/templates/pre-commit.yml
index b669453e9bf646ac3c0d179b06f1f9e2aed7319a..40f10901220fb4a179784e675e0c787bb2bf2d2c 100644
--- a/templates/pre-commit.yml
+++ b/templates/pre-commit.yml
@@ -1,6 +1,7 @@
 ---
 pre-commit:
   stage: .pre
+  needs: []
   image: registry.shore.co.il/ci-images:pre-commit
   tags: [ns4.shore.co.il]
   rules: