113 lines
3.3 KiB
Plaintext
113 lines
3.3 KiB
Plaintext
---
|
|
title: 'Self-Hosting Honcho'
|
|
sidebarTitle: 'Self-Hosting'
|
|
description: 'Running a local version of the Honcho API Server'
|
|
icon: 'cloud'
|
|
---
|
|
|
|
> This guide was made using a M1 Macbook Pro. For any compatibility issues
|
|
> on different platforms please raise an Issue.
|
|
|
|
### Prerequisites and Dependencies
|
|
|
|
Honcho is developed using [python](https://www.python.org/) and [uv](https://docs.astral.sh/uv/).
|
|
|
|
The minimum python version is `3.9`
|
|
The minimum poetry version is `0.4.9`
|
|
|
|
### Setup
|
|
|
|
Once the dependencies are installed on the system run the following steps to get
|
|
the local project setup.
|
|
|
|
1. Clone the repository
|
|
|
|
```bash
|
|
git clone https://github.com/plastic-labs/honcho.git
|
|
```
|
|
|
|
2. Enter the repository and install the python dependencies
|
|
|
|
We recommend using a virtual environment to isolate the dependencies for Honcho
|
|
from other projects on the same system. `uv` will create a virtual environment
|
|
when you sync your dependencies in the project.
|
|
|
|
Putting this together:
|
|
|
|
```bash
|
|
cd honcho
|
|
uv sync
|
|
```
|
|
|
|
This will create a virtual environment and install the dependencies for Honcho.
|
|
The default virtual environment will be located at `honcho/.venv`. Activate the
|
|
virtual environment via:
|
|
|
|
```bash
|
|
source honcho/.venv/bin/activate
|
|
```
|
|
|
|
3. Set up a database
|
|
|
|
Honcho utilized [Postgres](https://www.postgresql.org/) for its database with
|
|
pgvector. An easy way to get started with a postgresdb is to create a project
|
|
with [Supabase](https://supabase.com/)
|
|
|
|
A `docker-compose` template is also available with a database configuration
|
|
available.
|
|
|
|
4. Edit the environment variables.
|
|
|
|
Honcho uses a `.env` file for managing runtime environment variables. A
|
|
`.env.template` file is included for convenience. Several of the configurations
|
|
are not required and are only necessary for additional logging, monitoring, and
|
|
security.
|
|
|
|
Below are the required configurations
|
|
|
|
```env
|
|
CONNECTION_URI= # Connection uri for a postgres database
|
|
OPENAI_API_KEY= # API Key for OpenAI used for embedding documents
|
|
ANTHROPIC_API_KEY= # API Key for Anthropic used for the deriver and dialectic API
|
|
```
|
|
> Note that the `CONNECTION_URI` must have the prefix `postgresql+psycopg` to
|
|
> function properly. This is a requirement brought by `sqlalchemy`
|
|
|
|
The template has the additional functionality disabled by default. To ensure
|
|
that they are disabled you can verify the following environment variables are
|
|
set to false.
|
|
|
|
```env
|
|
USE_AUTH_SERVICE=false
|
|
SENTRY_ENABLED=false
|
|
```
|
|
|
|
5. Launch the API
|
|
|
|
With the dependencies installed, a database setup and enabled with `pgvector`,
|
|
and the environment variables setup you can now launch a local instance of
|
|
Honcho. The following command will launch the storage API for Honcho
|
|
|
|
```bash
|
|
fastapi dev src/main.py
|
|
```
|
|
This is a development server that will reload whenever code is changed. When
|
|
first launching the API with a connection the database it will provision the
|
|
necessary tables for Honcho to operate.
|
|
|
|
### Docker
|
|
|
|
As mentioned earlier a `docker-compose` template is included for running Honcho.
|
|
As an alternative to running Honcho locally it can also be run with the compose
|
|
template.
|
|
|
|
Copy the template and update the appropriate environment variables before
|
|
launching the service.
|
|
|
|
```bash
|
|
cd honcho
|
|
cp docker-compose.yml.example docker-compose.yml
|
|
[ update the file with openai key and other wanted environment variables ]
|
|
docker compose up
|
|
```
|