Homelab-first • Tailscale RPC • Docker + systemd

Run services fast with yeet.

Yeet is a lightweight client + server setup for deploying and managing services on remote Linux hosts. It’s optimized for a personal homelab: fast workflows, minimal ceremony, and a tight CLI that ships binaries, Dockerfiles, compose stacks, and images over your tailnet.

Read this first: Yeet is personal infrastructure tooling tuned for a specific homelab. Use it as reference or a starting point, not a general-purpose platform.
Quick bootstrap
# install yeet
curl -fsSL https://yeetrun.com/install.sh | sh

# bootstrap a host
yeet init root@<host>

# deploy a compose stack
yeet run <svc> ./compose.yml --net=svc,ts
Want the full workflow? Read the Workflows guide.

Deploy from the terminal or the browser

Use the CLI when you know the flags. Use yeet run --web for a guided first deploy with the same config saved to yeet.toml and terminal output mirrored in the browser.

yeet run --web
yeet run <svc> ./compose.yml --net=svc,ts
The yeet web deploy form configuring a new service

Core pieces

Yeet keeps the surface area small and explicit.

yeet CLI

Packages payloads, ships artifacts, and drives the workflow.

catch daemon

Installs, runs, and monitors services on each host.

catchrpc

JSON-RPC + streaming exec/events over your tailnet.

Internal registry

Push local images once, run them on the host immediately.

Common workflows

Run what you already have. Yeet detects the payload type.

Compose stack

yeet run <svc> ./compose.yml
yeet run --pull <svc> ./compose.yml

Dockerfile

yeet run <svc> ./Dockerfile

Binary

GOOS=linux GOARCH=amd64 go build -o ./bin/<svc>
yeet run <svc> ./bin/<svc>