ipshipyard/Deploy to IPFS
Merkleize a static site into a CAR file (IPFS DAG). Optionally pin to your own Kubo or IPFS Cluster. Compose with any third-party pinning service via its own action or CLI.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 9, 2026
- License
- None
Pinned Snippet
uses: ipshipyard/ipfs-deploy-action@a18ef08993e485391c5879770d9bc9f1143653ce # v2.0.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| kubo-version | Kubo version used to merkleize, create CAR file, and pin https://dist.ipfs.tech/kubo/versions | no | v0.42.0 |
| path-to-deploy | Path to the directory containing the frontend build to merkleize into a CAR file and deploy to IPFS | yes | — |
| cid-profile | Kubo CID profile applied before merkleizing. Controls default CID version, chunker, raw leaves, and HAMT settings. Valid values: `unixfs-v1-2025` (recommended, follows IPIP-0499) or `unixfs-v0-2015` (legacy 2015 defaults). Pass an empty string to skip applying any profile and rely on Kubo built-in defaults. | no | unixfs-v1-2025 |
| ipfs-add-options | Extra options to pass to Kubo `ipfs add`. Default is empty so the chosen `cid-profile` governs CID version, chunker, raw-leaves, and link fanout. Override only when you need to deviate from the profile. See https://docs.ipfs.tech/reference/kubo/cli/#ipfs-add. | no | "" |
| kubo-api-url | Kubo RPC API URL to pass to `ipfs --api`, e.g. `/dns/YOUR_DOMAIN/tcp/443/https` | no | — |
| kubo-api-auth | Kubo RPC API auth secret to pass to `ipfs --api-auth`, e.g. `basic:hello:world` (defined as `AuthSecret` in `API.Authorizations` Kubo config) | no | — |
| cluster-url | IPFS Cluster URL to pass to ipfs-cluster-ctl --host, e.g. /dnsaddr/... | no | — |
| cluster-user | IPFS Cluster username used for basic http auth | no | — |
| cluster-password | IPFS Cluster password used for basic http auth | no | — |
| cluster-retry-attempts | Number of retry attempts for IPFS Cluster uploads. Must be a positive integer. | no | 3 |
| cluster-timeout-minutes | Timeout in minutes for each IPFS Cluster upload attempt | no | 5 |
| ipfs-cluster-ctl-version | IPFS Cluster CLI version to use | no | v1.1.6 |
| cluster-pin-expire-in | Time duration after which the pin will expire in IPFS Cluster (e.g. 720h for 30 days). Only supported by IPFS Cluster. | no | — |
| pin-name | Custom name for the IPFS Cluster pin. If unset, defaults to "{repo-name}-{commit-sha-short}" | no | — |
| github-token | GitHub token for updating commit status and PR comments | yes | — |
| set-github-status | Set GitHub commit status with build CID. Use "true" or "false" (as strings). If unset, the status is set only when a Kubo or IPFS Cluster pin is configured. | no | "" |
| github-status-gw | Gateway URL to use for the commit status target_url. Defaults to `inbrowser.link` | no | inbrowser.link |
| set-pr-comment | Set PR comments with IPFS deployment information. Use "true" or "false" (as strings). If unset, the comment is posted only when a Kubo or IPFS Cluster pin is configured. | no | "" |
| upload-car-artifact | Upload the CAR file as a GitHub artifact | no | true |
| car-file-name | Local filename for the produced CAR. Useful when running this action more than once in the same job, or when downstream steps expect a specific filename. Exposed via the `car-path` output. | no | build.car |
| pinata-jwt-token | [REMOVED in v2] Native Pinata pinning was removed. See ./docs/recipes/pinata.md | no | — |
| pinata-pinning-url | [REMOVED in v2] Native Pinata pinning was removed. See ./docs/recipes/pinata.md | no | — |
| filebase-access-key | [REMOVED in v2] Native Filebase upload was removed. See ./docs/recipes/filebase.md | no | — |
| filebase-secret-key | [REMOVED in v2] Native Filebase upload was removed. See ./docs/recipes/filebase.md | no | — |
| filebase-bucket | [REMOVED in v2] Native Filebase upload was removed. See ./docs/recipes/filebase.md | no | — |
| storacha-key | [REMOVED in v2] Storacha service was sunset on 2026-04-15. Pick another service from ./docs/recipes/ | no | — |
| storacha-proof | [REMOVED in v2] Storacha service was sunset on 2026-04-15. Pick another service from ./docs/recipes/ | no | — |
Outputs
| name | description |
|---|---|
| cid | Root CID of the produced CAR |
| car-path | Workspace-relative path to the produced CAR file. Follow-up steps can read it directly without assuming the filename. |
| car-artifact-name | Name under which the CAR was uploaded as a GitHub workflow artifact. Empty when `upload-car-artifact` is `false`. |