Recently I have upgraded my good old Synology DS411slim to newer, bigger model - DS918+. I kinda started to run out of free space (1TB 2.5” x4) and decided to invest some money into a new box and new drives.
There is an official guide how you can migrate with disk swipe, but as I wanted to move my data to new drives I just decided I would try to rsync
everything. And BTW there is a screen
command if you would like to run in the background that can be found on synocommunity.
Long story short I had a poor experience with rsync - tweaking settings on both ends (disabling compression, tinkering with used crypto algo and so on) yielded rather disappointing results - transfer up to 10MB/s and almost 100% CPU utilization on my old NAS.
Weirdly enough I had much better luck with simply mounting CIFS resources in my new nas from my old nas directly in DistStation File Manager (Tools
-> Mount Remote Folder
-> CIFS shared folder
). That doubled transfer speed and lowered CPU usage ~2x times. So far so good.
Aside from standard packages like PhotoStation (and btw if you move your photos
directory it should just work) I also had SickChill (previously SickRage and before that SickBeard as apparently there was some fight over the project) and transmission that I wanted to move.
My goto solution were packages from synocommunity, but I noticed my new box have great support for Docker - Synology provides an official Docker package. So I decided to give it a try.
New stack
After some research I ended up with Medusa (as replacement for SickChill), Radarr (for managing movies collection), Jackett (that acts as proxy between medusa and radarr and various private torrent trackers) and rutorrent (as replacement for transmission as radarr don’t have unpack rar archives capabilities).
Hopefully for me there is a linuxserver community that released all the images that I needed, so basically half the work as done. Opensource ftw 💪.
I’m using three virtual volumes on my synology:
volume1
for various stuff - there I will create a docker directory to keep all the configs, dbs and so onvolume2
where I have my torrent (downloads) directoryvolume3
where I have my tv/movies collection
Sample docker compose will look something like this:
---
version: "2"
services:
radarr:
image: linuxserver/radarr
container_name: radarr
environment:
- PUID=1024
- PGID=100
- TZ=Europe/Warsaw # or whatever your timezone is
volumes:
- /volume1/docker/radarr:/config
- /volume3/video/movies:/movies
- /volume2/torrent:/downloads
ports:
- 7878:7878
links:
- jackett
- rutorrent
mem_limit: 1g
restart: unless-stopped
jackett:
image: linuxserver/jackett
container_name: jackett
environment:
- PUID=1024
- PGID=100
- TZ=Europe/Warsaw
volumes:
- /volume1/docker/jackett:/config
ports:
- 9117:9117
mem_limit: 512mb
restart: unless-stopped
rutorrent:
image: linuxserver/rutorrent
container_name: rutorrent
environment:
- PUID=1024
- PGID=100
volumes:
- /volume1/docker/rutorrent:/config
- /volume2/torrent:/downloads
ports:
- 9091:80 # so you can access rutorrent on port 9091 on your synology
- 5050:5000
- 51413:51413
- 6881:6881/udp
mem_limit: 512mb
restart: unless-stopped
medusa:
image: linuxserver/medusa
container_name: medusa
links:
- jackett
- rutorrent
environment:
- PUID=1024
- PGID=100
- TZ=Europe/Warsaw
volumes:
- /volume1/docker/medusa:/config
- /volume2/torrent:/downloads
- /volume3/video/tv:/tv
ports:
- 8081:8081
mem_limit: 1g
restart: unless-stopped
Notes:
PUID
is user ID andPGID
is group ID from synology system (just ssh into you machine and checkid
of your designated user), otherwise mounted directories will be owned byroot
and this is not what you usually wantif you notice
NotImplementedError
errors in logs in Medusa try to set schema (and optionally port) for rutorrentsynology docker package ships with
docker-compose
(run it viasudo
) so you can simply use such yaml or go other way and eg. configure ansible (requires some extra configuration on client side, but nothing heavy effort-wise)