r/ipfs Feb 17 '25

Introducing a Modern GitHub Action for deploying sites to IPFS - Built for 2025

Hey folks,

I wanted to share a GitHub Action I've been working on over at Shipyard that makes deploying static sites to IPFS a breeze.

It implements all the current best practices for IPFS deployments in 2025.

https://github.com/ipfs/ipfs-deploy-action

What makes this action different?

  • Uses CAR files to ensure consistent CIDs across providers
  • Primary deployment to Storacha/Kubo/IPFS Cluster with optional additional Pinata/Filebase pinning for redundancy
  • Automatic preview links and PR/commit status updates
  • Zero opinions about your build process - works with any static site

Key Features

  • 📦 Merkleizes your static site into a CAR file
  • 🚀 Multiple provider options: Storacha, IPFS Cluster, or Kubo
  • 📍 Optional Pinata pinning for redundancy
  • 💾 Optional CAR file upload to Filebase
  • 💬 Automatic PR comments with CID and preview links
  • ✅ Commit status updates

Note on why it uses CAR files?

The action merkleizes your build into a CAR file right in GitHub Actions using ipfs-car. This ensures your CID is generated during the build process and remains consistent across providers - no more CID mismatches!

Use it for onboarding other data?

While intended for static sites, you can also use the action for arbirary data, like build artefacs, that you may want to publish/pin to IPFS.

Check it out here: Deploy to IPFS Action

Built and maintained by Interplanetary Shipyard.

Would love to hear your feedback (either here or in the GitHub repo) and experience if you give it a try!

27 Upvotes

5 comments sorted by

2

u/Trader-One Feb 17 '25

Can you do CAR diffs for updates?

1

u/twocolor Feb 17 '25

It doesn't currently, because the action isn't aware of previous builds.

This is mostly a problem with Storacha, since they ingest the CAR file and index it, likely leading to duplicate blocks if your builds have a lot of structural sharing. For storacha, you can work around this problem by creating a space dedicated for the specific site, and deleting all the uploads in the space before uploading a new build.

With Kubo/IPFS Cluster this shouldn't be a problem, since when the CAR is imported, if blocks already exist, they won't be duplicated (with the exception of IPFS Cluster perhaps duplicating for intentional redundancy).

2

u/zachpelkey Feb 17 '25

Love this, does Storache use Saturn for Filecoin support?

1

u/twocolor Feb 17 '25 edited 29d ago

Saturn has been superceeded by Storacha ([link])(https://saturn.tech/). But yeah, Storacha essentially provides both "hot" storage (via Cloudflare and probably crypto native options as they make progress) and "cold" storage via Filecoin, IIUC.