Crashplan offers a great online backup solution. Netgear ReadyNAS offers a great home/small office local network storage solution. Here's a how-to on how to set your ReadyNAS as a Crashplan client.
Step 1: Turn on SSH on your ReadyNAS
In the ReadyNAS admin head over to the "Settings" tab of the "System" section. Make sure that SSH is enabled. If you've never turned it on, you will receive a message basically stating "With great power comes great responsibility". If you're not comfortable with ssh and a linux command line, this may not be the solution for you.
Step 2: Get Crashplan downloaded and installed
Using your favorite ssh client, ssh to your ReadyNAS IP address as "root". The password will be the same as your web interface "admin" password.
The last version that can be used on Arm hardware is 4.7.0 located at https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_4.7.0_Linux.tgz. We don't know when this version will cease to be supported, but it will probably stop working at some point. Be warned.
Run the following command on the ReadyNAS using the current version download URL you found on the download page.
wget https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_4.7.0_Linux.tgz
Apparently the busybox cpio is not compatible with the Crashplan installer, so we'll need to uninstall the busybox version and install the proper version.
apt-get remove busybox-cpio
apt-get install cpio
We'll need to get a java runtime environment installed on the ReadyNAS since Crashplan is a java application. We'll also need a ARM based java library to use in place of the intel version bundled with Crashplan.
apt-get install openjdk-7-jre-headless
Now you have the installer archive downloaded. It's time to decompress and run the installer. (Obviously replace the archive name with the one you downloaded)
tar xvzf CrashPlan_3.6.3_Linux.tgz
cd /CrashPlan-install
./install.sh
Answer the EULA and accept all of the defaults. You should get output similar to the following (EULA removed).
Welcome to the CrashPlan Installer.
Press enter to continue with installation.
Validating environment...
detected root permissions
49036 blocks
You must review and agree to the EULA before installation.
Press enter to read the EULA.
What directory do you wish to install CrashPlan to? [/usr/local/crashplan]
What directory do you wish to link the CrashPlan executable to? [/usr/local/bin]
What directory do you wish to store backups in? [/usr/local/var/crashplan]
What directory contains your SYSV init scripts? [/etc/init.d]
What directory contains your runlevel init links? [/etc/rc5.d]
Your selections:
CrashPlan will install to: /usr/local/crashplan
And put links to binaries in: /usr/local/bin
And store datas in: /usr/local/var/crashplan
Your init.d dir is: /etc/init.d
Your current runlevel directory is: /etc/rc5.d
Is this correct? (y/n) [y] y
Unpacking /./CrashPlan_3.6.3.cpi ...
49036 blocks
Starting CrashPlan Engine ... Using standard startup
OK
CrashPlan has been installed and the Service has been started automatically.
Press Enter to complete installation.
Important directories:
Installation:
/usr/local/crashplan
Logs:
/usr/local/crashplan/log
Default archive location:
/usr/local/var/crashplan
Start Scripts:
sudo /usr/local/crashplan/bin/CrashPlanEngine start|stop
/usr/local/crashplan/bin/CrashPlanDesktop
You can run the CrashPlan Desktop UI locally as your own user or connect
a remote Desktop UI to this Service via port-forwarding and manage it
remotely. Instructions for remote management are in the readme files
placed in your installation directory:
/usr/local/crashplan/doc
To start the Desktop UI:
/usr/local/bin/CrashPlanDesktop
Installation is complete. Thank you for installing CrashPlan for Linux.
Now Crashplan comes with a libjtux.so that compiled for intel processors. That's not going to work on our ARM based ReadyNAS, so we'll need to replace it with a ARM based library.
Download a precompiled version here and make a backup copy of /usr/local/crashplan/libjtux.so, then decompress the downloaded file and put it in place of the original. Firing up the Crashplan backup engine should now work without dying.
/usr/local/crashplan/bin/CrashPlanEngine start
So far so good. Now we need to configure the client.
Step 3: Headless configuration
Since you have to configure Crashplan via a GUI and the ReadyNAS is headless, we'll need to use a desktop app to attach to the client's backend. So here's the plan: we're going to point the desktop client to a non-standard port, then forward that point (via SSH forwarding) to the correct port on the ReadyNAS. In theory we'll only need to do this to get it set up and shouldn't need to connect to it this way again.
Let's change the port the desktop app is looking for the client backend. We'll need to modify a configuration file for this. Here are the locations for each OS.
Linux (if installed as root): /usr/local/crashplan/conf/ui.properties
Mac: /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties
Windows: C:\Program Files\CrashPlan\conf\ui.properties
In this file we should duplicate the servicePort line, uncomment one of them and set it to 4200...
#servicePort=4243
servicePort=4200
Now we need to forward our local 4200 port to the ReadyNas's port 4243. We can do this with SSH.
ssh -L 4200:localhost:4243 root@[ReadyNAS IP]
Newer releases of Crashplan require you to copy a UI key form the backend service on the headless system (the ReadyNAS in our case) to the client system (the computer we are using the desktop app on).
Copy the contents of /var/lib/crashplan/.ui_info
on the ReadyNAS to the appropriate file on your client computer (see below) making sure to change the the first number (4243) in the file to the forwarded local port (4200). For example...
ReadyNas .ui_info
4243,f9640dc8-a1c3-4d14-bd68-e3774a1fbe10,127.0.0.1
should be copied to the client and changed to
4200,f9640dc8-a1c3-4d14-bd68-e3774a1fbe10,127.0.0.1
The correct client file will be in the location below depending on your client OS.
Locations Of .ui_
- Windows Vista, 7, 8, 10, Server 2008, and Server 2012
- Installed for everyone: C:\ProgramData\CrashPlan\conf
To view this hidden folder, open Windows Explorer and paste the path in the address bar. - Installed per user: C:\Users\
\AppData\<Local|Roaming>\Programs\CrashPlan\conf
To view this hidden folder, open Windows Explorer and paste the path in the address bar.
- Installed for everyone: C:\ProgramData\CrashPlan\conf
- Windows XP
- Installed for everyone: C:\Documents and Settings\All Users\Application Data\CrashPlan\conf
To view this hidden folder, open Windows Explorer and paste the path in the address bar. - Installed per user: C:\Documents and Settings\
\Application Data\Programs\CrashPlan\conf
To view this hidden folder, open Windows Explorer and paste the path in the address bar.
- Installed for everyone: C:\Documents and Settings\All Users\Application Data\CrashPlan\conf
- OS X
- Installed for everyone: /Library/Application Support/CrashPlan/conf/
- Installed per user: ~/Library/Application Support/CrashPlan/conf/
- Linux: /usr/local/crashplan/conf
- Solaris: /opt/sfw/crashplan/conf
Now fire up your desktop app and you should be greeted with the setup process.
Credit where credit is due
Here are the articles and threads I've had loaded in by browser as I was working through this. Some of the above is verbatim from some of these sites.
- http://forum.excito.net/viewtopic.php?f=9&t=3739
- http://www.jonrogers.co.uk/2012/05/crashplan-on-the-raspberry-pi/
- http://www.readynas.com/forum/viewtopic.php?f=4&t=60158
- http://support.code42.com/CrashPlan/4/Configuring/Using_CrashPlan_On_A_Headless_Computer
Changelog
- 2015-10-30 - Added instructions for copying the UI key to the client due to a change in a recent version of Crashplan.