diff --git a/README.md b/README.md
index d46e91300b5d056e5a422bde4f38b38873134323..3ff8450786ea1540201d18f8f1504f5dd448f129 100644
--- a/README.md
+++ b/README.md
@@ -99,6 +99,16 @@ Kalendář se stáhne při uložení modelu obsahujícího `CalendarMixin`.
 Appka přidává management command `update_callendars`, který stahuje a updatuje
 kalendáře. Je třeba ho pravidelně volat na pozadí (přes CRON).
 
+### Celery (Import z Jekyllu)
+Import z Jekyll GitHub repozitářů pirátských webů je řešen asynchroně přes Celery.
+Celery využívá Redis, který může běžet např. lokálně, typicky 6379:
+V envu pak je pak potřeba mít nastavený Celery broker:
+
+```
+CELERY_BROKER_URL=redis://localhost:6379/6
+CELERY_RESULT_BACKEND=redis://localhost:6379/6
+```
+
 ### Stránka 404
 
 Pokud je třeba vlastní 404 pro web, stačí do kořenové `xxxHomePage` webu
diff --git a/district/jekyll_import.py b/district/jekyll_import.py
index e60c3325609f01e7150c2db118d82ede4f71d5a6..d07d94d71faa959fca967d9dc2b9f7510bc10f42 100644
--- a/district/jekyll_import.py
+++ b/district/jekyll_import.py
@@ -13,13 +13,14 @@ from urllib.error import HTTPError
 
 import markdown.serializers
 import yaml
-from django.contrib.messages import ERROR, INFO, SUCCESS, WARNING
+from django.contrib.messages import INFO, SUCCESS, WARNING
 from django.core.files.images import ImageFile
 from django.utils import timezone
 from markdown import Markdown
 from markdown.extensions import Extension
 from markdown.inlinepatterns import InlineProcessor
 from wagtail.contrib.redirects.models import Redirect
+from wagtail.core.models.collections import Collection
 from wagtail.core.rich_text import RichText
 from wagtail.images.models import Image
 from yaml.scanner import ScannerError
diff --git a/district/management/commands/district_import_jekyll.py b/district/management/commands/district_import_jekyll.py
index ddfd464ab64c201d6edac161baeecfe64f115168..bd4fa44c81f39aef7249c15e7d8358cec9dffdaa 100644
--- a/district/management/commands/district_import_jekyll.py
+++ b/district/management/commands/district_import_jekyll.py
@@ -1,7 +1,6 @@
 from django.core.management.base import BaseCommand
-from wagtail.core.models.collections import Collection
 
-from ...jekyll_import import perform_import
+from ...jekyll_import import JekyllArticleImporter
 
 
 class Command(BaseCommand):
@@ -34,7 +33,18 @@ class Command(BaseCommand):
             type=bool,
             help="Zda je o testovací běh.",
         )
+        parser.add_argument(
+            "--use-git",
+            default=True,
+            type=bool,
+            help="Zda je o testovací běh.",
+        )
 
     def handle(self, *args, **options):
-        pass
-        # perform_import()  # TODO
+        return JekyllArticleImporter(
+            article_parent_page_id=options["clanky_id"],
+            collection_id=options["kolekce_id"],
+            url=options["path"],
+            dry_run=options["dry_run"],
+            use_git=options["use_git"],
+        ).perform_import()
diff --git a/majak/settings/base.py b/majak/settings/base.py
index 630c9337a620104fb0adeeb4275fad1c19c9457c..14e6a7ac57fd8cdf8cabeb1c4b2d3b88d879bf34 100644
--- a/majak/settings/base.py
+++ b/majak/settings/base.py
@@ -192,8 +192,8 @@ CACHES["renditions"]["TIMEOUT"] = 60 * 60 * 24
 
 # CELERY
 # ------------------------------------------------------------------------------
-CELERY_BROKER_URL = "redis://localhost:6379/6"  # TODO set from env
-CELERY_RESULT_BACKEND = "redis://localhost:6379/6"
+CELERY_BROKER_URL = env.str("CELERY_BROKER_URL")
+CELERY_RESULT_BACKEND = env.str("CELERY_RESULT_BACKEND")
 CELERY_ACCEPT_CONTENT = ["application/json"]
 CELERY_RESULT_SERIALIZER = "json"
 CELERY_TASK_SERIALIZER = "json"