I recently installed Dropbox on my Digital Ocean Droplet, running Ubuntu 12.10 server. I did not figure this all out on my own. I read the sources mentioned at the bottom of this post. However, some of the information was incomplete or contained broken links, and I ran into other issues. So this blog post is more of about how I got it working in hopes that you won't encounter the same issues I did.
First you will need to link your Linux machine with your Dropbox account by downloading and running a Dropbox server script called dropboxd:
$ cd # changes to your $HOME directory $ wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf - $ ~/.dropbox-dist/dropboxd Use the above command if you're running "uname -m" says i686. $ cd $ wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf - $ ~/.dropbox-dist/dropboxd Use the above command if "uname -m" says x86_64.The running dropboxd command should output a link for you to paste into a browser to link that system. I had issues with this at first and just had to keep rerunning the command over time and leaving it running until it finally started saying something. This was probably due to connection issues that you hopefully won't have. You can then verify that it's linked by logging into your dropbox web account and going under the "Security" tab to see linked devices.
The link uses a token so you don't have to store your Dropbox password on the Linux instance.
Once Dropbox is linked you should see your ~/Dropbox directory starting to sync. At this point, you can temporarily stop the syncing by hitting ^C (Control-C) to stop dropboxd. Don't worry we'll finish syncing in a minute.
Let's download a nice python script to help us manage Dropbox better:
$ wget -O ~/bin/dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py" $ chmod 755 ~/bin/dropbox.pyand download a bash script that we'll use to start and stop Dropbox:
$ wget -O ~/bin/dropbox_temp "https://gist.githubusercontent.com/benhedrington/\ 2347727/raw/108fc8af551cb4fdf7cdd08b891a45f405d283dc/dropbox" $ chmod u+x ~/bin/dropbox_tempEdit ~/bin/dropbox_temp in Vim (or whatever editor you like) and change DROPBOX_USERS="user1 user2" to whatever user(s) on your system you want to run dropbox clients for.
Now move dropbox_temp script:
$ sudo mv ~/bin/dropbox_temp /etc/init.d/dropboxand have it start when we boot:
$ sudo update-rc.d dropbox defaultsClose the dropboxd script if you still have it running manually: ^C.
Check if dropbox is running, if it's not then start it:
$ sudo service dropbox status $ sudo service dropbox startIf it's is running then run:
$ dropbox.py statusIf the status command says Dropbox is now downloading or syncing a ton of files, you might want to remove some directories from being sync'd to this linux machine by using Dropbox's Selective Sync.
Selective Sync allows you to exclude certain folders that you don't want to sync to your Linux server, e.g., maybe you don't need all your photos on it:
$ cd ~/Dropbox $ ls Photos Projects Public iphone-photosLet's exclude the photos and Public directories:
$ dropbox.py exclude add Photos $ dropbox.py exclude add iphone-photos $ dropbox.py exclude add Public $ ls ProjectsAt this point, I would wait until dropbox.py status says "Up to date" before editing files in your Dropbox folder. Just to make sure nothing gets corrupted. Once Dropbox has finished downloading everything, you should try to sync files to AND from Dropbox. Make sure to test both directions and also test nested directories and your most important directories. I had an issue once where files in ~/Dropbox/Projects/notes/ wouldn't sync outgoing, yet ~/Dropbox/Projects/code/ files would. If it doesn't, you'll need to reinstall Dropbox (instructions are below). It shouldn't be a firewall issue because the docs specify that Dropbox runs on port 80.
Alright, if you made this far and everything seems working, the great!
You may also want to delete any cached deleted files from the exclude step (NOTE: don't even try this unless you need it and at least until you're sure dropbox is already working):
$ sudo service dropbox stop $ rm -rf ~/Dropbox/.dropbox.cache/* $ sudo service dropbox startDon't delete the .dropbox.cache dir itself, just its contents.
If you ever need to delete the dropbox instance:
- ^C to stop the dropboxd daemon
- rm -rf ~/.dropbox* ~/Dropbox
- Revoke the token that was issued for your session by clicking 'unlink' next to your Droplet's host name at https://www.dropbox.com/account#security
Sources:
https://www.dropbox.com/install?os=linux
https://www.digitalocean.com/community/questions/dropbox-works-with-digitalocean-droplets