docs/synology-dsm.md
this has been tested on a Synology ds218+ NAS with 1 SHR storage-pool and 1 volume, but the same steps should work in more advanced setups too
verified on DSM 7.1 and 7.2, but not on 6.x since my flea-market ds218+ refuses to install it for some reason
go to controlpanel -> shared-folders, and create the following shared-folders if you don't already have appropriate ones:
a shared-folder for configuration files, preferably on SSD if you have one
one or more shared-folders for your actual data/media to share
(btw, when you create the shared-folders, it asks whether you want to enable data checksum and file compression, i would recommend both)
the rest of this doc assumes that these two shared-folders are named configs and media1, and that you made an empty folder inside the configs shared-folder named cpp
your copyparty config file (see below) should be named something.conf directly inside that cpp folder, for example /configs/cpp/copyparty.conf
during first start, copyparty will create a folder there named copyparty, in other words /configs/cpp/copyparty which you should leave alone; that's where copyparty stores its indexes and other runtime config
open the Package Center and install Text Editor (by Synology Inc.) to create and edit your copyparty config:
copyparty and hist folders in that screenshot which are autogenerated by copyparty and to be left alone[global]
e2d, e2t # remember uploads & read media tags
rss, daw, ver # some other nice-to-have features
#dedup # you may want this, or maybe not
hist: /cfg/hist # don't pollute the shared-folder
unlist: ^@eaDir # hide the synology "@eaDir" folders
name: synology # shows in the browser, can be anything
[accounts]
ed: wark # username ed, password wark
[/] # share the following at the webroot:
/w # the "/w" docker-volume (the shared-folder)
accs:
A: ed # give Admin to username ed
if you ever change the copyparty config file, then restart the container to make the changes take effect
okay now continue with one of these:
Docker was replaced by Container Manager in DSM v7.2 but they're almost the same thing;
Package Center and install the Container Manager package by Docker Inc.Container Manager appRegistry tab and search for copypartylatest when it asks you which tag to useContainer tab and click Createcopyparty/ac:latest and click Nextfinally, in the Advanced Settings window,
Port Settings, type 3923 into the Local Port textboxAdd Folder and select /configs/cpp on your nas (the cpp folder in the configs shared-folder), and change Mount path to /cfgAdd Folder and select /media1 on your nas (the shared-folder that copyparty can share in its web-UI) and change Mount path to /w
Mount path of the 2nd folder should be something like /w/share2 or /w/musiccopyparty will launch and become available at http://192.168.1.9:3923/ (assuming 192.168.1.9 is your nas ip)
if you're using DSM 7.1 or older, then you don't have Container Manager yet and you'll have to use Docker instead. Here's how:
Package Center and install the Docker package by Docker Inc.Docker appRegistry tab and search for copypartylatest when it asks you which tag to useContainer tab and click Createcopyparty/ac:latest and NextUse the selected networks: [x] bridgeLocal Port to 3923 (or choose something else, but it cannot be the default Auto)finally, in the Volume Settings window, add a docker volume for copyparty config, and at least one volume for media-files which copyparty can share in its web-UI
Add Folder and select /configs/cpp on your nas (the cpp folder in the configs shared-folder), and change Mount path to /cfgAdd Folder and select /media1 on your nas (the shared-folder that copyparty can share in its web-UI) and change Mount path to /wMount path of the 2nd folder should be something like /w/share2 or /w/musiccopyparty will launch and become available at http://192.168.1.9:3923/ (assuming 192.168.1.9 is your nas ip)
note that if you only want to share some folders inside your data volume, and not all of it, then you can either give copyparty the whole shared-folder anyways and control/restrict access in the copyparty config file (recommended), or you can add each folder as a new docker volume (not as flexible)
to update to a new copyparty version: Container Manager » Images » Update available » Update
DSM checks for updates every 12h; you can force a check with sudo /var/packages/ContainerManager/target/tool/image_upgradable_checker
there is no auto-update feature, and beware that watchtower does not support DSM
the ram usage indicator in both Docker and Container Manager is misleading because it also counts the kernel disk cache which makes the number insanely high -- the synology resource monitor shows the correct values, usually less than 100 MiB
to see the actual memory usage by copyparty, see Resource Monitor -> Task Manager -> Processes and look at the Private Memory of python3 which is probably copyparty
when uploading files to the synology nas with the respective web-UIs,
File Station does about 16 MiB/s,
Synology Drive Server does about 50 MiB/s; deceivingly fast upload speeds at first, but when the file is fully uploaded, there is a lengthy "processing" step at the end, reducing the average speed to about 50% of the initial
copyparty maxes the HDD write-speeds, 99 MiB/s
when uploading to the synology nas over webdav,
WebDAV Server by Synology Inc. in the Package Center does 86 MiB/s
copyparty does 79 MiB/s; the NAS CPU is a bottleneck because copyparty verifies the upload checksum while WebDAV Server doesn't