diff --git a/district/migrations/0032_alter_districthomepage_options.py b/district/migrations/0032_alter_districthomepage_options.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ce2ae3386fb8c4521fe3ba84687d0c0e6fd8a44
--- /dev/null
+++ b/district/migrations/0032_alter_districthomepage_options.py
@@ -0,0 +1,17 @@
+# Generated by Django 3.2.11 on 2022-01-14 16:41
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("district", "0031_auto_20220114_1527"),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name="districthomepage",
+            options={"verbose_name": "Místní sdružení"},
+        ),
+    ]
diff --git a/majak/settings/base.py b/majak/settings/base.py
index 225ed9852f1f6bbbcd76cf123a48c436a5344e64..9879d08ad9eb78a03bba761c5368cf97e33c27c9 100644
--- a/majak/settings/base.py
+++ b/majak/settings/base.py
@@ -59,7 +59,6 @@ INSTALLED_APPS = [
     "wagtail.contrib.modeladmin",
     "wagtail.contrib.table_block",
     "wagtail.contrib.routable_page",
-    "wagtail.contrib.postgres_search",
     "wagtail.embeds",
     "wagtail.sites",
     "wagtail.users",
@@ -227,7 +226,7 @@ WAGTAIL_EMAIL_MANAGEMENT_ENABLED = False
 
 WAGTAILSEARCH_BACKENDS = {
     "default": {
-        "BACKEND": "wagtail.contrib.postgres_search.backend",
+        "BACKEND": "wagtail.search.backends.database",
         "SEARCH_CONFIG": env.str("SEARCH_CONFIG", default="english"),
     }
 }
diff --git a/region/migrations/0009_alter_regionhomepage_options.py b/region/migrations/0009_alter_regionhomepage_options.py
new file mode 100644
index 0000000000000000000000000000000000000000..bb4b4cf06f0bbd0525630d0aab7047d5edb24ce5
--- /dev/null
+++ b/region/migrations/0009_alter_regionhomepage_options.py
@@ -0,0 +1,17 @@
+# Generated by Django 3.2.11 on 2022-01-14 16:41
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("region", "0008_auto_20220114_1527"),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name="regionhomepage",
+            options={"verbose_name": "Krajské sdružení"},
+        ),
+    ]
diff --git a/requirements/base.txt b/requirements/base.txt
index 58c5bd8a00dbe8c866ae20dc7de6e915e99fc4cb..0d83eaf3b596bb3b2ff891e33d9bbe1e176750f2 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -1,5 +1,5 @@
 #
-# This file is autogenerated by pip-compile with python 3.8
+# This file is autogenerated by pip-compile with python 3.9
 # To update, run:
 #
 #    pip-compile base.in
@@ -14,36 +14,44 @@ arrow==0.14.7
     #   ics
 asgiref==3.4.1
     # via django
+asttokens==2.0.5
+    # via stack-data
 backcall==0.2.0
     # via ipython
 beautifulsoup4==4.9.3
     # via
     #   -r base.in
     #   wagtail
+black==21.12b0
+    # via ipython
 bleach==4.1.0
     # via -r base.in
 brotli==1.0.9
     # via fonttools
-certifi==2021.5.30
+certifi==2021.10.8
     # via
     #   requests
     #   sentry-sdk
-cffi==1.14.6
+cffi==1.15.0
     # via
     #   cryptography
     #   weasyprint
-charset-normalizer==2.0.6
+charset-normalizer==2.0.10
     # via requests
-cryptography==35.0.0
+click==8.0.3
+    # via black
+cryptography==36.0.1
     # via
     #   josepy
     #   mozilla-django-oidc
     #   pyopenssl
 cssselect2==0.4.1
     # via weasyprint
-decorator==5.1.0
+decorator==5.1.1
     # via ipython
-django==3.2.8
+deprecated==1.2.13
+    # via redis
+django==3.2.11
     # via
     #   django-extensions
     #   django-filter
@@ -56,17 +64,17 @@ django==3.2.8
     #   djangorestframework
     #   mozilla-django-oidc
     #   wagtail
-django-environ==0.7.0
+django-environ==0.8.1
     # via -r base.in
-django-extensions==3.1.3
+django-extensions==3.1.5
     # via -r base.in
