From 6bbc949a5f8582d1db7118682749f27e7d256c71 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 28 May 2020 10:26:32 +0000 Subject: [PATCH] ipfs --- development/ipfs/docker-compose.yml | 67 ++++++++++++++ development/ipfs/ipfs/Dockerfile | 8 ++ development/ipfs/ipfs/ipfs/config | 139 ++++++++++++++++++++++++++++ 3 files changed, 214 insertions(+) create mode 100644 development/ipfs/docker-compose.yml create mode 100644 development/ipfs/ipfs/Dockerfile create mode 100644 development/ipfs/ipfs/ipfs/config diff --git a/development/ipfs/docker-compose.yml b/development/ipfs/docker-compose.yml new file mode 100644 index 0000000..deae955 --- /dev/null +++ b/development/ipfs/docker-compose.yml @@ -0,0 +1,67 @@ +version: '2' + +services: + ipfs: + build: ./ipfs + hostname: ipfs + container_name: ipfs + restart: always + entrypoint: + - ipfs + - daemon + volumes: + - ./ipfs/ipfs:/home/node/.ipfs + expose: + - 5001 + - 8080 + - 8081 + ports: + - "4001:4001/tcp" + networks: + mynet: + ipv4_address: 172.5.0.101 + +# ipfs-cluster: +# build: ./ipfs-cluster +# hostname: ipfs-cluster +# container_name: ipfs-cluster +# restart: always +# entrypoint: +# - ./ipfs-cluster-service +# - daemon +# volumes: +# - ./ipfs-cluster/cluster:/home/node/.ipfs-cluster +# expose: +# - 9094 +# - 9095 +# - 9096 +# networks: +# mynet: +# ipv4_address: 172.5.0.102 + +# jsipfs: +# build: ./jsipfs +# hostname: jsipfs +# container_name: jsipfs +# restart: always +# entrypoint: +# - jsipfs +# - daemon +# volumes: +# - ./jsipfs/jsipfs:/home/node/.jsipfs +# expose: +# - 4002 +# - 4003 +# - 5001 +# - 9090 +# networks: +# mynet: +# ipv4_address: 172.5.0.103 + +networks: + mynet: + driver: bridge + ipam: + config: + - subnet: 172.5.0.0/24 + diff --git a/development/ipfs/ipfs/Dockerfile b/development/ipfs/ipfs/Dockerfile new file mode 100644 index 0000000..5c73c2d --- /dev/null +++ b/development/ipfs/ipfs/Dockerfile @@ -0,0 +1,8 @@ +FROM golang:1.12-stretch +RUN apt update && apt -y upgrade && apt -y install git build-essential && apt clean +RUN git clone https://github.com/ipfs/go-ipfs /ipfs +WORKDIR /ipfs +RUN make install +RUN useradd -ms /bin/bash node +RUN chown node.node -R /ipfs +USER node diff --git a/development/ipfs/ipfs/ipfs/config b/development/ipfs/ipfs/ipfs/config new file mode 100644 index 0000000..03589bb --- /dev/null +++ b/development/ipfs/ipfs/ipfs/config @@ -0,0 +1,139 @@ +{ + "Identity": { + "PeerID": "QmfS4TmjkskNgyUCKLgmQ8NRpGrmLBrbdYsr7yZnJqANaQ", + "PrivKey": "CAASqAkwggSkAgEAAoIBAQCy6o2mj83a5hgWEiPCp4af9HVg79VAvjbnOdR2nuDiAFH/jYQHpzLVBWjccm0V2r1tbzxqjR3gQgBij/75ji+aFHdpdVx8PruLVrd2Oi7vGVXwLSetFT8eX/Keeg43QGezEuyY4Q1M56I+rbhEBdtFsl/KcUWUBkV9ZlkefagTYcwOvxI+OdGShQTxfEkD+5jhPXzR9Qw4MBF4Sw/rRzFM20RU6gQl0wtsnJwIChMn4YFGk0VWJZSf/XIZG6U1b32L9egXELvIC16hmFowk2A/6Nz1QJU3JH9q38bDVazetG+BkK0Hu13iy75R9S/5WOAnijG7ZZxRMWx2EWdx5syTAgMBAAECggEBAKZ2QkqY+y9R61EFmY3u7ft+p4MEQUYWc+CYVovy8Ep1f9Ujppa0QkAd411PfRzbQmlCGFUObKCM5+zMCq/HUZSqvBs7XUwf1cAjc1gldCtzSBjI+mQ4I1ywanx2FSnk21aqIcVvhj9qN/LXEF0Bkex7tFIXJ2Q8nYS5p+sNgEZepg0x3m25zxyg4oIf/ANSa5mrxOa3H4LlLuOVO6cUpg2y1/j99Fx78/utWJqfWv/z5CFmx2Bl92u4BeHIF94Sg74egIftGbNDl+10zpby2IW33v32oTK3FMhlGxegwor+p/YR4+JIOxmPCC9+IVR+drwwCFbDIE+HKFpizDDiSwECgYEA1V/v9LrTZnEqaR0su475uxJK0tih/Wd+8ZW+3mCMnr9WbQ8cg4plynKwfw7zb/ByhPOxq5GkH+8PXhgVDEGscQMxUYANChg7apam5LVmTXdCovNIdFWGk6cIMto3S3o8RFrv3LdERD6qgZwLOs8SAEHVkxiMNxu7LITzMqAqnoECgYEA1qhk55k9R1QN6TcI+NOkflB/Z+r1D+xrcJFAsBCZW6ge5DrQ03hONFHLWOw1MPNQdEfI/6vjhypkrFdSFkEGNC1vGd1vut8V5gYg8oHxL1BkRkSRB+QHoaXdngaZyv0Ohw0+ucjlpdHRFOHJSlPyf19TtYKWH5d7IP0Zht7qiRMCgYBGHrX7hd3s/2mBi53ksTKuYG+IZLqvTPCxsZU8/RuZG6XqRxoGvFeBNTl9N8uWUL1BpdgQWtdFy0kQkfdwxLBHn1X4w40FcTstZv7HkDljYbrbU/nOiUClizGtjHq5ah0eFYhXzz428yUTXNVv6RawUPI/2cRSY+GZ2sMVMv9ugQKBgQCbQ/qYuvLkIRxe0Hwg35Vf+IHvfLf96JheN/J+Z8NF1PljRFfAXojSt0dK7rAa1CQht7rflEljf3qKXi72Adqm6yYto0op9Ss10sEKKIt4GcIuQXJWLs6GUh9XKpcbiKd1cFMqtvHFW1rMq/SZWtdQ4nb+F5LXDw708Z4BPESRGQKBgEy4OFoT3SZj/t1z9kqhgXxUeemGWalLLZZvQniosvInNOKsqkIi99NwFZ7KkTzazxkuml4jelb8p/d2nRBtYQgmOvbunrOxo34VSbtYKZOOFFr7GXfM+DDv0UiTm/dZYVbqlCkytZXtvh8FE7wOsTsjxkyZjDJVkvjW4lZMT1K8" + }, + "Datastore": { + "StorageMax": "10GB", + "StorageGCWatermark": 90, + "GCPeriod": "1h", + "Spec": { + "mounts": [ + { + "child": { + "path": "blocks", + "shardFunc": "/repo/flatfs/shard/v1/next-to-last/2", + "sync": true, + "type": "flatfs" + }, + "mountpoint": "/blocks", + "prefix": "flatfs.datastore", + "type": "measure" + }, + { + "child": { + "compression": "none", + "path": "datastore", + "type": "levelds" + }, + "mountpoint": "/", + "prefix": "leveldb.datastore", + "type": "measure" + } + ], + "type": "mount" + }, + "HashOnRead": false, + "BloomFilterSize": 0 + }, + "Addresses": { + "Swarm": [ + "/ip4/0.0.0.0/tcp/4001", + "/ip6/::/tcp/4001" + ], + "Announce": [], + "NoAnnounce": [], + "API": "/ip4/0.0.0.0/tcp/5001", + "Gateway": "/ip4/0.0.0.0/tcp/8080" + }, + "Mounts": { + "IPFS": "/ipfs", + "IPNS": "/ipns", + "FuseAllowOther": false + }, + "Discovery": { + "MDNS": { + "Enabled": true, + "Interval": 10 + } + }, + "Routing": { + "Type": "dht" + }, + "Ipns": { + "RepublishPeriod": "", + "RecordLifetime": "", + "ResolveCacheSize": 128 + }, + "Bootstrap": [ + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb", + "/dnsaddr/bootstrap.libp2p.io/ipfs/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt", + "/ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", + "/ip4/104.236.179.241/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", + "/ip4/128.199.219.111/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", + "/ip4/104.236.76.40/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", + "/ip4/178.62.158.247/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", + "/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM", + "/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu", + "/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64", + "/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd" + ], + "Gateway": { + "HTTPHeaders": { + "Access-Control-Allow-Headers": [ + "X-Requested-With", + "Range", + "User-Agent" + ], + "Access-Control-Allow-Methods": [ + "GET" + ], + "Access-Control-Allow-Origin": [ + "*" + ] + }, + "RootRedirect": "", + "Writable": false, + "PathPrefixes": [], + "APICommands": [], + "NoFetch": false + }, + "API": { + "HTTPHeaders": {} + }, + "Swarm": { + "AddrFilters": null, + "DisableBandwidthMetrics": false, + "DisableNatPortMap": false, + "DisableRelay": false, + "EnableRelayHop": false, + "EnableAutoRelay": false, + "EnableAutoNATService": false, + "ConnMgr": { + "Type": "basic", + "LowWater": 600, + "HighWater": 900, + "GracePeriod": "20s" + } + }, + "Pubsub": { + "Router": "", + "DisableSigning": false, + "StrictSignatureVerification": false + }, + "Reprovider": { + "Interval": "12h", + "Strategy": "all" + }, + "Experimental": { + "FilestoreEnabled": false, + "UrlstoreEnabled": false, + "ShardingEnabled": false, + "Libp2pStreamMounting": false, + "P2pHttpProxy": false, + "QUIC": false, + "PreferTLS": false + } +}