Supported platforms
The shell script
The script resolves the latest release, downloads the archive for your platform, verifies it, and puts the binary somewhere on yourPATH. Two environment variables steer it:
cosign is on the machine, the script also checks the release signature against the workflow that produced it.
install.ps1 is the same installer for Windows. It honors the same two environment variables, installs to a per-user programs directory by default, and verifies the same way.
Verifying a download yourself
Every release carries achecksums.txt, one Sigstore bundle covering that file, and an SBOM per archive. Signing the checksum file rather than each archive means one signature verifies the whole release:
Distribution packages
.deb, .rpm and .apk files are attached to each GitHub release. They are artifacts you download and install, not a hosted repository, so there is nothing to add to a sources list and nothing that auto-updates:
/usr/bin/mailkube.
Containers
The image is distroless and holds the binary and nothing else, published forlinux/amd64 and linux/arm64 under one multi-architecture tag:
webhooks listen binds to loopback by default, and a published container port cannot reach the container’s own loopback interface. In a container, pass --host 0.0.0.0 along with -p 4318:4318.Shell completion
Completion scripts are generated by the binary and written to stdout, so where they go is your shell’s business:.deb/.rpm/.apk packages install these for you. Release archives ship them under completions/.
Staying current
Nothing updates itself and nothing phones home to check for a new version. Upgrade the way you installed:brew upgrade, scoop update mailkube, re-run the install script, or re-run go install.
Next steps
Authentication
Store an API key and, if you need it, an SMTP credential.
Quickstart
Send a message end to end.