William Gill ee52ae985d
Some checks failed
Security / Vulnerability Check (push) Failing after 16m47s
Test / Build & Unit Tests (push) Failing after 4m58s
Test / Integration Tests (push) Has been skipped
Test / Lint (push) Failing after 23s
ci: gitea actions — test, security, release
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).
2026-04-16 18:16:13 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00
2026-04-16 18:13:36 -05:00

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 122 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:

Quickstart (dev)

make build
./bin/anchorage version

Layout

  • cmd/anchorage/ — thin main entry point.
  • internal/cmd/ — Cobra command tree (version, soon serve, 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
No description provided
Readme 236 KiB
Languages
Go 94.8%
PLpgSQL 2.9%
Makefile 0.9%
Dockerfile 0.7%
Shell 0.7%