Catch and yeet
Catch is a tool for installing and managing services on remote machines with minimal fuss. It uses scp
over
Tailscale to copy files to the remote machine and automatically deploy them as services. The goal is to simplify
deploying various types of files, including binaries, Docker Compose files, and more, without the need to
configure systemd or other service managers.
Catch is a CLI app written in Go, currently tested on Linux. You can manage services from any machine that supports SSH.
For even easier deployment, you can use yeet
, our cross-platform companion client.
Quickstart
Download and build the latest source code from the GitHub repository.
git clone https://github.com/catchall-sh/catch.git && cd catch
To install catch, run the following command.
go run ./cmd/yeet init <remote-host>
Now we can yeet
our service to Catch.
yeet myservice mybinary
Run yeet --help
to see the available commands.
For more information, see our installation guide. To learn more about what you can do with Catch, see running services.
Running services
Catch supports various types of services. Refer to the guides below to learn more about each service type and see examples of how to run them.
-
Deploy any executable file. (e.g. Go, Rust, C, etc.)
-
Deploy shell scripts as cron jobs or services.
-
Deploy a binary or script to run as a cron job.
-
Deploy TypeScript files with dependencies specified within the file.
-
Deploy a Docker image to the built-in Docker registry.
-
Deploy a Docker Compose file to run a Docker stack.
-
Docker Compose and Secret Management
Deploy using Docker Compose and keep your secrets secret with git-crypt.