FAQ
Short answers to the questions people usually ask after the first deploy.
Yeet targets homelab-style use by people comfortable operating Linux hosts over SSH. It is not a general-purpose platform or a multi-tenant orchestrator: use Linux/systemd hosts, Tailscale connectivity, and a single-operator trust model.
Use yeet for infrastructure you control.
Yes. Catch joins your tailnet as an embedded Tailscale node, but the local
yeet CLI does not run its own Tailscale client. Normal yeet commands use
ordinary HTTP/WebSocket connections to the catch hostname, so your workstation
must be able to reach that Tailscale address. In the normal setup, that means
installing Tailscale locally and connecting the workstation to the same tailnet.
Discovery commands such as yeet list-hosts also require the local Tailscale
client API. See
Tailscale. Access to catch commands is controlled
with Tailscale Access Grants.
Yes. Services run as root-owned systemd units on the catch host. Use yeet for single-operator hosts you control, not shared or multi-tenant environments.
Yes. Provide a compose file to yeet run. Run it from your
Service Workspace so yeet.toml
lands with the rest of your service files.
yeet run <svc> ./compose.yml
Yes, on Linux catch hosts with KVM, TUN/TAP, and VM tooling available. Many VPS providers do not expose nested virtualization, so a host can be valid for containers and still not support VM payloads. See VMs.
Re-run yeet run with the updated payload. For compose services, yeet run
does not pull images by default; use yeet run --pull <svc> ./compose.yml or
yeet docker update <svc...> when you want fresh images for selected services.
That command pulls images and recreates containers. Use
yeet docker update --outdated to update all compose services with available
image updates.
The machine host is the SSH target for yeet init, such as
root@<machine-host>. The catch host is the Tailscale hostname yeet targets after
install. Use the catch host with CATCH_HOST, --host, and
<svc>@<catch-host>.
SSH installs the daemon. Tailscale operates it. That split is the model.
yeet rm <svc> removes the service but keeps service data. It prompts before
removing the local config entry. Use yeet rm --clean <svc> when you also want
to delete the managed data root or VM disk and remove the local yeet.toml
entry. Read the prompt before accepting.