I gave up and now run it via Container Station. It's ridiculous how much easier this was:
1. Install Container Station (if you haven't already)
2. Open Container Station and select "Create"
3. Search for "Ubuntu"
4. Install the latest Ubuntu LXC (18.04 is the latest LTS version, but 16.04 is the latest in the list). This will get you a minimal Ubuntu image that runs faster than Virtualization Station or Linux Station and boots up in no time. It's similar to Docker but for running a system. You can start it and stop it, and it will continue where you left off.
5. Set up the container:
- You may want to limit it so it doesn't use too much of the hosts resources, but it needs 2GB RAM.
- Under advanced settings, add the shared folders you need it to backup. Each one you add must have a mount point on the container. One advice is you add them to a single root directly so you only have to sync one directory. So for example add them as "/my-nas/Documents" and "/my-nas/Downloads".
- Add a port forward to port "22" on your container. Use something unused by your host, like "2222".
- You can add shared folders and change the hardware setup later, so you don't have to get it right the first time.
6. It will now download the Ubuntu image and run it. It's just a 85mb file with the bare essentials, so it should only take a minute.
7. Go to overview. Click on the new container name. You are now in a view with some container info and a shell interface.
8. Your username and password are both "ubuntu". You should change your password to something else with "passwd"
9. Update your packages (the ones you get by default are very outdated by now), install ssh, screen and spideroak one:
Code: Select all
sudo sh -c 'apt update && apt upgrade && apt install -y openssh-server screen wget && wget https://spideroak.com/release/spideroak/deb_x64 && sudo dpkg -i deb_x64 && rm deb_x64'
The installer adds SpiderOaks Ubuntu repository, so next time just "sudo apt update" and "sudo apt upgrade"
10. SSH into the container from another computer: "ssh ubuntu@NASIP -p port". Substitute NASIP with the ip address (or domain name) you use for the web interface, and the port with the port you created in the port forward rule. Ex: "ssh email@example.com -p 2222".
11. Run "screen" (and press enter or space).
12. Now run "SpiderOakONE --setup=-". If you already had devices on SpiderOak, you'll get a message "Synchronizing with server (this could take a while)...". Once it's done it will say "Batchmode run complete: shutting down". Since you are running via screen you can detach (Ctrl + A, Ctrl + D) or just close your terminal. To continue later: ssh into the container and run `screen -r`
13. After your initial sync, add the folder(s) to sync ex "SpiderOakONE -v --include-dir=/my-nas" and "SpiderOakONE -v --batchmode" to start syncing ("-v" is an optional flag for verbose).
14. To schedule a recurring sync, run "crontab -e" and add something like this "0 0 * * * /usr/bin/SpiderOakONE --batchmode". Batchmode
doesn't start if it's already running, so this is safe if you've got a lot of data to sync initially. Also, if you need your jobs to run at specific times, don't forget to set the time zone first "sudo dpkg-reconfigure tzdata"
For more CLI usage, see the CLI-reference
or run "SpiderOakONE --help".
If you're like me and find the name of the executable unpractical, you can create an alias or symlink: "sudo ln -s /usr/bin/SpiderOakONE /usr/bin/spideroak"
If your initial sync exits early you may get stuck with an error "SpiderOakONE has detected that it needs to re-sync with the server. Please run in normal (GUI) mode, headless, or batchmode to re-sync." Following the instructions didn't work for me, so if it's the same for you, at least you can delete your entire Spideroak One user directory `rm -rf ~/.config/SpiderOakONE` and start over.
You can do all this without openssh-server and screen, but the web terminal is not great for this. There's a better one if you press the fullscreen button next to "Console", but neither of them sends "ctrl" to the client.