IPFS-boot is a versatile web bootloader that enables the effortless publishing of IPFS applications requiring user consent for updates. By hosting a versions.json file, users can choose from various app versions, ensuring reproducibility and transparency in builds while leveraging the power of IPFS for distribution.
IPFS-boot is a tool designed to publish IPFS web applications that require user consent before updating. It acts as a web bootloader, allowing developers to create customizable applications by either forking existing projects like IPFS-boot-react or IPFS-boot-choo.
The repository establishes a mechanism for hosting web applications on IPFS using a file named versions.json. This file, hosted on any HTTPS server, contains an array of items that describe different versions of the application, permitting users to select their preferred version. The unique content identifier (CID) of the bootloader serves as the app's URL in combination with the CIDs of each application version listed in versions.json.
The bootloader remains static, while the styling of the application can be adapted with updates, such as new CSS. This innovative approach ensures that apps are easily updatable and secure for users who will have access to the source code to confirm the published IPFS CID matches the original code.
For reproducible builds, the project utilizes Docker. Below is how to build and run the application:
docker buildx build --platform=linux/amd64 -t ipfs-boot .
docker run --rm -i --platform=linux/amd64 -v ./dist:/root/dist ipfs-boot
For deploying the pinning service, refer to the guide detailing how to select an IPFS pin service, along with the steps required to run the pinning docker container.
Local development iterations can be sped up by accessing the bootloader at http://localhost:8080. The following commands set up the necessary environment:
npm --prefix javascript/ install
npm --prefix javascript/ run dev
The Rust components within the project, specifically within the rust/ directory and the WebAssembly file dist/nitro_wasm.wasm, are intended to support attestation with AWS Nitro servers. This integration enables the creation of reproducible clients and servers, with additional contributions recognized from various resources like lock.host.
To demo the bootloader, users are encouraged to contribute their styles through PRs. Quickly accessible demos for both versions of the application can be found here:
For more details, refer to the FAQ.
IPFS-boot empowers developers to create, host, and update decentralized web applications smoothly and securely on the IPFS network.
No comments yet.
Sign in to be the first to comment.