khoj/src/interface/web
Debanjum Singh Solanky de15a7a3fc Rename API path /api/config to /api/configure
- Update clients calling /api/config to call /api/configure instead
2024-07-16 16:13:27 +05:30
..
.husky Standardize code format for web interface with prettier 2024-07-15 00:34:54 +05:30
app Rename API path /api/config to /api/configure 2024-07-16 16:13:27 +05:30
components/ui Migrate the existing automations page to use React (#849) 2024-07-15 21:42:33 +05:30
lib Add a fact checker feature with updated styling (#835) 2024-06-27 18:45:38 +05:30
public Add developer support for using next.js to serve generated static files (#814) 2024-06-22 20:12:41 +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 Standardize code format for web interface with prettier 2024-07-15 00:34:54 +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 Add developer support for using next.js to serve generated static files (#814) 2024-06-22 20:12:41 +05:30
next.config.mjs Add a fact checker feature with updated styling (#835) 2024-06-27 18:45:38 +05:30
package.json Update the agents page with new UX (#850) 2024-07-16 10:10:55 +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 Show agent profile card with description when hover on agent in chat view 2024-07-14 12:20:11 +05:30
tsconfig.json Make most major changes for an updated chat UI (#843) 2024-07-14 23:18:06 +05:30
yarn.lock Update the agents page with new UX (#850) 2024-07-16 10:10:55 +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!