Using Docker on a Synology NAS

I currently have a successful running harvester through the official chianetwork docker image on a Synology 1621xs+ NAS (6x18TB, several attached USB drives). My full node is currently running from my main PC that is also creating the plots. Copying the certificates from the ca dir worked, i just needed to do a manual bash chia keys add (mnemonic) to get rid of some missing keys errors - which weren´t problematic for just harvesting, but annoying to see them pop up in the logs and when checking the plots through the bash.

Now, i want to move the full node and farmer over to the machine and i need someone with more experience with docker (or, the Synology version of docker). I´m quite new to the concept of docker, but what i understood is, that you shouldn´t try to change it´s contents. Now, with the config.yaml “somewhere” within the Image, i could only reach it via bash > vim. And i´m absolutely not used to it. My question is: do i have any chance to edit the config.yaml within the docker image from “outside”? Accessing the image via SSL, copying the config.yaml to my PC, edit it and copy it back into the container?

The other question that i have: when i don´t run the wallet on that machine, can i run it on my PC with the GUI or is the GUI always starting full node, harvester and farmer also?

1 Like

I’m running a non-standard farmer on Synology (DSM7, DS1821+) on Docker there. On top of the docker container I have mounts for the config file, the logfile, and my plot directories. They happen to live on the same shared directory, but this way I can mount plot dirs and config read-only, and the logfile read-write. Also, if I reset the image the logfiles and everything else stay the same.

I expect something like this could work with the full node image as well. Hopefully someone who’s tried it can come along and add more input.

That would already help me a lot, as i also like to have the config editable outside the container. How do you tell the docker image to use the “outside” config.yaml from that mount? For the certificates, i can copy them in from the mount via chia init -c /mountdirectory/ca, but how can i tell it to use the config from outside?

Thanks in advance - using the synology for this is so much easing my mind.

I have not tried this with the full Chia software load, but here’s what I have for Flexfarmer - I suspect that mounting individual files or folders would work the same way.

All of this lives in /volume1/flexpool on the DS.

So for example, you would add a location on your NAS that contains the config.yaml like:

chiafiles/config.yaml /home/chia/.chia/mainnet/config/config.yaml

and check read-only if you don’t want the Chia software to be able to modify it.

If I run out of projects this weekend I might give it a try.

Note that even if the file can be edited, I believe you would have to restart the relevant daemons inside the container (or the whole container might be easier) to reload the config.

Someone else may know if there’s a lighter-weight way to reload config, or if it’s checked periodically.

Thanks ! So just be mounting the files in the volume tab of Synology Docker Package, the chia docker uses those files instead of its internal one´s ?

By that, if i would copy the /.chia/mainnet content from my PC to lets say the /synology-volume/plots/mainnet directory, i could use Add Folder /plots/mainnet, and mount path /mainnet and the docker container would use that for keys/certificates/blockchain db ? … would it be so simple?

I would need your help here, as i don´t get that to work. So you mount that single file and by that you have access from insice the docker container. Thats what i understand and what i achieved also. What i also learned is that i can copy any file from inside the docker container to the mounted directories (e.g. from ~/.chia/mainnet/logs/ the debug.txt to my plots directory on the synology volume.

But how do you manage to achieve that the chia nodes use “your” config.yml and “your” /log.txt as debug.txt output?