This repository contains the container definition for the Spore IPFS node, running Kubo on ipfs.sporeproject.com.
- Based on ipfs/kubo v0.26.0
- Data persisted in
/data/ipfs, surviving container restarts and rebuilds - Storage quota configured at 10GB (adjustable via environment variable
IPFS_STORAGE_MAX) - Exposes:
- IPFS Gateway:
https://ipfs.sporeproject.com(HTTP on port8080) - HTTP API:
http://<host>:5001(for local access) - Swarm p2p port:
4001(for peer-to-peer connections)
- IPFS Gateway:
This node runs in a Docker container orchestrated by Dokku, with:
- a persistent volume mounted at
/data/ipfs - ports exposed for the gateway (
8080) and HTTP API (5001) - automatic TLS termination for the gateway via Letโs Encrypt
The container automatically:
โ
Initializes the IPFS repository if needed
โ
Ensures proper API and Gateway bind addresses (0.0.0.0)
โ
Removes stale lock files left by previous containers
โ
Enforces the configured storage maximum
To rebuild or restart the node:
- Stop the container first
- Rebuild the image and restart it
- The
/data/ipfsvolume ensures that content and configuration are retained
- Storage quota is currently set to 10GB; you can change
IPFS_STORAGE_MAXand rebuild. - The WebUI (on port
5001) may not list all pinned content; use the HTTP API to query pins or fetch content. - The node removes stale
repo.lockfiles on startup to avoid rebuild failures.
Add a file:
curl -F file=@hello.txt http://127.0.0.1:5001/api/v0/addCheck if pinned:
curl -X POST "http://127.0.0.1:5001/api/v0/pin/ls?arg=<CID>"Retrieve stats:
curl -X POST "http://127.0.0.1:5001/api/v0/object/stat?arg=<CID>"Gateway:
https://ipfs.sporeproject.com/ipfs/<CID>
For more details on Kubo and the IPFS HTTP API, see:
๐ https://docs.ipfs.tech/reference/kubo/rpc/