version: '3.6' services: ipfs: build: args: - DOCKER_BUILD_DIR=docker/ipfs - GID=${GID} - IPFS_VERSION=${IPFS_VERSION} - UID=${UID} context: ../.. dockerfile: docker/ipfs/Dockerfile command: daemon --agent-version-suffix=${COMPOSE_PROJECT_NAME} ${USER_IPFS_DAEMON_ARGS:---migrate} container_name: ${COMPOSE_PROJECT_NAME}-ipfs cpus: 0.5 environment: - IPFS_ADDRESSES_API=${USER_IPFS_ADDRESSES_API:-} - IPFS_ADDRESSES_API_DOMAIN=${USER_IPFS_ADDRESSES_API_DOMAIN:-${DOCKER_NETWORK_PUBLIC}} - IPFS_ADDRESSES_API_INET4=${USER_IPFS_ADDRESSES_API_INET4:-} - IPFS_ADDRESSES_API_PORT=${USER_IPFS_ADDRESSES_API_PORT:-} - IPFS_ADDRESSES_GATEWAY=${USER_IPFS_ADDRESSES_GATEWAY:-} - IPFS_ADDRESSES_GATEWAY_DOMAIN=${USER_IPFS_ADDRESSES_GATEWAY_DOMAIN:-} - IPFS_ADDRESSES_GATEWAY_INET4=${USER_IPFS_ADDRESSES_GATEWAY_INET4:-0.0.0.0} - IPFS_ADDRESSES_GATEWAY_PORT=${USER_IPFS_ADDRESSES_GATEWAY_PORT:-} - IPFS_ADDRESSES_NOANNOUNCE=${USER_IPFS_ADDRESSES_NOANNOUNCE:-} - IPFS_API_HTTPHEADERS=${USER_IPFS_API_HTTPHEADERS:-} - IPFS_API_HTTPHEADERS_ACA_CREDENTIALS=${USER_IPFS_API_HTTPHEADERS_ACA_CREDENTIALS:-["true"]} - IPFS_API_HTTPHEADERS_ACA_HEADERS=${USER_IPFS_API_HTTPHEADERS_ACA_HEADERS:-["X-Requested-With", "Range", "User-Agent"]} - IPFS_API_HTTPHEADERS_ACA_METHODS=${USER_IPFS_API_HTTPHEADERS_ACA_METHODS:-["OPTIONS", "POST"]} - IPFS_API_HTTPHEADERS_ACA_ORIGIN=${USER_IPFS_API_HTTPHEADERS_ACA_ORIGIN:-} - IPFS_BOOTSTRAP=${USER_IPFS_BOOTSTRAP:-} - IPFS_DATASTORE_GCPERIOD=${USER_IPFS_DATASTORE_GCPERIOD:-} - IPFS_DISK_USAGE_PERCENT=${USER_IPFS_DISK_USAGE_PERCENT:-} - IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT=${USER_IPFS_EXPERIMENTAL_ACCELERATEDDHTCLIENT:-} - IPFS_EXPERIMENTAL_FILESTOREENABLED=${USER_IPFS_EXPERIMENTAL_FILESTOREENABLED:-} - IPFS_EXPERIMENTAL_GRAPHSYNCENABLED=${USER_IPFS_EXPERIMENTAL_GRAPHSYNCENABLED:-} - IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING=${USER_IPFS_EXPERIMENTAL_LIBP2PSTREAMMOUNTING:-} - IPFS_EXPERIMENTAL_P2PHTTPPROXY=${USER_IPFS_EXPERIMENTAL_P2PHTTPPROXY:-} - IPFS_EXPERIMENTAL_STRATEGICPROVIDING=${USER_IPFS_EXPERIMENTAL_STRATEGICPROVIDING:-} - IPFS_EXPERIMENTAL_URLSTOREENABLED=${USER_IPFS_EXPERIMENTAL_URLSTOREENABLED:-} - IPFS_IDENTITY_PEERID=${USER_IPFS_IDENTITY_PEERID:-} - IPFS_IDENTITY_PRIVKEY=${USER_IPFS_IDENTITY_PRIVKEY:-} - IPFS_IPNS_REPUBLISHPERIOD=${USER_IPFS_IPNS_REPUBLISHPERIOD:-} - IPFS_IPNS_RECORDLIFETIME=${USER_IPFS_IPNS_RECORDLIFETIME:-} - IPFS_IPNS_USEPUBSUB=${USER_IPFS_IPNS_USEPUBSUB:-true} - IPFS_LOGGING=${USER_IPFS_LOGGING:-error} - IPFS_NETWORK=${USER_IPFS_NETWORK:-private} - IPFS_PATH=${USER_IPFS_PATH:-~/.ipfs} - IPFS_PROFILE=${USER_IPFS_PROFILE:-${IPFS_PROFILE}} - IPFS_PUBSUB_ENABLE=${USER_IPFS_PUBSUB_ENABLE:-true} - IPFS_PUBSUB_ROUTER=${USER_IPFS_PUBSUB_ROUTER:-gossipsub} - IPFS_ROUTING_TYPE=${USER_IPFS_ROUTING_TYPE:-dht} - IPFS_REPROVIDER_INTERVAL=${USER_IPFS_REPROVIDER_INTERVAL:-} - IPFS_REPROVIDER_STRATEGY=${USER_IPFS_REPROVIDER_STRATEGY:-} - IPFS_SWARM_CONNMGR_HIGHWATER=${USER_IPFS_SWARM_CONNMGR_HIGHWATER:-} - IPFS_SWARM_CONNMGR_LOWWATER=${USER_IPFS_SWARM_CONNMGR_LOWWATER:-} - IPFS_SWARM_CONNMGR_TYPE=${USER_IPFS_SWARM_CONNMGR_TYPE:-} - IPFS_SWARM_DISABLENATPORTMAP=${USER_IPFS_SWARM_DISABLENATPORTMAP:-} - IPFS_SWARM_ENABLEHOLEPUNCHING=${USER_IPFS_SWARM_ENABLEHOLEPUNCHING:-} - IPFS_SWARM_KEY=${USER_IPFS_SWARM_KEY:-} - IPFS_SWARM_RELAYCLIENT_ENABLED=${USER_IPFS_SWARM_RELAYCLIENT_ENABLED:-} - IPFS_SWARM_RELAYSERVICE_ENABLED=${USER_IPFS_SWARM_RELAYSERVICE_ENABLED:-} - IPFS_SWARM_TRANSPORTS_NETWORK_RELAY=${USER_IPFS_SWARM_TRANSPORTS_NETWORK_RELAY:-} - LETSENCRYPT_HOST=${USER_IPFS_LETSENCRYPT_HOST} image: ${USER_DOCKER_REPOSITORY}/ipfs:${DOCKER_IMAGE_TAG} labels: - SERVICE_4001_CHECK_TCP=true - SERVICE_4001_NAME=${USER_COMPOSE_SERVICE_NAME}-ipfs-4001 - SERVICE_5001_CHECK_HTTP=${USER_IPFS_SERVICE_5001_CHECK_HTTP:-/api/v0/diag/sys} - SERVICE_5001_CHECK_HTTP_METHOD=${USER_IPFS_SERVICE_5001_CHECK_HTTP_METHOD:-POST} - SERVICE_5001_NAME=${USER_COMPOSE_SERVICE_NAME}-ipfs-5001 - SERVICE_5001_TAGS=${USER_IPFS_SERVICE_5001_TAGS:-} - SERVICE_8080_CHECK_HTTP=${USER_IPFS_SERVICE_8080_CHECK_HTTP:-/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn} - SERVICE_8080_NAME=${USER_COMPOSE_SERVICE_NAME}-ipfs-8080 - SERVICE_8080_TAGS=${USER_IPFS_SERVICE_8080_TAGS:-} - SERVICE_8081_IGNORE=true networks: - private - public ports: - 4001/tcp - 4001/udp - 5001/tcp - 8080/tcp restart: always ulimits: nofile: soft: 65536 hard: 65536 volumes: - host:/home:delegated volumes: host: external: true name: ${HOST_DOCKER_VOLUME}_home networks: private: external: true name: ${DOCKER_NETWORK} public: external: true name: ${DOCKER_NETWORK_PUBLIC}