# Local Deployment To just test out Browsertrix Cloud on your local machine, you'll first need to have a working Kubernetes cluster. ## Installing Kubernetes Before running Browsertrix Cloud, you'll need to set up a running Kubernetes cluster. Today, there are numerous ways to deploy Kubernetes fairly easily, and we recommend trying one of the single-node options, which include Docker Desktop, microk8s, minikube and k3s. The instructions below assume you have cloned the [https://github.com/webrecorder/browsertrix-cloud](https://github.com/webrecorder/browsertrix-cloud) repository locally, and have local package managers for your platform (eg. `brew` for Mac, `choco` for Windows, etc...) already installed. Here are some environment specific instructions for setting up a local cluster from different Kubernetes vendors: ??? tip "Docker Desktop (recommended for Mac and Windows)" For Mac and Windows, we recommend testing out Browsertrix Cloud using Kubernetes support in Docker Desktop as that will be one of the simplest options. 1. [Install Docker Desktop](https://www.docker.com/products/docker-desktop/) if not already installed. 2. From the Dashboard app, ensure `Enable Kubernetes` is checked from the Preferences screen. 3. Restart Docker Desktop if asked, and wait for it to fully restart. 4. Install [Helm](https://helm.sh/), which can be installed with `brew install helm` (Mac) or `choco install kubernetes-helm` (Windows) or following some of the [other install options](https://helm.sh/docs/intro/install/) ??? tip "MicroK8S (recommended for Ubuntu)" For Ubuntu and other linux distros, we recommend using MicroK8S for both local deployment and production. 1. Install MicroK8s, by running `sudo snap install microk8s --classic` [see more detailed instructions here](https://microk8s.io/docs/getting-started) or [alternate installation instructions here](https://microk8s.io/docs/install-alternatives) 2. Install the following addons `microk8s enable dns hostpath-storage registry helm3`. (For production, also add `ingress cert-manager` to the list of addons) 3. Wait for add-ons to finish installing with `microk8s status --wait-ready` Note: microk8s comes with its own version helm, so you don't need to install it separately. Replace `helm` with `microk8s helm3` in the subsequent instructions below. ??? tip "Minikube (Windows, Mac or Linux)" 1. Install Minikube [following installation instructions](https://minikube.sigs.k8s.io/docs/start/), eg. `brew install minikube` 2. Install [Helm](https://helm.sh/), which can be installed with `brew install helm` (Mac) or `choco install kubernetes-helm` (Windows) or following some of the [other install options](https://helm.sh/docs/intro/install/) 3. Run the Helm command as described above. 4. Mac Only: To access Browsertrix Cloud running in minikube on a mac, run `minikube service browsertrix-cloud-frontend --url` and then access Browsertrix Cloud via the provided URL. This is needed as Browsertrix Cloud is running in a VM. ??? tip "K3S (recommended for non-Ubuntu Linux)" 1. Install K3s [as per the instructions](https://docs.k3s.io/quick-start) 2. Install [Helm](https://helm.sh/), which can be installed with `brew install helm` (Mac) or `choco install kubernetes-helm` (Windows) or following some of the [other install options](https://helm.sh/docs/intro/install/) 3. Set `KUBECONFIG` to point to the config for K3S: `export KUBECONFIG=/etc/rancher/k3s/k3s.yaml` to ensure Helm will use the correct version. ## Launching Browsertrix Cloud with Helm Once you have a running Kubernetes cluster with one of the options above, and Helm 3 installed, you can then run from the Browsertrix Cloud repo directory: ``` helm upgrade --install -f ./chart/values.yaml -f ./chart/examples/local-config.yaml btrix ./chart/ ``` The local setup includes the full Browsertrix Cloud system, with frontend, backend api, db (via MongoDB) and storage (via Minio) An admin user with name `admin@example.com` and password `PASSW0RD!` will be automatically created. This config uses the standard config (`./chart/values.yaml`) with a couple additional settings for local deployment (`./chart/examples/local-config.yaml`). With Helm, additional YAML files can be added to further override previous settings. These settings can be changed in [charts/examples/local-config.yaml](https://github.com/webrecorder/browsertrix-cloud/blob/main/chart/examples/local-config.yaml). Note that the admin user and password will not be reset after creation. ## Waiting for Cluster to Start After running the helm command, you should see something like: ``` Release "btrix" does not exist. Installing it now. NAME: btrix LAST DEPLOYED: