diff --git a/blueprints/ipfs/docker-compose.yml b/blueprints/ipfs/docker-compose.yml new file mode 100644 index 00000000..4275f553 --- /dev/null +++ b/blueprints/ipfs/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.8" +services: + ipfs: + image: ipfs/kubo:latest + restart: unless-stopped + environment: + - IPFS_PROFILE=server + volumes: + - ipfs_data:/data/ipfs + - ipfs_staging:/export + ports: + - 4001 + - 8080 + - 5001 +volumes: + ipfs_data: {} + ipfs_staging: {} diff --git a/blueprints/ipfs/ipfs.svg b/blueprints/ipfs/ipfs.svg new file mode 100644 index 00000000..1b90c313 --- /dev/null +++ b/blueprints/ipfs/ipfs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/blueprints/ipfs/template.toml b/blueprints/ipfs/template.toml new file mode 100644 index 00000000..89d4677e --- /dev/null +++ b/blueprints/ipfs/template.toml @@ -0,0 +1,25 @@ +[variables] +gateway_domain = "${domain}" +api_domain = "${domain}" + +[config] +env = [] + +[[config.domains]] +serviceName = "ipfs" +port = 8080 +host = "${gateway_domain}" + +[[config.domains]] +serviceName = "ipfs" +port = 5001 +host = "${api_domain}" + +[[config.mounts]] +filePath = "/container-init.d/001-configure-api.sh" +content = """ +#!/bin/sh +ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001 +ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' +ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST", "GET"]' +""" diff --git a/meta.json b/meta.json index 8e74fce0..b79a2908 100644 --- a/meta.json +++ b/meta.json @@ -3204,6 +3204,24 @@ "finance" ] }, + { + "id": "ipfs", + "name": "IPFS (Kubo)", + "version": "latest", + "description": "IPFS (Kubo) is a decentralized peer-to-peer file sharing and storage network node. Host your own IPFS gateway and API.", + "logo": "ipfs.svg", + "links": { + "github": "https://github.com/ipfs/kubo", + "website": "https://ipfs.tech/", + "docs": "https://docs.ipfs.tech/" + }, + "tags": [ + "storage", + "decentralized", + "p2p", + "self-hosted" + ] + }, { "id": "it-tools", "name": "IT Tools",