Documentation Index
Fetch the complete documentation index at: https://docs.lunary.ai/llms.txt
Use this file to discover all available pages before exploring further.
Lunary was designed to be surprisingly simple to self-host, through a Helm Chart which includes the frontend, the API, and workers.
Steps
Set up a PostgreSQL database
Set up a PostgreSQL database to store your Lunary data (version 15 or higher).
Log in to the private Docker Repository
Run the following command:helm registry login registry-1.docker.io -u lunarycustomer -p <your_organization_access_token>
Your Organization’s Access Token, will be provided by Lunary when your subscription is activated. Download the Helm Chart
kubectl create ns lunary
helm pull oci://registry-1.docker.io/lunary/lunary --untar --version '1.2.11' # contact Lunary support to get the latest version list
Set up mandatory secrets
kubectl create secret -n lunary docker-registry regcred --docker-server=docker.io --docker-username=lunarycustomer --docker-password=<your_organization_access_token>
kubectl create secret -n lunary generic db-connection --from-literal=url="postgres://<username>:<password>@<host>:5432/lunary"
kubectl create secret -n lunary generic license-key --from-literal=LICENSE_KEY='<license_key>'
kubectl create secret -n lunary generic jwt-secret --from-literal=JWT_SECRET='<jwt_secret>' # You can generate a random string using `openssl rand -base64 32`
Your License Key will be provided by Lunary when your subscription is activated.
The Organization Access Token is the same one you used to log in with helm login.(Optional) Set up API Keys and SMTP client
In order to use the Prompt Playground and Evaluations features, you need to set up at least one of the following secrets:kubectl create secret -n lunary generic api-keys \
--from-literal=OPENAI_API_KEY='<your-openai-api-key>' \
# Or if using Azure
--from-literal=AZURE_OPENAI_API_KEY='<your-azure-openai-api-key>' \
--from-literal=AZURE_OPENAI_RESOURCE_NAME='<your-azure-openai-resource-name>' \
--from-literal=AZURE_OPENAI_DEPLOYMENT_ID='<your-azure-openai-deployment-id>' \
--from-literal=ANTHROPIC_API_KEY='<your-anthropic-api-key>' \
--from-literal=OPENROUTER_API_KEY='<your-openrouter-api-key>' \
--from-literal=PALM_API_KEY='<your-palm-api-key>'
You can also use your custom email server to send invitations to members of your organization:kubectl create secret -n lunary generic smtp-config \
--from-literal=EMAIL_SENDER_ADDRESS='<your-email-sender-address>' \
--from-literal=SMTP_HOST='<your-smtp-host>' \
--from-literal=SMTP_PORT='<your-smtp-port>' \
--from-literal=SMTP_USER='<your-smtp-user>' \
--from-literal=SMTP_PASSWORD='<your-smtp-password>
Then, configure the corresponding values in values.yaml, in the Helm Chart’s root directory: ---
global:
...
secrets:
useCustomSMTP: true
useOpenAI: false
useAzureOpenAI: true
useAnthropic: true
useOpenRouter: true
usePalm: true
...
Install the Helm Chart
cd lunary
helm upgrade --install -n lunary lunary .
🎉 Done!
The Helm Chart should be installed and ready to go.
You can now set up an ingress controller to expose the services.