configs/ipfs/init/001-config.sh

28 lines
1.1 KiB
Bash

#!/bin/sh
set -e
# Expose API and Gateway inside container. Do NOT publish API outside docker network.
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
# Gateway should not fetch from the wider network; serve only local content
ipfs config --json Gateway.NoFetch true
# DHT client mode with accelerated providing
ipfs config --json Routing '{ "Type": "dhtclient", "AcceleratedDHTClient": true }'
# Reprovider pinned content periodically
ipfs config --json Reprovider '{ "Interval": "22h", "Strategy": "pinned+mfs" }'
# Keep connection manager within reasonable bounds
ipfs config --json Swarm.ConnMgr '{ "Type": "basic", "LowWater": 50, "HighWater": 200, "GracePeriod": "20s" }'
# Disable public AutoConf when running with a private swarm key
ipfs config --json AutoConf.Enabled false
# CORS for RPC API (visible only in docker network)
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT","POST","GET"]'
echo "IPFS init script applied"