https://github.com/lumeweb/pinner-deploy-action
Deploy content to IPFS via Pinner in your GitHub Actions workflows -- upload, pin, publish to IPNS, and set up websites
https://github.com/lumeweb/pinner-deploy-action
deploy github-actions ipfs ipns pinner
Last synced: 21 days ago
JSON representation
Deploy content to IPFS via Pinner in your GitHub Actions workflows -- upload, pin, publish to IPNS, and set up websites
- Host: GitHub
- URL: https://github.com/lumeweb/pinner-deploy-action
- Owner: LumeWeb
- License: mit
- Created: 2026-04-23T02:12:18.000Z (2 months ago)
- Default Branch: develop
- Last Pushed: 2026-05-22T04:57:05.000Z (about 1 month ago)
- Last Synced: 2026-05-22T12:46:21.806Z (about 1 month ago)
- Topics: deploy, github-actions, ipfs, ipns, pinner
- Language: TypeScript
- Homepage:
- Size: 2.58 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Pinner Deploy Action
Deploy content to IPFS via [Pinner](https://pinner.xyz) in your GitHub Actions
workflows.
## Usage
### Upload a directory
```yaml
- uses: lumeweb/pinner-deploy-action@v0
with:
api-key: ${{ secrets.PINNER_API_KEY }}
path: ./dist
```
### Upload + IPNS publish
```yaml
- uses: lumeweb/pinner-deploy-action@v0
with:
api-key: ${{ secrets.PINNER_API_KEY }}
path: ./build
ipns-key: my-app
```
### Full deployment with domain + cleanup
```yaml
- uses: lumeweb/pinner-deploy-action@v0
with:
api-key: ${{ secrets.PINNER_API_KEY }}
path: ./build
ipns-key: my-app
domain: myapp.example.com
remove-previous: true
```
### Upload + domain + cleanup (no IPNS)
```yaml
- uses: lumeweb/pinner-deploy-action@v0
with:
api-key: ${{ secrets.PINNER_API_KEY }}
path: ./build
domain: myapp.example.com
remove-previous: true
```
### Pin an existing CID
```yaml
- uses: lumeweb/pinner-deploy-action@v0
with:
api-key: ${{ secrets.PINNER_API_KEY }}
cid: QmExampleCID...
```
## Inputs
| Input | Required | Default | Description |
| ----------------- | -------- | ------------------------- | ----------------------------------------------------------------- |
| `api-key` | Yes | — | Pinner API key |
| `path` | No | — | Local directory or file to upload to IPFS |
| `cid` | No | — | Existing CID to pin (skip upload) |
| `endpoint` | No | `https://ipfs.pinner.xyz` | Pinner API endpoint |
| `ipns-key` | No | — | IPNS key name or ID to publish under |
| `domain` | No | — | Domain for gateway website setup |
| `remove-previous` | No | `false` | Remove previous pin after deploy. Requires "ipns-key" or "domain" |
> Either `path` or `cid` must be provided.
## Outputs
| Output | Description |
| ------------- | ---------------------------------- |
| `cid` | CID of the uploaded/pinned content |
| `gateway-url` | Gateway URL for the content |
| `ipns-name` | IPNS name if `ipns-key` was set |
| `website-id` | Website ID if `domain` was set |