-django-filter==2.4.0
+django-filter==21.1
     # via wagtail
-django-modelcluster==5.1
+django-modelcluster==5.2
     # via wagtail
 django-ranged-response==0.2.0
     # via django-simple-captcha
-django-redis==5.0.0
+django-redis==5.2.0
     # via -r base.in
 django-settings-export==1.2.1
     # via -r base.in
@@ -76,15 +84,17 @@ django-taggit==1.5.1
     # via wagtail
 django-treebeard==4.5.1
     # via wagtail
-django-widget-tweaks==1.4.8
+django-widget-tweaks==1.4.12
     # via -r base.in
-djangorestframework==3.12.4
+djangorestframework==3.13.1
     # via wagtail
 draftjs-exporter==2.1.7
     # via wagtail
 et-xmlfile==1.1.0
     # via openpyxl
-fonttools[woff]==4.27.1
+executing==0.8.2
+    # via stack-data
+fonttools[woff]==4.28.5
     # via weasyprint
 html5lib==1.1
     # via
@@ -92,62 +102,74 @@ html5lib==1.1
     #   weasyprint
 ics==0.7
     # via -r base.in
-idna==3.2
+idna==3.3
     # via requests
-ipython==7.28.0
+importlib-metadata==4.10.0
+    # via markdown
+ipython==8.0.0
     # via -r base.in
-jedi==0.18.0
+jedi==0.18.1
     # via ipython
-josepy==1.10.0
+josepy==1.12.0
     # via mozilla-django-oidc
-l18n==2020.6.1
+l18n==2021.3
     # via wagtail
-markdown==3.3.4
+markdown==3.3.6
     # via -r base.in
 matplotlib-inline==0.1.3
     # via ipython
 mozilla-django-oidc==1.2.4
     # via pirates
-numpy==1.21.2
+mypy-extensions==0.4.3
+    # via black
+numpy==1.22.0
     # via opencv-python
-opencv-python==4.5.3.56
+opencv-python==4.5.5.62
     # via -r base.in
 openpyxl==3.0.9
     # via tablib
-packaging==21.0
-    # via bleach
-parso==0.8.2
+packaging==21.3
+    # via
+    #   bleach
+    #   redis
+parso==0.8.3
     # via jedi
+pathspec==0.9.0
+    # via black
 pexpect==4.8.0
     # via ipython
 pickleshare==0.7.5
     # via ipython
-pillow==8.3.2
+pillow==8.4.0
     # via
     #   django-simple-captcha
     #   wagtail
     #   weasyprint
 pirates==0.5.0
     # via -r base.in
-prompt-toolkit==3.0.20
+platformdirs==2.4.1
+    # via black
+prompt-toolkit==3.0.24
     # via ipython
-psycopg2-binary==2.9.1
+psycopg2-binary==2.9.3
     # via -r base.in
 ptyprocess==0.7.0
     # via pexpect
-pycparser==2.20
+pure-eval==0.2.1
+    # via stack-data
+pycparser==2.21
     # via cffi
-pydyf==0.1.1
+pydyf==0.1.2
     # via weasyprint
-pygments==2.10.0
+pygments==2.11.2
     # via ipython
 pyopenssl==21.0.0
     # via josepy
-pyparsing==2.4.7
+pyparsing==3.0.6
     # via packaging
 pypdf2==1.26.0
     # via -r base.in
-pyphen==0.11.0
+pyphen==0.12.0
     # via weasyprint
 python-dateutil==2.8.2
     # via
@@ -157,18 +179,20 @@ pytz==2021.3
     # via
     #   django
     #   django-modelcluster
+    #   djangorestframework
     #   l18n
-redis==3.5.3
+redis==4.1.0
     # via django-redis
-requests==2.26.0
+requests==2.27.1
     # via
     #   -r base.in
     #   mozilla-django-oidc
     #   wagtail
-sentry-sdk==1.4.3
+sentry-sdk==1.5.2
     # via -r base.in
 six==1.16.0
     # via
+    #   asttokens
     #   bleach
     #   django-simple-captcha
     #   html5lib
@@ -177,29 +201,35 @@ six==1.16.0
     #   mozilla-django-oidc
     #   pyopenssl
     #   python-dateutil
