Deploy as a binary
Each release attaches a tachyon binary for four platforms. It’s a single file with no runtime dependencies beyond a Postgres database to talk to.
| Archive | For |
|---|---|
tachyon_0.1.0_x86_64-unknown-linux-musl.tar.gz |
Linux on x86_64, statically linked |
tachyon_0.1.0_aarch64-unknown-linux-musl.tar.gz |
Linux on arm64, statically linked |
tachyon_0.1.0_x86_64-apple-darwin.tar.gz |
macOS on Intel |
tachyon_0.1.0_aarch64-apple-darwin.tar.gz |
macOS on Apple silicon |
Each archive has an SPDX SBOM next to it (.sbom.json), and checksums.txt lists the SHA-256 of every file.
Download and verify
Section titled “Download and verify”Download your archive with checksums.txt and its signature bundle from the v0.1.0 release. With the GitHub CLI:
gh release download v0.1.0 -R tachyon-cms/tachyoncms \ -p 'tachyon_0.1.0_aarch64-apple-darwin.tar.gz' \ -p 'checksums.txt' -p 'checksums.txt.sigstore.json'Check that the release workflow signed the checksums, using cosign:
cosign verify-blob \ --certificate-identity 'https://github.com/tachyon-cms/tachyoncms/.github/workflows/release.yml@refs/heads/main' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ --bundle checksums.txt.sigstore.json checksums.txtVerified OKThen check the archive against them. On Linux use sha256sum; on macOS, shasum -a 256:
shasum -a 256 --check --ignore-missing checksums.txttachyon_0.1.0_aarch64-apple-darwin.tar.gz: OKUnpack and run
Section titled “Unpack and run”The archive holds a folder with tachyon, README.md and LICENSE:
tar xzf tachyon_0.1.0_aarch64-apple-darwin.tar.gz./tachyon_0.1.0_aarch64-apple-darwin/tachyon --versiontachyon 0.1.0Point it at a Postgres database and start it:
TACHYON_DATABASE_URL=postgres://tachyon:tachyon@127.0.0.1:5432/tachyon \ ./tachyon_0.1.0_aarch64-apple-darwin/tachyon serve{"timestamp":"2026-10-28T21:30:56.119497Z","level":"INFO","fields":{"message":"listening","addr":"127.0.0.1:3000"},"target":"tachyon"}This database already had an Admin. On first start against an empty one it also logs setup needed; create the first Admin as in Install. Without other settings it listens on 127.0.0.1:3000. To listen beyond this machine, set public_url too. See Configuration.
Run it as a service
Section titled “Run it as a service”For a long-running server, put the settings in a tachyon.toml (or the environment) and run tachyon serve under your service manager, such as a systemd unit. The server stops cleanly on SIGTERM or Ctrl+C, finishing the requests in flight.
Put a reverse proxy that terminates HTTPS in front of it, and set public_url to the HTTPS address. Browsers only send the session cookie over HTTPS, localhost aside.
Upgrade
Section titled “Upgrade”Stop the server, replace the binary, and start it again. Pending database migrations run on start. To run them on their own first, use tachyon migrate.