GitXplorerGitXplorer
f

ParanoidDropboxBackup

public
0 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
833abc9ab101edeb3e05b2521db45de4544a8f67

fix typo

ffabian-thomas committed 3 years ago
Unverified
0767f37ca2efa4e38f9503fbf127bb02335c6d92

update readme

ffabian-thomas committed 3 years ago
Unverified
95ca3f651f1827e3f12dd3509a37c8fed9aa0f98

Merge remote-tracking branch 'origin/master'

ffabian-thomas committed 4 years ago
Unverified
c4d7c1366aca4741d3a71ff2fdf3d72abfb6c4cd

removed old html file

ffabian-thomas committed 4 years ago
Verified
9362563281f5ddc7452ddb108d4430bd2a292142

Update README.md

ffabian-thomas committed 4 years ago
Verified
6ed88564e37a4530373d537015417d62a2c7fd89

Delete index.html

ffabian-thomas committed 4 years ago

README

The README file for this repository.

ParanoidDropboxBackup

Backup your Dropbox cloud files to any Linux Server

Prerequisites

Setup

The application is designed to run as a systemd service, but you should have no problem using it as a normal console application. So just running it without the following setup steps should work totally fine, but then you have to manage running the application at specific times yourself.

Download the latest release files and extract them to ~/ParanoidDropboxBackup (or another folder of your choice).

Run the app for the first time: ~/ParanoidDropboxBackup/ParanoidDropboxBackup

The app copies the default config file to your application data folder. Edit it to your needs: nano ~/.config/ParanoidDropboxBackup/config.json. You can find more information on the Dropbox API app key at the Dropbox API section of this readme.

Now run the app another time. If your config file is valid the app prints instructions on how to authorize in the console. Once you have authorized the app to read your Dropbox files it should start the first backup directly. (You can cancel it if you want)

Registering the app to systemd:

Copy the two systemd files (.service, .timer) to /etc/systemd/system and modify them to your needs. The default files specify that the app should do a backup every day at 4 pm.

Start the service with systemctl start ParanoidDropboxBackup.service and check that there are no errors in the log with journalctl -u ParanoidDropboxBackup. Optionally: Stop the service with systemctl stop ParanoidDropboxBackup.service.

Enable the timer service with systemctl enable ParanoidDropboxBackup.timer. Systemd automatically starts the timer again on system startup.

Configuration

Dropbox API

The application uses the Dropbox API to backup your files.

Permissions

The app uses 3 permissions:

Permission Description Why the appliction needs it
account_info.read View basic information about your Dropbox account such as your username, email, and country default permission
files.content.read View content of your Dropbox files and folders needed to download your Dropbox files
files.metadata.read View information about your Dropbox files and folders files.content.read depends on this permission

App Key

You can try using my registered app with the app key: wj2nybspqjdtnvd

If this app key does not work for you, you can register your own app following in the Dropbox App Console and these instructions:

You need to specify the necessary scopes of your the application. You can do that in the "Permissions" tab. Select all permissions in the Permissions section of this readme.

Finally copy the app key in the "Settings" tab and insert it into your config file.

Ignore File

The ignore file works just like gitignore. All files or folders that match the rules in the ignore file are not being downloaded.

Implementation Notes

  • The config file is stored at: ~/.config/ParanoidDropboxBackup/config.json
  • The ignore file is stored at: ~/.config/ParanoidDropboxBackup/ignore
  • The token cache file is stored at: ~/.cache/ParanoidDropboxBackup/token_cache
  • The deleting of the oldest backups operates on the folder names of the backups so it's safe to just rename a backup folder to keep it "forever". Folders with invalid suffixes are being ignored.