Download PDF or ODT file. This page on IPFS.

DIY Website Publication On IPFS - Summary

"Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for a lifetime." - Chinese Proverb

28 Feb 2021 – by Mike Swatek

This document will be available on IPFS at https://ipfs.io/ipns/k2k4r8mlcz4sn7rvh45zq2uu1b883mrs6a9hmhn4dzl6mobpumbiruhv/FreedomPosts/DIY-Website-Publication-On-IPFS-Summary.html

 

This is a process for publishing and updating a website on IPFS (Inter-Planetary File System), plus putting it on multiple other IPFS locations for faster and more assured access. It can be accomplished for all websites by people with relatively common computer skills. Each website using the programs and instructions will be able to self-sufficiently publish on IPFS with no central support required. This process will work for all types of websites. It is much revised from prior versions. For a more detailed version of this document email Web3Only@Agorist.Market

First appearance of “items in quotes” are “underlined” and serve as their definition in the rest of the document. If this summary is still to complicated, disregard items indented more than one level (eg: ignore 1.1.1)

  1. First publication and archiving

    1. Copy or import website to HTML (HyperText Meta Language) format in a new “IPFS publishing folder

      1. Similar to what Sahid did for TheHighWire.com

      2. A user friendly specialized version of this code is needed as a HIGH PRIORITY

    2. Compress video files from “IPFS publishing folder” to a new “video folder

      1. User friendly software made specifically for this purpose is very close to release

      2. This may take many days the first time the first time it’s done for a large website.

    3. Copy compressed video files from “video folder” into “IPFS publishing folder”, overwriting all larger files

      1. Any changes of .mov and .avi files to .mp4 will require a new “IPFS publishing folder” processing program

      2. Websites with all video in mp4 format won’t need the new processing program

    4. Index IPFS publishing folder to create “IPFS search metadata

      1. A new program for this is important, but not urgent. Websites can proceed to IPFS publishing without it for a while.

    5. Install IPFS Desktop on an “IPFS Publishing PC” to create an “IPFS local node

      1. The “IPFS Publishing PC” is dedicated to this purpose which will slow other uses on that PC

      2. Raspberry Pi4 units may be used for the “IPFS Publishing PC”, but other PCs meeting a minimum spec will work.

    6. Copy “IPFS publishing folder” containing website to “IPFS Publishing PC”

    7. Create “unchanging IPNS website address”, like a domain name on IPFS, using the “IPFS local node”.

      1. For website publishing which can only be edited by the publisher’s unique “IPFS local node”

      2. IPNS is Inter-Planetary Name System.

    8. Add to “IPFS local node” the entire website in “IPFS publishing folder” on “IPFS Publishing PC”

    9. Publish entire website in “IPFS local node” to the publisher’s “unchanging IPNS website address”

      1. Derrick did this for TheHighWire.com and must therefore always repeat this for any updates to be on IPFS

      2. Older and other less accessed content may remain very slow (this and 1.9.1 are addressed in 1.11)

    10. Notify IPFS search engines of new IPNS website address having “IPFS search metadata” from 1.4

      1. Search engines aren’t yet available and aren’t needed to proceed with publishing to IPFS

    11. Duplicates of the website publisher’s “IPFS local node” with all content are established on PCs of “IPFS supporter nodes

      1. Provided by website supporters at various locations.

      2. This provides much faster and more assured downloading for old and other less accessed content.

  2. After publisher updates website

    1. Copy website to HTML in local “IPFS publishing folder” (same folder and program as step 1.1)

      1. Adds new files

      2. Updates changed files

      3. Does not overwrite existing compressed video files

    2. Compress new video files from “IPFS publishing folder” to “video folder” (same as step 1.2, ignoring prior compressed)

      1. if publisher has not begun making smaller original video files

    3. Copy compressed new video files from “video folder” to “IPFS publishing folder”, overwriting all larger files
      (same as step 1.3, ignoring prior compressed)

    4. Index “IPFS publishing folder” to create IPFS search data (same as step 1.4)

    5. Copy “IPFS publishing folder” containing website to “IPFS Publishing PC”, replacing existing folder (same as step 1.6)

    6. Add to “IPFS local node” the entire website in “IPFS publishing folder” on “IPFS Publishing PC” (same as step 1.8)

      1. Duplicates files will be ignored

    7. Publish entire website in “IPFS publishing folder” to the publisher’s “unchanging IPNS website address” (same as step 1.9)

    8. “IPFS supporter nodes” (from step 1.11) will periodically check their “unchanging IPNS website address” for any change

      1. A program is needed automate this, but it can be done manually.

    9. When change is detected, “IPFS supporter nodes” update their IPFS content

      1. This will take hours to days, depending upon the size of the website, which video compression can greatly reduce.

  3. Media and social networks

    1. Content will be pulled from content publishers which they frequently check for changes

    2. These websites who are successful will outgrow the size limitations for IPFS publishing per sections 1 and 2:

      1. insufficiently fast updates by “IPFS supporter nodes”

      2. unstable “IPFS local node” and “IPFS supporter nodes”

    3. A different approach is needed for use of IPFS as a distributed platform for media and social networks

      1. Alternatively, they can reside on their own app-driven distributed networks, as LBRY has done