This tool has been tested on a Nvidia GPU. Instructions will differ for other GPU brands.
The following software and files should be available on the target machine:
- Docker,
- Nvidia container toolkit,
- Your favorite LLM (Hugging Face is a good place to start)
Update environment variables located in deploy.env
. It is advised to create a copy of
this file to facilitate debugging and future deployments.
Variable | Description |
---|---|
SGLANG_IMAGE | Image identifier for SGLang |
MODEL_DIRPATH | Path to the local folder where the LLMs are stored |
MODEL_FNAME | Name of the model directory / file |
OPENWEBUI_IMAGE | Image identifier for OpenWebUI |
NGINX_IMAGE | Image identifier for Nginx |
HTTP_PORT | HTTP port for Nginx |
HTTPS_PORT | HTTPS port for Nginx |
Place the SSL certificates in the nginx/ssl folder. To create self-signed certificates, run:
openssl req \
-newkey rsa:2048 \
-nodes -subj "/CN="localhost \
-keyout nginx/openwebui.key \
-x509 -days 365 \
-out nginx/openwebui.crt
Please note that the default names (openwebui.crt and openwebui.key) are linked to the nginx configuration in nginx/conf.d. If you change the default names, remember to propagate the change in the nginx configuration as well!
DEPLOY_ENV="deploy.env" # Replace by the name of the env file.
docker compose --env-file ${DEPLOY_ENV} up -d
Within a few minutes of deployment, the chatbot will be ready at
https://localhost:${HTTPS_PORT}
. The variable HTTPS_PORT
is defined in the env file.