IPFS Node Install Memo

Hic et nunc

NFTs are everywhere these days, proof is the success of hic-et-nunc.

The common best practice for NFTs is to store them on ipfs.
So does hic-et-nunc, both for files and their metadata.

Currently, hic-et-nunc uses infura ipfs gateway, that pin files for free, but this may change without warning.

What’s pining?

As long as a file is reached by the network, it will be available, but there’s a chance that this file will not be available one day, due to the garbage collector.

An IPFS node allow to pin files so that they won’t be garbage collected.

Last month, some wise people reminded us to pin our files.

How?

There are some free services like Pinata, with low prices when we want to have more storage.

Otherwise, we can also install an ipfs node, it comes in two flavour, desktop or command-line.

Because last week-end, thanks to the #OBJKT4OBJKT event I grabbed a lot of NFT (the event is still ongoing), I wanted to take my responsibility for pining the NFTs I collected.

I took a server a while ago, it currently runs the 2 Tezos testnets (current and next), and this hugo blog.

So I’m left with a lot of free resource, because of the low power consumption of the blockchain, and I choosed to install an ipfs node to pin my collected NFTs.

IPFS Node Install

To install ipfs, I followed the instructions here

Then I created an ipfs user and initiated the server config.

sudo useradd --create-home -s /bin/bash ipfs
sudo su ipfs
cd 
ipfs init --profile server 

After that, I configured a systemd service, just adapting the official instructions to my use case.

# /etc/systemd/system/ipfs.service 
[Unit]
Description=IPFS daemon
After=network.target

[Service]
User             = ipfs
Group            = ipfs
WorkingDirectory = /home/ipfs/
ExecStart        = /usr/local/bin/ipfs daemon
Restart          = on-failure

[Install]
WantedBy=multiuser.target

The usual system restart:

sudo systemctl enable ipfs.service 
sudo systemctl daemon-reload
sudo systemctl start ipfs.service

Now I can just run ipfs pin add <hash>

Next step I plan to do is a small web ui around ipfs HTTP api.