ee52ae985d5df2eadf1b8b0b5843d7c51bfbd08f
Three workflows modeled on kanrisha + Vortex: * test.yml — on push/PR to main: build + vet + unit tests (-race), a gated integration job that runs go test -tags=integration ./test/... (testcontainers spins up Postgres 17 itself; runner must expose the docker socket), and a lint job (go mod tidy + gofmt check). * security.yml — govulncheck on push to main plus a weekly Monday 06:00 UTC cron so fresh CVEs surface without a code change. * release.yml — on v* tag push only: goreleaser v2 with GORELEASER_FORCE_TOKEN=gitea + GITEA_SERVER_URL, plus a docker login step so the built image can push to Gitea's registry. All three pin Go 1.26 (go.mod says 1.26.2). Release job requires the TOKEN_GITEA repo secret (scope: packages + code:write).
anchorage
Highly-available, multi-tenant IPFS Pinning Service wire-compatible with the IPFS Pinning Services API spec.
Each anchorage instance is paired 1:1 with its own Kubo daemon and joins an embedded NATS cluster for signaling. Postgres is the source of truth for all durable state (pins, placements, orgs, users, tokens, audit log).
Status: skeleton complete, milestones 1–22 all landed end-to-end. The in-memory store is in place for dev; the pgx-backed store slots in once sqlc generates the code from sqlc.yaml + queries/.
See:
- docs/architecture.md
- docs/cluster-ops.md — drain / maintenance procedures
- docs/auth-flow.md — how anchorage handles humans + API clients
- docs/authentik-setup.md — configuring Authentik as the OIDC provider
- deploy/README.md — deb/rpm install + Swarm stack deploy
Quickstart (dev)
make build
./bin/anchorage version
Layout
cmd/anchorage/— thinmainentry point.internal/cmd/— Cobra command tree (version, soonserve,migrate,admin).internal/app/anchorage/— composition root (wires deps, lifecycle).internal/pkg/— domain packages (config,store,pin,ipfs, ...).configs/— example Viper YAML.docs/— architecture, auth flow, operations.
Development
make check # fmt + vet + lint + test + vuln
make test # go test -race ./...
make build # ./bin/anchorage
Description
Languages
Go
94.8%
PLpgSQL
2.9%
Makefile
0.9%
Dockerfile
0.7%
Shell
0.7%