Quick Start

Fastest path to a working yeet + catch install.

This is the TL;DR path to a working install. It assumes you have a Linux host with systemd and SSH access. You do not need Tailscale installed on either machine; yeet uses an embedded tsnet client for RPC. See Tailscale for details.

1) Install yeet locally

Release install (recommended):

curl -fsSL https://yeetrun.com/install.sh | sh

Nightly build:

curl -fsSL https://yeetrun.com/install.sh | sh -s -- --nightly

2) Bootstrap catch on a host

Use SSH to install the catch service on a remote host:

yeet init root@<host>

If you use a non-root user, yeet will invoke sudo on the remote. Add --nightly for nightly.

Note: this <host> is the machine host you SSH into. After install, yeet run <svc>@<host> uses the catch host (Tailscale/tsnet hostname). See Tailscale.

3) Sanity check

yeet version
yeet status

4) Deploy something

Docker Compose (most common):

yeet run <svc> ./compose.yml --net=lan

Find the service IP on your LAN:

yeet info <svc>
yeet ip <svc>

Dockerfile (built locally for the host’s arch, then pushed):

yeet run <svc> ./Dockerfile

Binary:

yeet run <svc> ./bin/<svc>

Docker image (pulled on the host):

yeet run <svc> nginx:latest

Local image (push it, then run it):

yeet docker push <svc> <local-image>:<tag> --run

5) Observe and iterate

yeet logs -f <svc>
yeet restart <svc>

If you change the binary or compose file, re-run the same yeet run command to roll a new generation. For compose images, add --pull (or use yeet docker update) when you want to refresh images.