How to run a Monero node on a Synology NAS

David Walsh
Decentralize.Today
Published in
6 min readSep 6, 2017

I’ll show you how to use the Docker package on Synology Network Attached Storage (NAS) devices to easily run your own Monero full node.

When you get started with Monero, you quickly learn that at the moment there are basically two options for storing your XMR. The easy way is to use an online wallet like MyMonero, but the site itself notes that ‘it is extremely difficult for MyMonero to securely deliver its code to your browser’ and that you shouldn’t use it for large amounts of coin.

Currently, your other option is to run a full node yourself, and then use a wallet client to push transactions out through that node. Unlike some other cryptocurrencies, Monero separates its blockchain-management binary from its wallet clients. This is helpful, since it allows you to run the management side of the application on a separate machine. Your Synology NAS is perfect for this, since it’s likely always on and has plenty of space to store the Monero blockchain (currently ~10GB). And getting the node up and running is fairly painless. Read on to see how.

Requirements

To run the Monero node we’ll be using the Docker package for the Synology DSM. To run Docker, you’ll need a Synology NAS that supports the btrfs file system. If you’ve bought your box in the last two years, you should be good to go, but check the specs on the Synology site just to be safe.

Additionally, I’m assuming you know your way around the Synology DSM software and already have your box up and running. Some background knowledge on Docker is helpful, but not required.

Installing Docker

Installing the Docker app in Synology Package Center

Once you’ve logged in to the Synology DSM software, head over to the Package Center and search for ‘Docker’ with the box in the top left corner. Find the app with the blue whale and push the Install button. Note: if the Docker package doesn’t show up in the search results, that most likely means your Synology NAS does not support it.

Installing the Monero daemon

Once you have the Docker package installed, it’s time to grab the Docker image of the Monero blockchain software (monerod).

Installing the monero-full-node Docker image

From the Main Menu of the DSM software, launch the Docker app. Click on the Registry option on the left hand side and search for monero. Scroll down some — you’re looking for the kannix/monero-full-node image. Once you’ve found it, double click on it to install.

Launching the container from the Image tab

Once the image has downloaded head over to the Image tab. Select the kannix/monero-full-node image and then push the Launch button.

Configuring the monero-full-node container

After pushing the launch button you’ll be shown the Create Container wizard. You can choose whatever container name you’d like. You can also select Enable resource limitation and choose settings for that. I’ve selected medium CPU priority and about 3GB of memory and the container seems to be running smoothly. Once you’re happy with the General Settings push the Advanced Settings button.

Docker container advanced settings

From the first tab of Advanced Settings, select the Enable auto-restart option. You may also choose to create a shortcut on the desktop, but that’s up to you. It’s not required. Once you’re complete here, go on to the Volume tab.

Creating a folder to store the blockchain

On the Volume tab, push the Add button. Here you’ll chose where to store the blockchain. If you already have a folder you’d like to keep it in select it. Otherwise, push Create folder and make a new folder. I’ve put it under the automatically-created docker directory. Click OK to create the folder, make sure it’s highlighted, and push Select.

Once the folder is created we give it a Mount path. Enter /root/.bitmonero here and push OK. Note: don’t forget the period before ‘bitmonero’. There’s nothing to change on the Network tab, so once you’re happy here go on to the Port Settings tab.

Adjusting the Port Settings

On the Port Settings tab, you’ll notice that both Local Ports are set to Auto. To make connecting to the deamon a little easier, change the Local Ports so they read 18080 and 18081, and match their respective Container Ports. Once you’re done with that, skip the Links tab and go to the Environment tab.

Configuring environment variables

On the Environment tab push the + button to add a new variable. In the variable field enter name and in the Value field enter monerod. Once you’re done push OK.

Create Container summary

From here, you’ll be shown a summary page. Give everything a once-over and ensure Run this container after the wizard is finished is checked. And we’re all set up! Push the Apply button.

Verifying your node is running

Monero full node container up-and-running

Once you’ve completed configuring and launched the container, head over to the Container tab. Here you can see your Monero full node instance running on your DSM. To verify that the node is connected to the network and syncing the blockchain, highlight the container and push the Details button. You can poke around in the Details view and see more information about your node. Select the Log tab, and you should see entries to stdout being emitted by the monerod process. Hover over the latest one (at the bottom) and you should see how many blocks have been synced; something like Synced 10601/1392797 (along with some other stuff). Syncing the entire blockchain can take more than 24 hours, so you can leave your node running and move on to something else if you’d like. A watched pot never boils.

Using your node with a wallet client

Once your node is up and running, head over to the Monero software download page and grab the wallet software of your choice for your platform.

Once you’ve got your wallet, it’s just a matter of pointing the software at the IP address of your Synology NAS. If you’re using the monero-wallet-cli command line tool, then run the binary with the --daemon-host <dns ip> flag.

Configuring the Monero GUI wallet

If you’re using the GUI wallet, head to the Settings tab and put your Synology NAS IP address in the Daemon address field with 18081 as the port number. Press Connect and you’ll be in business!

What happens if my Synology NAS dies/burns up/gets stolen?

The NAS is only storing the blockchain and the logic to communicate with other nodes; in short, nothing that isn’t public. If something happens to your NAS you can start this whole process over again. Your private keys are, by default, stored on the computer with the wallet software. They should be protected with a strong password, and you should keep a copy of your seed somewhere else to recover the wallet if something happens to your computer.

I hope you enjoyed this walk through. If you have questions or suggestions please leave a comment.

See ya on the moon. 🚀

-d

--

--