Download
One static binary. No runtime, no shared libraries, no
package manager — the distribution does not matter. Version 0.1.0, built from
commit 625ce96.
| Platform | File | Size |
|---|---|---|
| Linux x86-64 amd64 — most servers and VPSes |
grainfed-0.1.0-linux-amd64.tar.gz | 12.8 MiB |
| Linux ARM64 aarch64 — Raspberry Pi 4/5, Ampere, Graviton |
grainfed-0.1.0-linux-arm64.tar.gz | 11.6 MiB |
Verify what you downloaded
SHA256SUMS holds both:
curl -LO https://dl.grainfed.waxquixotic.com/grainfed-0.1.0-linux-amd64.tar.gz
curl -LO https://dl.grainfed.waxquixotic.com/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
| File | SHA-256 |
|---|---|
| linux-amd64 | 6716356c5e5965d0f8b63d5beae2bf029416ea110dd6b03a0e699c40e74d45d0 |
| linux-arm64 | 98b092519558d2b16598cacd36243926eacd6a1e55c743162bac0bfc4a6cf6f4 |
-trimpath given the same Go toolchain.
Install
tar xzf grainfed-0.1.0-linux-amd64.tar.gz
sudo install -m755 grainfed /usr/local/bin/grainfed
grainfed version
Full instructions are on Install. If you are replacing a running Pixelfed instance, start at Migrate instead.
Build it yourself
Go 1.26 or later, and nothing else — no C toolchain, no node, no system libraries:
git clone https://git.ntg.co/Quixotic/grainfed
cd grainfed
CGO_ENABLED=0 go build -trimpath -o grainfed ./cmd/grainfed
Cross-compiling is the same command with two variables, which is how the ARM64 build above is made:
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath -o grainfed ./cmd/grainfed
What is not here
Only Linux, and only these two architectures. GrainFed is a server: it is built to sit behind a reverse proxy on a machine that stays on. Go will cross-compile it for macOS, BSD or 32-bit ARM from the command above if you have a reason to, but those builds are not tested and are not published.
0.1.0 is a first numbered release. It serves every route
Pixelfed can serve and is verified against a real database, a real browser
and real remote servers — and it runs
one production instance. Take a backup before
cutover, and read the reversal path on
Migrate before you need it.