Nubo is a self-hosted file sharing application. It runs on macOS, Linux and Windows (64-bit versions only).

It consists of two applications:

  • A cloud part. It is a small PHP application that must be installed on a server.
  • A client part. It is a command line application that must be installed on every computer that synchronises with the cloud.

Basically nubo runs as any other file sharing solution. You drop files into a special folder and they auto-magically appear on all other computers of the same cloud. There are some significant differences though. (Actually I would not have written nubo if existing solutions exactly suited my needs!)

  • Synchronisation between your local computer and the cloud is triggered by launching a command line application. Having an "on demand" instead of a continuous synchronisation avoids unnecessary network activity when you create or save files very often. (Think of working on and compiling a software project directly from your nubo drive, for example.) It also allows scripting with cron, bash, AppleScript, Python, or any other tool.
  • Symlinks are fully resolved. To synchronise a file or a folder, no need to copy it on the nubo drive: just create an alias or a symbolic link to it. (This is a hazardous feature though: you can easily have nubo deleting content directly in your personal folder via a symlink, or entering an infinite loop if symlink resolution leads to a cycle.)
  • End-to-end encryption with AES 256 in CTR mode. The key is never stored on the server. Your data remains safe even if your server is compromised. The counterpart is that this architecture forbids implementation of a web sharing feature à la Dropbox.
  • You can add filters to avoid synchronising specific files. For example, you may want to ignore all *.o files if you happen to compile a C project directly from your nubo drive. Or you may not want to download that very personal file on your business computer.
  • Unlike other similar applications, the nubo configuration is not stored globally but in a hidden file in each nubo drive. This means you can have as many nubo drives as you want on your computer, each synchronising with a different server.
  • Nubo silently ignores the following files and directories: .DS_Store, Icon\\r, .cabal-sandbox, cabal.sandbox.config, .stack-work, .git, desktop.ini and thumbs.db. All these files are only relevant for a given computer and there is no point in transfering them on another computer.
  • Files with a non-portable name trigger an error. Non portable names include: characters that are not supported on all platforms, reserved keywords, reserved Windows peripheral names, and names that may conflict once transferred on a case insensitive file system. Files bigger than 300Mo also trigger an error.

Warning: use nubo at your own risk. By nature this software may alter or delete content on your hard drive. It is provided "as is" without any warranty of any kind. In no event shall the authors be liable for any claim or damages. Refer to the license file for more information.

Installation and usage

For more information about installation and usage, please refer to the REAME.md file on the GitHub repository.