-soupsieve==2.2.1
+soupsieve==2.3.1
     # via beautifulsoup4
 sqlparse==0.4.2
     # via django
-tablib[xls,xlsx]==3.0.0
+stack-data==0.1.3
+    # via ipython
+tablib[xls,xlsx]==3.1.0
     # via wagtail
 tatsu==5.6.1
     # via ics
 telepath==0.2
     # via wagtail
-tinycss2==1.1.0
+tinycss2==1.1.1
     # via
     #   cssselect2
     #   weasyprint
-traitlets==5.1.0
+tomli==1.2.3
+    # via black
+traitlets==5.1.1
     # via
     #   ipython
     #   matplotlib-inline
-urllib3==1.26.7
+typing-extensions==4.0.1
+    # via black
+urllib3==1.26.8
     # via
     #   requests
     #   sentry-sdk
-wagtail==2.14.1
+wagtail==2.15.1
     # via
     #   -r base.in
     #   wagtail-metadata
@@ -207,7 +237,7 @@ wagtail-metadata==3.4.1
     # via -r base.in
 wcwidth==0.2.5
     # via prompt-toolkit
-weasyprint==53.3
+weasyprint==54.0
     # via -r base.in
 webencodings==0.5.1
     # via
@@ -219,13 +249,17 @@ whitenoise==5.3.0
     # via -r base.in
 willow==1.4
     # via wagtail
+wrapt==1.13.3
+    # via deprecated
 xlrd==2.0.1
     # via tablib
-xlsxwriter==1.4.5
+xlsxwriter==3.0.2
     # via wagtail
 xlwt==1.3.0
     # via tablib
-zopfli==0.1.8
+zipp==3.7.0
+    # via importlib-metadata
+zopfli==0.1.9
     # via fonttools
 
 # The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 7d14d1041960d39643eb4ee206b44c06ce0e2a17..ddb2fb2387f9d1c69cdbd7618c00a17ce86dfb76 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -1,16 +1,16 @@
 #
-# This file is autogenerated by pip-compile with python 3.8
+# This file is autogenerated by pip-compile with python 3.9
 # To update, run:
 #
 #    pip-compile dev.in
 #
-attrs==21.2.0
+attrs==21.4.0
     # via pytest
-coverage[toml]==6.0
+coverage[toml]==6.2
     # via pytest-cov
-factory-boy==3.2.0
+factory-boy==3.2.1
     # via pytest-factoryboy
-faker==9.0.0
+faker==11.3.0
     # via factory-boy
 fastdiff==0.3.0
     # via snapshottest
@@ -20,15 +20,15 @@ inflection==0.5.1
     # via pytest-factoryboy
 iniconfig==1.1.1
     # via pytest
-packaging==21.0
+packaging==21.3
     # via
     #   pytest
     #   pytest-sugar
 pluggy==1.0.0
     # via pytest
-py==1.10.0
+py==1.11.0
     # via pytest
-pyparsing==2.4.7
+pyparsing==3.0.6
     # via packaging
 pytest==6.2.5
     # via
@@ -41,7 +41,7 @@ pytest==6.2.5
     #   pytest-sugar
 pytest-cov==3.0.0
     # via -r dev.in
-pytest-django==4.4.0
+pytest-django==4.5.2
     # via -r dev.in
 pytest-factoryboy==2.1.0
     # via -r dev.in
@@ -69,9 +69,9 @@ text-unidecode==1.3
     # via faker
 toml==0.10.2
     # via pytest
-tomli==1.2.1
+tomli==1.2.3
     # via coverage
-wasmer==1.0.0
+wasmer==1.1.0
     # via fastdiff
-wasmer-compiler-cranelift==1.0.0
+wasmer-compiler-cranelift==1.1.0
     # via fastdiff
diff --git a/requirements/production.txt b/requirements/production.txt
index 268e444f844ed1e92190e48ecfcb403abc558130..da9eb845cab39ba36c8de3e185318e4f7271fd3f 100644
--- a/requirements/production.txt
+++ b/requirements/production.txt
@@ -1,5 +1,5 @@
 #
-# This file is autogenerated by pip-compile with python 3.8
+# This file is autogenerated by pip-compile with python 3.9
 # To update, run:
 #
 #    pip-compile production.in