Skip to content

Commit c9e8882

Browse files
2colorlidel
andauthored
add gh action deployment guide, custom domains guide, and overhaul docs landing page (#1999)
New deployment to IPFS guide with IPFS Github Action New custom domains page covering nuances around DNSLink and HTTPS Updates to static site generators page covering how to deploy Next.js apps to IPFS Add verified fetch example to retrieval quickstart guide Clean up and update docs landing page * initial commit of deployment guide * edit description * Update docs/install/deploy-github-action.md Co-authored-by: Marcin Rataj <[email protected]> * Update docs/install/deploy-github-action.md Co-authored-by: Marcin Rataj <[email protected]> * break off dnslink and custom domains into separate guide * move guide to guides * progress and edits * edits and improvements * fix: typo * fix: broken urls * fix: typos * fix: broken links * small refinement * fix: url to public utilities * Apply suggestions from code review Co-authored-by: Marcin Rataj <[email protected]> * Apply suggestions from code review Co-authored-by: Marcin Rataj <[email protected]> * feat: add kubo and cluster versions to header * refinement * chore: add note about service worker gateway * Update docs/how-to/websites-on-ipfs/custom-domains.md Co-authored-by: Marcin Rataj <[email protected]> * update opener * add link to custom domains guide from dnslink * clean up sidebar * refine custom domain page * remove broken link * fix: typo * Apply suggestions from code review Co-authored-by: Marcin Rataj <[email protected]> * add next.js tips to static site generators * refine wordpress section * fix: link * fix: typos * fix: linting rules the frontmatter title isn't used to generate h1. This fixes the linting error causing the linter to raise an error for every page with an h1 header * final edits * final polish * more edits and fixes * typos * fix: broken link * broken link --------- Co-authored-by: Daniel N <[email protected]> Co-authored-by: Marcin Rataj <[email protected]>
1 parent 7e1d698 commit c9e8882

19 files changed

+475
-224
lines changed

.github/styles/pln-ignore.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ arbol('s)
1212
arg
1313
auditable
1414
audius
15+
astro
1516
auspinner
1617
bit[ss]wap
1718
bitswap
19+
blockchain
1820
blockchains
1921
blockstore
2022
bool
@@ -32,6 +34,7 @@ certbot
3234
cid
3335
cids
3436
cli
37+
clis
3538
cmds
3639
cnames
3740
codec
@@ -136,6 +139,7 @@ merkle
136139
merkleize
137140
merklizing
138141
merkleizing
142+
merkleizes
139143
merkleized
140144
merkleization
141145
metadata('s)
@@ -219,6 +223,7 @@ sneakernets
219223
stackparse
220224
stdout
221225
storj
226+
storacha
222227
Someguy
223228
subcommand
224229
substring
@@ -245,6 +250,7 @@ userspace
245250
vpns
246251
vscode
247252
vue
253+
Vuepress
248254
wantlist
249255
wantlists
250256
web

.markdownlint.jsonc

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@
116116
"MD025": {
117117
// Heading level
118118
"level": 1,
119-
// RegExp for matching title in front matter
120-
"front_matter_title": "^\\s*title\\s*[:=]"
119+
// ignore the title in the front matter
120+
"front_matter_title": ""
121121
},
122122

123123
// MD026/no-trailing-punctuation - Trailing punctuation in heading
@@ -228,16 +228,6 @@
228228
// Seems like a good rule to have in place
229229
"MD042": true,
230230

231-
// MD043/required-headings/required-headers - Required heading structure
232-
// TODO
233-
// We may want to utilize this rule, not sure what the struct would be
234-
"MD043": {
235-
// List of headings
236-
"headings": [],
237-
// List of headings
238-
"headers": []
239-
},
240-
241231
// MD044/proper-names - Proper names should have the correct capitalization
242232
// TODO
243233
// Determine if we want to use this,

docs/.vuepress/config.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,8 @@ module.exports = {
105105
sidebarDepth: 1,
106106
collapsable: false,
107107
children: [
108-
['/quickstart/publish','Publish with IPFS (UI)'],
109-
['/quickstart/publish_cli', 'Publish with IPFS (command line)' ],
110108
['/quickstart/retrieve','Retrieve with IPFS'],
109+
['/how-to/websites-on-ipfs/deploy-github-action', 'Deploy to IPFS with GitHub Actions' ],
111110
]
112111
},
113112
{
@@ -124,9 +123,8 @@ module.exports = {
124123
sidebarDepth: 1,
125124
collapsable: false,
126125
children: [
127-
['/quickstart/publish','Publish with IPFS (UI)'],
128-
['/quickstart/publish_cli', 'Publish with IPFS (command line)' ],
129126
['/quickstart/retrieve','Retrieve with IPFS'],
127+
['/how-to/websites-on-ipfs/deploy-github-action', 'Deploy to IPFS with GitHub Actions' ],
130128

131129
]
132130
},
@@ -243,10 +241,10 @@ module.exports = {
243241
sidebarDepth: 1,
244242
collapsable: true,
245243
children: [
244+
'/how-to/websites-on-ipfs/deploy-github-action',
245+
'/how-to/websites-on-ipfs/custom-domains',
246246
'/how-to/websites-on-ipfs/single-page-website',
247247
'/how-to/websites-on-ipfs/multipage-website',
248-
'/how-to/websites-on-ipfs/link-a-domain',
249-
'/how-to/websites-on-ipfs/introducing-fleek',
250248
'/how-to/websites-on-ipfs/static-site-generators',
251249
'/how-to/websites-on-ipfs/redirects-and-custom-404s'
252250
]

docs/.vuepress/redirects

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
/how-to/troubleshoot-file-transfers /how-to/troubleshooting
4545
/how-to/run-ipfs-inside-docker /install/run-ipfs-inside-docker
4646
/how-to/ipfs-updater /install/command-line
47+
/how-to/websites-on-ipfs/link-a-domain /how-to/websites-on-ipfs/custom-domains
4748
/install/command-line-quick-start/ /how-to/command-line-quick-start
4849
/install/js-ipfs/ https://github.com/ipfs/helia/wiki
4950
/introduction/ /concepts

docs/README.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,48 @@ title: IPFS Documentation
33
description: The home page for developer documentation for IPFS, the InterPlanetary File System.
44
---
55

6-
# Welcome to the IPFS docs
6+
# Welcome to the IPFS Docs
77

8-
The InterPlanetary File System (IPFS) is a set of composable, peer-to-peer protocols for addressing, routing, and transferring [content-addressed](concepts/glossary.md#content-addressing) data in a decentralized file system. Many popular Web3 projects are built on IPFS - see the [ecosystem directory](https://ecosystem.ipfs.tech) for a list of some of these projects.
8+
IPFS is a set of building blocks for a better web. Open protocols to make your data smarter: content-addressed, verifiable, and unstoppable.
99

10-
## Get started
10+
On a more technical level, IPFS is a set of open protocols for addressing, routing, and transferring data on the web, built on the ideas of [content addressing](concepts/glossary.md#content-addressing) and peer-to-peer networking.
1111

12-
You can quickly [store and retrieve data](#store-and-retrieve-data) and [interact with the network via a simple GUI app or a standard browser](#interact-with-the-network). If you'd rather develop applications, learn how to build IPFS-native apps or use standard HTTP in the [Build](#build) section.
12+
Many popular projects are built with IPFS - see the [ecosystem directory](https://ecosystem.ipfs.tech) and the [awesome-ipfs](https://github.com/ipfs/awesome-ipfs) list to find some of these projects.
1313

14-
:::callout
15-
New to IPFS? Start with
16-
[the 3-page Basic Concepts](./concepts/README.md#learn-the-basics).
17-
:::
14+
## Get started
15+
16+
You can get started [retrieving data](#retrieve-data) and [providing data](#provide-data) to the IPFS network. If you'd rather develop applications, learn how to build IPFS-native apps or use standard HTTP in the [Build](#build) section.
1817

19-
### Store and retrieve data
18+
### Retrieve data
2019

21-
Quickly store data and retrieve data, no complex applications or programming required:
20+
Quickly retrieve data from the IPFS network, no programming required:
2221

23-
- Publish content to the IPFS network with a pinning service by following this [quickstart guide](./quickstart/publish.md).
24-
- Fetch data via it's <VueCustomTooltip label="An address used to point to data in IPFS, based on the content itself, as opposed to the location." underlined multiline is-medium>content identifier (CID)</VueCustomTooltip> [using an IPFS gateway](./quickstart/retrieve.md#fetching-the-cid-with-an-ipfs-gateway).
25-
- For long-term storage, use [Filecoin](https://docs.filecoin.io/), the peer-to-peer network with built-in economic incentives that stores data on IPFS.
22+
- Fetch data via it's [content identifier (CID)](concepts/glossary.md#cid)[using an IPFS gateway](./quickstart/retrieve.md).
23+
- Install the [IPFS Companion](./install/ipfs-companion.md) browser extension to add support for `ipfs://` and `ipns://` addresses to your browser.
2624

27-
### Interact with the network
25+
### Provide data
2826

29-
You can quickly interact the IPFS network using a simple GUI or a standard browser:
27+
Provide data to the IPFS network with IPFS Desktop or a pinning service:
3028

31-
- For a simple, easy-to-use GUI application that bundles an IPFS node, file manager, peer manager, and content explorer, use [IPFS Desktop](./install/ipfs-desktop.md).
32-
- Interact with the network using any Brave, Chrome, Edge, Firefox, Opera, and any other Chromium-based web browser using the [IPFS Companion browser extension](./install/ipfs-companion.md).
29+
- [Install IPFS Desktop which bundles an IPFS node (Kubo) and a UI to manage files, peers, and explore content on IPFS](./install/ipfs-desktop.md).
30+
- [Publish content to the IPFS network with IPFS Desktop](./how-to/desktop-app.md).
31+
- [Deploy static sites to the IPFS network with a GitHub Action](./how-to/websites-on-ipfs/deploy-github-action.md).
3332

3433
### Build
3534

3635
You can build apps that leverage IPFS implementations, or use HTTP instead:
3736

3837
#### Using IPFS
3938

40-
Build an IPFS-native app using one of the many IPFS <VueCustomTooltip label="Software, written in any programming language, with functionality to process and transmit content-addressed data. Some implementations are optimized for specific use cases or devices, or use different subsystems to handle content-addressed data. There are multiple specifications in IPFS for handling content-addressed data, and not all implementations implement them." underlined multiline is-medium>implementations</VueCustomTooltip> and tools built by and for Web3 users:
39+
Build an IPFS-native app using one of the many IPFS [implementations](./concepts/ipfs-implementations.md) and tools:
4140

42-
- To develop IPFS applications using Go and/or interact with IPFS from the terminal, use the [IPFS Kubo implementation in Go](./install/command-line.md).
43-
- If you'd rather use JavaScript, try the [IPFS Helia implementation in JavaScript](https://github.com/ipfs/helia).
41+
- If you are familiar with JavaScript, checkout the [IPFS in web apps guide](./how-to/ipfs-in-web-apps.md), which covers how to use [Helia](https://github.com/ipfs/helia) and related libraries to build IPFS-native apps.
42+
- To develop IPFS applications using Go and/or interact with IPFS from the terminal, use the [IPFS Kubo implementation](./install/command-line.md).
4443
- Try any of the [many other tools and implementations](./concepts/ipfs-implementations.md), which are written in different languages and tailored to specific needs and use cases.
4544

4645
#### Using HTTP
4746

48-
Connect your Web2 application to the IPFS network using standard HTTP:
47+
As the IPFS ecosystem has grown and evolved with multiple implementations in different languages, HTTP has become an important foundation for interoperability. Check out the following resources to learn more:
4948

5049
- Control an IPFS Kubo node via HTTP using the [Kubo RPC API](./reference/kubo/rpc.md), which supports [multiple clients in multiple languages](./reference/kubo-rpc-cli.md).
5150
- For an implementation and runtime agnostic HTTP interface for retrieving data, use an [IPFS gateway](./reference/http/gateway.md).

docs/concepts/dnslink.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ For example, [`docs.ipfs.tech`](https://docs.ipfs.tech) loads because a `TXT` re
2929

3030
```shell
3131
dig +noall +answer TXT _dnslink.docs.ipfs.tech
32-
> _dnslink.docs.ipfs.tech. 30 IN TXT "dnslink=/ipfs/bafybeieenxnjdjm7vbr5zdwemaun4sw4iy7h4imlvvl433q6gzjg6awdpq"
32+
> _dnslink.docs.ipfs.tech. 30 IN TXT "dnslink=/ipfs/bafybeifld3uybj6azujisdnxu6cm7mombldpbt3au4g33nwnqx7dsgjrta"
3333

3434
```
3535

@@ -47,7 +47,7 @@ For example, let's go back to when we looked up the DNS records for `_dnslink.do
4747

4848
```sh
4949
$ dig +noall +answer TXT _dnslink.docs.ipfs.tech
50-
_dnslink.docs.ipfs.tech. 34 IN TXT "dnslink=/ipfs/QmVMxjouRQCA2QykL5Rc77DvjfaX6m8NL6RyHXRTaZ9iya"
50+
_dnslink.docs.ipfs.tech. 34 IN TXT "dnslink=/ipfs/bafybeifld3uybj6azujisdnxu6cm7mombldpbt3au4g33nwnqx7dsgjrta"
5151
```
5252

5353
Based on that, this address:
@@ -59,9 +59,12 @@ Based on that, this address:
5959
Will get you this block:
6060

6161
```
62-
/ipfs/QmVMxjouRQCA2QykL5Rc77DvjfaX6m8NL6RyHXRTaZ9iya/introduction/
62+
/ipfs/bafybeifld3uybj6azujisdnxu6cm7mombldpbt3au4g33nwnqx7dsgjrta/introduction/
6363
```
6464

6565
## Further Resources
6666

67+
For more information on how to use DNSLink for your website or app, check out the [Custom domains and DNSLink](../how-to/websites-on-ipfs/custom-domains.md) guide.
68+
6769
For a complete guide to DNSLink — including tutorials, usage examples, and FAQs — check out [dnslink.dev](https://dnslink.dev/).
70+

docs/concepts/faq.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ description: Explore frequently asked questions about IPFS, the InterPlanetary F
77

88
## What is IPFS?
99

10-
The InterPlanetary File System (IPFS) is a set of composable, peer-to-peer protocols for addressing, routing, and transferring [content-addressed](../concepts/glossary.md#content-addressing) data in a decentralized file system. Many popular Web3 projects are built on IPFS - see the [ecosystem directory](https://ecosystem.ipfs.tech) for a list of some of these projects.
10+
IPFS is a set of building blocks for a better web. Open protocols to make your data smarter: content-addressed, verifiable, and unstoppable.
11+
12+
On a more technical level, IPFS is a set of open protocols for addressing, routing, and transferring data on the web, built on the ideas of [content addressing](../concepts/glossary.md#content-addressing) and peer-to-peer networking.
1113

1214
New to IPFS? Start with
1315
[the 3-page Basic Concepts](../concepts/README.md#learn-the-basics).
@@ -86,4 +88,4 @@ IPFS is an open-source project with a community of more than four thousand contr
8688

8789
## Don't see your question?
8890

89-
We're working on expanding this FAQ with more content, including questions from the original-generation [IPFS forums](https://discuss.ipfs.tech/c/help/old-faq/5), so please watch this space! However, if you don't see your question, please [ask in the forums](https://discuss.ipfs.tech/), so you can get the answers you need and make us aware of new FAQ items.
91+
If you don't see your question, please [ask in the IPFS forums](https://discuss.ipfs.tech/).

docs/concepts/what-is-ipfs.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ description: Learn what IPFS is and isn't.
55

66
# What is IPFS
77

8-
IPFS is a modular suite of <VueCustomTooltip label="A set of standards, rules or procedures for transmitting data between computers, including how the information will be structured and how each computer will send and receive it. Notable examples include TCP/IP, HTTP/S, SMTP, and DNS." underlined multiline is-medium is-bottom>protocols</VueCustomTooltip> for organizing and transferring data, designed from the ground up with the principles of <VueCustomTooltip label="A way to address data by its hash rather than its location (IPs)." underlined multiline>content addressing</VueCustomTooltip> and <VueCustomTooltip label="A network of computers model in which each party has equivalent capabilities and can initiate a communication session." underlined multiline is-medium>peer-to-peer networking</VueCustomTooltip>. Because IPFS is <VueCustomTooltip label="Software released under a license that grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software is often developed in a collaborative public manner that encourages contributions from users." underlined multiline is-medium>open-source</VueCustomTooltip>, there are multiple <VueCustomTooltip label="Software, written in any programming language, with functionality to process and transmit content-addressed data. Some implementations are optimized for specific use cases or devices, or use different subsystems to handle content-addressed data. There are multiple specifications in IPFS for handling content-addressed data, and not all implementations implement them." underlined multiline is-medium>implementations</VueCustomTooltip> of IPFS.
9-
While IPFS has more than one use case, its main use case is for publishing data (files, directories, websites, etc.) in a decentralised fashion.
8+
IPFS is a set of building blocks for a better web. Open protocols to make your data smarter: content-addressed, verifiable, and unstoppable.
9+
10+
On a more technical level, IPFS is a set of open protocols for addressing, routing, and transferring data on the web, built on the ideas of [content addressing](../concepts/glossary.md#content-addressing) and peer-to-peer networking.
11+
1012

1113
:::callout
1214
This guide is part 1 of a 3-part introduction to [the basic concepts of IPFS](../concepts/README.md#learn-the-basics). The second part, [**IPFS and the problems it solves**](../concepts/ipfs-solves.md), covers the problems with the internet and current protocols like HTTP that IPFS solves.

0 commit comments

Comments
 (0)