mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-06 05:39:12 +00:00
Improve Khoj with DB setup instructions in the Django app readme (for now)
This commit is contained in:
@@ -17,16 +17,26 @@ docker-compose up
|
|||||||
|
|
||||||
## Setup (Local)
|
## Setup (Local)
|
||||||
|
|
||||||
### Install dependencies
|
### Install Postgres (with PgVector)
|
||||||
|
|
||||||
|
#### MacOS
|
||||||
|
- Install the [Postgres.app](https://postgresapp.com/).
|
||||||
|
|
||||||
|
#### Debian, Ubuntu
|
||||||
|
From [official instructions](https://wiki.postgresql.org/wiki/Apt)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -e '.[dev]'
|
sudo apt install -y postgresql-common
|
||||||
|
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
|
||||||
|
sudo apt install postgres-16 postgresql-16-pgvector
|
||||||
```
|
```
|
||||||
|
|
||||||
### Setup the database
|
#### Windows
|
||||||
|
- Use the [recommended installer](https://www.postgresql.org/download/windows/)
|
||||||
|
|
||||||
1. Ensure you have Postgres installed. For MacOS, you can use [Postgres.app](https://postgresapp.com/).
|
#### From Source
|
||||||
2. If you're not using Postgres.app, you may have to install the pgvector extension manually. You can find the instructions [here](https://github.com/pgvector/pgvector#installation). If you're using Postgres.app, you can skip this step. Reproduced instructions below for convenience.
|
1. Follow instructions to [Install Postgres](https://www.postgresql.org/download/)
|
||||||
|
2. Follow instructions to [Install PgVector](https://github.com/pgvector/pgvector#installation) in case you need to manually install it. Reproduced instructions below for convenience.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /tmp
|
cd /tmp
|
||||||
@@ -35,32 +45,50 @@ cd pgvector
|
|||||||
make
|
make
|
||||||
make install # may need sudo
|
make install # may need sudo
|
||||||
```
|
```
|
||||||
3. Create a database
|
|
||||||
|
|
||||||
### Create the khoj database
|
### Create the Khoj database
|
||||||
|
|
||||||
|
#### MacOS
|
||||||
```bash
|
```bash
|
||||||
createdb khoj -U postgres
|
createdb khoj -U postgres
|
||||||
```
|
```
|
||||||
|
|
||||||
### Make migrations
|
#### Debian, Ubuntu
|
||||||
|
```bash
|
||||||
|
sudo -u postgres createdb khoj
|
||||||
|
```
|
||||||
|
|
||||||
This command will create the migrations for the database app. This command should be run whenever a new model is added to the database app or an existing model is modified (updated or deleted).
|
- [Optional] To set default postgres user's password
|
||||||
|
- Execute `ALTER USER postgres PASSWORD 'my_secure_password';` using `psql`
|
||||||
|
- Run `export $POSTGRES_PASSWORD=my_secure_password` in your terminal for Khoj to use it later
|
||||||
|
|
||||||
|
### Install Khoj
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install -e '.[dev]'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Make Khoj DB migrations
|
||||||
|
|
||||||
|
This command will create the migrations for the database app. This command should be run whenever a new db model is added to the database app or an existing db model is modified (updated or deleted).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 src/manage.py makemigrations
|
python3 src/manage.py makemigrations
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run migrations
|
### Run Khoj DB migrations
|
||||||
|
|
||||||
This command will run any pending migrations in your application.
|
This command will run any pending migrations in your application.
|
||||||
```bash
|
```bash
|
||||||
python3 src/manage.py migrate
|
python3 src/manage.py migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run the server
|
### Start Khoj Server
|
||||||
|
|
||||||
While we're using Django for the ORM, we're still using the FastAPI server for the API. This command automatically scaffolds the Django application in the backend.
|
While we're using Django for the ORM, we're still using the FastAPI server for the API. This command automatically scaffolds the Django application in the backend.
|
||||||
|
|
||||||
|
*Note: Anonymous mode bypasses authentication for local, single-user usage.*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 src/khoj/main.py
|
python3 src/khoj/main.py --anonymous-mode
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user