diff --git a/pyproject.toml b/pyproject.toml index e446a2a16..c88583650 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,6 +94,7 @@ prod = [ "stripe == 7.3.0", "twilio == 8.11", "boto3 >= 1.34.57", + "resend >= 0.8.0", ] dev = [ "khoj-assistant[prod]", diff --git a/src/khoj/app/settings.py b/src/khoj/app/settings.py index 8c17ec23c..c8840f1fc 100644 --- a/src/khoj/app/settings.py +++ b/src/khoj/app/settings.py @@ -151,7 +151,7 @@ # https://docs.djangoproject.com/en/4.2/howto/static-files/ STATIC_ROOT = BASE_DIR / "static" -STATICFILES_DIRS = [BASE_DIR / "interface/web"] +STATICFILES_DIRS = [BASE_DIR / "interface/web", BASE_DIR / "interface/email"] STATIC_URL = "/static/" # Default primary key field type diff --git a/src/khoj/configure.py b/src/khoj/configure.py index 554de35cc..60aaf658b 100644 --- a/src/khoj/configure.py +++ b/src/khoj/configure.py @@ -231,7 +231,10 @@ def configure_server( state.SearchType = configure_search_types() state.search_models = configure_search(state.search_models, state.config.search_type) setup_default_agent() - initialize_content(regenerate, search_type, init, user) + + if not init: + initialize_content(regenerate, search_type, user) + except Exception as e: raise e @@ -240,23 +243,20 @@ def setup_default_agent(): AgentAdapters.create_default_agent() -def initialize_content(regenerate: bool, search_type: Optional[SearchType] = None, init=False, user: KhojUser = None): +def initialize_content(regenerate: bool, search_type: Optional[SearchType] = None, user: KhojUser = None): # Initialize Content from Config if state.search_models: try: - if init: - logger.info("📬 No-op...") - else: - logger.info("📬 Updating content index...") - all_files = collect_files(user=user) - status = configure_content( - all_files, - regenerate, - search_type, - user=user, - ) - if not status: - raise RuntimeError("Failed to update content index") + logger.info("📬 Updating content index...") + all_files = collect_files(user=user) + status = configure_content( + all_files, + regenerate, + search_type, + user=user, + ) + if not status: + raise RuntimeError("Failed to update content index") except Exception as e: raise e diff --git a/src/khoj/interface/email/welcome.html b/src/khoj/interface/email/welcome.html new file mode 100644 index 000000000..e10f392a6 --- /dev/null +++ b/src/khoj/interface/email/welcome.html @@ -0,0 +1,61 @@ + + +
+Hi {{name}}! We are psyched to be part of your journey with personal AI. To better help you, we're committed to staying transparent, accessible, and completely open-source.
+ Get Started +You're about to get a whole lot more more productive.
+ +You don't need to click around Google results and sift through information yourself, because Khoj is connected to the internet.
+Khoj can fill the need for more specialized assistance, such as tutoring, with its curated agents. You get a whole team, always available.
+Build on top of your digital brain. Khoj stores whatever data you share with it, so you can get answers from your personal notes and documents in your native language. You can engage from your desktop, Obsidian, WhatsApp, or the web.
+With your shared data, Khoj can help you create astoundingly personal images depicting scenes of what's important to you.
+Like something? Dislike something? Searching for some other magical feature? Our inbox is always open for feedback! Contact us on team@khoj.dev at anytime.
+ +- The Khoj Team
+Docs | +GitHub | +Discord | +