Skip to main content

Installation

Overview

To install Catch on your remote server, you need to have git and go installed.

Start by cloning the Catch repository.

git clone https://github.com/catchall-sh/catch.git
cd catch

Installing Catch on your remote server is a single command. This command builds Catch for the architecture of the remote server, copies it over and starts the installation.

go run ./cmd/yeet init <user>@<remote-host>
note

Catch requires root access to install itself. If you provide a non-root user to the init command, it will use sudo to perform the installation.

Tailscale setup

Catch uses Tailscale to securely connect to your remote server via tsnet, an official Tailscale library. You don't need to install Tailscale on the remote server, but a Tailscale account is required. The free tier is sufficient for personal use.

During the installation process, you will be prompted to follow a link to complete the Tailscale setup. This link will open in your browser and guide you through adding Catch to your Tailscale network. By default, the Catch server will appear on your Tailnet as the host catch.

Docker installation

Following the installation process, if Docker is not installed on your remote server, you will be prompted to install it. While it is not required to use Catch, it is recommended and required for running Docker images, Docker Compose files and even TypeScript services.

Manual installation

If we want to build the binary and copy it over manually. This is what yeet does under the hood.

go build ./cmd/catch
scp catch root@<remote-host>:

# Then on the remote machine
ssh root@<remote-host> chmod +x catch
ssh root@<remote-host> ./catch install

Updating Catch

Catch self-hosts itself and can be used to update itself.

# From the catch source directory
yeet init

Manually updating Catch

go build ./cmd/catch
scp catch catch@catch: