Someguy is an HTTP Delegated Routing V1 server that proxies requests to the Amino DHT and other delegated routing servers.
Someguy was the backend of https://delegated-ipfs.dev/routing/v1 until 2026 Q3 (see Maintainer Info).
go build -o someguygo install github.com/ipfs/someguy@latestAutomated Docker container releases are available from the Github container registry:
- 🟢 Releases
latestalways points at the latest stable releasevN.N.Npoint at a specific release tag
- 🟠 Unreleased developer builds
main-latestalways points at theHEADof themainbranchmain-YYYY-DD-MM-GITSHApoints at a specific commit from themainbranch
⚠️ Experimental, unstable buildsstaging-latestalways points at theHEADof thestagingbranchstaging-YYYY-DD-MM-GITSHApoints at a specific commit from thestagingbranch- This tag is used by developers for internal testing, not intended for end users
When using Docker, pass configuration via -e:
$ docker pull ghcr.io/ipfs/someguy:main-latest
$ docker run --rm -it --net=host ghcr.io/ipfs/someguy:main-latestSee /docs/environment-variables.md.
Run someguy as a client or as a server.
Start the server with someguy start. By default it proxies requests to the IPFS Amino DHT and other Delegated Routing V1 servers.
For more details, run someguy start --help.
To query an existing server without running one yourself, use someguy ask <subcommand> to look up a provider, peer, or IPNS record.
For more details, run someguy ask --help.
Automatic configuration of bootstrap peers and delegated routing endpoints. When enabled (default), Someguy replaces the auto placeholder with network-recommended values fetched from a remote URL.
Configuration:
--autoconf/SOMEGUY_AUTOCONF--autoconf-url/SOMEGUY_AUTOCONF_URL--autoconf-refresh/SOMEGUY_AUTOCONF_REFRESH
Endpoint flags (default to auto):
--provider-endpoints/SOMEGUY_PROVIDER_ENDPOINTS--peer-endpoints/SOMEGUY_PEER_ENDPOINTS--ipns-endpoints/SOMEGUY_IPNS_ENDPOINTS
To use custom endpoints instead of auto:
someguy start --ipns-endpoints https://example.comSee environment-variables.md for URL formats and configuration details.
- environment-variables.md: all config flags and environment variables
- peer-address-caching.md: how
/providersand/peerscache and refresh peer addresses, and the trade-offs behind what someguy deliberately does not do - response-streaming.md: NDJSON streaming contract, the timeout budget, and traps that break streaming
- dnsaddr-resolution.md: why
/dnsaddris resolved beforefilter-addrs, and how it is bounded - metrics.md: Prometheus metrics
- tracing.md: OpenTelemetry tracing
For self-hosting, run the prebuilt Docker image.
- Create a PR from branch
release-vX.Y.Zagainstmainthat:- Updates
CHANGELOG.mdwith entries for the current release - Updates the
version.jsonfile
- Updates
- Once the release checker creates a draft release, copy-paste the changelog into the draft
- Merge the PR; the release workflow tags and publishes automatically
Important
There is no dedicated maintainer at the moment.
After Protocol Labs nucleation, the Shipyard team maintained this project in 2024, 2025 and 2026. Shipyard's IPFS maintenance work ended with 2026 Q3.
Bring support and transition questions to the community forum.
Dual-licensed under MIT + Apache 2.0