Service Types
How yeet decides what kind of service a payload becomes.
Yeet detects payload type and installs the service accordingly. For step-by-step usage, start with Payloads.
You should be able to look at a payload and predict which host mechanism catch will use before the command changes anything.
- ELF or Mach-O binary.
- Catch installs it as a systemd service on the host.
- Use
yeet run <svc> ./bin/<svc>. - Build for the catch host architecture first.
- Shebang file (e.g.,
#!/usr/bin/env bash). - Catch treats it like a binary and installs it as a systemd service.
- The interpreter must exist on the host.
- Any YAML with a top-level
services:key. - Catch installs it as a Docker Compose service.
- Use
--pullonyeet runwhen you want to refresh images; otherwiserunreuses existing images. - See Containers.
- If the payload looks like an OCI image ref (e.g.
nginx:latest,ghcr.io/org/app:1.2.3), catch pulls the image on the host. - For local images, use
yeet docker push <svc> <image>:<tag> --run. - For Dockerfiles, use
yeet run <svc> ./Dockerfile(builds for the host arch and pushes). - See Containers.
.tsfiles are run via a Deno container.- Catch runs it as a container-backed service.
- See Containers.
.pyfiles are run via auvcontainer image.- Catch runs it as a container-backed service.
- See Containers.
vm://ubuntu/26.04creates a long-lived Ubuntu VM service.vm://nixos/26.05creates a long-lived NixOS VM service.- Imported images run as
vm://<name>afteryeet vm images import. - Requires a Linux catch host with KVM available.
- Uses yeet-owned VM image bundles published from yeetrun/yeet-vm-images.
yeet initchecks the host for KVM, TUN/TAP, and required VM tooling; on capable Debian/Ubuntu hosts it can prompt for missing VM tools.- See VMs.
- Yeet detects and unpacks Zstd-compressed binaries.
yeet croninstalls a cron-style job as a timer on the host.- See Cron Jobs.
- Yeet detects file type by extension or content.
- Architecture must match the target host; mismatches fail early.
- ZFS is storage backing for service roots and VM disks, not a service type.
- If a service already exists, its type is fixed. Replace it with a new service name or remove the old one first.