This repository has been archived on 2026-08-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tend/examples/README.md
T
gamertan 00d1dd4209 feat: publish Tend v0.2 preview source
Publish the reviewed allowlisted snapshot whose exact binary completed maintenance deployment, rollback, and reactivation exercises for Gamertan and Sandwich Hime.

Private-Source-Commit: 4d7094c8b7c61991bfb67b11fc1558724c874eb2

Private-Source-Tree: 54a2f74804f7acddf3755d7d4da5b97f5fc28381

AI-Assistance: OpenAI Codex assisted implementation, testing, security review, and release verification.
Signed-off-by: Cole Speelman <crspeelman@gmail.com>
2026-08-16 19:02:08 -04:00

1.4 KiB

Reusable Tend examples

This subtree is licensed 0BSD so an operator can copy and adapt it without bringing the Tend program's AGPL license into an application configuration.

The blue/green example expects one separately reviewed environment file that the two installed slots and transient validation use consistently:

# /etc/tend/environment/example-site.env
APP_SECRET=replace-on-server

The blue/green systemd slot units then read the nonsecret listen address from /etc/tend/slots/example-site-blue.env or -green.env; Tend overrides only the isolated candidate address. Secret values never enter tend.json.

The singleton example follows the same split: its shared root-only environment file omits the configured listen key, the installed unit owns the live address, and Tend supplies only the transient candidate address. This prevents a shared environment file from overriding the isolated candidate port.

Production configuration belongs outside the source checkout, owned by root, and not group- or world-writable. The Caddy handler template is an entire imported handler fragment; the enclosing site, matchers, and routing precedence remain operator-owned.

server/ demonstrates the schema-2 receive policy, forced OpenSSH command, restricted sudo entry, two independent service configurations, and secret-file placement. The values are placeholders, not an installation script.