Embracing the Messiness in Search of Epic Solutions

Synology NAS: Running CrashPlan in Docker Container

Posted

in

, ,

BACKGROUND

The reason to run CrashPlan in Docker container is to prevent any future Synology’s DSM updates from breaking the CrashPlan app.

Let’s assume the Synology NAS IP address is 1.2.3.4.

STEPS

Diskstation Manager

Log into Diskstation Manager: http://1.2.3.4:5000

Install Docker.

Package Center -> Utilities -> Third Party -> Docker

Mac

SSH into Synology NAS.

Install CrashPlan Docker container.

sudo docker pull jrcs/crashplan

Run CrashPlan Docker container. In this example, we want to backup photo and video directories.

sudo docker run -d --name CrashPlan \
 -p 4242:4242 -p 4243:4243 \
 -v /volume1/photo:/volume1/photo -v /volume1/video:/volume1/video \
 jrcs/crashplan:latest

Back to Diskstation Manager

Get authentication token from the running CrashPlan.

Docker -> Container -> CrashPlan -> Details -> Terminal -> Create -> bash

Run command:-

cat /var/lib/crashplan/.ui_info

The following text are printed:-

4243,########-####-####-####-############,0.0.0.0

Copy ########-####-####-####-############ to somewhere first.

By default, CrashPlan allocates 1GB of memory. The recommendation is to allocate 1GB of memory per 1TB of storage to prevent CrashPlan from running out of memory. In this example, we are going to increase it to 3GB.

Edit /var/crashplan/conf/my.service.xml.

vi /var/crashplan/conf/my.service.xml

Change the following line:-

<config ...="">
	...
	<javamemoryheapmax>3072m</javamemoryheapmax>
	...
</config>

Edit /var/crashplan/app/bin/run.conf.

vi /var/crashplan/app/bin/run.conf

Change the following line:-

SRV_JAVA_OPTS="... -Xmx3072m ..."
GUI_JAVA_OPTS="..."

Stop CrashPlan Docker container.

Docker -> Container -> CrashPlan -> Action -> Stop

Enable auto-restart on CrashPlan Docker container.

Docker -> Container -> CrashPlan -> Edit -> General Settings -> Enable auto-restart -> OK

Start CrashPlan Docker container.

Docker -> Container -> CrashPlan -> Action -> Start

Back to Mac

Download and install CrashPlan software.

Disable CrashPlan service since the UI acts as a client.

sudo launchctl unload -w /Library/LaunchDaemons/com.crashplan.engine.plist

Edit /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties.

sudo nano /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties

Uncomment serviceHost and update Synology NAS IP address.

#Fri Dec 09 09:50:22 CST 2005
serviceHost=1.2.3.4
#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=

Edit /Library/Application Support/CrashPlan/.ui_info.

sudo nano "/Library/Application Support/CrashPlan/.ui_info"

Replace the authentication token with the value from above step. Replace IP address with Synology NAS IP address.

4243,########-####-####-####-############,1.2.3.4

Finally, run CrashPlan app to view the backup process.

Comments

12 responses to “Synology NAS: Running CrashPlan in Docker Container”

  1. Paul Avatar
    Paul

    This is great. I have to say that having Crashplan fail every time there’s an update is beginning to wear pretty thin. I hadn’t even thought about running it in Docker. Cheers!

  2. Jason Moon Avatar
    Jason Moon

    Great work!

  3. AK Avatar
    AK

    Hi, thanks for these instructions. I’ve not tried crashplan yet but intending to, as a means to back up the content of my NAS. So just to clarify the purpose of the desktop client is only to verify/view that the crashplan app is backing up the NAS contents, e.g. using online cloud storage option, is that right? It is not about using crashplan on your local computer to back up to the NAS, is it?

  4. Christian Busch Avatar
    Christian Busch

    Hi Great tutorial. Thank you very much ! Once I have this running, how do I add new folders to backup ? the command docker run … says I need to delete the container first. Can I edit that in the settings or the client or do I need to delete the container first and start from scratch ?

  5. Alex Avatar
    Alex

    When i am running this section :

    sudo docker run -d –name CrashPlan \
    -p 4242:4242 -p 4243:4243 \
    -v /volume1/photo:/volume1/photo -v /volume1/video:/volume1/video \
    jrcs/crashplan:latest

    Do i paste that into the terminal as one block or so i do each line separately ?
    Also if my folder to backup is called like “video archive” with a space how do i get this to work

    Thanks All!

    1. Choon-Chern Lim Avatar

      Paste them as one block of statement because each line ends with a backslash, indicating it is a continuation of one long command line.

      1. Alex Avatar
        Alex

        Thats for that sorry for being useless can i use a path with spaces like below or do i need to do something else ?

        -v /volume1/photo:/volume1/photo -v /volume1/video:/volume1/video archive \

  6. Steve Avatar
    Steve

    Hi excellent article.

    The setup has been working perfectly for me, although I’m experiencing an issue when the container restarts.
    On container restart a new GUID is generated at /var/lib/crashplan/.ui_info (I’m guessing this shouldn’t be the case) and my crashplan client no longer connects. I then proceed to update the GUID in the crashplan client, but it still gets a timeout when connecting.

    Has anyone else experienced this, or have I missed a step in the setup process?

    1. Alex Avatar
      Alex

      Hello,

      I too get a new GUID every time the container restarts which is fustrating however once i update the .ui_info on the client computer i can connect. Its also worth checking ui.properties as sometimes it resets aswell.

      A

      1. tagyoureit Avatar
        tagyoureit

        try ‘chmod 444 /var/lib/crashplan/.ui_info’ to make the file read-only.

  7. chris Avatar
    chris

    Hi, any plans to make a crashplan for small business docker now that Crahsplan home is discontinued ?

  8. Bobby Meneses Avatar
    Bobby Meneses

    Can’t seem to get the Client to connect anymore, wondering if it has to do with the new updates?

Leave a Reply