Files
khoj/src/interface/web
..
2024-12-19 14:33:36 -08:00
2024-08-05 04:59:06 +05:30
2024-12-13 11:31:14 -08:00

This is a Next.js project.

Getting Started

First, install the dependencies:

bun install

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

bun add next

Run the development server:

bun 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:
bun export

If you're using Windows:

bun windowsexport
  1. Continuously building code

To keep building the files and serving them, run:

bun watch

If you're using Windows:

bun 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!