# Command-line

Installing IPFS through the command-line is handy if you plan on building applications and services on top of an IPFS node. This method is also useful if you're setting up a node without a user interface, usually the case with remote servers or virtual machines. Using IPFS through the command-line allows you to do everything that IPFS Desktop can do, but at a more granular level since you can specify which commands to run.

A terminal window running the IPFS daemon in Ubuntu.

# System requirements

IPFS requires 512MiB of memory and can run an IPFS node on a Raspberry Pi. However, how much disk space your IPFS installation takes up depends on how much data you're sharing. A base installation takes up about 12MB of disk space, and the default maximum disk storage is set to 10GB.

# Official distributions

The IPFS team manages the dist.ipfs.io website (opens new window) to help users quickly find the latest version of every IPFS package. As soon as a new release of an IPFS package comes out, it is automatically shown on dist.ipfs.io, so you can be sure you're getting the latest software. These steps detail how to download and install Go-IPFS 0.9.0 from dist.ipfs.io using the command-line.

Windows macOS Linux
Windows icon macOS icon Linux icon

# Windows

  1. Download the Windows binary from dist.ipfs.io (opens new window).

    cd ~\
    wget https://dist.ipfs.io/go-ipfs/v0.9.1/go-ipfs_v0.9.1_windows-amd64.zip -Outfile go-ipfs_v0.9.1.zip
    
  2. Unzip the file and move it somewhere handy.

    Expand-Archive -Path go-ipfs_v0.9.1.zip -DestinationPath ~\Apps\go-ipfs_v0.9.1
    
  3. Move into the go-ipfs_v0.9.1 folder and check that the ipfs.exe works:

    cd ~\Apps\go-ipfs_v0.9.1\go-ipfs
    .\ipfs.exe --version
    
    > ipfs version 0.9.1
    

    While you can use IPFS right now, it's better to add ipfs.exe to your PATH by using the following steps.

  4. Print the current working directory and copy it to your clipboard:

    pwd
    
    > Path
    > ----
    > C:\Users\Johnny\Apps\go-ipfs_v0.9.1\go-ipfs
    
  5. Add the address you just copied to PowerShell's PATH by adding it to the end of the profile.ps1 file stored in Documents\WindowsPowerShell:

    Add-Content C:\Users\Johnny\Documents\WindowsPowerShell\profile.ps1 "[System.Environment]::SetEnvironmentVariable('PATH',`$Env:PATH+';;C:\Users\Johnny\Apps\go-ipfs_v0.9.1\go-ipfs')"
    
  6. Close and reopen your PowerShell window. Test that your IPFS path is set correctly by going to your home folder and asking IPFS for the version:

    cd ~
    ipfs --version
    
    > ipfs version 0.9.1
    

# macOS

M1-based Macs

You can install IPFS on M1-based Macs by using the darwin-arm64 binary instead of the amd64 binary listed in these instructions.

  1. Download the macOS binary from dist.ipfs.io (opens new window).

    wget https://dist.ipfs.io/go-ipfs/v0.9.1/go-ipfs_v0.9.1_darwin-amd64.tar.gz
    
  2. Unzip the file:

    tar -xvzf go-ipfs_v0.9.1_darwin-amd64.tar.gz
    
    > x go-ipfs/install.sh
    > x go-ipfs/ipfs
    > x go-ipfs/LICENSE
    > x go-ipfs/LICENSE-APACHE
    > x go-ipfs/LICENSE-MIT
    > x go-ipfs/README.md
    
  3. Move into the go-ipfs folder and run the install script:

    cd go-ipfs
    bash install.sh
    
    > Moved ./ipfs to /usr/local/bin
    
  4. Check that IPFS installed:

    ipfs --version
    
    > ipfs version 0.9.1
    

# Linux

  1. Download the Linux binary from dist.ipfs.io (opens new window).

    wget https://dist.ipfs.io/go-ipfs/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz
    
  2. Unzip the file:

    tar -xvzf go-ipfs_v0.9.1_linux-amd64.tar.gz
    
    > x go-ipfs/install.sh
    > x go-ipfs/ipfs
    > x go-ipfs/LICENSE
    > x go-ipfs/LICENSE-APACHE
    > x go-ipfs/LICENSE-MIT
    > x go-ipfs/README.md
    
  3. Move into the go-ipfs folder and run the install script:

    cd go-ipfs
    sudo bash install.sh
    
    > Moved ./ipfs to /usr/local/bin
    
  4. Test that IPFS has installed correctly:

    ipfs --version
    
    > ipfs version 0.9.1
    

# Compile manually

Manually compiling IPFS is a fairly involved process that changes frequently. It can be handy if you'd like to build a specific branch or use the bleeding-edge version of Go-IPFS. See the ipfs/go-ipfs GitHub repository for details → (opens new window)

# Next steps

Now that you've got an IPFS node installed, you can start building applications and services on top of the network! Check out the Command-line- quicks start guide and jump straight to the Initialize the repository section.