├── .gitbook └── assets │ ├── drive-explore-large-light.png │ ├── drive-image-preview.png │ ├── drive-index-large-light.png │ ├── drive-preview-large-dark.png │ ├── drive-preview-large-light.jpg │ ├── fission-drive-boris-preview-light.png │ ├── fission-drive-iphone-dark.png │ ├── heroku_config_vars.png │ ├── screen-shot-2020-03-04-at-8.00.25-am.png │ ├── screenshot-2020-02-10-at-10.51.36-pm.png │ ├── screenshot-2020-02-12-at-11.07.56-am.png │ ├── screenshot-2020-02-12-at-11.08.39-am.png │ └── screenshot-2020-03-04-08.58.05.png ├── README.md ├── SUMMARY.md ├── appendix ├── ipfs.md └── troubleshooting.md ├── apps ├── cli.md ├── custom-domains.md ├── fission-cli-react.md ├── getting-started.md ├── installation.md └── ponto-de-partida.md ├── developers ├── heroku.md ├── resources.md └── web-api.md └── drive └── preview.md /.gitbook/assets/drive-explore-large-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/drive-explore-large-light.png -------------------------------------------------------------------------------- /.gitbook/assets/drive-image-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/drive-image-preview.png -------------------------------------------------------------------------------- /.gitbook/assets/drive-index-large-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/drive-index-large-light.png -------------------------------------------------------------------------------- /.gitbook/assets/drive-preview-large-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/drive-preview-large-dark.png -------------------------------------------------------------------------------- /.gitbook/assets/drive-preview-large-light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/drive-preview-large-light.jpg -------------------------------------------------------------------------------- /.gitbook/assets/fission-drive-boris-preview-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/fission-drive-boris-preview-light.png -------------------------------------------------------------------------------- /.gitbook/assets/fission-drive-iphone-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/fission-drive-iphone-dark.png -------------------------------------------------------------------------------- /.gitbook/assets/heroku_config_vars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/heroku_config_vars.png -------------------------------------------------------------------------------- /.gitbook/assets/screen-shot-2020-03-04-at-8.00.25-am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/screen-shot-2020-03-04-at-8.00.25-am.png -------------------------------------------------------------------------------- /.gitbook/assets/screenshot-2020-02-10-at-10.51.36-pm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/screenshot-2020-02-10-at-10.51.36-pm.png -------------------------------------------------------------------------------- /.gitbook/assets/screenshot-2020-02-12-at-11.07.56-am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/screenshot-2020-02-12-at-11.07.56-am.png -------------------------------------------------------------------------------- /.gitbook/assets/screenshot-2020-02-12-at-11.08.39-am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/screenshot-2020-02-12-at-11.08.39-am.png -------------------------------------------------------------------------------- /.gitbook/assets/screenshot-2020-03-04-08.58.05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fission-codes/fission-guide/fefe95a0970d4aef1d1c4c737cf7c901ce81241a/.gitbook/assets/screenshot-2020-03-04-08.58.05.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | ## What is Fission? 4 | 5 | Fission helps you quickly and easily publish files, websites, and apps directly from your local machine. 6 | 7 | We enable a serverless style of website and app building. This supports local-first software that runs locally for you and your users as much as possible. 8 | 9 | For front-end developers and designers, we provide a backend-as-a-service that includes user logins, end-to-end encryption, and user-controlled data. 10 | 11 | Use the front-end frameworks you already know to quickly build front end features, and plug in these Fission features to power your app. Fission includes publishing tools and free subdomains to bring your websites and apps live. 12 | 13 | Get started by installing the tools on your local machine. 14 | 15 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Table of contents 2 | 3 | * [Overview](README.md) 4 | 5 | ## Fission Apps 6 | 7 | * [Installation](apps/installation.md) 8 | * [Getting Started](apps/getting-started.md) 9 | * [Ponto de Partida](apps/ponto-de-partida.md) 10 | * [Fission CLI](apps/cli.md) 11 | * [Custom Domains](apps/custom-domains.md) 12 | * [Using the Fission CLI to publish React sites](apps/fission-cli-react.md) 13 | 14 | ## Fission Drive 15 | 16 | * [Preview](drive/preview.md) 17 | * [Try Drive](https://drive.fission.codes) 18 | 19 | ## Developers 20 | 21 | * [Fission Web API](developers/web-api.md) 22 | * [Heroku Add-on](developers/heroku.md) 23 | * [Fission Web API \(Live Swagger Docs\)](https://runfission.com/docs) 24 | * [Further Reading and Resources](developers/resources.md) 25 | 26 | ## Appendix 27 | 28 | * [Learning IPFS](appendix/ipfs.md) 29 | * [Troubleshooting](appendix/troubleshooting.md) 30 | * [Technical Specifications & Whitepaper](https://whitepaper.fission.codes) 31 | 32 | -------------------------------------------------------------------------------- /appendix/ipfs.md: -------------------------------------------------------------------------------- 1 | # Learning IPFS 2 | 3 | The main [IPFS docs website](https://docs.ipfs.io/introduction/) is a good place to start to read and learn about IPFS. We've included a few explanations about certain ways that we use core IPFS features. 4 | 5 | Other resources: 6 | 7 | * [ProtoSchool](https://proto.school/): features a number of interactive web tutorials, as well as the home base for in-person chapters around the world 8 | 9 | ### DNSLink 10 | 11 | From the [IPFS docs](https://docs.ipfs.io/guides/concepts/dnslink/): 12 | 13 | > DNSLink uses [DNS TXT](https://en.wikipedia.org/wiki/TXT_record) records to map a domain name \(like `ipfs.io`\) to an IPFS address. Because you can edit your DNS records, you can use them to always point to the latest version of an object in IPFS \(remember that an IPFS object’s address changes if you modify the object\). Because DNSLink uses DNS records, the names it produces are also usually easy to type and read. 14 | 15 | Fission Live automagically updates the DNS TXT record for you whenever you make changes. 16 | 17 | #### IPNS vs. IPFS in DNSLink 18 | 19 | You can use either an IPNS or an IPFS address for DNSLink. 20 | 21 | If you use IPNS, you are entering the Peer ID of your local node, and your node will have to be online. However, on the positive side, you don't need to update your TXT record, as your Peer ID is consistent. Note that IPNS records are only cached for 24 hours, so you'll have to refresh at least once a day. 22 | 23 | If you use an IPFS address, you are entering the hash representing the DAG of a folder. Whenever you make an edit to any of the files in the folder, the DAG hash changes, and you need to update the DNS TXT record each time. Fission Live does this automatically using `up` or `watch`, and we pin your files so they will always be online. 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /appendix/troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 'Troubleshooting, work arounds, and known issues.' 3 | --- 4 | 5 | # Troubleshooting 6 | 7 | ## Maximum Open Files on Ubuntu, Mac OS, ChromeOS 8 | 9 | We've had a report with uploading large numbers of files using `ipfs-deploy` with Fission support that you may need to increase the number of open files that your operating system supports. This could also occur with `fission watch`. 10 | 11 | For ubuntu, read [underyx's article to increase the number of open files allowed](https://underyx.me/articles/raising-the-maximum-number-of-file-descriptors). 12 | 13 | For Mac OS, [Wilson Mar](https://wilsonmar.github.io/maximum-limits/) has a one liner: 14 | 15 | ```text 16 | sudo launchctl limit maxfiles 65536 200000 17 | ``` 18 | 19 | As [described in the article,](https://wilsonmar.github.io/maximum-limits/) you'll want to add it to your bash or other shell profile so this change is permanent. 20 | 21 | On a Chromebook in the native ChromeOS shell? Yeah, [Boris hit this issue too when running large jekyll or gatsby builds](https://wiki.bmann.ca/chromebook#increase-inotify): 22 | 23 | ```text 24 | sudo sysctl fs.inotify.max_user_watches=1048576 25 | ``` 26 | 27 | ## Re-installing brew on Mac 28 | 29 | We've had some hiccups with our brew formula recently. To re-install / reset brew, run the following: 30 | 31 | ```text 32 | brew untap fission-suite/fission 33 | ``` 34 | 35 | Now re-run the [installation instructions](https://guide.fission.codes/installation#macos), copied here for convenience: 36 | 37 | ```text 38 | brew tap fission-suite/fission 39 | brew install fission-cli 40 | ``` 41 | 42 | This is related to [issue \#37](https://github.com/fission-suite/cli/issues/37). 43 | 44 | ## DEBUG mode for fission cli 45 | 46 | If you want to see what the [Fission CLI](../apps/cli.md) is doing under the covers, you can turn on DEBUG mode by calling commands like this: 47 | 48 | ```text 49 | DEBUG=true fission up . 50 | ``` 51 | 52 | You'll see that `fission up` calls your locally installed `ipfs` command to add files to IPFS. We can see that it's using the 0.4.22 version of ipfs, installed using Homebrew in the "Cellar" where brew keeps installed items. 53 | 54 |  55 | 56 | Then, it sends the hash of the entire directory to our web API, which pins it and fetches the files directly from your laptop and any other IPFS nodes that already have copies of those files in the network. 57 | 58 |  59 | 60 | In this case, we can see that after the "Remote pinning Qm…", there is a _504 Gateway Time-out_ error from our server. This is a known issue, which we're working on to support large files / large quantities of files. 61 | 62 | ## Running IPFS as a service on Linux and WSL 63 | 64 | WSL doesn't have systemd, so this init.d script should work. 65 | 66 | {% embed url="https://gist.github.com/bmann/54223ad136d9ff34144ad6367fc05677" %} 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /apps/cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: The Fission Command Line Interface (CLI) 3 | --- 4 | 5 | # Fission CLI 6 | 7 | The Fission CLI has the following commands: 8 | 9 | * `login` 10 | * `logout` 11 | * `register` 12 | * `reset-password` 13 | * `up` 14 | * `down` 15 | * `watch` 16 | * `whoami` 17 | 18 | Details on all of these commands can be seen at any time by running `fission --help` 19 | 20 | ```bash 21 | Usage: fission [--version] [--help] COMMAND 22 | Fission makes developing, deploying, updating and iterating on web 23 | applications quick and easy. 24 | 25 | Available options: 26 | --version Show version 27 | --help Show this help text 28 | 29 | Available commands: 30 | login Add your Fission credentials 31 | logout Logout of your Fission account 32 | register Register for Fission and login 33 | reset-password Reset Fission Password 34 | up Keep your current working directory up 35 | down Pull a ipfs or ipns object down to your system 36 | watch Keep your working directory in sync with the IPFS 37 | network 38 | whoami Check the current user 39 | ``` 40 | 41 | ### Login & Register 42 | 43 | Before using Fission services, you need to login. `login` and `register` prompt you for user credentials and store them in `~/.fission.yaml`. 44 | 45 | If you ever need to log into a different account, just delete `~/.fission.yaml` and login again. 46 | 47 | ### Up 48 | 49 | This is the only command you need to get your content hosted on the decentralized web! 50 | 51 | To use `up`, make sure that you: 52 | 53 | * have an IPFS daemon running in the background \(through [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop), or in another terminal\) 54 | * are currently in the directory containing the assets you want to deploy 55 | 56 | A few things happen when you run `fission up`: 57 | 58 | * the directory is recursively added to IPFS through your local node \(the equivalent of running `ipfs add -r ./`\) 59 | * Your local node connects to a remote Fission node \(the equivalent of running `ipfs swarm connect [peerId]`\) 60 | * A Pin Request is sent to our server which tells the remote Fission node to get and store the requested content directly from your local node 61 | * a request is sent to our server to update the Domain associated with you account to point to the new content using dnslink ℹ 62 | * This points `[username].demo.runfission.com` at our IPFS gateway \([ipfs.runfission.com](https://ipfs.runfission.com/ipfs/Qmaisz6NMhDB51cCvNWa1GMS7LU1pAxdF4Ld6Ft9kZEP2a)\) 63 | * And `_dnslink.[username].demo.runfission.com` at your uploaded content 64 | * _Note: It may take some time for DNS to propagate. So give it a minute or two if it doesn't load immediately._ 65 | 66 | But from your perspective, it's just success messages, emojis, and a link to your hosted website 🚀 67 | 68 | ### Down 69 | 70 | 71 | 72 | ### Watch 73 | 74 | If you're currently developing your website and want continuous updates to the hosted version, use `watch` instead of `up`. 75 | 76 | This command does the same thing as `up` but after uploading your content, it continues watching the current directory for changes. Every time you change a file, it adds the new content to IPFS, pins it to the remote Fission node, and updates DNS. 77 | 78 | -------------------------------------------------------------------------------- /apps/custom-domains.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Instructions for DNS and domain registrar settings to use a custom domain with 4 | Fission 5 | --- 6 | 7 | # Custom Domains 8 | 9 | Every Fission App gets a free subdomain. 10 | 11 | Currently, these look like `YOURUSERNAME.fission.name`, but we're migrating to user accounts and attached apps, where every app has `YOURAPPNAME.fission.app`. 12 | 13 | To use a custom domain of your own, like `YOURAPPDOMAIN.com`, you need to point your domain at our name servers in your domain registrar control panel. 14 | 15 | {% hint style="warning" %} 16 | Note: custom domains currently require manual confirmation by us. This will be integrated directly into the Fission CLI and be fully automated. For now, [contact us on our support page](https://fission.codes/support) if you want to use this feature. 17 | {% endhint %} 18 | 19 | ### Fission Nameservers 20 | 21 | * ns1.fission.systems 22 | * ns2.fission.systems 23 | * ns3.fission.systems 24 | * ns4.fission.systems 25 | 26 | ### Changing Nameservers in Namecheap 27 | 28 | Go to the domain you want to host on Fission in your Namecheap admin: 29 | 30 |  31 | 32 | Where it says "Namecheap BasicDNS", select "Custom DNS" from the drop down: 33 | 34 |  35 | 36 | Enter in `ns1.fission.systems` and `ns2.fission.systems` and click the green check mark to save. 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /apps/fission-cli-react.md: -------------------------------------------------------------------------------- 1 | # Using the Fission CLI to publish React sites 2 | 3 | Fission works with any static or client side sites and apps, whether you have a single html file, or you're using a static site generator like [Gatsby](https://www.gatsbyjs.org/) or [Jekyll](https://jekyllrb.com/). 4 | 5 | Here we'll walk through how to build and deploy a static site using Gatsby, but the process will be the same for any static site. 6 | 7 | First, choose a project, and `cd` into the project directory. For this guide, we'll use [reactjs.org](https://github.com/reactjs/reactjs.org) so that anyone can follow along, but if you have another site in mind, use that! 8 | 9 | ```bash 10 | $ git clone https://github.com/reactjs/reactjs.org 11 | $ cd reactjs.org 12 | ``` 13 | 14 | Install dependencies: 15 | 16 | ```bash 17 | $ yarn 18 | ``` 19 | 20 | Build the site: 21 | 22 | ```bash 23 | $ yarn build 24 | ``` 25 | 26 | `cd` into the build folder 27 | 28 | ```bash 29 | $ cd public 30 | ``` 31 | 32 | Go interplanetary! 33 | 34 | ```bash 35 | $ fission up 36 | 🚀 Now live on the network 37 | 👌 QmTurDD2LNBmmrxP2czBmL15415KFoxEXQ8nvJGhLrgJvU 38 | 📝 DNS Updated. Check out your site at: 39 | 🔗 21ebedd5d4070a521f83.demo.runfission.com 40 | ``` 41 | 42 | Now copy that link from you terminal to your browser to see your site served live from the decentralized web! 43 | 44 | -------------------------------------------------------------------------------- /apps/getting-started.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Get your first site up and running on IPFS with this beginner-friendly guide 3 | --- 4 | 5 | # Getting Started 6 | 7 | ## Register or Login 8 | 9 | Now that you have `fission` installed, you need to register for an account: 10 | 11 | ```bash 12 | $ fission register 13 | ✅ Registered & logged in 14 | ``` 15 | 16 | And you're good to go! Your credentials are stored in `~/.fission.yaml` 17 | 18 | If you already have an account, you can login instead: 19 | 20 | ```bash 21 | $ fission login 22 | Username: # follow the prompts to provide your username and password 23 | ``` 24 | 25 | {% hint style="info" %} 26 | Our default web addresses are based on your username, and look like `USERNAME.fission.name`. In the future, you'll be able to add custom domains. 27 | {% endhint %} 28 | 29 | ## Run IPFS 30 | 31 | You need IPFS running in order to use `fission` 32 | 33 | If you're using [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop), ensure that the application is running. 34 | 35 | If you're running `ipfs` from the command line, run the following in a separate terminal: 36 | 37 | ```bash 38 | $ ipfs daemon 39 | ``` 40 | 41 | ## Create a simple webpage 42 | 43 | Let's create a simple website and make it interplanetary! 44 | 45 | Create a project directory and add an `index.html` file: 46 | 47 | ```bash 48 | $ mkdir hello-universe 49 | $ cd hello-universe 50 | $ touch index.html 51 | ``` 52 | 53 | Add some content to `index.html`: 54 | 55 | {% code title="index.html" %} 56 | ```markup 57 | 58 |
59 |This is on the InterPlanetary File System.
64 |Assisted by Fission.
65 | 66 | 67 | ``` 68 | {% endcode %} 69 | 70 | ## Go interplanetary! 71 | 72 | Make sure you're in your project folder \(`hello-universe`\) and run: 73 | 74 | ```bash 75 | $ fission up 76 | 🚀 Now live on the network 77 | 👌 QmPmZDd6esqzsc2R1i8t5DcRGeRKrNomMhqj232Cz6heNW 78 | 📝 DNS Updated. Check out your site at: 79 | 🔗 diffusiondemo.fission.name 80 | ``` 81 | 82 | Copy the url from the last line, and paste it into your web browser to see your new site, hosted on the decentralized web. It's that easy! 83 | 84 | _Note: It may take some time for DNS to propagate. So give it a minute or two if it doesn't load immediately. If you're impatient you can also take the `content-id` from the CLI output and view it here at `https://ipfs.runfission.com/ipfs/{YOUR_CONTENT_ID}`_ 85 | 86 | {% hint style="success" %} 87 | Fun IPFS Fact: If everyone follows this tutorial exactly you will end up with identical Content ID's. This means you can instantly pull the demo website from your neighbour if they're a step ahead of you. 88 | {% endhint %} 89 | 90 | -------------------------------------------------------------------------------- /apps/installation.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Install the Fission command line tools to start publishing from your desktop 3 | --- 4 | 5 | # Installation 6 | 7 | We build on top of decentralized web technologies like the InterPlanetary File System \(IPFS\) to publish directly from your local development environment without having to learn complicated deployment or DevOps techniques. 8 | 9 | Right now you need to install IPFS as well as the Fission command line tool to get up and running, but it should just take a couple of minutes if you follow these instructions. 10 | 11 | ## Installing IPFS 12 | 13 | ### ipfs-desktop 14 | 15 | [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop) is a great option for a graphical interface, including options to run ipfs as a service on system start, as well as easy access to start and stop the ipfs daemon. 16 | 17 | You can download the release from their Github page or use your favorite package manager: 18 | 19 | * Homebrew \(macOS\): `brew cask install ipfs` 20 | * Chocolatey \(Windows\): `choco install ipfs-desktop` 21 | * Snap \(Linux\): `snap install ipfs-desktop` 22 | 23 | {% hint style="info" %} 24 | The command line ipfs daemon is also included as part of this install. 25 | {% endhint %} 26 | 27 | ### Command Line IPFS 28 | 29 | #### MacOS 30 | 31 | If you're not running ipfs-desktop, install ipfs via brew: 32 | 33 | ```bash 34 | brew install ipfs 35 | ``` 36 | 37 | To run ipfs as a background service: 38 | 39 | ```bash 40 | brew services start ipfs 41 | ``` 42 | 43 | #### Linux and Windows / WSL 44 | 45 | Download the Linux binary from the [IPFS distributions page](https://dist.ipfs.io/#go-ipfs). 46 | 47 | Untar the archive and run the `./install.sh` script \(which just moves the binary to a local bin path\). 48 | 49 | ```bash 50 | $ tar xvfz go-ipfs.tar.gz 51 | $ cd go-ipfs 52 | $ ./install.sh 53 | ``` 54 | 55 | ### All Systems 56 | 57 | For all systems, IPFS should now be installed. Initialize your IPFS repo: 58 | 59 | ```bash 60 | ipfs init 61 | ``` 62 | 63 | By default the config and files are stored in your home directory in the`.ipfs` directory. 64 | 65 | ipfs-desktop can be turned on and off graphically. For Linux systems, run the daemon in the background: 66 | 67 | ```bash 68 | ipfs daemon & 69 | ``` 70 | 71 | If you would like to be able to easily start and stop the ipfs daemon, see the [Troubleshooting page](../appendix/troubleshooting.md#initd). 72 | 73 | ## Installing the Fission CLI 74 | 75 | The Fission command line interface \(CLI\) is the main way to interact with Fission's services. 76 | 77 | {% hint style="info" %} 78 | For Windows users, we currently recommend using the Windows Subsystem for Linux \(WSL\). The Linux instructions below apply equally to WSL, except where noted. 79 | {% endhint %} 80 | 81 | #### MacOS 82 | 83 | We have a brew recipe to get you up and running quickly on MacOS: 84 | 85 | ```bash 86 | $ brew tap fission-suite/fission 87 | $ brew install fission-cli 88 | ``` 89 | 90 | #### Linux \(and manual MacOS\) 91 | 92 | Head over to our [releases](https://github.com/fission-suite/cli/releases) page on Github and download the latest release for your operating system. 93 | 94 | {% hint style="warning" %} 95 | Note: Ubuntu 19+ is currently not supported due to [a build issue \#51](https://github.com/fission-suite/cli/issues/51) 96 | {% endhint %} 97 | 98 | Unzip the file and move the file to your PATH: 99 | 100 | ```bash 101 | $ sudo mv ./fission-cli-exe /usr/local/bin/fission 102 | ``` 103 | 104 | _**\(Linux Only\)**_ 105 | ****Linux requires an additional dependency: 106 | 107 | ```bash 108 | $ sudo apt update 109 | $ sudo apt install libpq-dev 110 | ``` 111 | 112 | That's it! Double check that it's installed correctly: 113 | 114 | ```bash 115 | $ fission --help 116 | CLI to interact with Fission services 117 | 118 | Usage: fission [--version] [--help] COMMAND 119 | Fission makes developing, deploying, updating and iterating on web 120 | applications quick and easy. 121 | ... 122 | ``` 123 | 124 | -------------------------------------------------------------------------------- /apps/ponto-de-partida.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Como criar seu primeiro site rodando na plataforma IPFS usando esse guia para iniciantes 3 | --- 4 | 5 | # Como Começar 6 | 7 | ## Criando uma conta ou fazendo Login 8 | 9 | Agora que você terminou a instalação da plataforma `fission`, é necessário criar uma conta: 10 | 11 | ```bash 12 | $ fission register 13 | ✅ Registered & Login in 14 | ``` 15 | 16 | Agora está tudo certo! Suas credenciais de acesso estão dentro de `~/.fission.yaml` 17 | 18 | Caso você já possua uma conta, faça o login dessa forma: 19 | 20 | ```bash 21 | $ fission login 22 | Username: #Siga os 'prompts' para informar seu usuário e senha 23 | ``` 24 | 25 | 26 | {% hint style="info" %} 27 | Por padrão, os endereços da rede são baseados no seu usuário de acesso, se parecendo com - `USERNAME.fission.name`. No futuro, será possível adicionar domínios customizados. 28 | {% endhint %} 29 | 30 | ## Executando o IPFS 31 | 32 | Para utilizar o `fission` você precisará estar executando o IPFS 33 | 34 | Se sua versão do IPFS for [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop), garanta que ele esteja em execução. 35 | 36 | Se sua versão do `ipfs` for via linha de comando, execute o seguinte código em outra aba do terminal: 37 | 38 | ```bash 39 | $ ipfs daemon 40 | ``` 41 | 42 | ## Criando uma webpage simples 43 | 44 | Vamos criar uma página 'interplanetária' simples! 45 | 46 | Crie um novo diretório de projeto e adicione um arquivo `index.html`: 47 | 48 | ```bash 49 | $ mkdir hello-universe 50 | $ cd hello-universe 51 | $ touch index.html 52 | ``` 53 | 54 | Adicione um conteúdo inicial a esse arquivo `index.html`: 55 | 56 | {% code title="index.html" %} 57 | ```markup 58 | 59 | 60 |Isto está no InterPlanetary File System.
65 |Assisted by Fission.
66 | 67 | 68 | ``` 69 | {% endcode %} 70 | 71 | ## Hora do deploy interplanetário! 72 | 73 | Tenha certeza de que você está na pasta correta do projeto \(`hello-universe`\), e execute: 74 | 75 | ```bash 76 | $ fission up 77 | 🚀 Now live on the network 78 | 👌 QmPmZDd6esqzsc2R1i8t5DcRGeRKrNomMhqj232Cz6heNW 79 | 📝 DNS Updated. Check out your site at: 80 | 🔗 diffusiondemo.fission.name 81 | ``` 82 | 83 | Copie a URL que aparece na última linha (🔗) e cole no seu navegador para ver seu novo site, hospedado em uma rede descentralizada. Fácil assim! 84 | 85 | _Note: Pode levar algum tempo para a replicação do DNS. Então aguarde 1 ou 2 minutos se o site não carregar imediatamente. Se você é do tipo impaciente, copie o `content-id` da saída da linha de comando e veja em `https://ipfs.runfission.com/ipfs/{YOUR_CONTENT_ID}`_ 86 | 87 | {% hint style="success" %} 88 | Curiosidade sobre o IPFS: Todos que seguirem esse tutorial do começo ao fim, acabarão com a mesma chave de conteúdo (Content ID). Isso significa pode puxar instantaneamente esse site da demonstração do seu "vizinho" (se estiver com pressa), caso ele já tenha feito o deploy. 89 | 90 | {% endhint %} 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /developers/heroku.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Interplanetary Fission IPFS - Fission Web API as an Heroku Add-on 3 | --- 4 | 5 | # Heroku Add-on 6 | 7 | The Fission Web API is available as a Heroku Add-on. [Find it in the Heroku Add-Ons Marketplace](https://elements.heroku.com/addons/interplanetary-fission). It is currently in a free beta mode with a "test" plan. 8 | 9 | As with all Heroku add-ons, you can also create a new add-on locally using the Heroku CLI tool: 10 | 11 | ```text 12 | heroku addons:create interplanetary-fission:test 13 | ``` 14 | 15 | If you create the add-on through the Heroku dashboard, you can find your API credentials in the _Settings_ section of your app, under the _Config Vars_ heading: 16 | 17 |  18 | 19 | These can also be used in your local environment by creating an `.env` file. 20 | 21 | {% hint style="info" %} 22 | The Heroku Add-on uses the Web API, appropriate for server side apps written in any language that Heroku supports. You can browse the live docs of the Fission Web API at [runfission.com/docs](https://runfission.com/docs), or look at our [Github repo](https://github.com/fission-suite) to find a client SDK for your programming language. 23 | {% endhint %} 24 | 25 | ### Deploy to Heroku 26 | 27 | A particularly good use case for using our Fission IPFS add-on is to combine it with setting up your application in a "Deploy to Heroku" mode. 28 | 29 | This means adding an `app.json` file and a few other settings that tell Heroku what add-ons and environment variables your application needs. You can find out more [how to set this up in Heroku's documentation](https://devcenter.heroku.com/articles/heroku-button). 30 | 31 | ### Example Deploy to Heroku Apps 32 | 33 | #### Ghost Blogging on Heroku with IPFS 34 | 35 | We built an [IPFS Storage Adapter for the Ghost blogging platform](https://github.com/fission-suite/ghost-storage-adapter-ipfs), and bundled it together with Deploy to Heroku and the Fission Heroku Add On. You can get started on the hobby tier by clicking the Deploy to Heroku button on Github: 36 | 37 | * [https://github.com/fission-suite/heroku-ipfs-ghost](https://github.com/fission-suite/heroku-ipfs-ghost) 38 | 39 | -------------------------------------------------------------------------------- /developers/resources.md: -------------------------------------------------------------------------------- 1 | # Further Reading and Resources 2 | 3 | Here are some additional resources to help you understand the wider Fission ecosystem 4 | 5 | * [Fission Web API docs through Swagger](https://runfission.com/docs/) 6 | * Use this if you want to make REST calls directly to our API. 7 | * [Fission JavaScript client](https://github.com/fission-suite/typescript-client) 8 | * Client library for the Fission Web API 9 | * Use this if you want to add IPFS support to your app through HTTP 10 | * Compatible with JavaScript and TypeScript 11 | * [Fission Github](https://github.com/fission-suite) 12 | * See all of our projects, the latest releases, features that we're working on, and known issues. 13 | * [Fission blog](https://blog.fission.codes/) 14 | * Stay up to date with what we're working on as well as our thoughts on decentralization, open-source, and more! 15 | * [Fission Heroku add-on](https://elements.heroku.com/addons/interplanetary-fission) 16 | * Easily integrate your Heroku apps with IPFS using the Fission Web API 17 | 18 | -------------------------------------------------------------------------------- /developers/web-api.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: An introduction to the Fission Web API with some example requests 3 | --- 4 | 5 | # Fission Web API 6 | 7 | The Fission Web API provides an interface to our systems using a standard RESTful API. We'll go through a few interactions that you might find helpful, but for the full API, check out the [Swagger docs](https://runfission.com/docs/). 8 | 9 | ## Get Content from IPFS 10 | 11 | Getting content from IPFS is a simple `GET` request to `https://runfission.com/ipfs/{cid}` 12 | No authentication needed! 13 | 14 | For example: 15 | 16 | ```text 17 | $ curl https://runfission.com/ipfs/QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u 18 | ``` 19 | 20 | If you want to do this programmatically, use your favorite REST client or the [Fission TypeScript Client](https://github.com/fission-suite/typescript-client) 21 | 22 | ```javascript 23 | import { content } from '@fission-suite/client' 24 | const helloWorld = await content("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u") 25 | ``` 26 | 27 | ## Upload Content To IPFS 28 | 29 | You can upload content to IPFS by sending a `POST` request to `https://runfission.com/ipfs` 30 | For this, you'll need a BasicAuth header with your Fission username & password, as well as a `content-type: application/octet-stream` header 31 | 32 | With JSON: 33 | 34 | ```text 35 | $ curl -i \ 36 | -X POST \ 37 | -H "Content-Type: application/octet-stream" \ 38 | -u 'USERNAME:PASSWORD' \ 39 | --data '{ 40 | "test": 123 41 | }' \ 42 | https://runfission.com/ipfs 43 | ``` 44 | 45 | With a file: 46 | 47 | ```text 48 | $ curl -i \ 49 | -X POST \ 50 | -H "Content-Type: application/octet-stream" \ 51 | -u 'USERNAME:PASSWORD' \ 52 | --data-binary @/path/to/file \ 53 | https://runfission.com/ipfs 54 | ``` 55 | 56 | If you want to do this programmatically, use your favorite REST client or the [Fission TypeScript Client](https://github.com/fission-suite/typescript-client) 57 | 58 | ```javascript 59 | import { add } from '@fission-suite/client' 60 | const auth = { username: "username", password: "password" } 61 | const content = { 62 | key1: 123, 63 | key2: 456 64 | } 65 | const cid = await add(content, auth) 66 | ``` 67 | 68 | ## Pin Content To IPFS 69 | 70 | Fission also offer's a pinning service, if you already have content on IPFS and want the remote Fission node to help keep it online. To pin something, send a `PUT` request to `https://runfission.com/ipfs/{cid}` 71 | For this, you'll need a BasicAuth header 72 | 73 | For example: 74 | 75 | ```text 76 | curl -i \ 77 | -X PUT \ 78 | -u 'b55cf27ef01025e3c761:Gnu$N+OTlHrauuBg-q_6W1OrjrA_6z0eVhfBvc9sC2LNy,H' \ 79 | https://runfission.com/ipfs/QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u 80 | ``` 81 | 82 | If you want to do this programmatically, use your favorite REST client or the [Fission TypeScript Client](https://github.com/fission-suite/typescript-client) 83 | 84 | ```javascript 85 | import { pin } from '@fission-suite/client' 86 | const auth = { username: "username", password: "password" } 87 | await pin("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u", auth) 88 | ``` 89 | 90 | -------------------------------------------------------------------------------- /drive/preview.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: 'Fission Drive lets you browse public, unencrypted files stored on IPFS.' 3 | --- 4 | 5 | # Preview 6 | 7 | **Fission Drive** is currently a Preview release of our upcoming file storage and identity system that lets you take your files anywhere, encrypted end-to-end as well as for public hosting of files, websites, and apps. 8 | 9 |  10 | 11 | The Preview release is an exploration of the interface, and currently supports only public files. 12 | 13 | ### Enter any IPFS Hash 14 | 15 | You can browse any IPFS directory, not just those hosted on Fission, by entering in the hash, or Content ID \(CID\), of a directory. 16 | 17 | You can use `QmbCLefkFuXbhHBWSW7PWmJzBL7W7e8zm41HK4DGJ1RDwV` as an example folder to browse. Visit [drive.fission.codes](https://drive.fission.codes) to try it out. 18 | 19 |  20 | 21 | The hash above represents Boris' public files, which you can also see in the default IPFS browser at [boris.fission.name](https://boris.fission.name). 22 | 23 | ## Features 24 | 25 | ### Dark & Light Mode 26 | 27 | Preview supports system wide / browser settings for dark vs. light mode and will switch automatically when you change those settings. 28 | 29 |  30 | 31 | {% hint style="warning" %} 32 | Note: ChromeOS does not currently support dark mode. 33 | {% endhint %} 34 | 35 | ### File Previews 36 | 37 | Clicking on an image will give you a file preview. 38 | 39 |  40 | 41 | Click on the double arrows in the top right hand corner to embiggen the preview to full screen. Hit the **X** to close the preview. 42 | 43 | The "Open in new tab" link will give you a permanent link for sharing the current file, using the Fission IPFS gateway. 44 | 45 |  46 | 47 | ### Mobile Support 48 | 49 | Yes, this works on mobile! 50 | 51 |  52 | 53 | ### Keyboard Shortcuts 54 | 55 | Use arrow keys to navigate, enter to open preview. 56 | 57 | --------------------------------------------------------------------------------