152 lines
3.3 KiB
Plaintext
152 lines
3.3 KiB
Plaintext
---
|
|
title: Installation
|
|
description: Install and deploy Jan Server on Kubernetes using minikube and Helm.
|
|
---
|
|
|
|
# Prerequisites
|
|
|
|
Jan Server requires the following tools installed on your system:
|
|
|
|
- **Docker**: For building container images
|
|
- **minikube**: Local Kubernetes cluster for development
|
|
- **Helm**: Package manager for Kubernetes applications
|
|
- **kubectl**: Kubernetes command-line tool (installed with minikube)
|
|
|
|
Jan Server currently supports minikube for local development. Production Kubernetes deployments are planned for future releases.
|
|
|
|
## Quick Start
|
|
|
|
|
|
1. **Clone the repository**
|
|
```bash
|
|
git clone https://github.com/janhq/jan-server
|
|
cd jan-server
|
|
```
|
|
|
|
2. **Start minikube**
|
|
```bash
|
|
minikube start
|
|
```
|
|
|
|
3. **Configure Docker environment**
|
|
```bash
|
|
eval $(minikube docker-env)
|
|
alias kubectl="minikube kubectl --"
|
|
```
|
|
|
|
4. **Deploy Jan Server**
|
|
```bash
|
|
./scripts/run.sh
|
|
```
|
|
|
|
5. **Access the API**
|
|
|
|
The script automatically forwards port 8080. Access the Swagger UI at:
|
|
```
|
|
http://localhost:8080/api/swagger/index.html#/
|
|
```
|
|
|
|
|
|
## Manual Installation
|
|
|
|
### Build Docker Images
|
|
|
|
Build both required Docker images:
|
|
|
|
```bash
|
|
# Build API Gateway
|
|
docker build -t jan-api-gateway:latest ./apps/jan-api-gateway
|
|
|
|
# Build Inference Model
|
|
docker build -t jan-inference-model:latest ./apps/jan-inference-model
|
|
```
|
|
|
|
The inference model image downloads the Jan-v1-4B model from Hugging Face during build. This requires an internet connection and several GB of download.
|
|
|
|
### Deploy with Helm
|
|
|
|
Install the Helm chart:
|
|
|
|
```bash
|
|
# Update Helm dependencies
|
|
helm dependency update ./charts/umbrella-chart
|
|
|
|
# Install Jan Server
|
|
helm install jan-server ./charts/umbrella-chart
|
|
```
|
|
|
|
### Port Forwarding
|
|
|
|
Forward the API gateway port to access from your local machine:
|
|
|
|
```bash
|
|
kubectl port-forward svc/jan-server-jan-api-gateway 8080:8080
|
|
```
|
|
|
|
## Verify Installation
|
|
|
|
Check that all pods are running:
|
|
|
|
```bash
|
|
kubectl get pods
|
|
```
|
|
|
|
Expected output:
|
|
```
|
|
NAME READY STATUS RESTARTS
|
|
jan-server-jan-api-gateway-xxx 1/1 Running 0
|
|
jan-server-jan-inference-model-xxx 1/1 Running 0
|
|
jan-server-postgresql-0 1/1 Running 0
|
|
```
|
|
|
|
Test the API gateway:
|
|
```bash
|
|
curl http://localhost:8080/health
|
|
```
|
|
|
|
## Uninstalling
|
|
|
|
To remove Jan Server:
|
|
|
|
```bash
|
|
helm uninstall jan-server
|
|
```
|
|
|
|
To stop minikube:
|
|
|
|
```bash
|
|
minikube stop
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
**Pods in `ImagePullBackOff` state**
|
|
- Ensure Docker images were built in the minikube environment
|
|
- Run `eval $(minikube docker-env)` before building images
|
|
|
|
**Port forwarding connection refused**
|
|
- Verify the service is running: `kubectl get svc`
|
|
- Check pod status: `kubectl get pods`
|
|
- Review logs: `kubectl logs deployment/jan-server-jan-api-gateway`
|
|
|
|
**Inference model download fails**
|
|
- Ensure internet connectivity during Docker build
|
|
- The Jan-v1-4B model is approximately 2.4GB
|
|
|
|
### Resource Requirements
|
|
|
|
**Minimum System Requirements:**
|
|
- 8GB RAM
|
|
- 20GB free disk space
|
|
- 4 CPU cores
|
|
|
|
**Recommended System Requirements:**
|
|
- 16GB RAM
|
|
- 50GB free disk space
|
|
- 8 CPU cores
|
|
- GPU support (for faster inference)
|
|
|
|
The inference model requires significant memory. Ensure your minikube cluster has adequate resources allocated.
|