Important Note
Code42 has removed headless functionality in the latest v6 release of CrashPlan for Small Business (formerly CrashPlan Pro). Existing docker instances may still continue to run for a while, but this ultimately marks the death of any sort of CrashPlan backup for Synology.
https://support.code42.com/CrashPlan/6/Get_started/Changes_to_the_Code42_app_in_version_6
I recommend using BackBlaze B2 with Synology’s Cloud Sync application. There are some drawbacks (e.g. you can’t cloud sync the same folders with different services), but ultimately it is fairly priced and works well.
Archive Content:
Synology introduced Docker to the DSM in version 5+, which has opened up new ways of running some applications in Synology. Not all Synology boxes have enough resources to run docker, check if your Synology NAS can run Docker here. Using Mike Tabor’s excellent tutorial post I was able to get CrashPlan up and running on my 713+ DiskStation. However, his tutorial only covers the basic CrashPlan application, and not CrashPlanPRO. I’ve written up a quick and dirty guide to get CrashPlan or CrashPlanPRO working on docker in Synology.
Prepare the Synology NAS for Docker
- Login to Synology, go to Package Center
- Uninstall CrashPlan from Package Center (if previously installed)
- Install Docker in Package Center
- Connect to Synology via SSH as a user with Admin privileges
Get the latest Docker Images for CrashPlan or CrashPlanPRO
First, we will pull a CrashPlan or CrashPlanPRO image from docker hub. Note that if connected via DSM6, we will need to start the session with “sudo su”, or add “sudo” before each of the docker commands:
1 |
sudo su |
If using CrashPlan
1 |
docker pull jrcs/crashplan |
If using CrashPlanPRO:
1 |
docker pull rungeict/crashplanpro |
Create and run CrashPlan container using the image.
If multiple volumes need to be specified, add another -v statement after the first one e.g. “-v /volume2/:/volume2”
If using CrashPlan:
1 |
docker run -d --name crashplan -p 4242:4242 -p 4243:4243 -v /volume1/:/volume1 jrcs/crashplan:latest |
If using CrashPlanPRO:
1 |
docker run -d --name crashplan -p 4242:4242 -p 4243:4243 -v /volume1/:/volume1 rungeict/crashplanpro:latest |
Wait until the container has fully started up (typically less than 2 minutes)
Get the GUID from CrashPlan
In the same SSH session, enter into a bash session for the container:
1 |
docker exec -it crashplan /bin/bash |
The command prompt will now take place inside the container. You may see an error which is safe to ignore for now: “ERRO[0000] Unable to connect to local syslog daemon”. In the bash session, enter the following command to get the headless key
1 |
cat /var/lib/crashplan/.ui_info ; echo |
It will output something similar to the following. The first number is the port used, 4243. After the comma, the guid key is listed, then the IP for the Synology NAS. In this example below, the “4fx72835-3fcd-4319-afd5-698212c77ba7” key should be recorded to connect to the system with CrashPlan from a desktop machine
4243,4fx72835-3fcd-4319-afd5-698212c77ba7,0.0.0.0
Update the workstation to connect to CrashPlan running in Docker
.ui_info
If using Windows, update C:\ProgramData\CrashPlan\.ui_info with the guid recorded in the command above, and the IP address of the Synology NAS. If on a Mac, the path is /Library/Application Support/CrashPlan/.ui_info. For example:
4243,4fx72835-3fcd-4319-afd5-698212c77ba7,10.0.0.99
ui.properties
If using Windows, update C:\Program Files\CrashPlan\conf\ui.properties and ensure serviceHost is enabled and pointing to the Synology NAS. On a Mac, this path is typically /Library/Application Support/CrashPlan/conf/.ui_info. For example:
serviceHost=10.0.0.99
Connect to CrashPlan
After connecting successfully to the CrashPlan instance, adopt a previous computer (if applicable) to ensure the backup history and settings are retained.
If you have large backup sets and memory needs to be adjusted, double click the CrashPlan logo in the top right of the program and apply a custom command. In the example command below, the memory usage is increased to 2GB in order to work with very large file sets. Do not increase this value beyond what is available on the Synology NAS. More information on this command can be found here.
java mx 2048, restart
Troubleshooting
CrashPlan on Docker can’t see my files
Sometimes the mapping for the root volume doesn’t seem to stick for sub shares in the container. To fix this, stop the container and edit it in Docker. Add each share used in CrashPlan backups to the container and mount them the same way they were referenced originally. For example, if CrashPlan backs up files on a share named “Photo” on volume1, then add that share to the container with a mount path of “/volume1/Photo”.
CrashPlan Updated to v4.8 and now my docker image is broken
The following reply by reddit user ajr6037 has a solution: https://www.reddit.com/r/synology/comments/550806/best_crashplan_docker_image/d87beo9