ipfs-bootstrap
v0.2.1
Published
One-command install + production-friendly IPFS setup with Web3 helpers
Readme
ipfs-bootstrap
One-command install + production-friendly IPFS node setup for backend/devops teams, with Web3/NFT helpers.
Why this exists
Standing up IPFS in production is usually a patchwork of install docs, daemon config, service wiring, and provider-specific pin flows. ipfs-bootstrap gives teams one predictable CLI that handles setup and daily operations with sane defaults.
Quickstart
npm i -g ipfs-bootstrap
ipfs-bootstrap init
ipfs-bootstrap configure --profile dev --cors "*"
ipfs-bootstrap up
ipfs-bootstrap add ./asset.png
ipfs-bootstrap nft:metadata --name "My NFT" --image-cid <assetCID>Commands
Setup
ipfs-bootstrap init [--mode auto|privileged|user] [--install-dir <path>] [--data-dir <path>] [--version <kubo-version>]
ipfs-bootstrap configure [--profile dev|prod] [--api-port <n>] [--gateway-port <n>] [--cors <csv>]
ipfs-bootstrap up
ipfs-bootstrap down
ipfs-bootstrap service <install|status> [--manager systemd|launchd|windows-service|pm2]Node Ops
ipfs-bootstrap status [--json]
ipfs-bootstrap doctor [--json]
ipfs-bootstrap gc [--json]
ipfs-bootstrap stats [--json]
ipfs-bootstrap backup [--output <file>]
ipfs-bootstrap restore <backup-file>Content
ipfs-bootstrap add <path> [--json]
ipfs-bootstrap pin <cid> [--provider local|pinata|web3storage] [--token <token>] [--name <name>]
ipfs-bootstrap uri <cid> [--scheme ipfs|https] [--gateway <url>] [--token-id <id>]IPNS
ipfs-bootstrap ipns publish <cid> [--key <name>] [--lifetime <duration>]
ipfs-bootstrap ipns resolve <name>
ipfs-bootstrap ipns keysCAR Files
ipfs-bootstrap car export <cid> [--output <file>]
ipfs-bootstrap car import <file.car>NFT / Web3
ipfs-bootstrap nft:metadata --name <name> [--description <text>] [--image-cid <cid>] [--attributes '<json>']
ipfs-bootstrap nft:collection <assets-dir> --name <name> [--description <text>] [--output-dir <dir>] [--json]Infrastructure
ipfs-bootstrap proxy [--format nginx|caddy] [--domain <domain>] [--output <file>]Real Examples
# Init in user mode (no sudo)
ipfs-bootstrap init --mode user
# Production config
ipfs-bootstrap configure --profile prod --cors "https://app.example.com"
# Service + health
ipfs-bootstrap service install --manager systemd
ipfs-bootstrap doctor --json
# Pin to Pinata
ipfs-bootstrap pin <cid> --provider pinata --token "$PINATA_JWT"
# Full NFT collection workflow
ipfs-bootstrap nft:collection ./art --name "Genesis Collection" --description "First drop"
# → uploads all assets, generates per-token metadata, returns base URI
# Publish to IPNS for mutable pointer
ipfs-bootstrap ipns publish <baseCID> --lifetime 48h
# Export for offline/archive
ipfs-bootstrap car export <cid> --output archive.car
# Generate reverse proxy config
ipfs-bootstrap proxy --format nginx --domain ipfs.mysite.com --output /etc/nginx/conf.d/ipfs.confRemote Pin Providers
--provider local(default)--provider pinata --token <JWT>--provider web3storage --token <token>
Or set env var:
export IPFS_BOOTSTRAP_PIN_TOKEN=...Architecture
init→ detect OS, install/locate Kubo, initialize repoconfigure→ apply API/gateway ports, CORS, profile presetsup/down→ daemon lifecycleservice install→ systemd / launchd / NSSM / PM2add/pin→ content to local node + optional remote provideripns→ mutable name publishing/resolutioncar→ DAG import/export for archivalnft:metadata/collection→ chain-ready metadata generationproxy→ reverse proxy config generationgc/stats/backup/restore→ node maintenance
License + Links
- License: MIT
- Changelog: CHANGELOG.md
- npm: https://www.npmjs.com/package/ipfs-bootstrap
- GitLab: https://gitlab.com/darks0l/ipfs-bootstrap
Built with teeth. 🌑
