Skip to Content
Welcome to the new DocsGPT docs!
Deploying☸️ Deploying on Kubernetes

Self-hosting DocsGPT

on Kubernetes

This guide will walk you through deploying DocsGPT on Kubernetes.

Prerequisites

Ensure you have the following installed before proceeding:

  • kubectlΒ 
  • Access to a Kubernetes cluster.
  • NeonΒ  (optional) for a quick and easy vector store setup with pgvector.

Folder Structure

The deployment/k8s folder contains the necessary deployment and service configuration files:

  • deployments/
  • services/
  • docsgpt-secrets.yaml

Deployment Instructions

  1. Clone the Repository

    git clone https://github.com/arc53/DocsGPT.git cd docsgpt/deployment/k8s
  2. Configure Secrets

    Add a strong, base64-encoded JWT_SECRET_KEY to docsgpt-secrets.yaml before applying it. The API and worker deployments share this value so authentication tokens and agent-avatar capability URLs remain valid across pod restarts and replicas. You can generate a value with openssl rand -hex 32 | base64.

    Configure any additional provider secrets you need. By default, the manifests use Qdrant as the vector store and the public DocsGPT LLM for inference.

    Alternatively, you can use NeonΒ  as an easy way to set up your vector store with pgvector, which is highly recommended for quick deployments.

  3. Apply Kubernetes Deployments

    Deploy your DocsGPT resources using the following commands:

    kubectl apply -f deployments/
  4. Apply Kubernetes Services

    Set up your services using the following commands:

    kubectl apply -f services/
  5. Apply Secrets

    Apply the secret configurations:

    kubectl apply -f docsgpt-secrets.yaml
  6. Substitute API URL

    After deploying the services, you need to update the environment variable VITE_API_HOST in your deployment file deployments/docsgpt-deploy.yaml with the actual endpoint URL created by your docsgpt-api-service.

    kubectl get services/docsgpt-api-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | xargs -I {} sed -i "s|<your-api-endpoint>|{}|g" deployments/docsgpt-deploy.yaml
  7. Rerun Deployment

    After making the changes, reapply the deployment configuration to update the environment variables:

    kubectl apply -f deployments/

Verifying the Deployment

To verify if everything is set up correctly, you can run the following:

kubectl get pods kubectl get services

Ensure that the pods are running and the services are available.

Accessing DocsGPT

To access DocsGPT, you need to find the external IP address of the frontend service. You can do this by running:

kubectl get services/docsgpt-frontend-service | awk 'NR>1 {print "http://" $4}'

Troubleshooting

If you encounter any issues, you can check the logs of the pods for more details:

kubectl logs <pod-name>

Replace <pod-name> with the actual name of your DocsGPT pod.