You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/how-to/websites-on-ipfs/custom-domains.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,6 @@ To provide access to the app directly via the custom domain, you have the follow
31
31
32
32
1. Self-host both the IPFS provider (e.g. [Kubo](https://github.com/ipfs/kubo)) and the HTTP gateway (e.g. [Kubo](https://github.com/ipfs/kubo) or [Rainbow](https://github.com/ipfs/rainbow/)). Deploy an IPFS Gateway that supports DNSLink resolution and point the `CNAME`/`A` DNS record for your custom domain to it and update the `TXT` record on `_dnslink` subdomain to match CID of your website. Set up CI automation to update TXT record every time your CID changes. You will likely want to also configure TLS with a reverse proxy like Caddy or use a CDN like Cloudflare for TLS termination.
33
33
2. Use a service like Fleek
34
-
3. Deploy the site to a web hosting service like Cloudflare/GitHub Pages, and point the CNAME/A record for your custom domain to it, essentially getting the benefits of both IPFS and traditional web hosting.
34
+
3. Deploy the site to a web hosting service like [Cloudflare Pages](https://pages.cloudflare.com/) or [GitHub Pages](https://pages.github.com/), and point the `CNAME`/`A` record for your main domain and `TXT` record with CID on `_dnslink` subdomain, essentially getting the benefits of both IPFS and traditional web hosting. Remember to set up CI automation to update TXT record every time your CID changes.
35
35
36
36
Access via a custom domain is useful if you want to serve your app via a domain name that you own, for example, `app.example.com`.
Copy file name to clipboardExpand all lines: docs/how-to/websites-on-ipfs/deploy-github-action.md
+25-23Lines changed: 25 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,9 +5,9 @@ description: Guide on how to setup GitHub Actions to deploy static sites/apps to
5
5
6
6
# Deploy Static Apps to IPFS with GitHub Actions
7
7
8
-
This guide will walk you through the process of configuring a GitHub Actions workflow to deploy a repository containing a static site or app to IPFS using the [IPFS Deploy Action](https://github.com/ipfs/ipfs-deploy-action).
8
+
This guide will walk you through the process of configuring a [GitHub Actions](https://docs.github.com/en/actions) workflow to deploy a repository containing a static site or app to IPFS using the [IPFS Deploy Action](https://github.com/ipfs/ipfs-deploy-action).
9
9
10
-
By the end of this guide, your app will be deployed to IPFS automatically when you push to your repository. It will also deploy pull request previews for each commit, and provide some other developer experience features, like commit status updates with the CID of the build, and a comment on pull requests with the IPFS CID and preview links.
10
+
By the end of this guide, your web app (or just a static website) will be deployed to IPFS automatically when you push to your repository. It will also deploy pull request previews for each commit, and provide some other developer experience features, like commit status updates with the CID of the build, and a comment on pull requests with the IPFS CID and preview links.
@@ -20,12 +20,12 @@ To see what this looks like in a real-world example, check out the [IPNS Inspect
20
20
21
21
## What is the IPFS Deploy Action?
22
22
23
-
The IPFS Deploy Action is a [composite action](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action), that can be called as a step in a GitHub Actions workflow, and combines the following features:
23
+
The IPFS Deploy Action is a [composite action](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action), that can be called as a step in a [GitHub Actions workflow](https://docs.github.com/en/actions/writing-workflows), and combines the following features:
24
24
25
-
- 📦 Merkleizes your static site into a CAR file
26
-
- 🚀 Uploads CAR file to either Storacha, IPFS Cluster, or Kubo
27
-
- 📍 Optional pinning to Pinata
28
-
- 💾 Optional CAR file upload to Filebase
25
+
- 📦 Merkleizes your static site into a [CAR](../../concepts/glossary.md#car) file
26
+
- 🚀 Uploads CAR file to either [Storacha](https://storacha.network/), [IPFS Cluster](https://ipfscluster.io/), or [Kubo](https://github.com/ipfs/kubo#readme)
27
+
- 📍 Optional CID pinning to [Pinata](https://pinata.cloud/)
28
+
- 💾 Optional CAR file upload to [Filebase](https://filebase.com/)
29
29
- 💬 PR Previews, with a comment containing the CID and preview links
30
30
- ✅ Commit Status updates
31
31
@@ -38,16 +38,16 @@ The IPFS Deploy Action makes no assumptions about your build process. Whether yo
38
38
Before you begin, make sure you have:
39
39
40
40
1. A GitHub repository with your static web application
41
-
2. A [Storacha](https://storacha.network) account or an IPFS Node (Kubo or IPFS Cluster) with the RPC endpoint publicly reachable (see [this guide](../kubo-rpc-tls-auth.md) for instructions on how to secure the Kubo RPC endpoint with TLS and authentication)
41
+
2. A [Storacha](https://storacha.network) account or an IPFS Node ([Kubo](https://github.com/ipfs/kubo#readme) or [IPFS Cluster](https://ipfscluster.io/)) with the [Kubo RPC](../../reference/kubo/rpc.md) endpoint publicly reachable (see [this guide](../kubo-rpc-tls-auth.md) for instructions on how to secure the Kubo RPC endpoint with TLS and authentication)
42
42
43
43
This guide will use Storacha for simplicity. If you have an IPFS Node, you can skip the Storacha setup and use your own node instead.
44
44
45
45
## Step 1: Setting Up Storacha
46
46
47
-
If you don't have a Storacha account, you can create one at [https://storacha.network](https://storacha.network).
47
+
If you don't have a Storacha account, you can create one at [storacha.network](https://storacha.network).
48
48
49
49
50
-
1. Install the w3cli tool:
50
+
1. Install the [`w3cli`](https://www.npmjs.com/package/@web3-storage/w3cli) tool:
51
51
52
52
```bash
53
53
npm install -g @web3-storage/w3cli
@@ -77,7 +77,7 @@ If you don't have a Storacha account, you can create one at [https://storacha.ne
77
77
78
78
Save the key value as a GitHub secret named `STORACHA_KEY`
79
79
80
-
5. Create a UCAN proof. Note that the command will create a UCAN proof allowing uploads to the space created in step 3:
80
+
5. Create a [UCAN](https://docs.storacha.network/concepts/ucans-and-storacha/) proof. Note that the command will create a UCAN proof allowing uploads to the space created in step 3:
To upload the CAR file to a Kubo node instead of or in addition to Storacha:
144
144
145
-
1. Get your Kubo RPC endpoint and API token
146
-
2. Add them as GitHub secrets named `KUBO_API_URL` and `KUBO_API_AUTH`
145
+
1. Get your [Kubo RPC endpoint](https://github.com/ipfs/kubo/blob/master/docs/config.md#addressesapi) and [API token](https://github.com/ipfs/kubo/blob/master/docs/config.md#apiauthorizations)
146
+
2. Add them as [GitHub secrets](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions) named `KUBO_API_URL` and `KUBO_API_AUTH`
147
147
3. Add these lines to your workflow:
148
148
149
149
```yaml
@@ -155,7 +155,7 @@ To upload the CAR file to a Kubo node instead of or in addition to Storacha:
155
155
kubo-api-auth: ${{ secrets.KUBO_API_AUTH }}
156
156
```
157
157
158
-
You can also customize the Kubo version used for merkleizing your content:
158
+
You can also customize the Kubo version and [`ipfs add` parameters](https://docs.ipfs.tech/reference/kubo/cli/#ipfs-add) used for merkleizing your content:
159
159
160
160
```yaml
161
161
- name: Deploy to IPFS
@@ -170,7 +170,7 @@ You can also customize the Kubo version used for merkleizing your content:
170
170
171
171
To upload the CAR file to an IPFS Cluster:
172
172
173
-
1. Get your IPFS Cluster URL, username, and password
173
+
1. Get your [IPFS Cluster CTL](https://ipfscluster.io/documentation/reference/ctl/) endpoint, username, and password
174
174
2. Add them as GitHub secrets
175
175
3. Add these lines to your workflow:
176
176
@@ -191,17 +191,19 @@ You can also configure additional IPFS Cluster options:
191
191
uses: ipfs/ipfs-deploy-action@v1
192
192
with:
193
193
# ... other inputs ...
194
-
cluster-retry-attempts: '3' # Default number of retry attempts
195
-
cluster-timeout-minutes: '5' # Default timeout in minutes per attempt
194
+
cluster-retry-attempts: '5' # Override number of retry attempts
195
+
cluster-timeout-minutes: '15' # Override timeout in minutes per attempt
196
196
ipfs-cluster-ctl-version: 'v1.1.2' # Default version
197
197
cluster-pin-expire-in: '720h' # Optional: Set pin to expire after time period (e.g., 30 days)
198
198
```
199
199
200
-
This works by sending a request to the Pinning API with the CID of the deployment, and Pinata handles pinning in the background.
200
+
### Pinning with Pinata
201
+
202
+
This works by sending a request to the [Pinning API](https://docs.pinata.cloud/api-reference/pinning-service-api) with the CID of the deployment, and Pinata handles pinning in the background.
201
203
202
204
To pin your content to Pinata:
203
205
204
-
1. Get your Pinata JWT token from the Pinata dashboard
206
+
1. Get your [Pinata JWT token](https://docs.pinata.cloud/api-reference/pinning-service-api#authentication) from the Pinata dashboard
205
207
2. Add it as a GitHub secret named `PINATA_JWT`
206
208
3. Add these lines to your workflow:
207
209
@@ -215,10 +217,10 @@ To pin your content to Pinata:
215
217
```
216
218
217
219
### Adding Filebase Storage
218
-
220
+
Note that Filebase only supports static websites for paid accounts.
219
221
To store CAR files on Filebase:
220
222
221
-
1. Create a Filebase account and bucket
223
+
1. [Create a Filebase account](https://docs.filebase.com/archive/content-archive/ipfs-getting-started-guide#signing-up-for-filebase) and [bucket](https://docs.filebase.com/archive/content-archive/ipfs-getting-started-guide#how-to-create-an-ipfs-bucket)
222
224
2. Get your access and secret keys
223
225
3. Add them as GitHub secrets
224
226
4. Add these lines to your workflow:
@@ -249,7 +251,7 @@ For example, here's where you can find the CID for a [given commit on GitHub]():
249
251
You can load the app using the CID from the commit status, and it will be accessible through:
250
252
251
253
- [Public Good Gateway](../../concepts/public-utilities.md#public-ipfs-gateways): `https://<CID>.ipfs.dweb.link`
0 commit comments