create-ipfs-app
Version:
Create IPFS apps with no build configuration.
116 lines (79 loc) • 4.43 kB
Markdown
# Create IPFS App
<img alt="Create IPFS App" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/create-ipfs-app.png" />
<img alt="IPFS" align="right" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/ipfs.svg" width="130px" />
Create IPFS apps with no build configuration (like create-react-app).
<a href="https://filebase.com"><img alt="FileBase.Com" align="right" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/filebase.png" width="55px" /></a>
<a href="https://web3.storage"><img alt="Web3.Storage" align="right" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/web3.png" width="50px" /></a>
<a href="https://pinata.cloud"><img alt="Pinata.Cloud" align="right" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/pinata.svg" width="55px" /></a>
<a href="https://moralis.io"><img alt="Moralis.Io" align="right" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/moralis.png" width="70px" /></a>
Create IPFS App works on macOS, Windows, and Linux.<br>
If something doesn’t work, please [file an issue](https://github.com/alexbakers/create-ipfs-app/issues/new).<br>
If you have questions or need help, please ask in [GitHub Discussions](https://github.com/alexbakers/create-ipfs-app/discussions).
If you want to watch the tutorial, go to [this video](https://vimeo.com/745362905).
## Quick Overview
To create a new IPFS app, you may choose one of the following methods:
### NPX
```sh
npx create-ipfs-app my-ipfs-app --web3 WEB3_STORAGE_API_TOKEN
```
### YARN
```sh
yarn create ipfs-app my-ipfs-app --moralis MORALIS_WEB3_API_KEY
```
### NPM
```sh
npm install -g create-ipfs-app
create-ipfs-app my-ipfs-app --pinata PINATA_API_KEY:PINATA_API_SECRET
```
## Params
- `--web3 WEB3_STORAGE_API_TOKEN`
- `--moralis MORALIS_WEB3_API_KEY`
- `--pinata PINATA_API_KEY:PINATA_API_SECRET`
- `--filebase FILEBASE_API_KEY:FILEBASE_API_SECRET:FILEBASE_BUCKET_NAME`
<img alt="Create IPFS App Success" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/success.png" />
Once the installation is done, you can open your project folder:
```sh
cd my-ipfs-app
```
Inside the newly created project, you can run some built-in commands:
### `npm start` or `yarn start`
Runs the app in development mode.<br>
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
### `npm test` or `yarn test`
Runs the test watcher in an interactive mode.<br>
By default, runs tests related to files changed since the last commit.
### `npm run build` or `yarn build`
Builds the app for production to the `build` folder.<br>
Your app is ready to be deployed.
### `npm run deploy:service` or `yarn deploy:service`
<img alt="Create IPFS App Deployed" src="https://raw.githubusercontent.com/alexbakers/create-ipfs-app/main/public/deployed.png" />
- `deploy:web3` - deploy to <a href="https://web3.storage">web3.storage</a>
- `deploy:moralis` - deploy to <a href="https://moralis.io">moralis.io</a>
- `deploy:pinata` - deploy to <a href="https://pinata.cloud">pinata.cloud</a>
- `deploy:filebase` - deploy to <a href="https://filebase.com">filebase.com</a> [<a href="https://docs.filebase.com/knowledge-base/web3-tutorials/create-ipfs-dapp">tutorial</a>]
In a few seconds, your application will be deployed on the decentralized network.<br>
- Open `ipfs://Q.../index.html` to view it in the Brave browser.
- Open `https://dweb.link/ipfs/Q.../index.html` to view it in the ALL browsers.
If you see a white screen instead of a website:
- Add to package.json `"homepage": "."`;
- Build the project;
- Deploy it again.
## How to add a deployment script to an existing project?
- Install global package `ipfs-scripts`;
- Create `.env` file at the root of project:
- `MORALIS="MORALIS.IO WEB3_API_KEY"`
- `PINATA="PINATA.CLOUD API_KEY:API_SECRET"`
- `WEB3="WEB3.STORAGE API_TOKEN"`
- `FILEBASE="FILEBASE.COM API_KEY:API_SECRET:BUCKET_NAME"`
- Add **scripts** to package.json:
- `"deploy:moralis": "ipfs-scripts moralis"`
- `"deploy:pinata": "ipfs-scripts pinata"`
- `"deploy:web3": "ipfs-scripts web3"`
- `"deploy:filebase": "ipfs-scripts filebase"`
# TODO
- [x] web3.storage
- [x] moralis.io
- [x] pinata.cloud
- [x] filebase.com
- [ ] framework agnostic (vue, svelte, ...)
- [ ] auto-update CloudFlare DNS