Self-Hosting
Touca Server and Touca SDKs are open-source with a permissive Apache-2 license. You can deploy Touca Server locally or to your own cloud infrastructure. We've made the process straightforward and self-serve. Join us on Discord or send us an email if you need help or had any questions.
Most of our paid plans include dedicated support and professional services for deploying and upgrading self-hosted instances of Touca.
We support two different self-hosted deployments of Touca:
- You can host Touca as a set of Docker containers on a single machine. This setup uses Docker Compose and is most suitable for individuals and small engineering teams.
- You can deploy Touca to your Kubernetes cluster using our Helm chart. This setup is suitable for engineering teams who are used to hosting third-party tools on Kubernetes.
Both deployments use MinIO, MongoDB, and Redis as service dependencies. If you plan on using Touca at scale, we encourage you to upgrade to our paid deployment setups that use DocumentDB, ElastiCache and S3 instead.
Using Docker Compose
Installing
You can install Touca server locally using either the Touca CLI (recommended) or
our install.sh
script, or using docker compose
directly.
- Using Touca CLI
- Using Bash Script
- Using Docker Compose
/bin/bash -c "$(curl -fsSL https://touca.io/install.sh)"
This command uses docker-compose
to install the server into ~/.touca/server
and run it. Once the install is over, navigate to Touca server and complete the
install wizard.
The best way to manage Touca server is through our CLI.
pip install touca
The touca server
subcommand helps you install,
upgrade, and uninstall the Touca server, as well as to check its status and
logs.
touca server install
This command uses docker-compose
to install the server into ~/.touca/server
and run it. Once the install is over, navigate to Touca server and complete the
install wizard.
If you prefer using docker compose
directly, clone the GitHub repository for
Touca, create local directories for the server dependencies and use the
following commands to install the server in the current working directory.
git clone git@github.com:trytouca/trytouca.git
cd trytouca
mkdir -p data/{minio,mongo,redis}
export UID_GID="$(id -u):$(id -g)"
docker compose -f ops/docker-compose.test.yml --project-directory . -p touca up -d
Uninstalling
- Using Touca CLI
- Using Bash Script
- Using Docker Compose
To uninstall the server, you can use the following command to stop the running containers and remove all server data from the filesystem.
/bin/bash -c "$(curl -fsSL https://touca.io/install.sh)" -- --uninstall
Note the extra --
before --uninstall
.
To uninstall the server, you can use the following command to stop the running containers and remove all server data from the filesystem.
touca server uninstall
To uninstall the server, you can use the following command to stop the running containers.
docker compose -f ops/docker-compose.prod.yml --project-directory . -p touca down
Remember to also remove directories for Touca server dependencies such as MinIO, Mongo, and Redis.
If you have any locally stored test results, you can manually remove them by
running rm -r $HOME/.touca/results
.
Using Helm
Installing
You can use our Helm chart to deploy Touca to an existing Kubernetes cluster.
git clone git@github.com:trytouca/trytouca.git
cd ops/k8s/helm-chart
helm install <name> .
Uninstalling
You can unintsall Touca the standard way:
helm uninstall <name>
Did we miss out a required step? We'd love to hear about your experience. Share your thoughts with support@touca.io.