# Gamertan Tend Tend is an opinionated release and deployment tool for small Go services on Linux, systemd, and Caddy. It packages a clean pushed commit, records exact build provenance, activates a health-checked candidate, and keeps rollback state explicit. The v0.2 development line supports two quiet deployment shapes: - Caddy-switched blue/green services. - A singleton service with an isolated transient candidate check. It does not manage databases, migrations, containers, Kubernetes, or arbitrary shell hooks. Application-specific data activation remains application-specific. ## Commands ```text tend check --config tend.json tend package --config tend.json --version v0.2.0-preview.1 --out dist tend push --target tend-deploy@host --known-hosts FILE --service NAME --artifact FILE --sha256 HEX --approve-sha256 HEX tend receive --policy /etc/tend/receive-policy.json tend check-server --policy /etc/tend/receive-policy.json tend deploy --config /etc/tend/services/example-site.json --artifact FILE --sha256 HEX --approve-sha256 HEX tend status --config /etc/tend/services/example-site.json tend rollback --config /etc/tend/services/example-site.json tend prune --config /etc/tend/services/example-site.json --keep 3 [--apply] ``` `push` transfers one approved artifact through a pinned OpenSSH connection. A forced, no-shell receiver maps the service name to one root-owned configuration; it accepts no remote path, environment value, URL, or shell fragment. Production hosts receive binaries and evidence, never source or Go dependencies. Schema 2 keeps all services under `/etc/tend/services/`, references a distinct root-owned `0600` environment file for each service, and serializes activation through `/run/lock/tend-deploy.lock`. Builds and transfers remain parallel; only the short Caddy/service activation phase is host-wide. Tend is still a single command, not a daemon. Dry-run and digest approval are intentional friction. See the [schema-2 migration guide](docs/SCHEMA_V2_MIGRATION.md) and the [two-service walkthrough](docs/WALKTHROUGH.md). Run `./scripts/verify.sh` on Linux. That required release lane exercises tests, the race detector, vet, deterministic builds, schema-2 examples, and the dependency-free module graph. Tend supports Linux hosts with systemd and Caddy; WSL may be used as a Linux development environment, but native Windows is not a supported execution, deployment, or release-gate platform. The v0.1 public preview and the restricted v0.2 implementation candidate each completed maintenance releases and explicit rollback/reactivation for both Gamertan and the Sandwich Hime website using one reviewed candidate. See the dated [dogfood evidence](docs/DOGFOOD_EVIDENCE.md) for exact scope and limitations. The v0.2 preview will not be tagged until one identical binary has deployed and rolled back both services through the restricted transport. The canonical public repository begins with a sanitized root snapshot rather than the private development history. ## Licensing Tend and its release machinery are AGPL-3.0-only. Reusable example configuration and service templates under `examples/` are 0BSD.