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>
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: