# Running a trashposs server with Kubernetes and Helm This is a [Helm](https://helm.sh/) chart directory in the root of the project that you can use to deploy trashposs to a Kubernetes cluster ## Deployment 1. Copy the example helm values and make your changes: ```shell cp .config/helm_values_example.yml .config/helm_values.yml ``` 2. Update helm dependencies: ```shell cd chart helm dependency list $dir 2> /dev/null | tail +2 | head -n -1 | awk '{ print "helm repo add " $1 " " $3 }' | while read cmd; do $cmd; done; cd ../ ``` 3. Create the trashposs helm release (also used to update existing deployment): ```shell helm upgrade \ --install \ --namespace trashposs \ --create-namespace \ trashposs chart/ \ -f .config/helm_values.yml ``` 4. Watch your trashposs server spin up: ```shell kubectl -n trashposs get po -w ``` 5. Initial the admin user and managed config: ```shell export trashposs_USERNAME="my_desired_admin_handle" && \ export trashposs_PASSWORD="myDesiredInitialPassword" && \ export trashposs_HOST="trashposs.example.com" && \ export trashposs_TOKEN=$(curl -X POST https://$trashposs_HOST/api/admin/accounts/create -H "Content-Type: application/json" -d "{ \"username\":\"$trashposs_USERNAME\", \"password\":\"$trashposs_PASSWORD\" }" | jq -r '.token') && \ echo "Save this token: ${trashposs_TOKEN}" && \ curl -X POST -H "Authorization: Bearer $trashposs_TOKEN" https://$trashposs_HOST/api/admin/accounts/hosted ``` 6. Enjoy!