How to Install Dropbox on a Headless Ubuntu Server
This tutorial will show you how to install Dropbox on a headless Ubuntu server to backup and sync files and also how to enable Dropbox to auto-start at boot time. The following steps work all current Ubuntu versions, including Ubuntu 16.04, Ubuntu 18.04, Ubuntu 20.04.
Install Dropbox on Ubuntu Server
First, SSH into your Ubuntu Server. Then download Dropbox using the following command. It will be saved as dropbox-linux.tar.gz
.
64 bit
wget https://www.dropbox.com/download?plat=lnx.x86_64 -O dropbox-linux.tar.gz
32 bit
wget https://www.dropbox.com/download?plat=lnx.x86 -O dropbox-linux.tar.gz
Create a directory in /opt
and extract Dropbox to /opt/dropbox/
.
sudo mkdir /opt/dropbox/ sudo tar xvf dropbox-linux.tar.gz --strip 1 -C /opt/dropbox
Install dependency packages for Dropbox.
sudo apt install libc6 libglapi-mesa libxdamage1 libxfixes3 libxcb-glx0 libxcb-dri2-0 libxcb-dri3-0 libxcb-present0 libxcb-sync1 libxshmfence1 libxxf86vm1
Now you can run the Dropbox daemon.
/opt/dropbox/dropboxd
It will ask you to visit a web address in order to link your Ubuntu server with your Dropbox account.
This computer isn't linked to any Dropbox account... Please visit https://www.dropbox.com/cli_link_nonce?nonce=d8b8aear73fawe4fbd0154443 to link this device.
Copy and paste the link in your web browser, log into your Dropbox account and click the Connect button to link your Ubuntu server with your Dropbox account.
Once the link is complete, return to the terminal window and press Ctrl+C
to temporarily stop Dropbox daemon because it by default runs in the foreground and you can’t run other commands. The Dropbox sync folder appears in your home directory.
How to Enable Auto-Start
To make Dropbox start at system boot time, we can create a systemd service unit.
sudo nano /etc/systemd/system/dropbox.service
Put the following lines into the file. We want Dropbox to run as a standard user instead of root, so replace username
with your real username. If it runs as root user, then files in ~/Dropbox
will not sync properly.
[Unit]
Description=Dropbox Daemon
After=network.target
[Service]
Type=simple
User=username
ExecStart=/opt/dropbox/dropboxd
ExecStop=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
Save and close the file. Then we can start this service by running:
sudo systemctl start dropbox
And enable auto-start at system boot time.
sudo systemctl enable dropbox
Check its status.
systemctl status dropbox
Hint: If the above command doesn’t quit immediately, you can press the Q key to make it quit.
You can stop it with:
sudo systemctl stop dropbox
Restart it with:
sudo systemctl restart dropbox
Now you can restart your Ubuntu server and check if auto-start is working.
sudo shutdown -r now
That’s it! I hope this tutorial helped you install Dropbox on a headless Ubuntu server. As always, if you found this post useful, then subscribe to our free newsletter. to receive more tips and tricks. Take care 🙂
I can’t believe how long I’ve been manually typing that stupid command into the terminal.
This method works perfectly and means I no longer have to do that. Thanks!
for some reason it was failing on my box.. just added some delay and it works:
[Service]
ExecStartPre=-/bin/sleep 30
“It will ask you to visit a web address in order to link your Ubuntu server with your Dropbox account.”
Headless?
Yes.
A headless computer is a computer system or device that has been configured to operate without a monitor (the missing “head”), keyboard, and mouse. A headless system is typically controlled over a network connection.
You use a web browser to read this article, right? 🙂
You can visit the web address on any computer you want. It only asks you to permit a connection between Dropbox and your headless Linux. After giving the permission, you don’t need that computer.
I am setting up a Nextcloud server. Nextcloud is running now. Connecting Dropbox is working fine.
Instead of your article starting with ‘How to Enable Auto-Start’ I am looking for a way to
* connect user #1, download its files to the Linux computer, disconnect user #1
* moving the files to the Nextcloud’s file location of user #1
* connect user #2, download its files to the Linux computer, disconnect user #2
* moving the files to the Nextcloud’s file location of user #2
etc.
For now I don’t need to MOVE the files from Dropbox to Nextcloud, only COPY.
Do you know an easy way to do that.
Best regards,
Guido
I don’t think you can create a script to automate the process, because each user needs to manually link Dropbox account with the computer.
You can install the Nextcloud command-line client on the server.
Then sync the Dropbox folder with your Nextcloud account like below.
On which way can I check when all the files of my Dropbox are synced with my Linux computer?
Best regards.
Guido
You can check the size of your Dropbox folder. The following command will check the size of the Dropbox folder under your home directory.
I ascertain that the files of my Dropbox are MOVED to my Linux computer. I only want to copy them. For now I have to continue the use of Dropbox.
How to avoid that the files are moved?
Best regards,
Guido
If you move your files from the Dropbox folder to your Nextcloud folder, it will surely remove those files from your Dropbox account.
I am testing for the most optimal configuration to store my files on Nextcloud, backup them and – if needed – restore them. That’s why I want to save my files also in Dropbox for this moment May be there a temporary option to remain my files on the Dropbox account.
After downloading the files from the Dropbox account of user #1, I want to switch to the Dropbox account of user #2.
I stopped the service
systemctl stop dropbox
and started
/opt/dropbox/dropboxd
I expected Linux should ask me to visit a URL to connect user #2’s Dropbox, but it don’t as expected.
I think I have to enter more commands. But which (and when)?
Best regards,
You need to remove the Dropbox config file under your home directory.
I get an Exec format error. Thx in advance
ubuntu@ubuntu:~$ /opt/dropbox/dropboxd
/opt/dropbox/dropbox-lnx.x86_64-97.4.467/dropboxd: 15: exec: /opt/dropbox/dropbox-lnx.x86_64-97.4.467/dropbox: Exec format error
This article was very helpful! I had previously installed Dropbox as a user (and subsequently removed it), so this may have impacted my results in following the steps in the article. At the step where I run:
‘/opt/dropbox/dropboxd’
the process would never get to the point of displaying the URL to visit. I had to prefix the command with ‘sudo ‘ to complete the process.
Everything seems to be working fine, but I’m still wondering:
1. Was this a result of my prior installation/removal of Dropbox?
2. Is this requirement missing in the article?
The
/opt/dropbox/dropboxd
command doesn’t require sudo priviledge. However, if you have previously installed Dropbox, you need to remove the Dropbox config files from your home directory before running the/opt/dropbox/dropboxd
command.If you use
sudo
, Dropbox thinks it’s a different user and it will create new configuration files under/root/.dropbox/
directory.I’d like to sync just one Dropbox folder, not the entire account. Does anybody know if it’s possible?
Yes, By default dropbox is installed and connected to your account it will begin to sync all of the folders that are uploaded to the dropbox account to the ~/Dropbox directory. What you will need to do is add the folders you do not want to be synced to the Ubuntu Server to dropbox’s exclusion list. This is done with the command
Super useful! Thanks a lot. I had come across many tutorials that said headless dropbox cannot be installed on Ubuntu 18 due to shared library issues, and was almost about to give up until I came across this tutorial. This one works like a charm.
Hi, thank you for this tutorial.
I have a problem with Dropbox auto-updates.
The Dropbox app does automatically download an newer version to /home/user/.dropbox-dist/
Afterwards the app is killed by itself and restarted by systemd in the /opt/dropbox/ folder
This results in a deadlock, because the newer version should be downloaded to /opt/dropbox/ and not to the user folder.
How to tell Dropbox the different folder?
If this is not possible, I think the only solution is to use the default /home/user/ and not the different /opt/ folder.
Hello, Xiao. Many thanks for this tutorial.
By the way, do you know how I could sync two or more different accounts in the same server?
Should I include something like this?
User=username1,username2
I haven’t tried it but here’s how I would do to set up two Dropbox account on the same server.
1. Create two users on your Linux server for each Dropbox account. (user1 & user2).
2. Install two Dropbox to /opt/dropbox-user1/ and /opt/dropbox-user2/
3. Create systemd service for each Dropbox account (/etc/systemd/system/dropbox-user1.service & /etc/systemd/system/dropbox-user2.service)
I was pleasantly surprised when all of this worked on my openSUSE Leap headless server
Thank you very much.
This is very usefull guide.
I used that tutorial to sync my webserver htdocs on Debian distro.
Hi,
I’ve done all the steps and got the link. I am installing Dropbox on an Ubuntu 22.04 Server (no GUI) on a VPS at Contabo.
As soon as I copy/paste the link in my desktop browser I get the dropbox page stating “Error Invalid URL. Please check your client for a new one.”
This happens every time I try to run /opt/dropbox/dropboxd command. Although the link is generated every time, the result is the same.
How can I activate this?
Kind regards,
Dick.
I’ve managed to login to dropbox and my headless Ubuntu server is validated. But now every time I reboot I get the following error when running the command “systemctl status dropbox”:
○ dropbox.service – Dropbox Daemon
Loaded: loaded (/etc/systemd/system/dropbox.service; disabled; vendor preset: enabled)
Active: inactive (dead)
root@vmi1371241:~# systemctl daemon-reload
root@vmi1371241:~# systemctl status dropbox
○ dropbox.service – Dropbox Daemon
Loaded: loaded (/etc/systemd/system/dropbox.service; disabled; vendor preset: enabled)
Active: inactive (dead)
root@vmi1371241:~# systemctl stop dropbox
root@vmi1371241:~# systemctl daemon-reload
root@vmi1371241:~# systemctl start dropbox
root@vmi1371241:~# systemctl status dropbox
× dropbox.service – Dropbox Daemon
Loaded: loaded (/etc/systemd/system/dropbox.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2023-08-01 11:02:29 CEST; 2s ago
Process: 1614 ExecStart=/opt/dropbox/dropboxd (code=exited, status=217/USER)
Main PID: 1614 (code=exited, status=217/USER)
CPU: 7ms
Aug 01 11:02:29 vmi1371241.contaboserver.net systemd[1]: dropbox.service: Scheduled restart job, restart counter is at 5.
Aug 01 11:02:29 vmi1371241.contaboserver.net systemd[1]: Stopped Dropbox Daemon.
Aug 01 11:02:29 vmi1371241.contaboserver.net systemd[1]: dropbox.service: Start request repeated too quickly.
Aug 01 11:02:29 vmi1371241.contaboserver.net systemd[1]: dropbox.service: Failed with result ‘exit-code’.
Aug 01 11:02:29 vmi1371241.contaboserver.net systemd[1]: Failed to start Dropbox Daemon.
How can I resolve this so Dropbox starts/runs?