Discover how to install an IPFS node on your Synology NAS and create your personal decentralized storage node.
Synology NAS home servers remain one of the most cost-effective and efficient solutions for addressing a variety of data storage and file sharing needs in many households. From media streaming and office collaboration to home automation, surveillance, and even remote access, a private cloud storage service can accomplish a great deal.
While Synology offers its proprietary file system and backup system, the Interplanetary File System (IPFS) presents a resilient, decentralized file storage network designed to withstand challenges at the protocol level. Implementing IPFS on your Synology NAS can provide an excellent solution for storing public or encrypted personal data. This article will guide you through the process of setting up IPFS on your Synology NAS device using Docker.
To follow this tutorial, you will need
Here is my setup:
My disk RAID configuration is RAID5, which allows one out of the four disks to fail without causing data losses. This configuration reduces my effective storage space to 24TB. Synology's site offers a handy
The Synology system operates like a mini server, but its system isn’t entirely open. This means you cannot install any open source software you like. However, using DiskStation’s Package Centre to install a docker container to run IPFS. Here’s how:
You should know how to access Synology NAS Synology DiskStation Manager (DSM). If not, follow
In “Network” page, leave network as “bridge”, click on “Next”:
You will find more settings on the next page, such as system resources allocation or auto-restart in case of failure. Click on “Next”.
In the “Port Settings” page, assign memorable ports to allow the webui to work reliably. I simply added 1 to the first two digits of all the container ports numbers as shown in the screenshot below.
Local Port - Container Port - Type
I chose not to map any volume to it and left it as default on the next page.
Now create the container by clicking “Done” on the next page.
Returning to the “Container” section, you should see “ipfs-kubo1” running.
Congratulations! You now have IPFS running on your Synology home server. Double click on the running container to see the details. You'll notice port 49159 is assigned to kubo’s webui port 5001.
In the next step, we'll figure out how to access the webui so you can upload a file.
To access the webui of IPFS, we will need to visit “https://<your-synology-server-subnet-address>:<docker-assigned-port-for-5001>/webui”. So you will need to find out which address in your home router your synology is running on first. Mine is running on “192.168.1.44” so to visit the webui, I will need to visit “
Upon loading, you might notice an error. The webui page is experiencing CORS issues when making API calls. We need to configure the IPFS daemon to accept CORS API calls from sources other than localhost or 127.0.0.1.
Due to Docker's limitations on Synology DSM, this requires a bit of a workaround. First, copy the first command from step two of the webui home page, starting with ipfs config --json API.
HTTPHeaders. Access-Control-Allow-Origin '[http://192.168.1.44:49159", "http://localhost:3000", "http://127.0.0.1…. Go to “Terminal” in the ipfs-kubo1 settings page, click on the down arrow and select “Launch with command”.
Paste in the command and click “OK” to start the new command line window.
The main terminal isn't responsive to our commands due to some issues. However, using this function, we can execute CLI commands one at a time.
Repeat the same process for the second command ipfs config --json API. HTTPHeaders. Access-Control-Allow-Methods '["PUT", "POST"]'.
Now, return to the home page and restart the container.
If we revisit our Synology URL against the port that the webui is expected to run on, we should be able to use the webui without issues. Go ahead and upload your first file on your private IPFS node!
What we've just done is to allow anyone on our router to access our IPFS instance. Without any port forwarding, external users should not be able to access it. However, this is not an ideal approach.
Unfortunately, Kubo does not come with a token or login system, so it might be better if you implement a login page or key pair for IPFS instance’s access control. A
You should also consider enforcing SSL certificates and firewall rules before exposing your IPFS instance publicly.
Low resource consumption: Synology is designed for long-term, efficient operation. Kubo consumes very little system resources.
Decentralized and owned by the user: By running it on your Synology, you contribute to the decentralization of the IPFS network. It's also beneficial to have your IPFS node up and running all the time to persist your file and help others access the network.
Scalability and reliability, persists data: In addition to your PC, laptops, and perhaps Raspberry Pi, Synology provides another place to host your precious data, making it hard to lose.
Running your private IPFS on Synology home servers using the Docker app provided by its DSM is a fantastic idea. In just a few minutes, you can set it up and get it running. However, securing your instance requires some additional work. Please feel free to reach out to me if you have discovered a good idea on this.