getumbrel / umbrel-apps

The official app repository of the Umbrel App Store. Submit apps and updates here. Learn how → https://github.com/getumbrel/umbrel-apps#readme
https://apps.umbrel.com
515 stars 382 forks source link

[App Request] - InterPlanetary File System (IPFS) #568

Open andrasfuchs opened 3 years ago

andrasfuchs commented 3 years ago

IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built in.

I think it would be a good fit for Umbrel, it would be great to see it in the Apps Store.

IPFS Docker images are available here: https://hub.docker.com/r/ipfs/go-ipfs/

IPFS source code: https://github.com/ipfs/go-ipfs IPFS web UI: https://github.com/ipfs/ipfs-webui

image

andrasfuchs commented 2 years ago

I could make IPFS work on my Umbrel, but it turned out that there is no official IPFS docker image for ARM64. Fortunately there is an alternative image by linuxserver.io here and that worked fine.

I used the following command line to install the container:

# web UI at port 4737, gateway at port 4738, API server at 5001, data port is 4001
docker run -d --name=ipfs -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 4737:80 -p 4001:4001 -p 5001:5001 -p 4738:8080 -v /mnt/data/umbrel/app-data/ipfs:/config --restart unless-stopped lscr.io/linuxserver/ipfs

I also created a separate docker network for this image. After everything was done I could access my IPFS repo on the web interface at http://umbrel.local:4737/.

I might add though that IPFS overloaded my router a few times and I had to reset it, and IPFS doesn't support Tor at the moment as far as I know.

aantonop commented 2 years ago

I second this feature request! I want to run IPFS to publish/host data of NFTs

Majorfi commented 2 years ago

Here are the step, all in command line via SSH

cd umbrel/app-data/
mkdir ipfs ipfs/staging ipfs/data

export ipfs_staging=/home/umbrel/umbrel/app-data/ipfs/staging/
export ipfs_data=/home/umbrel/umbrel/app-data/ipfs/data/

docker run -d --name=ipfs -v $ipfs_staging:/export -v #ipfs_data:/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8087:8080 -p 5001:5001 ipfs.kubo:latest

docker exec ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
docker exec ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://umbrel.local:5001", "http://localhost:3000", "http://0.0.0.0:5001", "https://webui.ipfs.io"]'

docker restart ipfs

Then navigate to umbrel.local:5001/webui and this should work!

besoeasy commented 3 months ago

@nmfretz we need this, IPFS just published new update that supports more devices now !

andrasfuchs commented 3 months ago

ARM64 Docker images are now supported: https://hub.docker.com/r/ipfs/kubo/tags

Anonymity is still an issue though: https://github.com/ipfs/kubo/issues/6430