Browse Source

add preliminary support for ASGI/daphne serving

Nick Sweeting 1 year ago
parent
commit
2c48dabfab
2 changed files with 29 additions and 0 deletions
  1. 28 0
      archivebox/core/asgi.py
  2. 1 0
      archivebox/core/settings.py

+ 28 - 0
archivebox/core/asgi.py

@@ -0,0 +1,28 @@
+"""
+WSGI config for archivebox project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/
+"""
+
+import os
+
+from archivebox.config import setup_django
+
+setup_django(in_memory_db=False, check_db=True)
+
+
+from django.core.asgi import get_asgi_application
+from channels.routing import ProtocolTypeRouter
+
+
+django_asgi_app = get_asgi_application()
+
+application = ProtocolTypeRouter(
+    {
+        "http": django_asgi_app,
+        # Just HTTP for now. (We can add other protocols later.)
+    }
+)

+ 1 - 0
archivebox/core/settings.py

@@ -65,6 +65,7 @@ PLUGIN_KEYS = AttrDict({
 ################################################################################
 
 WSGI_APPLICATION = 'core.wsgi.application'
+ASGI_APPLICATION = "core.asgi.application"
 ROOT_URLCONF = 'core.urls'
 
 LOGIN_URL = '/accounts/login/'