{"id":22480266,"url":"https://github.com/pinatacloud/deploying-ipfs-infrastructure","last_synced_at":"2026-02-13T13:06:08.029Z","repository":{"id":92245035,"uuid":"203041322","full_name":"PinataCloud/Deploying-IPFS-Infrastructure","owner":"PinataCloud","description":"This hosts the instructions for Matt's \"Deploying IPFS Infrastructure\" Workshop","archived":false,"fork":false,"pushed_at":"2019-08-18T18:26:43.000Z","size":3,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T21:35:38.420Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PinataCloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-18T18:23:45.000Z","updated_at":"2023-06-27T20:36:39.000Z","dependencies_parsed_at":"2023-06-08T03:30:39.973Z","dependency_job_id":null,"html_url":"https://github.com/PinataCloud/Deploying-IPFS-Infrastructure","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2FDeploying-IPFS-Infrastructure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2FDeploying-IPFS-Infrastructure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2FDeploying-IPFS-Infrastructure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PinataCloud%2FDeploying-IPFS-Infrastructure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PinataCloud","download_url":"https://codeload.github.com/PinataCloud/Deploying-IPFS-Infrastructure/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245901009,"owners_count":20690952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-06T15:20:25.621Z","updated_at":"2026-02-13T13:06:02.966Z","avatar_url":"https://github.com/PinataCloud.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deploying IPFS Infrastructure\n\n\u003e Take your IPFS game to the next level by learning how to deploy and manage your very own IPFS node in the cloud.\n\n## Trainers\n\n| **Matt Ober**                                      \t\n|----------------------------------------------------\t\n| ![](https://avatars2.githubusercontent.com/u/7811297)\n| [@obo20](https://github.com/obo20/)\n\n## What you will learn with this Course\n\n* How to deploy an IPFS node using a cloud provider\n* How to configure that node for your specific use case\n* Tips and tricks for running IPFS infrastructure in the cloud\n\n## Preparation for the course\n\nWe will use Digital Ocean, a Cloud service to host our remote and public IPFS node. To successfully complete this course, you will need to create a **Digital Ocean account**:\n\n* Sign up for an account preloaded with $50 in free credits with this link: https://do.co/pinata - (Requires a credit card but you won't be charged)\n\n--------------------------- \n\n## Course walkthrough / commands\n\nThe following commands are provided for easy copy / pasting during the node deployment part of the course. During the course, we will go over when and why to use these commands when setting up your infrastructure.\n\n### SSH Setup\n#### Creating your SSH key with OpenSSH\n1) Open up your terminal\n2) Type in `ssh-keygen`\n3) Hit enter to accept the recommended default path. *DO NOT CHOOSE TO OVERWRITE IF A KEY ALREADY EXISTS*\n4) Optionally provide a password to require each time you use your key or just hit enter twice to avoid requiring a password\n\n#### Copying your SSH key\nTo copy your SSH Key, do either of these:\n\n* Type: `cat ~/.ssh/id_rsa.pub`\n* Travel to your public key with: `cd ~/.ssh/id_rsa.pub` and open the file to copy the contents\n\n( The above instructions are assuming your key is saved in the default location )\n\n### Connecting to your droplet\nIn your terminal type: `ssh root@your_droplet_ip`\n\n( You'll need to type `yes` when ssh-ing into your node for the first time )\n\nYou should now be connected to your droplet!\n\n### Updating your droplet\nNow, in your terminal type:\n1) `apt-get update`\n2) `apt-get upgrade`\n\n    2.1. If you get a pink screen asking whether to automatically restart, hit `LEFT ARROW` and then `ENTER`\n\n    2.2. If you get another pink screen asking for a confirmation, hit `ENTER`\n  \n3) `apt autoremove`\n4) `shutdown -r 0`\n\nYour droplet should now be updated and rebooted.\n\n### Securing your droplet\n\n### Installing IPFS\n\n#### Installing IPFS-update\nIn your terminal:\n1) Download ipfs-update with: `curl -O https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-amd64.tar.gz`\n2) Unzip it with: `tar -xzf ipfs-update_v1.5.2_linux-amd64.tar.gz`\n3) Go into the ipfs-update folder with: `cd ipfs-update`\n4) Install ipfs-update with: `./install.sh`\n\n#### Use IPFS-update to install IPFS\n1) Install the latest ipfs version with: `ipfs-update install latest`\n2) Initialize ipfs with `ipfs init --profile server`\n3) Check that IPFS was installed with: `ipfs daemon`\n4) Hit `CTRL + C` to end the process\n\n### Keeping IPFS running\n\n#### Create a system service\n1) Create a system service with: `nano /etc/systemd/system/ipfs.service`\n2) Enter the following instructions:\n```\n[Unit]\nDescription=IPFS Daemon\n[Service]\nExecStart=/usr/local/bin/ipfs daemon --enable-gc\nRestart=always\nEnvironment=\"IPFS_PATH=/root/.ipfs\"\n[Install]\nWantedBy=multi-user.target\n```\n3) Save your new service by hitting `CTRL + X`, then `y`, then `ENTER`\n\n#### Enable the system service\n1) Reload your system with: `systemctl daemon-reload`\n2) Enable your new service with: `systemctl enable ipfs`\n3) Start your new service with: `systemctl start ipfs`\n4) Test that this succeeded with: `systemctl status ipfs`\n\n### Pinning content \n1) In your terminal type: `ipfs pin add -r --progress QmWcLKHWqrRB95zQnb4vX8RRgoGsVm5YAUHyZyiAw4mCMQ`\n\n### Viewing that content with your own gateway\n1) In your terminal expose your gateway with: `ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080`\n2) Now restart ipfs with: `systemctl restart ipfs`\n3) Now in your browser go to http://yourDropletIp:8080/ipfs/QmWcLKHWqrRB95zQnb4vX8RRgoGsVm5YAUHyZyiAw4mCMQ\n\n\n## Bonus written guide for attendees to refer back to\nhttps://medium.com/pinata/how-to-deploy-an-ipfs-node-on-digital-ocean-c59b9e83098e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinatacloud%2Fdeploying-ipfs-infrastructure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinatacloud%2Fdeploying-ipfs-infrastructure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinatacloud%2Fdeploying-ipfs-infrastructure/lists"}