ipfs v0.32
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
ARG IPFS_VERSION=0.24.0
|
ARG IPFS_VERSION=0.32.1
|
||||||
FROM ipfs/kubo:v${IPFS_VERSION} as dist
|
FROM ipfs/kubo:v${IPFS_VERSION} AS dist
|
||||||
LABEL maintainer aynic.os <support+docker@asycn.io>
|
LABEL maintainer aynic.os <support+docker@asycn.io>
|
||||||
ARG DOCKER_BUILD_DIR
|
ARG DOCKER_BUILD_DIR
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ RUN chmod +rx /container-init.d/*.sh
|
|||||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||||||
CMD ipfs --api=$(cat $IPFS_PATH/api) dag stat /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn || exit 1
|
CMD ipfs --api=$(cat $IPFS_PATH/api) dag stat /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn || exit 1
|
||||||
|
|
||||||
FROM dist as master
|
FROM dist AS master
|
||||||
ARG DOCKER_BUILD_DIR
|
ARG DOCKER_BUILD_DIR
|
||||||
ARG UID
|
ARG UID
|
||||||
ENV UID=${UID}
|
ENV UID=${UID}
|
||||||
|
|||||||
+125
-32
@@ -6,11 +6,17 @@ set -e
|
|||||||
# ipfs config --json Swarm.ResourceMgr.Enabled false
|
# ipfs config --json Swarm.ResourceMgr.Enabled false
|
||||||
# ERROR p2pnode libp2p/rcmgr_defaults.go:107 ===> OOF! go-libp2p changed DefaultServiceLimits
|
# ERROR p2pnode libp2p/rcmgr_defaults.go:107 ===> OOF! go-libp2p changed DefaultServiceLimits
|
||||||
|
|
||||||
|
# apply migration
|
||||||
|
if [ "${IPFS_REPO_MIGRATE}" = "true" ]; then ipfs repo stat >/dev/null || ipfs repo migrate; fi
|
||||||
|
|
||||||
# set ipfs peer id
|
# set ipfs peer id
|
||||||
[ -n "${IPFS_IDENTITY_PEERID}" ] && [ -n "${IPFS_IDENTITY_PRIVKEY}" ] \
|
[ -n "${IPFS_IDENTITY_PEERID}" ] && [ -n "${IPFS_IDENTITY_PRIVKEY}" ] \
|
||||||
&& sed -i 's/"PeerID":.*/"PeerID": "'"${IPFS_IDENTITY_PEERID}"'",/;s/"PrivKey":.*/"PrivKey": "'"${IPFS_IDENTITY_PRIVKEY}"'"/' "${IPFS_PATH}/config" \
|
&& sed -i 's/"PeerID":.*/"PeerID": "'"${IPFS_IDENTITY_PEERID}"'",/;s/"PrivKey":.*/"PrivKey": "'"${IPFS_IDENTITY_PRIVKEY}"'"/' "${IPFS_PATH}/config" \
|
||||||
|| true
|
|| true
|
||||||
|
|
||||||
|
# apply ipfs profile
|
||||||
|
[ -n "${IPFS_PROFILE}" ] && for profile in ${IPFS_PROFILE}; do ipfs config profile apply "${profile}"; done
|
||||||
|
|
||||||
## ipfs client needs API address
|
## ipfs client needs API address
|
||||||
# search for ip address of $(hostname).${IPFS_ADDRESSES_API_DOMAIN}
|
# search for ip address of $(hostname).${IPFS_ADDRESSES_API_DOMAIN}
|
||||||
[ -n "${IPFS_ADDRESSES_API_DOMAIN}" ] && [ -z "${IPFS_ADDRESSES_API_INET4}" ] \
|
[ -n "${IPFS_ADDRESSES_API_DOMAIN}" ] && [ -z "${IPFS_ADDRESSES_API_INET4}" ] \
|
||||||
@@ -33,6 +39,9 @@ echo "${IPFS_ADDRESSES_GATEWAY_INET4}" |awk -F. '{ for ( i=1; i<=4; i++ ) if ($i
|
|||||||
|| unset IPFS_ADDRESSES_GATEWAY_PORT
|
|| unset IPFS_ADDRESSES_GATEWAY_PORT
|
||||||
ipfs config Addresses.Gateway "${IPFS_ADDRESSES_GATEWAY:-/ip4/${IPFS_ADDRESSES_GATEWAY_INET4:-127.0.0.1}/tcp/${IPFS_ADDRESSES_GATEWAY_PORT:-8080}}"
|
ipfs config Addresses.Gateway "${IPFS_ADDRESSES_GATEWAY:-/ip4/${IPFS_ADDRESSES_GATEWAY_INET4:-127.0.0.1}/tcp/${IPFS_ADDRESSES_GATEWAY_PORT:-8080}}"
|
||||||
|
|
||||||
|
[ -n "${IPFS_ADDRESSES_SWARM}" ] && ipfs config --json Addresses.Swarm "${IPFS_ADDRESSES_SWARM}"
|
||||||
|
[ -n "${IPFS_ADDRESSES_ANNOUNCE}" ] && ipfs config --json Addresses.Announce "${IPFS_ADDRESSES_ANNOUNCE}"
|
||||||
|
[ -n "${IPFS_ADDRESSES_APPENDANNOUNCE}" ] && ipfs config --json Addresses.AppendAnnounce "${IPFS_ADDRESSES_APPENDANNOUNCE}"
|
||||||
[ -n "${IPFS_ADDRESSES_NOANNOUNCE}" ] && ipfs config --json Addresses.NoAnnounce "${IPFS_ADDRESSES_NOANNOUNCE}"
|
[ -n "${IPFS_ADDRESSES_NOANNOUNCE}" ] && ipfs config --json Addresses.NoAnnounce "${IPFS_ADDRESSES_NOANNOUNCE}"
|
||||||
|
|
||||||
## api http headers
|
## api http headers
|
||||||
@@ -44,65 +53,149 @@ ipfs config Addresses.Gateway "${IPFS_ADDRESSES_GATEWAY:-/ip4/${IPFS_ADDRESSES_G
|
|||||||
\"Access-Control-Allow-Origin\": ${IPFS_API_HTTPHEADERS_ACA_ORIGIN:-null}
|
\"Access-Control-Allow-Origin\": ${IPFS_API_HTTPHEADERS_ACA_ORIGIN:-null}
|
||||||
}}"
|
}}"
|
||||||
|
|
||||||
|
## api authorizations: "Bob": { "AuthSecret": "bearer:secret-token123", "AllowedPaths": ["/api/v0"] }
|
||||||
|
[ -n "${IPFS_API_AUTHORIZATIONS}" ] && ipfs config --json API.Authorizations "${IPFS_API_AUTHORIZATIONS}"
|
||||||
|
|
||||||
|
## autonat service
|
||||||
|
[ -n "$IPFS_AUTONAT$IPFS_AUTONAT_SERVICEMODE$IPFS_AUTONAT_THROTTLE$IPFS_AUTONAT_THROTTLE_GLOBALLIMIT$IPFS_AUTONAT_THROTTLE_PEERLIMIT$IPFS_AUTONAT_THROTTLE_INTERVAL" ] \
|
||||||
|
&& ipfs config --json AutoNAT "${IPFS_AUTONAT:-{
|
||||||
|
\"ServiceMode\": ${IPFS_AUTONAT_SERVICEMODE:-null},
|
||||||
|
\"Throttle\": ${IPFS_AUTONAT_THROTTLE:-{
|
||||||
|
\"GlobalLimit\": ${IPFS_AUTONAT_THROTTLE_GLOBALLIMIT:-null},
|
||||||
|
\"PeerLimit\": ${IPFS_AUTONAT_THROTTLE_PEERLIMIT:-null},
|
||||||
|
\"Interval\": \"${IPFS_AUTONAT_THROTTLE_INTERVAL:-null}\"
|
||||||
|
}
|
||||||
|
}}"
|
||||||
|
|
||||||
|
## auto tls
|
||||||
|
[ -n "$IPFS_AUTOTLS$IPFS_AUTOTLS_ENABLED$IPFS_AUTOTLS_DOMAINSUFFIX$IPFS_AUTOTLS_REGISTRATIONENDPOINT$IPFS_AUTOTLS_REGISTRATIONTOKEN$IPFS_AUTOTLS_CAENDPOINT" ] \
|
||||||
|
&& ipfs config --json AutoNAT "${IPFS_AUTOTLS:-{
|
||||||
|
\"Enabled\": ${IPFS_AUTOTLS_ENABLED:-null},
|
||||||
|
\"DomainSuffix\": ${IPFS_AUTOTLS_DOMAINSUFFIX:-null},
|
||||||
|
\"RegistrationEndpoint\": ${IPFS_AUTOTLS_REGISTRATIONENDPOINT:-null},
|
||||||
|
\"RegistrationToken\": ${IPFS_AUTOTLS_REGISTRATIONTOKEN:-null},
|
||||||
|
\"CAEndpoint\": ${IPFS_AUTOTLS_CAENDPOINT:-null}
|
||||||
|
}}"
|
||||||
|
|
||||||
## bootstrap
|
## bootstrap
|
||||||
[ -n "${IPFS_BOOTSTRAP}" ] && ipfs config --json Bootstrap "${IPFS_BOOTSTRAP}"
|
[ -n "${IPFS_BOOTSTRAP}" ] && ipfs config --json Bootstrap "${IPFS_BOOTSTRAP}"
|
||||||
|
|
||||||
## storage
|
## storage
|
||||||
# limit disk usage to 50 percent of disk size
|
# limit disk usage to xx/percent of disk size
|
||||||
diskSize=$(df -P ${IPFS_PATH:-~/.ipfs} | awk 'NR>1{size+=$2}END{print size}')
|
diskSize=$(df -P ${IPFS_PATH:-~/.ipfs} | awk 'NR>1{size+=$2}END{print size}')
|
||||||
ipfs config Datastore.StorageMax "$((diskSize * ${IPFS_DISK_USAGE_PERCENT:-50/100}))"
|
ipfs config Datastore.StorageMax "$((diskSize * ${IPFS_DATASTORE_DISKUSAGE:-50}/100))"
|
||||||
# garbage collector
|
# garbage collector is declenched over xx/percent of available disk used
|
||||||
|
[ -n "${IPFS_DATASTORE_STORAGEGCWATERMARK}" ] && ipfs config Datastore.StorageGCWatermark "${IPFS_DATASTORE_STORAGEGCWATERMARK}"
|
||||||
|
# automatic garbage collector run every time period
|
||||||
[ -n "${IPFS_DATASTORE_GCPERIOD}" ] && ipfs config Datastore.GCPeriod "${IPFS_DATASTORE_GCPERIOD}"
|
[ -n "${IPFS_DATASTORE_GCPERIOD}" ] && ipfs config Datastore.GCPeriod "${IPFS_DATASTORE_GCPERIOD}"
|
||||||
|
[ -n "${IPFS_DATASTORE_HASHONREAD}" ] && ipfs config --bool Datastore.HashOnRead "${IPFS_DATASTORE_HASHONREAD}"
|
||||||
|
[ -n "${IPFS_DATASTORE_BLOOMFILTERSIZE}" ] && ipfs config --json Datastore.BloomFilterSize "${IPFS_DATASTORE_BLOOMFILTERSIZE}"
|
||||||
|
[ -n "${IPFS_DATASTORE_SPEC}" ] && ipfs config --json Datastore.Spec "${IPFS_DATASTORE_SPEC}"
|
||||||
|
|
||||||
## experimental features
|
## ALLOW AUTO DISCOVERY ON DOCKER NETWORK
|
||||||
[ -n "${IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT}" ] && ipfs config --json Experimental.AcceleratedDHTClient "${IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT}"
|
[ -n "${IPFS_DISCOVERY_MDNS_ENABLED}" ] && ipfs config --bool Discovery.MDNS.Enabled "${IPFS_DISCOVERY_MDNS_ENABLED}"
|
||||||
[ -n "${IPFS_EXPERIMENTAL_FILESTOREENABLED}" ] && ipfs config --json Experimental.FilestoreEnabled "${IPFS_EXPERIMENTAL_FILESTOREENABLED}"
|
[ -n "${IPFS_DOCKER_NETWORK}" ] && ipfs config --json Addresses.NoAnnounce "$(ipfs config Addresses.NoAnnounce |sed '/"${IPFS_DOCKER_NETWORK}"/d')"
|
||||||
[ -n "${IPFS_EXPERIMENTAL_GRAPHSYNCENABLED}" ] && ipfs config --json Experimental.GraphsyncEnabled "${IPFS_EXPERIMENTAL_GRAPHSYNCENABLED}"
|
|
||||||
[ -n "${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING}" ] && ipfs config --json Experimental.Libp2pStreamMounting "${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING}"
|
|
||||||
[ -n "${IPFS_EXPERIMENTAL_P2PHTTPPROXY}" ] && ipfs config --json Experimental.P2pHttpProxy "${IPFS_EXPERIMENTAL_P2PHTTPPROXY}"
|
|
||||||
[ -n "${IPFS_EXPERIMENTAL_STRATEGICPROVIDING}" ] && ipfs config --json Experimental.StrategicProviding "${IPFS_EXPERIMENTAL_STRATEGICPROVIDING}"
|
|
||||||
[ -n "${IPFS_EXPERIMENTAL_URLSTOREENABLED}" ] && ipfs config --json Experimental.UrlstoreEnabled "${IPFS_EXPERIMENTAL_URLSTOREENABLED}"
|
|
||||||
|
|
||||||
|
## serve only local content
|
||||||
|
[ -n "${IPFS_GATEWAY_NOFETCH}" ] && ipfs config --bool Gateway.NoFetch "${IPFS_GATEWAY_NOFETCH}"
|
||||||
|
## redirect content with TXT DNS link prefix
|
||||||
|
[ -n "${IPFS_GATEWAY_NODNSLINK}" ] && ipfs config --bool Gateway.NoDNSLink "${IPFS_GATEWAY_NODNSLINK}"
|
||||||
|
## false = trustless gateway
|
||||||
|
[ -n "${IPFS_GATEWAY_DESERIALIZEDRESPONSES}" ] && ipfs config --json Gateway.DeserializedResponses "${IPFS_GATEWAY_DESERIALIZEDRESPONSES}"
|
||||||
|
## pretty html errors
|
||||||
|
[ -n "${IPFS_GATEWAY_DISABLEHTMLERRORS}" ] && ipfs config --json Gateway.DisableHTMLErrors "${IPFS_GATEWAY_DISABLEHTMLERRORS}"
|
||||||
|
## someguy
|
||||||
|
[ -n "${IPFS_GATEWAY_EXPOSEROUTINGAPI}" ] && ipfs config --json Gateway.ExposeRoutingAPI "${IPFS_GATEWAY_EXPOSEROUTINGAPI}"
|
||||||
## gateway http headers
|
## gateway http headers
|
||||||
[ -n "${IPFS_GATEWAY_HTTPHEADERS}${IPFS_GATEWAY_HTTPHEADERS_ACA_CREDENTIALS}${IPFS_GATEWAY_HTTPHEADERS_ACA_HEADERS}${IPFS_GATEWAY_HTTPHEADERS_ACA_METHODS}${IPFS_GATEWAY_HTTPHEADERS_ACA_ORIGIN}" ] \
|
[ -n "${IPFS_GATEWAY_HTTPHEADERS}${IPFS_GATEWAY_HTTPHEADERS_ACA_CREDENTIALS}${IPFS_GATEWAY_HTTPHEADERS_ACA_HEADERS}${IPFS_GATEWAY_HTTPHEADERS_ACA_METHODS}${IPFS_GATEWAY_HTTPHEADERS_ACA_ORIGIN}" ] \
|
||||||
&& ipfs config --json Gateway.HTTPHeaders "${IPFS_GATEWAY_HTTPHEADERS:-{
|
&& ipfs config --json Gateway.HTTPHeaders "${IPFS_GATEWAY_HTTPHEADERS:-{
|
||||||
\"Access-Control-Allow-Credentials\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_CREDENTIALS:-[ \"true\" ]},
|
\"Access-Control-Allow-Credentials\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_CREDENTIALS:-null},
|
||||||
\"Access-Control-Allow-Headers\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_HEADERS:-[ \"X-Requested-With\", \"Range\", \"User-Agent\" ]},
|
\"Access-Control-Allow-Headers\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_HEADERS:-null},
|
||||||
\"Access-Control-Allow-Methods\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_METHODS:-[ \"GET\" ]},
|
\"Access-Control-Allow-Methods\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_METHODS:-null},
|
||||||
\"Access-Control-Allow-Origin\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_ORIGIN:-[ \"*\" ]}
|
\"Access-Control-Allow-Origin\": ${IPFS_GATEWAY_HTTPHEADERS_ACA_ORIGIN:-null}
|
||||||
}}"
|
}}"
|
||||||
|
## redirect /
|
||||||
|
[ -n "${IPFS_GATEWAY_ROOTREDIRECT}" ] && ipfs config Gateway.RootRedirect "${IPFS_GATEWAY_ROOTREDIRECT}"
|
||||||
|
## public gateways: { "localhost": { "Paths": ["/ipfs", "/ipns"], "UseSubdomains": true } }
|
||||||
|
[ -n "${IPFS_GATEWAY_PUBLICGATEWAYS}" ] && ipfs config --json Gateway.PublicGateways "${IPFS_GATEWAY_PUBLICGATEWAYS}"
|
||||||
|
|
||||||
## ipns
|
## ipns
|
||||||
[ -n "${IPFS_IPNS_REPUBLISHPERIOD}" ] && ipfs config Ipns.RepublishPeriod "${IPFS_IPNS_REPUBLISHPERIOD}"
|
[ -n "${IPFS_IPNS_REPUBLISHPERIOD}" ] && ipfs config Ipns.RepublishPeriod "${IPFS_IPNS_REPUBLISHPERIOD}"
|
||||||
[ -n "${IPFS_IPNS_RECORDLIFETIME}" ] && ipfs config Ipns.RecordLifetime "${IPFS_IPNS_RECORDLIFETIME}"
|
[ -n "${IPFS_IPNS_RECORDLIFETIME}" ] && ipfs config Ipns.RecordLifetime "${IPFS_IPNS_RECORDLIFETIME}"
|
||||||
|
[ -n "${IPFS_IPNS_RESOLVECACHESIZE}" ] && ipfs config Ipns.ResolveCacheSize "${IPFS_IPNS_RESOLVECACHESIZE}"
|
||||||
|
[ -n "${IPFS_IPNS_MAXCACHETTL}" ] && ipfs config Ipns.MaxCacheTTL "${IPFS_IPNS_MAXCACHETTL}"
|
||||||
[ -n "${IPFS_IPNS_USEPUBSUB}" ] && ipfs config --json Ipns.UsePubsub "${IPFS_IPNS_USEPUBSUB}"
|
[ -n "${IPFS_IPNS_USEPUBSUB}" ] && ipfs config --json Ipns.UsePubsub "${IPFS_IPNS_USEPUBSUB}"
|
||||||
|
|
||||||
## dht pubsub mode
|
## pinning
|
||||||
[ -n "${IPFS_PUBSUB_ENABLE}" ] && ipfs config --json Pubsub.Enabled "${IPFS_PUBSUB_ENABLE}"
|
[ -n "${IPFS_PINNING_REMOTESERVICES}" ] && ipfs config --json Pinning.RemoteServices "${IPFS_PINNING_REMOTESERVICES}"
|
||||||
[ -n "${IPFS_PUBSUB_ROUTER}" ] && ipfs config Pubsub.Router "${IPFS_PUBSUB_ROUTER}"
|
|
||||||
|
|
||||||
## routing
|
## peering :)
|
||||||
[ -n "${IPFS_ROUTING_TYPE}" ] && ipfs config Routing.Type "${IPFS_ROUTING_TYPE}"
|
[ -n "${IPFS_PEERING_PEERS}" ] && ipfs config --json Peering.Peers "${IPFS_PEERING_PEERS}"
|
||||||
|
|
||||||
## reproviding local content to routing system
|
## reproviding local content to routing system
|
||||||
[ -n "${IPFS_REPROVIDER_INTERVAL}" ] && ipfs config Reprovider.Interval "${IPFS_REPROVIDER_INTERVAL}"
|
[ -n "${IPFS_REPROVIDER_INTERVAL}" ] && ipfs config Reprovider.Interval "${IPFS_REPROVIDER_INTERVAL}"
|
||||||
[ -n "${IPFS_REPROVIDER_STRATEGY}" ] && ipfs config Reprovider.Strategy "${IPFS_REPROVIDER_STRATEGY}"
|
[ -n "${IPFS_REPROVIDER_STRATEGY}" ] && ipfs config Reprovider.Strategy "${IPFS_REPROVIDER_STRATEGY}"
|
||||||
|
|
||||||
|
## routing
|
||||||
|
[ -n "${IPFS_ROUTING_TYPE}" ] && ipfs config --json Routing.Type "${IPFS_ROUTING_TYPE}"
|
||||||
|
[ -n "${IPFS_ROUTING_ACCELERATEDDHTCLIENT}" ] && ipfs config --json Routing.AcceleratedDHTClient "${IPFS_ROUTING_ACCELERATEDDHTCLIENT}"
|
||||||
|
[ -n "${IPFS_ROUTING_LOOPBACKADDRESSESONLANDHT}" ] && ipfs config --bool Routing.LoopbackAddressesOnLanDHT "${IPFS_ROUTING_LOOPBACKADDRESSESONLANDHT}"
|
||||||
|
[ -n "${IPFS_ROUTING_METHODS}" ] && ipfs config --json Routing.Methods "${IPFS_ROUTING_METHODS}"
|
||||||
|
[ -n "${IPFS_ROUTING_ROUTERS}" ] && ipfs config --json Routing.Routers "${IPFS_ROUTING_ROUTERS}"
|
||||||
|
|
||||||
## swarm config
|
## swarm config
|
||||||
[ -n "${IPFS_SWARM_CONNMGR_HIGHWATER}" ] && ipfs config --json Swarm.ConnMgr.HighWater "${IPFS_SWARM_CONNMGR_HIGHWATER}"
|
[ -n "${IPFS_SWARM_ADDRFILTERS}" ] && ipfs config --json Swarm.AddrFilters "${IPFS_SWARM_ADDRFILTERS}"
|
||||||
[ -n "${IPFS_SWARM_CONNMGR_LOWWATER}" ] && ipfs config --json Swarm.ConnMgr.LowWater "${IPFS_SWARM_CONNMGR_LOWWATER}"
|
[ -n "${IPFS_DOCKER_NETWORK}" ] && ipfs config --json Swarm.AddrFilters "$(ipfs config Swarm.AddrFilters |sed '/${IPFS_DOCKER_NETWORK}"/d')"
|
||||||
[ -n "${IPFS_SWARM_CONNMGR_TYPE}" ] && ipfs config --json Swarm.ConnMgr.Type "${IPFS_SWARM_CONNMGR_TYPE}"
|
[ -n "${IPFS_SWARM_DISABLEBANDWIDTHMETRICS}" ] && ipfs config --bool Swarm.DisableBandwidthMetrics "${SWARM_DISABLEBANDWIDTHMETRICS}"
|
||||||
[ -n "${IPFS_SWARM_DISABLENATPORTMAP}" ] && ipfs config --bool Swarm.DisableNatPortMap "${SWARM_DISABLENATPORTMAP}"
|
[ -n "${IPFS_SWARM_DISABLENATPORTMAP}" ] && ipfs config --bool Swarm.DisableNatPortMap "${SWARM_DISABLENATPORTMAP}"
|
||||||
[ -n "${IPFS_SWARM_ENABLEHOLEPUNCHING}" ] && ipfs config --bool Swarm.EnableHolePunching "${SWARM_ENABLEHOLEPUNCHING}"
|
[ -n "${IPFS_SWARM_ENABLEHOLEPUNCHING}" ] && ipfs config --json Swarm.EnableHolePunching "${SWARM_ENABLEHOLEPUNCHING}"
|
||||||
[ -n "${IPFS_SWARM_RELAYCLIENT_ENABLED}" ] && ipfs config --bool Swarm.RelayClient.Enabled "${SWARM_RELAYCLIENT_ENABLED}"
|
[ -n "${IPFS_SWARM_RELAYCLIENT_ENABLED}" ] && ipfs config --json Swarm.RelayClient.Enabled "${SWARM_RELAYCLIENT_ENABLED}"
|
||||||
[ -n "${IPFS_SWARM_RELAYSERVICE_ENABLED}" ] && ipfs config --bool Swarm.RelayService.Enabled "${SWARM_RELAYSERVICE_ENABLED}"
|
[ -n "${IPFS_SWARM_RELAYCLIENT_STATICRELAYS}" ] && ipfs config --json Swarm.RelayClient.StaticRelays "${SWARM_RELAYCLIENT_STATICRELAYS}"
|
||||||
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_RELAY}" ] && ipfs config --bool Swarm.Transports.Network.Relay "${SWARM_TRANSPORTS_NETWORK_RELAY}"
|
[ -n "${IPFS_SWARM_RELAYSERVICE_ENABLED}" ] && ipfs config --json Swarm.RelayService.Enabled "${SWARM_RELAYSERVICE_ENABLED}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_LIMIT}" ] && ipfs config --json Swarm.RelayService.Limit "${SWARM_RELAYSERVICE_LIMIT}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_CONNECTIONDURATIONLIMIT}" ] && ipfs config Swarm.RelayService.ConnectionDurationLimit "${SWARM_RELAYSERVICE_CONNECTIONDURATIONLIMIT}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_CONNECTIONDATALIMIT}" ] && ipfs config Swarm.RelayService.ConnectionDataLimit "${SWARM_RELAYSERVICE_CONNECTIONDATALIMIT}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_RESERVATIONTTL}" ] && ipfs config Swarm.RelayService.ConnectionDataLimit "${SWARM_RELAYSERVICE_RESERVATIONTTL}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONS}" ] && ipfs config Swarm.RelayService.MaxReservations "${SWARM_RELAYSERVICE_MAXRESERVATIONS}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_MAXCIRCUITS}" ] && ipfs config Swarm.RelayService.MaxCircuits "${SWARM_RELAYSERVICE_MAXCIRCUITS}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_BUFFERSIZE}" ] && ipfs config Swarm.RelayService.BufferSize "${SWARM_RELAYSERVICE_BUFFERSIZE}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONSPERASN}" ] && ipfs config Swarm.RelayService.MaxReservationsPerASN "${SWARM_RELAYSERVICE_MAXRESERVATIONSPERASN}"
|
||||||
|
[ -n "${IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONSPERIP}" ] && ipfs config Swarm.RelayService.MaxReservationsPerIp "${SWARM_RELAYSERVICE_MAXRESERVATIONSPERIP}"
|
||||||
|
[ -n "${IPFS_SWARM_CONNMGR_TYPE}" ] && ipfs config Swarm.ConnMgr.Type "${IPFS_SWARM_CONNMGR_TYPE}"
|
||||||
|
[ -n "${IPFS_SWARM_CONNMGR_HIGHWATER}" ] && ipfs config Swarm.ConnMgr.HighWater "${IPFS_SWARM_CONNMGR_HIGHWATER}"
|
||||||
|
[ -n "${IPFS_SWARM_CONNMGR_LOWWATER}" ] && ipfs config Swarm.ConnMgr.LowWater "${IPFS_SWARM_CONNMGR_LOWWATER}"
|
||||||
|
[ -n "${IPFS_SWARM_CONNMGR_GRACEPERIOD}" ] && ipfs config Swarm.ConnMgr.GracePeriod "${IPFS_SWARM_CONNMGR_GRACEPERIOD}"
|
||||||
|
[ -n "${IPFS_SWARM_RESOURCEMGR_ENABLED}" ] && ipfs config --json Swarm.ResourceMgr.Enabled "${IPFS_SWARM_RESOURCEMGR_ENABLED}"
|
||||||
|
[ -n "${IPFS_SWARM_RESOURCEMGR_MAXMEMORY}" ] && ipfs config Swarm.ResourceMgr.MaxMemory "${IPFS_SWARM_RESOURCEMGR_MAXMEMORY}"
|
||||||
|
[ -n "${IPFS_SWARM_RESOURCEMGR_MAXFILEDESCRIPTORS}" ] && ipfs config Swarm.ResourceMgr.MaxFileDescriptors "${IPFS_SWARM_RESOURCEMGR_MAXFILEDESCRIPTORS}"
|
||||||
|
[ -n "${IPFS_SWARM_RESOURCEMGR_ALLOWLIST}" ] && ipfs config --json Swarm.ResourceMgr.Allowlist "${IPFS_SWARM_RESOURCEMGR_ALLOWLIST}"
|
||||||
|
|
||||||
|
## swarm transports
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_TCP}" ] && ipfs config --json Swarm.Transports.Network.TCP "${SWARM_TRANSPORTS_NETWORK_TCP}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_WEBSOCKET}" ] && ipfs config --json Swarm.Transports.Network.Websocket "${SWARM_TRANSPORTS_NETWORK_WEBSOCKET}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_QUIC}" ] && ipfs config --json Swarm.Transports.Network.QUIC "${SWARM_TRANSPORTS_NETWORK_QUIC}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_RELAY}" ] && ipfs config --json Swarm.Transports.Network.Relay "${SWARM_TRANSPORTS_NETWORK_RELAY}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_WEBTRANSPORT}" ] && ipfs config --json Swarm.Transports.Network.WebTransport "${SWARM_TRANSPORTS_NETWORK_WEBTRANSPORT}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_WEBRTCDIRECT}" ] && ipfs config --json Swarm.Transports.Network.WebRTCDirect "${SWARM_TRANSPORTS_NETWORK_WEBRTCDIRECT}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_NETWORK_WEBRTCDIRECT}" ] && ipfs config --json Swarm.Transports.Network.WebRTCDirect "${SWARM_TRANSPORTS_NETWORK_WEBRTCDIRECT}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_SECURITY_TLS}" ] && ipfs config Swarm.Transports.Security.TLS "${SWARM_TRANSPORTS_SECURITY_TLS}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_SECURITY_NOISE}" ] && ipfs config Swarm.Transports.Security.Noise "${SWARM_TRANSPORTS_SECURITY_NOISE}"
|
||||||
|
[ -n "${IPFS_SWARM_TRANSPORTS_MULTIPLEXERS_YAMUX}" ] && ipfs config Swarm.Transports.Multiplexers.Yamux "${SWARM_TRANSPORTS_MULTIPLEXERS_YAMUX}"
|
||||||
|
|
||||||
|
## dns
|
||||||
|
[ -n "${IPFS_DNS_RESOLVERS}" ] && ipfs config --json DNS.Resolvers "${IPFS_DNS_RESOLVERS}"
|
||||||
|
[ -n "${IPFS_DNS_MAXCACHETTL}" ] && ipfs config DNS.MaxCacheTTL "${IPFS_DNS_MAXCACHETTL}"
|
||||||
|
|
||||||
|
## experimental features
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_FILESTOREENABLED}" ] && ipfs config --json Experimental.FilestoreEnabled "${IPFS_EXPERIMENTAL_FILESTOREENABLED}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_URLSTOREENABLED}" ] && ipfs config --json Experimental.UrlstoreEnabled "${IPFS_EXPERIMENTAL_URLSTOREENABLED}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_URLSTORE}" ] && ipfs urlstore add "${IPFS_EXPERIMENTAL_URLSTORE}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING}" ] && ipfs config --json Experimental.Libp2pStreamMounting "${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_P2PHTTPPROXY}" ] && ipfs config --json Experimental.P2pHttpProxy "${IPFS_EXPERIMENTAL_P2PHTTPPROXY}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_STRATEGICPROVIDING}" ] && ipfs config --json Experimental.StrategicProviding "${IPFS_EXPERIMENTAL_STRATEGICPROVIDING}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_OPTIMISTICPROVIDE}" ] && ipfs config --json Experimental.OptimisticProvide "${IPFS_EXPERIMENTAL_OPTIMISTICPROVIDE}"
|
||||||
|
[ -n "${IPFS_EXPERIMENTAL_GATEWAYOVERLIBP2P}" ] && ipfs config --json Experimental.GatewayOverLibp2p "${IPFS_EXPERIMENTAL_GATEWAYOVERLIBP2P}"
|
||||||
|
|
||||||
## REMOVE IPFS BOOTSTRAP for private usage
|
## REMOVE IPFS BOOTSTRAP for private usage
|
||||||
[ ${IPFS_NETWORK:-public} = "public" ] || ipfs bootstrap rm --all
|
[ ${IPFS_NETWORK:-public} = "public" ] || ipfs bootstrap rm --all
|
||||||
[ ${IPFS_NETWORK:-public} = "private" ] && export LIBP2P_FORCE_PNET=1 ||:
|
[ ${IPFS_NETWORK:-public} = "private" ] && export LIBP2P_FORCE_PNET=1 ||:
|
||||||
|
|
||||||
## ALLOW AUTO DISCOVERY ON DOCKER NETWORK
|
|
||||||
ipfs config --bool Discovery.MDNS.Enabled true
|
|
||||||
ipfs config --json Addresses.NoAnnounce "$(ipfs config Addresses.NoAnnounce |sed '/172.16.0.0/d')"
|
|
||||||
ipfs config --json Swarm.AddrFilters "$(ipfs config Swarm.AddrFilters |sed '/172.16.0.0/d')"
|
|
||||||
|
|||||||
+4
-2
@@ -1,13 +1,15 @@
|
|||||||
ENV_VARS += IPFS_API_HTTPHEADERS_ACA_ORIGIN IPFS_DAEMON_ARGS IPFS_PROFILE IPFS_SERVICE_5001_TAGS IPFS_SERVICE_8080_TAGS IPFS_VERSION
|
ENV_VARS += IPFS_API_HTTPHEADERS_ACA_ORIGIN IPFS_DAEMON_ARGS IPFS_DATASTORE_DISKUSAGE IPFS_PROFILE IPFS_SERVICE_CPUS IPFS_SERVICE_5001_TAGS IPFS_SERVICE_8080_TAGS IPFS_VERSION
|
||||||
IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(patsubst,%/,%,$(IPFS_SERVICE_8080_URIS)))]
|
IPFS_API_HTTPHEADERS_ACA_ORIGIN ?= [$(call patsublist,%,"https://%",$(patsubst,%/,%,$(IPFS_SERVICE_8080_URIS)))]
|
||||||
|
IPFS_DATASTORE_DISKUSAGE ?= 80
|
||||||
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(MACHINE)),lowpower,server)
|
IPFS_PROFILE ?= $(if $(filter-out amd64 x86_64,$(MACHINE)),lowpower,server)
|
||||||
IPFS_SERVICE_NAME ?= ipfs
|
IPFS_SERVICE_NAME ?= ipfs
|
||||||
|
IPFS_SERVICE_CPUS ?= 0.5
|
||||||
IPFS_SERVICE_5001_PATH ?= api/
|
IPFS_SERVICE_5001_PATH ?= api/
|
||||||
IPFS_SERVICE_5001_TAGS ?= $(call tagprefix,ipfs,5001)
|
IPFS_SERVICE_5001_TAGS ?= $(call tagprefix,ipfs,5001)
|
||||||
IPFS_SERVICE_8080_CHECK_HTTP ?= /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
|
IPFS_SERVICE_8080_CHECK_HTTP ?= /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
|
||||||
IPFS_SERVICE_8080_TAGS ?= $(call urlprefix,,,$(IPFS_SERVICE_8080_URIS))
|
IPFS_SERVICE_8080_TAGS ?= $(call urlprefix,,,$(IPFS_SERVICE_8080_URIS))
|
||||||
IPFS_SERVICE_8080_URIS ?= $(call uriprefix,ipfs *.ipns)
|
IPFS_SERVICE_8080_URIS ?= $(call uriprefix,ipfs *.ipns)
|
||||||
IPFS_VERSION ?= 0.24.0
|
IPFS_VERSION ?= 0.32.1
|
||||||
|
|
||||||
.PHONY: bootstrap-stack-ipfs
|
.PHONY: bootstrap-stack-ipfs
|
||||||
bootstrap-stack-ipfs: ~/.ipfs setup-sysctl
|
bootstrap-stack-ipfs: ~/.ipfs setup-sysctl
|
||||||
|
|||||||
+77
-10
@@ -12,52 +12,119 @@ services:
|
|||||||
command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} ${IPFS_DAEMON_ARGS:---migrate}
|
command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} ${IPFS_DAEMON_ARGS:---migrate}
|
||||||
cpus: 0.5
|
cpus: 0.5
|
||||||
environment:
|
environment:
|
||||||
|
- DEBUG=${DEBUG:-}
|
||||||
|
- IPFS_ADDRESSES_ANNOUNCE=${IPFS_ADDRESSES_ANNOUNCE:-}
|
||||||
- IPFS_ADDRESSES_API=${IPFS_ADDRESSES_API:-}
|
- IPFS_ADDRESSES_API=${IPFS_ADDRESSES_API:-}
|
||||||
- IPFS_ADDRESSES_API_DOMAIN=${IPFS_ADDRESSES_API_DOMAIN:-${DOCKER_NETWORK_PRIVATE}}
|
- IPFS_ADDRESSES_API_DOMAIN=${IPFS_ADDRESSES_API_DOMAIN:-${DOCKER_NETWORK_PRIVATE}}
|
||||||
- IPFS_ADDRESSES_API_INET4=${IPFS_ADDRESSES_API_INET4:-}
|
- IPFS_ADDRESSES_API_INET4=${IPFS_ADDRESSES_API_INET4:-}
|
||||||
- IPFS_ADDRESSES_API_PORT=${IPFS_ADDRESSES_API_PORT:-}
|
- IPFS_ADDRESSES_API_PORT=${IPFS_ADDRESSES_API_PORT:-}
|
||||||
|
- IPFS_ADDRESSES_APPENDANNOUNCE=${IPFS_ADDRESSES_APPENDANNOUNCE:-}
|
||||||
- IPFS_ADDRESSES_GATEWAY=${IPFS_ADDRESSES_GATEWAY:-}
|
- IPFS_ADDRESSES_GATEWAY=${IPFS_ADDRESSES_GATEWAY:-}
|
||||||
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
|
- IPFS_ADDRESSES_GATEWAY_DOMAIN=${IPFS_ADDRESSES_GATEWAY_DOMAIN:-}
|
||||||
- IPFS_ADDRESSES_GATEWAY_INET4=${IPFS_ADDRESSES_GATEWAY_INET4:-0.0.0.0}
|
- IPFS_ADDRESSES_GATEWAY_INET4=${IPFS_ADDRESSES_GATEWAY_INET4:-0.0.0.0}
|
||||||
- IPFS_ADDRESSES_GATEWAY_PORT=${IPFS_ADDRESSES_GATEWAY_PORT:-}
|
- IPFS_ADDRESSES_GATEWAY_PORT=${IPFS_ADDRESSES_GATEWAY_PORT:-}
|
||||||
- IPFS_ADDRESSES_NOANNOUNCE=${IPFS_ADDRESSES_NOANNOUNCE:-}
|
- IPFS_ADDRESSES_NOANNOUNCE=${IPFS_ADDRESSES_NOANNOUNCE:-}
|
||||||
|
- IPFS_ADDRESSES_SWARM=${IPFS_ADDRESSES_SWARM:-}
|
||||||
- IPFS_API_HTTPHEADERS=${IPFS_API_HTTPHEADERS:-}
|
- IPFS_API_HTTPHEADERS=${IPFS_API_HTTPHEADERS:-}
|
||||||
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-["true"]}
|
- IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-["true"]}
|
||||||
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${IPFS_API_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]}
|
- IPFS_API_HTTPHEADERS_ACA_HEADERS=${IPFS_API_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]}
|
||||||
- IPFS_API_HTTPHEADERS_ACA_METHODS=${IPFS_API_HTTPHEADERS_ACA_METHODS:-["OPTIONS", "POST"]}
|
- IPFS_API_HTTPHEADERS_ACA_METHODS=${IPFS_API_HTTPHEADERS_ACA_METHODS:-["OPTIONS", "POST"]}
|
||||||
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
|
- IPFS_API_HTTPHEADERS_ACA_ORIGIN=${IPFS_API_HTTPHEADERS_ACA_ORIGIN:-}
|
||||||
|
- IPFS_AUTONAT=${IPFS_AUTONAT:-}
|
||||||
|
- IPFS_AUTONAT_SERVICEMODE=${IPFS_AUTONAT_SERVICEMODE:-}
|
||||||
|
- IPFS_AUTONAT_THROTTLE=${IPFS_AUTONAT_THROTTLE:-}
|
||||||
|
- IPFS_AUTONAT_THROTTLE_GLOBALLIMIT=${IPFS_AUTONAT_THROTTLE_GLOBALLIMIT:-}
|
||||||
|
- IPFS_AUTONAT_THROTTLE_PEERLIMIT=${IPFS_AUTONAT_THROTTLE_PEERLIMIT:-}
|
||||||
|
- IPFS_AUTONAT_THROTTLE_INTERVAL=${IPFS_AUTONAT_THROTTLE_INTERVAL:-}
|
||||||
|
- IPFS_AUTOTLS=${IPFS_AUTOTLS:-}
|
||||||
|
- IPFS_AUTOTLS_ENABLED=${IPFS_AUTOTLS_ENABLED:-false}
|
||||||
|
- IPFS_AUTOTLS_DOMAINSUFFIX=${IPFS_AUTOTLS_DOMAINSUFFIX:-}
|
||||||
|
- IPFS_AUTOTLS_REGISTRATIONENDPOINT=${IPFS_AUTOTLS_REGISTRATIONENDPOINT:-}
|
||||||
|
- IPFS_AUTOTLS_REGISTRATIONTOKEN=${IPFS_AUTOTLS_REGISTRATIONTOKEN:-}
|
||||||
|
- IPFS_AUTOTLS_CAENDPOINT=${IPFS_AUTOTLS_CAENDPOINT:-}
|
||||||
- IPFS_BOOTSTRAP=${IPFS_BOOTSTRAP:-}
|
- IPFS_BOOTSTRAP=${IPFS_BOOTSTRAP:-}
|
||||||
- IPFS_DATASTORE_GCPERIOD=${IPFS_DATASTORE_GCPERIOD:-}
|
- IPFS_DATASTORE_BLOOMFILTERSIZE=${IPFS_DATASTORE_BLOOMFILTERSIZE:-}
|
||||||
- IPFS_DISK_USAGE_PERCENT=${IPFS_DISK_USAGE_PERCENT:-}
|
- IPFS_DATASTORE_DISKUSAGE=${IPFS_DATASTORE_DISKUSAGE:-50}
|
||||||
- IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT:-}
|
- IPFS_DATASTORE_GCPERIOD=${IPFS_DATASTORE_GCPERIOD:-1h}
|
||||||
|
- IPFS_DATASTORE_HASHONREAD=${IPFS_DATASTORE_HASHONREAD:-false}
|
||||||
|
- IPFS_DATASTORE_SPEC=${IPFS_DATASTORE_SPEC:-}
|
||||||
|
- IPFS_DATASTORE_STORAGEGCWATERMARK=${IPFS_DATASTORE_STORAGEGCWATERMARK:-}
|
||||||
|
- IPFS_DISCOVERY_MDNS_ENABLED=${IPFS_DISCOVERY_MDNS_ENABLED:-true}
|
||||||
|
- IPFS_DNS_RESOLVERS=${IPFS_DNS_RESOLVERS:-}
|
||||||
|
- IPFS_DNS_MAXCACHETTL=${IPFS_DNS_MAXCACHETTL:-}
|
||||||
|
- IPFS_DOCKER_NETWORK=${IPFS_DOCKER_NETWORK:-172.16.0.0}
|
||||||
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${IPFS_EXPERIMENTAL_FILESTOREENABLED:-}
|
- IPFS_EXPERIMENTAL_FILESTOREENABLED=${IPFS_EXPERIMENTAL_FILESTOREENABLED:-}
|
||||||
- IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${IPFS_EXPERIMENTAL_GRAPHSYNCENABLED:-}
|
- IPFS_EXPERIMENTAL_GATEWAYOVERLIBP2P=${IPFS_EXPERIMENTAL_GATEWAYOVERLIBP2P:-true}
|
||||||
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING:-}
|
- IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING:-true}
|
||||||
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${IPFS_EXPERIMENTAL_P2PHTTPPROXY:-}
|
- IPFS_EXPERIMENTAL_OPTIMISTICPROVIDE=${IPFS_EXPERIMENTAL_OPTIMISTICPROVIDE:-}
|
||||||
|
- IPFS_EXPERIMENTAL_P2PHTTPPROXY=${IPFS_EXPERIMENTAL_P2PHTTPPROXY:-true}
|
||||||
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
|
- IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-}
|
||||||
|
- IPFS_EXPERIMENTAL_URLSTORE=${IPFS_EXPERIMENTAL_URLSTORE:-}
|
||||||
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
|
- IPFS_EXPERIMENTAL_URLSTOREENABLED=${IPFS_EXPERIMENTAL_URLSTOREENABLED:-}
|
||||||
|
- IPFS_GATEWAY_DESERIALIZEDRESPONSES=${IPFS_GATEWAY_DESERIALIZEDRESPONSES:-true}
|
||||||
|
- IPFS_GATEWAY_DISABLEHTMLERRORS=${IPFS_GATEWAY_DISABLEHTMLERRORS:-false}
|
||||||
|
- IPFS_GATEWAY_EXPOSEROUTINGAPI=${IPFS_GATEWAY_EXPOSEROUTINGAPI:-false}
|
||||||
|
- IPFS_GATEWAY_HTTPHEADERS=${IPFS_GATEWAY_HTTPHEADERS:-}
|
||||||
|
- IPFS_GATEWAY_HTTPHEADERS_ACA_CREDENTIALS=${IPFS_GATEWAY_HTTPHEADERS_ACA_CREDENTIALS:-["true"]}
|
||||||
|
- IPFS_GATEWAY_HTTPHEADERS_ACA_HEADERS=${IPFS_GATEWAY_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]}
|
||||||
|
- IPFS_GATEWAY_HTTPHEADERS_ACA_METHODS=${IPFS_GATEWAY_HTTPHEADERS_ACA_METHODS:-["GET"]}
|
||||||
|
- IPFS_GATEWAY_HTTPHEADERS_ACA_ORIGIN=${IPFS_GATEWAY_HTTPHEADERS_ACA_ORIGIN:-["*"]}
|
||||||
|
- IPFS_GATEWAY_NOFETCH=${IPFS_GATEWAY_NOFETCH:-false}
|
||||||
|
- IPFS_GATEWAY_NODNSLINK=${IPFS_GATEWAY_NODNSLINK:-false}
|
||||||
|
- IPFS_GATEWAY_PUBLICGATEWAYS=${IPFS_GATEWAY_PUBLICGATEWAYS:-}
|
||||||
- IPFS_IDENTITY_PEERID=${IPFS_IDENTITY_PEERID:-}
|
- IPFS_IDENTITY_PEERID=${IPFS_IDENTITY_PEERID:-}
|
||||||
- IPFS_IDENTITY_PRIVKEY=${IPFS_IDENTITY_PRIVKEY:-}
|
- IPFS_IDENTITY_PRIVKEY=${IPFS_IDENTITY_PRIVKEY:-}
|
||||||
|
- IPFS_IPNS_MAXCACHETTL=${IPFS_IPNS_MAXCACHETTL:-}
|
||||||
- IPFS_IPNS_REPUBLISHPERIOD=${IPFS_IPNS_REPUBLISHPERIOD:-}
|
- IPFS_IPNS_REPUBLISHPERIOD=${IPFS_IPNS_REPUBLISHPERIOD:-}
|
||||||
- IPFS_IPNS_RECORDLIFETIME=${IPFS_IPNS_RECORDLIFETIME:-}
|
- IPFS_IPNS_RECORDLIFETIME=${IPFS_IPNS_RECORDLIFETIME:-}
|
||||||
|
- IPFS_IPNS_RESOLVECACHESIZE=${IPFS_IPNS_RESOLVECACHESIZE:-}
|
||||||
- IPFS_IPNS_USEPUBSUB=${IPFS_IPNS_USEPUBSUB:-true}
|
- IPFS_IPNS_USEPUBSUB=${IPFS_IPNS_USEPUBSUB:-true}
|
||||||
- IPFS_LOGGING=${IPFS_LOGGING:-error}
|
- IPFS_LOGGING=${IPFS_LOGGING:-error}
|
||||||
- IPFS_NETWORK=${IPFS_NETWORK:-private}
|
- IPFS_NETWORK=${IPFS_NETWORK:-private}
|
||||||
|
- IPFS_PEERING_PEERS=${IPFS_PEERING_PEERS:-}
|
||||||
|
- IPFS_PINNING_REMOTESERVICES=${IPFS_PINNING_REMOTESERVICES:-}
|
||||||
- IPFS_PROFILE=${IPFS_PROFILE:-}
|
- IPFS_PROFILE=${IPFS_PROFILE:-}
|
||||||
- IPFS_PUBSUB_ENABLE=${IPFS_PUBSUB_ENABLE:-true}
|
- IPFS_REPO_MIGRATE=${IPFS_REPO_MIGRATE:-true}
|
||||||
- IPFS_PUBSUB_ROUTER=${IPFS_PUBSUB_ROUTER:-gossipsub}
|
|
||||||
- IPFS_ROUTING_TYPE=${IPFS_ROUTING_TYPE:-dht}
|
|
||||||
- IPFS_REPROVIDER_INTERVAL=${IPFS_REPROVIDER_INTERVAL:-}
|
- IPFS_REPROVIDER_INTERVAL=${IPFS_REPROVIDER_INTERVAL:-}
|
||||||
- IPFS_REPROVIDER_STRATEGY=${IPFS_REPROVIDER_STRATEGY:-}
|
- IPFS_REPROVIDER_STRATEGY=${IPFS_REPROVIDER_STRATEGY:-}
|
||||||
|
- IPFS_ROUTING_ACCELERATEDDHTCLIENT=${IPFS_ROUTING_ACCELERATEDDHTCLIENT:-true}
|
||||||
|
- IPFS_ROUTING_LOOPBACKADDRESSESONLANDHT=${IPFS_ROUTING_LOOPBACKADDRESSESONLANDHT:-}
|
||||||
|
- IPFS_ROUTING_METHODS=${IPFS_ROUTING_METHODS:-}
|
||||||
|
- IPFS_ROUTING_ROUTERS=${IPFS_ROUTING_ROUTERS:-}
|
||||||
|
- IPFS_ROUTING_TYPE=${IPFS_ROUTING_TYPE:-"dht"}
|
||||||
|
- IPFS_SWARM_ADDRFILTERS=${IPFS_SWARM_ADDRFILTERS:-}
|
||||||
|
- IPFS_SWARM_CONNMGR_GRACEPERIOD=${IPFS_SWARM_CONNMGR_GRACEPERIOD:-}
|
||||||
- IPFS_SWARM_CONNMGR_HIGHWATER=${IPFS_SWARM_CONNMGR_HIGHWATER:-}
|
- IPFS_SWARM_CONNMGR_HIGHWATER=${IPFS_SWARM_CONNMGR_HIGHWATER:-}
|
||||||
- IPFS_SWARM_CONNMGR_LOWWATER=${IPFS_SWARM_CONNMGR_LOWWATER:-}
|
- IPFS_SWARM_CONNMGR_LOWWATER=${IPFS_SWARM_CONNMGR_LOWWATER:-}
|
||||||
- IPFS_SWARM_CONNMGR_TYPE=${IPFS_SWARM_CONNMGR_TYPE:-}
|
- IPFS_SWARM_CONNMGR_TYPE=${IPFS_SWARM_CONNMGR_TYPE:-}
|
||||||
- IPFS_SWARM_DISABLENATPORTMAP=${IPFS_SWARM_DISABLENATPORTMAP:-}
|
- IPFS_SWARM_DISABLENATPORTMAP=${IPFS_SWARM_DISABLENATPORTMAP:-}
|
||||||
|
- IPFS_SWARM_DISABLEBANDWIDTHMETRICS=${IPFS_SWARM_DISABLEBANDWIDTHMETRICS:-}
|
||||||
- IPFS_SWARM_ENABLEHOLEPUNCHING=${IPFS_SWARM_ENABLEHOLEPUNCHING:-}
|
- IPFS_SWARM_ENABLEHOLEPUNCHING=${IPFS_SWARM_ENABLEHOLEPUNCHING:-}
|
||||||
- IPFS_SWARM_KEY=${IPFS_SWARM_KEY:-}
|
- IPFS_SWARM_KEY=${IPFS_SWARM_KEY:-}
|
||||||
- IPFS_SWARM_RELAYCLIENT_ENABLED=${IPFS_SWARM_RELAYCLIENT_ENABLED:-}
|
- IPFS_SWARM_RELAYCLIENT_ENABLED=${IPFS_SWARM_RELAYCLIENT_ENABLED:-}
|
||||||
- IPFS_SWARM_RELAYSERVICE_ENABLED=${IPFS_SWARM_RELAYSERVICE_ENABLED:-}
|
- IPFS_SWARM_RELAYCLIENT_STATICRELAYS=${IPFS_SWARM_RELAYCLIENT_STATICRELAYS:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_CONNECTIONDATALIMIT=${IPFS_SWARM_RELAYSERVICE_CONNECTIONDATALIMIT:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_CONNECTIONDURATIONLIMIT=${IPFS_SWARM_RELAYSERVICE_CONNECTIONDURATIONLIMIT:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_LIMIT=${IPFS_SWARM_RELAYSERVICE_LIMIT:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_MAXCIRCUITS=${IPFS_SWARM_RELAYSERVICE_MAXCIRCUITS:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONS=${IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONS:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_RESERVATIONTTL=${IPFS_SWARM_RELAYSERVICE_RESERVATIONTTL:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_BUFFERSIZE=${IPFS_SWARM_RELAYSERVICE_BUFFERSIZE:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONSPERASN=${IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONSPERASN:-}
|
||||||
|
- IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONSPERIP=${IPFS_SWARM_RELAYSERVICE_MAXRESERVATIONSPERIP:-}
|
||||||
|
- IPFS_SWARM_RESOURCEMGR_ALLOWLIST=${IPFS_SWARM_RESOURCEMGR_ALLOWLIST:-}
|
||||||
|
- IPFS_SWARM_RESOURCEMGR_ENABLED=${IPFS_SWARM_RESOURCEMGR_ENABLED:-}
|
||||||
|
- IPFS_SWARM_RESOURCEMGR_MAXFILEDESCRIPTORS=${IPFS_SWARM_RESOURCEMGR_MAXFILEDESCRIPTORS:-}
|
||||||
|
- IPFS_SWARM_RESOURCEMGR_MAXMEMORY=${IPFS_SWARM_RESOURCEMGR_MAXMEMORY:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_NETWORK_QUIC=${IPFS_SWARM_TRANSPORTS_NETWORK_QUIC:-}
|
||||||
- IPFS_SWARM_TRANSPORTS_NETWORK_RELAY=${IPFS_SWARM_TRANSPORTS_NETWORK_RELAY:-}
|
- IPFS_SWARM_TRANSPORTS_NETWORK_RELAY=${IPFS_SWARM_TRANSPORTS_NETWORK_RELAY:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_NETWORK_TCP=${IPFS_SWARM_TRANSPORTS_NETWORK_TCP:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_NETWORK_WEBRTCDIRECT=${IPFS_SWARM_TRANSPORTS_NETWORK_WEBRTCDIRECT:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_NETWORK_WEBSOCKET=${IPFS_SWARM_TRANSPORTS_NETWORK_WEBSOCKET:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_NETWORK_WEBTRANSPORT=${IPFS_SWARM_TRANSPORTS_NETWORK_WEBTRANSPORT:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_SECURITY_NOISE=${IPFS_SWARM_TRANSPORTS_SECURITY_NOISE:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_SECURITY_TLS=${IPFS_SWARM_TRANSPORTS_SECURITY_TLS:-}
|
||||||
|
- IPFS_SWARM_TRANSPORTS_MULTIPLEXERS_YAMUX=${IPFS_SWARM_TRANSPORTS_MULTIPLEXERS_YAMUX:-}
|
||||||
image: ${DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG}
|
image: ${DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG}
|
||||||
labels:
|
labels:
|
||||||
- SERVICE_4001_CHECK_TCP=true
|
- SERVICE_4001_CHECK_TCP=true
|
||||||
|
|||||||
Reference in New Issue
Block a user