khoj/src/interface/web
sabaimran f188396395 Prompt to login when authenticated, click on suggestion card
- Improve styling for the side panel when not logged in
2024-08-03 01:42:32 +05:30
..
.husky Standardize code format for web interface with prettier 2024-07-15 00:34:54 +05:30
app Prompt to login when authenticated, click on suggestion card 2024-08-03 01:42:32 +05:30
components/ui Add card to connect Whatsapp to Khoj on settings page 2024-07-30 15:25:14 +05:30
lib Add a fact checker feature with updated styling (#835) 2024-06-27 18:45:38 +05:30
public Just show Khoj logo on title bar on small screens 2024-08-02 13:18:01 +05:30
.env.development Add developer support for using next.js to serve generated static files (#814) 2024-06-22 20:12:41 +05:30
.env.production Add developer support for using next.js to serve generated static files (#814) 2024-06-22 20:12:41 +05:30
.eslintrc.json Turn prettier off instead of throwing error for now 2024-07-16 16:13:27 +05:30
.gitignore Add developer support for using next.js to serve generated static files (#814) 2024-06-22 20:12:41 +05:30
components.json Add a fact checker feature with updated styling (#835) 2024-06-27 18:45:38 +05:30
image-loader.ts Nav Menu Upgrades and Minor UX Improvements (#869) 2024-07-27 14:12:00 +05:30
next.config.mjs Create client API keys section on settings page 2024-07-30 15:25:14 +05:30
package.json Use an intl phone input number field and fix the whole verification flow 2024-08-01 16:44:17 +05:30
postcss.config.js Add a fact checker feature with updated styling (#835) 2024-06-27 18:45:38 +05:30
README.md Add developer support for using next.js to serve generated static files (#814) 2024-06-22 20:12:41 +05:30
tailwind.config.ts Add card to connect Whatsapp to Khoj on settings page 2024-07-30 15:25:14 +05:30
tsconfig.json Make most major changes for an updated chat UI (#843) 2024-07-14 23:18:06 +05:30
yarn.lock Use an intl phone input number field and fix the whole verification flow 2024-08-01 16:44:17 +05:30

This is a Next.js project.

Getting Started

First, install the dependencies:

yarn install

In case you run into any dependency linking issues, you can try running:

yarn add next

Run the development server:

yarn dev

Make sure the rewrites in next.config.mjs are set up correctly for your environment. The rewrites are used to proxy requests to the API server.

    rewrites: async () => {
        return [
            {
                source: '/api/:path*',
                destination: 'http://localhost:42110/api/:path*',
            },
        ];
    },

The destination should be the URL of the API server.

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying any of the .tsx pages. The page auto-updates as you edit the file.

Testing built files

We've setup a utility command for building and serving the built files. This is useful for testing the production build locally.

  1. Exporting code To build the files once and serve them, run:
yarn export

If you're using Windows:

yarn windowsexport
  1. Continuously building code

To keep building the files and serving them, run:

yarn watch

If you're using Windows:

yarn windowswatch

Now you should be able to load your custom pages from the Khoj app at http://localhost:42110/. To server any of the built files, you should update the routes in the web_client.py like so, where new_file is the new page you've added in this repo:

@web_client.post("/new_route", response_class=FileResponse)
@requires(["authenticated"], redirect="login_page")
def index_post(request: Request):

    return templates.TemplateResponse(
        "new_file/index.html",
        context={
            "request": request,
        },
    )

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!