{"id":13509994,"url":"https://github.com/vdemeester/docker-volume-ipfs","last_synced_at":"2025-03-30T15:30:27.637Z","repository":{"id":57565602,"uuid":"50729222","full_name":"vdemeester/docker-volume-ipfs","owner":"vdemeester","description":"🐳 This is an open source volume plugin that allows using an ipfs filesystem as a volume.","archived":true,"fork":false,"pushed_at":"2017-05-13T15:09:11.000Z","size":1174,"stargazers_count":119,"open_issues_count":0,"forks_count":23,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-01T10:35:09.988Z","etag":null,"topics":["docker","docker-volumes","filesystem","fuse","ipfs","volume"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vdemeester.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-30T14:57:55.000Z","updated_at":"2024-07-29T16:50:51.000Z","dependencies_parsed_at":"2022-09-03T11:21:07.390Z","dependency_job_id":null,"html_url":"https://github.com/vdemeester/docker-volume-ipfs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdemeester%2Fdocker-volume-ipfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdemeester%2Fdocker-volume-ipfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdemeester%2Fdocker-volume-ipfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vdemeester%2Fdocker-volume-ipfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vdemeester","download_url":"https://codeload.github.com/vdemeester/docker-volume-ipfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246338569,"owners_count":20761404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-volumes","filesystem","fuse","ipfs","volume"],"created_at":"2024-08-01T02:01:20.374Z","updated_at":"2025-03-30T15:30:25.694Z","avatar_url":"https://github.com/vdemeester.png","language":"Go","funding_links":[],"categories":["Go","ipfs","docker"],"sub_categories":[],"readme":"# 🐳 docker-volume-ipfs\n\n[![GoDoc](https://godoc.org/github.com/vdemeester/docker-volume-ipfs?status.png)](https://godoc.org/github.com/vdemeester/docker-volume-ipfs)\n[![Build Status](https://travis-ci.org/vdemeester/docker-volume-ipfs.svg?branch=master)](https://travis-ci.org/vdemeester/docker-volume-ipfs)\n[![Go Report Card](https://goreportcard.com/badge/github.com/vdemeester/docker-volume-ipfs)](https://goreportcard.com/report/github.com/vdemeester/docker-volume-ipfs)\n[![License](https://img.shields.io/github/license/vdemeester/docker-volume-ipfs.svg)]()\n[![codecov](https://codecov.io/gh/vdemeester/docker-volume-ipfs/branch/master/graph/badge.svg)](https://codecov.io/gh/vdemeester/docker-volume-ipfs)\n\nThis is an open source volume plugin that allows using an\n[ipfs](https://ipfs.io/) filesystem as a volume.\n\n```bash\n$ docker-volume-ipfs \u0026\n$ docker run -it --rm -v QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT/readme:/data --volume-driver=ipfs busybox cat data\nHello and Welcome to IPFS!\n\n██╗██████╗ ███████╗███████╗\n██║██╔══██╗██╔════╝██╔════╝\n██║██████╔╝█████╗  ███████╗\n██║██╔═══╝ ██╔══╝  ╚════██║\n██║██║     ██║     ███████║\n╚═╝╚═╝     ╚═╝     ╚══════╝\n\nIf you're seeing this, you have successfully installed\nIPFS and are now interfacing with the ipfs merkledag!\n\n -------------------------------------------------------\n| Warning:                                              |\n|   This is alpha software. use at your own discretion! |\n|   Much is missing or lacking polish. There are bugs.  |\n|   Not yet secure. Read the security notes for more.   |\n -------------------------------------------------------\n\nCheck out some of the other files in this directory:\n\n  ./about\n  ./help\n  ./quick-start     \u003c-- usage examples\n  ./readme          \u003c-- this file\n  ./security-notes\n```\n\n## Goals\n\nThe main goal is to be able to create docker volumes that are backed by the IPFS filesystem. They could be named volumes,\nanonymous volumes. The plugin should also work in a cluster / swarm environment (but by its nature it should be built-in).\n\nFirst, let's define a \"format\" for creating volumes. There is two cases: `docker volume create` and `docker run -v`.\n\nFor `docker volume create`, it could be an option `ipfs=`, `ipns=`...\n\n```bash\n$ docker volume create --driver=ipfs --opt ipfs=QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT --name ipfs-welcome\n$ docker run -v ipfs-welcome:/ipfs/welcome busybox cat /ipfs/welcome/readme\nHello and Welcome to IPFS!\n\n██╗██████╗ ███████╗███████╗\n██║██╔══██╗██╔════╝██╔════╝\n██║██████╔╝█████╗  ███████╗\n██║██╔═══╝ ██╔══╝  ╚════██║\n██║██║     ██║     ███████║\n╚═╝╚═╝     ╚═╝     ╚══════╝\n\nIf you're seeing this, you have successfully installed\n# […]\n# would also work with ipns\n$ docker volume create --driver=ipfs --opt ipns=ipfs.io --name ipfs-io-website\n$ docker run -v ipfs-io-website:/var/www/html nginx\n```\n\nFor `-v` directly in `docker run` (a.k.a. anonymous volume), we could namespace it somehow.\n\n```\n# Default to ipfs\n$ docker run -it --rm -v QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT/readme:/data --volume-driver=ipfs busybox cat data\nHello and Welcome to IPFS!\n# […]\n$ docker run -it --rm -v $(docker volume create --driver=ipfs --opt ipns=ipfs.io):/var/www/html --volume-driver=ipfs nginx\n```\n\n## TODO(s)\n\n- [ ] Use `ipfs daemon` API instead of making the assumption that a daemon is running and mounting ipfs using fuse\n- [ ] Support ipfs mounts (via fuse)\n- [ ] Support ipns mounts\n- [ ] Create a volume v2 plugin","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdemeester%2Fdocker-volume-ipfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvdemeester%2Fdocker-volume-ipfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvdemeester%2Fdocker-volume-ipfs/lists"}