--- title: Install with Docker sidebar_position: 4 slug: /guides/install/server hide_table_of_contents: true description: A step-by-step guide to install Jan using Docker. keywords: [ Jan AI, Jan, ChatGPT alternative, local AI, private AI, conversational AI, no-subscription fee, large language model, Install on Docker, Docker, Helm, ] --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; ### Pre-requisites Ensure that your system meets the following requirements: - Linux or WSL2 Docker - Latest Docker Engine and Docker Compose To enable GPU support, you will need: - `nvidia-driver` - `nvidia-docker2` :::note - If you have not installed Docker, follow the instructions [here](https://docs.docker.com/engine/install/ubuntu/). - If you have not installed the required file for GPU support, follow the instructions [here](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). ::: ### Run Jan in Docker You can run Jan in Docker with two methods: 1. Run Jan in CPU mode 2. Run Jan in GPU mode To run Jan in Docker CPU mode, by using the following code: ```bash # cpu mode with default file system docker compose --profile cpu-fs up -d # cpu mode with S3 file system docker compose --profile cpu-s3fs up -d ``` To run Jan in Docker CPU mode, follow the steps below: 1. Check CUDA compatibility with your NVIDIA driver by running nvidia-smi and check the CUDA version in the output as shown below: ```sh nvidia-smi # Output +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 531.18 Driver Version: 531.18 CUDA Version: 12.1 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 4070 Ti WDDM | 00000000:01:00.0 On | N/A | | 0% 44C P8 16W / 285W| 1481MiB / 12282MiB | 2% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 1 NVIDIA GeForce GTX 1660 Ti WDDM | 00000000:02:00.0 Off | N/A | | 0% 49C P8 14W / 120W| 0MiB / 6144MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ | 2 NVIDIA GeForce GTX 1660 Ti WDDM | 00000000:05:00.0 Off | N/A | | 29% 38C P8 11W / 120W| 0MiB / 6144MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| ``` 2. Visit [NVIDIA NGC Catalog](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda/tags) and find the smallest minor version of image tag that matches your CUDA version (e.g., 12.1 -> 12.1.0) 3. Update the `Dockerfile.gpu` line number 5 with the latest minor version of the image tag from step 2 (e.g. change `FROM nvidia/cuda:12.2.0-runtime-ubuntu22.04 AS base` to `FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04 AS base`) 4. Run Jan in GPU mode by using the following command: ```bash # GPU mode with default file system docker compose --profile gpu-fs up -d # GPU mode with S3 file system docker compose --profile gpu-s3fs up -d ``` ### Docker Compose Profile and Environment The available Docker Compose profile and the environment variables listed below: #### Docker Compose Profile | Profile | Description | |-----------|-------------------------------------------| | cpu-fs | Run Jan in CPU mode with default file system | | cpu-s3fs | Run Jan in CPU mode with S3 file system | | gpu-fs | Run Jan in GPU mode with default file system | | gpu-s3fs | Run Jan in GPU mode with S3 file system | #### Environment Variables | Environment Variable | Description | |--------------------------|------------------------------------------------------------| | S3_BUCKET_NAME | S3 bucket name - leave blank for default file system | | AWS_ACCESS_KEY_ID | AWS access key ID - leave blank for default file system | | AWS_SECRET_ACCESS_KEY | AWS secret access key - leave blank for default file system| | AWS_ENDPOINT | AWS endpoint URL - leave blank for default file system | | AWS_REGION | AWS region - leave blank for default file system | | API_BASE_URL | Jan Server URL, please modify it as your public ip address or domain name default http://localhost:1377 | :::warning If you are stuck in a broken build, go to the [Broken Build](/troubleshooting/#broken-build) section of Common Errors. :::