If you haven’t done so already, your first step is to install IPFS! Most people prefer to install a prebuilt package, which you can do on the IPFS distributions page by clicking “Install go-ipfs” (our reference implementation written in Go) and then following the instructions for installing from a prebuilt package.
For more install options, such as building from source, and toubleshooting tips, visit our install guide. If you have any questions or get stuck, feel free to ask for help in the Help section of the IPFS forums or in #ipfs on chat.freenode.net.
Initialize the repository
ipfs stores all its settings and internal data in a directory called the repository. Before using IPFS for the first time, you’ll need to initialize the repository with the
ipfs init command:
> ipfs init initializing ipfs node at /Users/jbenet/.go-ipfs generating 2048-bit RSA keypair...done peer identity: Qmcpo2iLBikrdf1d6QU6vXuNb6P7hwrbNPW9kLAH8eG67z to get started, enter: ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme
If you are running on a server in a data center, you should initialize IPFS with the
server profile. This will prevent IPFS from creating a lot of data center-internal traffic trying to discover local nodes:
> ipfs init --profile server
There are a whole host of other configuration options you may want to set — check the full reference for more.
peer identity:is your node’s ID and will be different from the one shown in the above output. Other nodes on the network use it to find and connect to you. You can run
ipfs idat any time to get it again if you need it.
Now, try running the command suggested to you in the output of
ipfs init. The one that looks like
ipfs cat /ipfs/<HASH>/readme.
You should see something like this:
Hello and Welcome to IPFS! ██╗██████╗ ███████╗███████╗ ██║██╔══██╗██╔════╝██╔════╝ ██║██████╔╝█████╗ ███████╗ ██║██╔═══╝ ██╔══╝ ╚════██║ ██║██║ ██║ ███████║ ╚═╝╚═╝ ╚═╝ ╚══════╝ If you're seeing this, you have successfully installed IPFS and are now interfacing with the ipfs merkledag! ------------------------------------------------------- | Warning: | | This is alpha software. use at your own discretion! | | Much is missing or lacking polish. There are bugs. | | Not yet secure. Read the security notes for more. | ------------------------------------------------------- Check out some of the other files in this directory: ./about ./help ./quick-start <-- usage examples ./readme <-- this file ./security-notes
You can explore other objects in the repository. In particular, the
quick-start directory which shows example commands to try:
ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/quick-start
Taking your Node Online
Once you’re ready to join your node to the public network, run the ipfs daemon in another terminal and wait for all three lines below to appear to know that your node is ready:
> ipfs daemon Initializing daemon... API server listening on /ip4/127.0.0.1/tcp/5001 Gateway server listening on /ip4/127.0.0.1/tcp/8080
Now, switch back to your original terminal. If you’re connected to the network, you should be able to see the ipfs addresses of your peers when you run:
> ipfs swarm peers /ip4/184.108.40.206/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ /ip4/220.127.116.11/tcp/4001/ipfs/QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx /ip4/18.104.22.168/tcp/1035/ipfs/QmWHyrPWQnsz1wxHR219ooJDYTvxJPyZuDUPSDpdsAovN5 /ip4/22.214.171.124/tcp/4002/ipfs/QmdXzZ25cyzSF99csCQmmPZ1NTbWTe8qtKFaZKpZQPdTFB
These are a combination of
Now, you should be able to get objects from the network. Try:
ipfs cat /ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg >cat.jpg open cat.jpg
Next try sending objects to the network, and then
viewing it in your favorite browser. The example below uses
as the browser, but you can open the IPFS URL in other browsers as well:
> hash=`echo "I <3 IPFS -$(whoami)" | ipfs add -q` > curl "https://ipfs.io/ipfs/$hash" I <3 IPFS -<your username>
Cool, huh? The gateway served a file from your computer. The gateway queried the Distributed hash table (DHT), found your machine, requested the file, your machine sent it to the gateway, and the gateway sent it to your browser.
curlmay take a while. The public gateways may be overloaded or having a hard time reaching you.
You can also check it out at your own local gateway:
> curl "http://127.0.0.1:8080/ipfs/$hash" I <3 IPFS -<your username>
By default, your gateway is not exposed to the world, it only works locally.
We also have a web console you can use to check the state of your node. In your favorite web browser, open:
This should bring up a console like this:
Companion Browser Extension
While we are at it, IPFS Companion is a browser extension that simplifies access to IPFS resources and adds support for the IPFS protocol.
|Firefox / Firefox for Android||Chrome / Brave|
Next, we recommend you look at our examples to find out more about what IPFS is capable of: