IPFS Infrastructure
Documents the IPFS community's infrastructure tooling, host setup via Provsn, and common operational tasks.
What this file does
Documents the IPFS community's infrastructure tooling, host setup via Provsn, and common operational tasks.
When to use it
- Managing a fleet of servers with Provsn shell scripts
- Setting up an IPFS gateway or bootstrap node
- Contributing to IPFS infrastructure maintenance
- Learning how IPFS community manages its hosts and services
Assumes this stack
IPFS Infrastructure
Tools for maintaining infrastructure for the IPFS community.
- Introduction
- Getting started
- Usage
- Known issues
- Common tasks
Progress and Tracking
Introduction
This repository contains the technical infrastructure of the IPFS community.
- Public HTTP-to-IPFS Gateway: https://ipfs.io
- Default bootstrap used by IPFS:
ipfs bootstrap - Private networking between the hosts (cjdns with nginx access control)
- Monitoring of services and hosts: http://metrics.ipfs.team
- Pinbot, an IRC bot in chat.freenode.net/#ipfs-pinbot
Infrastructure that isn't contained here:
- Websites deployment: ipfs.io, dist.ipfs.io, blog.ipfs.io, chat.ipfs.io
- DNS settings for ipfs.io, ipld.io, multiformats.io, libp2p.io, orbit.chat, ipfs.team, protocol.ai
- TeamCity CI: http://ci.ipfs.team:8111
Getting started
We use a tool called Provsn to maintain the setup of hosts and services. The fundamental principle of Provsn is that hosts are in a certain state, and units of code are run to transition into a different state.
Provsn is a plain shell script, and each unit consists of shell scripts too:
- The
envscript exposes variables and functions to the unit itself, and other units. - The
buildscript is run on the client and builds container images, config files, etc. - The
installscript is run on the host and transitions it into the desired state.
Note: there are a few bits of Ansible code left over, which are to be migrated to Provsn.
You can find them in the ansible/ directory.
To test whether you're all set up, execute a simple command on all hosts.
> ./provsn exec all 'whoami'
pluto: root
uranus: root
[...]
Two environment variables can be used to alter Provsn's operation:
PROVSN_JOBS-- this controls the number of hosts to run on in parallel, and defaults to 4.PROVSN_TRACE-- if set, this enables Bash tracing (set -x) for extensive debugging information. Note that this will contain sensitive information and secrets.
Usage
Known issues
- no verbose option, need to comment out dev-null-redirections in unit scripts
- if container that's supposed to be restarted is in a restart loop, we don't notice it's kinda running, and try to start it, and that fails because the name is already in use
Common tasks
- gathering ipfs debug info
- updating ipfs
- deploying a website
- adding a root user
- adding hashes to the blocklist
How can I get ssh access to the instances?
Add you ssh-key to the list of keys available in base/env.sh, like this: https://github.com/ipfs/infrastructure/blob/master/base/env.sh#L9 and then submit a PR with the changes.
Other community infrastructure:
More info in https://github.com/ipfs/community
- Github
- Communication
- IRC: chat.freenode.net/#ipfs and https://chat.ipfs.io
- ipfs-users group: https://groups.google.com/forum/#!forum/ipfs-users
- Slack
- https://twitter.com/ipfsbot
- CI / Testing
- GitCop
- TeamCity: http://ci.ipfs.team:8111
- Travis CI
- Circle CI
Contribute
Feel free to join in. All welcome. Open an issue!
This repository falls under the IPFS Code of Conduct.
Want to hack on IPFS?
License
MIT
What's inside
9 sections including intro, getting started, usage, known issues, common tasks, and contribute
Change this for your project
- Replace
https://github.com/ipfs/infrastructurewith your own repository URL - Replace
https://github.com/ipfs/communitywith your community's repository - Replace
https://github.com/ipfs/infrawith your own Waffle board URL - Replace
http://metrics.ipfs.teamwith your monitoring endpoint
Where it goes
Keep alongside your test suite. Used to define and score model evaluations.
Worth borrowing
- Using a shell-based provisioning tool (Provsn) with env/build/install scripts per unit
- Separating infrastructure code from website deployment and DNS management
- Providing a clear process for granting SSH access via PRs to a key list
Related Documents
IATA BCBP Standard Compliance
Documents which IATA BCBP fields and barcode formats a Swift library implements, including Version 8 gender code support.
Evaluating AI Agent Systems: Metrics, Benchmarks, and Quality Assurance (2024-2026)
Surveys 2024-2026 metrics, benchmarks, and monitoring tools for evaluating AI agent systems, with recommendations for a self-improving coding agent.
Voice AI Leaderboards, Benchmarks, and Evaluation Gaps (Jan 2025 -- Feb 2026)
Surveys 20+ voice AI benchmarks from Jan 2025, Feb 2026, identifies evaluation gaps, and provides leaderboard data for STT, TTS, and end-to-end voice agents.
LLM Evaluation — Deep Dive
Covers why LLM evaluation is hard, benchmark taxonomy, LLM-as-judge methodology, contamination, robustness, and designing an eval suite for a product.
