Today I wanted to start an offsite backup of my Synology DS413. After some searches, CrashPlan seemed to be the best solution.
I went throught a lot of issues in the process, and wanted to share my experience here. My offsite backup to CrashPlan is now fully working !
Having CrashPlan on a Synology is made possible by the amazing work of Patters, from pcloadletter.co.uk.
The main trouble I had was because of a bug in the latest version of his package for PowerPC CPU. This version tried to enable the "Watch file system in real-time" functionnality of CrashPlan. Unfortunatly, it seems to have troubles with some CPU architectures, and Patters temporarily disabled his package for those in his package repository. This is why the package is not available to install directly from Package Manager.
Patters is hard at work to find a solution to get the package to work again on PowerPC. In the meanwhile, to install CrashPlan on a Synology with a PowerPC CPU, we just have to manually install the previous version of his package.
Here is the full process documented, from the installation of Java to the configuration of the CrashPlan client.
- Add pcloadletter packages source
- Install Java
- Manually install CrashPlan 3.6.3 package
- Install CrashPlan client on PC
- Change client config to connect to Synology instead of local
- Configure CrashPlan
- Enjoy !
Add pcloadletter packages source
First thing to do is to add Patters packages source. This will let us install Java and CrashPlan easily.
- Connect on your Synology WebUI
- Open Package Center
- Go to Settings -> Package Sources
- Add the URL http://packages.pcloadletter.co.uk/
- Press OK
- Go to the General tab
- Adjust the Trust level to "Any publisher"
- Press OK
Install Java
Now, we have to install Java on our NAS. Fortunalty, Patters had us covered with great packages too !
Java cannot be embedded directly in a Synology package, so we will have to download and put the file in a "public" shared folder on our Synology. Then, the package will automatically take it and install it.
- If you don't already have a shared folder called "public" on your Synology, create one and grant access to everyone.
- Go to Package Center
- Go to the "Community" section
- Install the package "Java SE Embedded 7", an error message will appear, don't worry. It will tell you exactly which file to download on the Oracle website.
- Go on the Oracle website and download the file specified in the error message shown
- Place this file in the "public" shared folder of your Synology
- Start again the installation of the package "Java SE Embedded 7" from the "Community" tab of your Synology's Package Center
- This time, the install should be successful. Java is now installed ! (the package does not need to be in "running" state to work)
Manually install CrashPlan 3.6.3 package
Now that Java is installed, we can install the CrashPlan package.
If your CPU is compatible with the last version, you can install if directly from the "Community" tab of your Synology's Package Center.
If, instead, the package does not appear here, you probably have a PowerPC CPU and we will manually install the previous version.
- Download CrashPlan for Synology package v3.6.3 from Patters website (CrashPlan PRO and PROe packages can be found here)
- Open Package Center on your Synology
- Click on "Manual install" on top
- Browse for the downloaded package on your computer
- Click "Next" and proceed to install
- Once the package is installed, you will have to stop and start it again before you can use it
Install CrashPlan client on your computer
Now that CrashPlan is running on our Synology, we have to install the client on our computer to configure it.
- Download the client from CrashPlan's website
- Follow the instructions to install it
Change client config to connect to Synology instead of local
We will now change the CrashPlan's client config to have it connect to our Synology's CrashPlan instead of our local install.
Instructions will be for Mac OS, but with some edits you can get it to work on Linux/Windows too. You can find the location of the file to edit (ui.properties) for the various OS on CrashPlan's website here.
1_ Copy "ui.properties" to user's library
cp /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties ~/Library/Application\ Support/CrashPlan/ui.local.properties cp /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties ~/Library/Application\ Support/CrashPlan/ui.remote.properties
2_ Edit the remote (Synology) config file
vi ~/Library/Application\ Support/CrashPlan/ui.remote.properties
4_ Change serviceHost=127.0.0.1 to your Synology IP (on your LAN network) and remove comment (#) before the line
#Fri Dec 09 09:50:22 CST 2005 serviceHost=192.168.1.12 #servicePort=4243 #pollerPeriod=1000 # 1 second #connectRetryDelay=10000 # 10 seconds #connectRetryAttempts=3 #showWelcome=true #font.small= #font.default= #font.title= #font.message.header= #font.message.body= #font.tab=
5_ Save file
6_ Create a script to easily switch between configurations and launch CrashPlan client
vi ~/bin/cpLaunch
#!/bin/bash cd ~/Library/Application\ Support/CrashPlan/ if [[ "$1" == "synology" ]]; then echo "Switching CrashPlan client to Synology..." cp ui.remote.properties /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties; else echo "Switching CrashPlan client to local..." cp ui.local.properties /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties; fi cd ~; echo "Starting CrashPlan client..." nohup /Applications/CrashPlan.app/Contents/MacOS/CrashPlan & exit
Then make it executable :
chmod +x ~/bin/cpLaunch
You can then launch CrashPlan client to connect to local server by running ~/bin/cpLaunch
and to connect to Synology's CrashPlan : ~/bin/cpLaunch synology
.
Configure CrashPlan
Now you can connect to your CrashPlan account, configure the folders you want to backup and start it up !
Enjoy !
Slow speed ?
If the speed seems to be very slow, you can try this buide to speed things up : http://networkrockstar.ca/2013/09/speeding-up-crashplan-backups/
- Enable SSH on Synology
- Connect with SSH
- Edit file `/volume1/@appstore/CrashPlan/conf/my.service.xml``
- Stop and start CrashPlan package again in Package Control