Duple Documentation and Tutorials
Q: What is Duple?

A: Duple is an app that gives you your own private Dropbox at home in one click. Just download the app on your devices, plug your USB key to your internet router, and that's it! You've got your own private cloud. You use it to store your data, but also to synchronize your files, to share your files, to backup your files, and of course to access your files from anywhere, inside and outside your home.
The service is similar to Dropbox or Google Drive, but with Duple you own your data as it resides on your storage, and not on someone else's data center. Private and simple, just how it should be.
There's no complicated installation, and no server required. You can actually choose any storage you want to host your cloud.

What makes Duple awesome?

-Ultimate privacy as you self host your private cloud: no need to rely on third parties to host your data - you're the one hosting! That way you keep control of your data, and you know where your data is. We never gain access to your data as we do not offer hosting.
-It is extremely simple to use and quick to install. Anyone can use it, not just the tech-savvy. Just download the app on your devices, plug your USB to your router, and you're good to go!
-There's no need for a server! That means no need for powerful and expensive machines. No IT expertise required.
-Files are End-to-End Encrypted. Ultra secure.
-And on top of all this… Duple actually works with any storage (Router, Smart TV, NAS, S3,…). Just choose the storage you want to use to host your cloud. The simplest way is to use your Router. Just plug your USB key to your Internet router and that’s it. So you can use any storage you want.

Q: Is this accessible from anywhere? Both inside and outside my home?

A: You have access to your cloud everywhere, inside and outside your home. It works like a full Dropbox.

Q: Does Duple require a server?

A: Duple doesn't require a server, just the client app and a storage.

Q: Do you provide any hardware? Or just software?

A: There is no hardware, we only offer an app that can convert any file storage system into a private cloud. You use your own storage.

Q: Does it do more than file sync?

A: Yes, it does much more than file sync. Functionalities include: File Storing, File Synchronization, File Versioning, Restoring Deleted Files, File Conflict Resolution, Backup (data at least in 2 places), Access From Anywhere, Collaborative folders, Self Hosted, File sharing. It gives you the functionalities of a full private Dropbox. Proper File Sharing features will be implemented later.

Q: Can I use the app now?

A: Duple is currently in beta, so not all functionalities are available yet, but you can download it and already use it if you're interested! Also please note that there might still be a few bugs. The functionalities available in the beta are: backup, file versioning, restoring deleted files, multi-directional file synchronization across all devices and shared collaborative folders. So the sharing features are not implemented yet (however the technology behind Duple is ready for it, we want to wait in order to get the user experience right). Fortunately, you can already have collaborative folders by creating another private cloud and sharing the access to it with other people.

Feel free to try out Duple beta and give us your feedback!

Q: Why use Duple over the likes of Dropbox and Google Drive?

A: The likes of Dropbox and Google Drive have got at least one thing right: they're simple and easy to use. That's important, and that is what we aim to do with Duple. However, they are not private. By using their services your data is being stored "somewhere in the cloud". This creates serious problems: you don't really know where your files are. You don't know what happens with your data. Where exactly are they stored? Who exactly has access to them? What makes you think you can trust them with your personal data? Will you get notified if someone hacks into your account?

With Duple, you're the one hosting your cloud. Your data is on your storage and your devices, rather than floating somewhere in the cloud. You take back the control of your data. You know where it is. And you choose where it goes, as it works with any storage!
It is also worth noting that since you use your own storage with Duple, you get to choose the size of your cloud. No limit, you define the rules!

In the end, it is mainly about privacy and control. When you rely on public cloud providers, you don’t have much of that. Self-hosting, however, allows you to stay in complete control over your data.

Q: What makes Duple different from other current solutions available on the private cloud market (e.g. Nextcloud, ownCloud, Syncthing,...)?

A: As of now the private cloud market offers a diversity of solutions. None of these solutions offer what Duple provides: a full private cloud experience that anyone can use. Quick to install, simple to use, and private. In fact Duple was born out of personal need - we were originally trying to find a solution that offers actual privacy (as opposed to public cloud solutions e.g. Dropbox and Google Drive), and at the same time that offers simplicity, flexibility and ease of use (as opposed to what's currently available in the private cloud market e.g. Nextcloud). So we developed Duple to have an out of the box simple-to-use tool that anyone can use, is self-hosted, and that gives you complete flexibility as it works with any storage. Here's more info if interested.

The likes of Nextcloud/ownCloud require quite some efforts with lots of installation and configuration, it's very far from being a "simple to use" plug and play solution that anyone can use. It's long to install (e.g. over 40 pages of documentation just to install Nextcloud), and is only targeted at users with at least some IT expertise; it's definitely not usable by everyone. Plus you need a server which requires resources and you need powerful machines. Running your own server takes work. Duple offers the same level of privacy, while being extremely simple to "set up" and use, and without requiring a server.

A list of more detailed comparisons with other solutions can be found here.

Right now our beta version, which is temporary, requires some storage configuration. In the future the configuration will be automatic and you'll be able to create your private cloud in one click.

Q: How is it different from a NAS?

A: A NAS doesn't really work like a cloud (e.g. lock in, no real duplication of data etc). It doesn’t work like a Dropbox. It’s also very expensive. What we have with Duple is a serverless private Dropbox. You just plug your storage anywhere and it works. There's no lock-in.
A list of more detailed comparisons with other solutions can be found here.

Q: "Just like a cloud, your data is always duplicated on at least two different locations, so you can't lose it." Where's the second location?

A: Your files are stored on at least two different locations at all times: on your storage (the "repository") and on the device where you downloaded the app. For instance, say you plug your USB into your router. Your data will always be at least on 1) your USB plugged into your router and 2) your computer’s hard drive where you downloaded the app.

Older file versions and deleted files are only stored in one place, in the USB storage (the Duple repository folder). In the future we will add a functionality to duplicate this data on the client side if needed, and RAID 0, 1 and 5/6 for the repository folder.

Q: Can it run on a Raspberry Pi or NAS?

A: Yes of course! The technology basically allows you to convert any file storage into a full private cloud. You can use your Router, NAS, Raspberry Pi, Smart TV... Right now internally our private cloud is made of a USB hard drive from Western Digital plugged to a Raspberry Pi.
The idea is to be able to make a cloud without requiring to buy something. So the simplest way is to use the router. But the basis of the technology is that you can use any file storage, plugged anywhere.

Q: Is there any centralised server component required to run?

A: No, there is no server app required. However you need to be able to access your storage, so it is better to have a NAS or a USB hard drive connected to your network. But it also works with a local USB storage or mounted shared folder.

Q: Do you plan to open-source it?

A: We'll open source everything (server, interface, etc...), except from the C Library. Reason being that the library is what gives us our technical competitive advantage (being that you get the full private cloud experience with no need for a server). It's also important to note that you can't patent your code/algorithm in Europe, so there's no other way to protect it. But everything else expect from the library will be open-source.

Q: I have three Macs, can one of them be the “storage,” and it syncs to the other two Macs plus mobile devices?

A: Just to clarify, Duple doesn't require a server. You need only 2 things: the app and a shared folder. The cloud is contained inside the shared folder. The client is "connected to the cloud" when it can access the folder. You can use one of your Macs as the "storage", yes, but in that case your Mac would need to stay turned on. That is why it's better to use a NAS, Raspberry pi or Router for example.

Q: What about features like selective sync and sharing files with others. Are these features available, or at least planned?

A: All the functionalities available in the beta are: file versioning, restoring deleted files, multi-directional file synchronization across all devices and shared collaborative folders. So we don't officially have sharing features, however the technology behind Duple is ready for it. We want to wait in order to get the user experience right. But it's definitely planned. Fortunately, you can already have collaborative folders by creating another private cloud and sharing the access to it with other people. Selective sync is a planned feature that will be coming soon as well.

Q: Can you explain the backup feature? “Never lose anything again” and “You can’t lose it.” are bold claims. What if my house burns down together with all my devices?

A: Your data is always at least in two places at the same time: inside the Duple folder (present on every desktop device where the app is installed) and in the repository folder.

Assuming you store your repository in your house, then the only way for your data to be lost would be for your entire house to burn, with all your devices in your house at the same time. The odds of that happening, we believe, are quite low. ;-) If you're particularly afraid of your house catching fire, you can always store the "repository" in another physical location, or even on an Amazon S3.

Will just add to this that the "house burning" possibility is a problem for every private cloud. However with Duple you have a lot more flexibility and simplicity to have another backup. You just need the login/password/ip of your storage and that's it, so you can even put it on an Amazon S3 or equivalent very easily if you're scared that your house may burn. With Nextcloud, for example, you'd need to maintain two servers on different locations.

Q: Why do I receive a message that my country is blocked when trying to download the app?

A: We have blocked access to the beta page (where you download the app) to some countries, as it was advised by our lawyers to do so before we can get an official green light to grant access to them. We apologize for this. As it is considered "cryptographic exportation", we need to make sure we have an authorisation to export (sell) the software to specific countries. Sorry about this, it is a little bit frustrating with these (many) legal barriers, especially since we're bootstrapped, but we're working on it! At the moment we've allowed access to the following countries: all EU countries, USA, Switzerland, Norway, Canada, Australia, Japan, New Zealand. More will come.

You should still have access to the website and the documentation. In the meantime feel free to follow us on Twitter or Linkedin so that you'll be updated once you'll be able to download it from your country.

Q: On a mobile device, will it download the entirety of your cloud storage to the device? Or will it just display a file list and download the files you select?

A: It will not use the device storage unless you explicitly say so, and you will be able to select which files you want offline. The mobile app will be available in a few months.

Q: What does "Duple" mean?

A: Duple is a synonym of "double", to have something in two. Just like the private cloud data, which is duplicated in two places at the same time. In the same image, our logo is 4 D joined together.

Q: How reliable is the connection if you're hosting the cloud yourself?

A: When you're at home the connection is very reliable because you use your own local network, so it works better than a normal Dropbox. When you're outside it depends on the internet connection you're using. If you live in a city you should normally have a good internet connection so you won't see the difference between using Dropbox or Duple in terms of connection reliability.

Q: Can you elaborate on the security you are using to ensure user data remains private, both when connected to a host device (e.g. smart TV) and during network transit?

A: During network transit we use SSH (one of the safest protocols around), and regarding host device we will have End-to-End Encryption, nobody will be able to read your data expect you (and the people you choose).

Technical FAQs... for those more curious!
Q: What is Duple? How does it work?

A: Duple is a private cloud with a Client/Storage architecture, you just need the client app and a storage endpoint. It is like having a Dropbox client connected to a git repository. No Client/Server/Storage or Peer to Peer structure, just Client/Storage structure. It can be a simple USB hard drive, FTP, S3, etc... If you can access your repository folder, you can access your private cloud.

Our repository folder works like a git repository (meaning it is a content addressable storage using blob, tree and commits), but it is not compatible with git and has nothing to do with the git software. Everything was built from scratch. We didn't use the git repository format because it was not made to handle big files, but source code.

Q: How can you do it?

A: We’ve got a technology that does everything on the client side in the app, so the app handles everything from doing the commits, synchronising with all the other devices, making sure nobody writes to the Duple repository at the same time, etc. We’ve built a Dropbox without server, just plug any storage and it works.

This technology is made of 13K lines of code, test covered at 90%, regrouped in a C 89 library. To achieve this, we had to solve a lot of technical problems that nobody did before (e.g. locking mechanism without server that can handle 25 simultaneous connections without breaking).

Q: Can you explain a bit more?

A: You have one repository folder and one folder Duple on each device where you can access your cloud. This Duple folder works like a Dropbox folder, and everything is synchronized in multidirectional way between all the devices (all the Duple folders) and the repository folder which contains the totality of the private cloud. On each device (where the app client is installed), you have to tell it how to connect to the repository folder (the beta supports 2 protocols: local file system and SFTP, but others will be added later). You can tell the app multiple ways to connect to the repository folder, so if one doesn't work, it will try another one until it succeeds. This allows it to be very flexible, wherever you are (local network, outside your home, storage plugged in USB, etc...).

However there is only one repository folder, which represents the private cloud, and one Duple folder per device which works like a Dropbox folder. The private cloud data is in totality in the repository folder and partially or totally in each Duple folder depending on your device configuration. There is no server app, just a client app.

We're offering a private cloud. That means all the functionalities available in the beta are: file versioning, restoring deleted files, multi-directional file synchronization across all devices and shared collaborative folders.
Duple is not P2P: your devices are connected to your repository, which means each device synchronises with it. So you won't lose your data, there's always a backup.

There is no server, just storage endpoints. We do not have peers or servers. Our model is Client/Storage, the client app is connected directly to a Duple repository containing the entirety of your cloud.

Q: Does it need your servers to function?

A: There is no data passing through our server, the app is directly connected to your storage, without going through us.

Q: Doesn't the app rely on your server to "register" the location of my "private cloud"?

A: No, the app doesn't rely on servers to register the location of your private cloud. It doesn't communicate with our servers for anything (we don't have servers to do that anyway). You are 100 % autonomous, and also responsible for your infrastructure and storage. You add ways to connect to your storage into the app, and the app checks which one works and uses it.

Q: Is there a central service that handles anything?

A: There is no central service, clients only connect to a same shared folder. An internal algorithm handles the orchestration. If interested here's some documentation on it.

Q: What kind of encryption does it use?

A: The scheme we're thinking of using is End-to-End Encryption using Serpent for file encryption and chacha20 for the generation of the keys (one per element). This can evolve in the future.

Q: Do you have per-file encryption at rest? Meaning you don't have a giant sparse file container for the repository, but rather each file is transformed into an encrypted file.

A: Yes, the repository folder works like a blob storage, so each blob has its own key.

Q: How does the encryption work? If I backup to a little duple server at a friend’s house, would the files on their server be encrypted? If I then lost my computer would I be able to redownload those files remotely, or would it have to be physically connected to that server? And if I then get those encrypted files back, how does it get decrypted?

A: The encryption is end to end using a key file stored in the repository folder and in all the devices. This key file is protected by your password. There is no server. The files stored on the storage (in your friend’s house or elsewhere) are always end to end encrypted.
If you lose your computer, you can reconnect to your cloud and download your files again (they will be decrypted automatically on your new device) by (1) going physically to your storage at your friend's house (2) depending on how you configured your storage, you may just connect to it from distance using your user/password (3) if you enable the “easy connect” service (which will be implemented in a few months), you can reconnect to your cloud from anywhere, just with your user/password.

(Please note: E2EE is not yet implemented with the beta, it will be implemented soon)

Q: How does it manage encryption keys? Rotation? Invalidation? Re-encryption of files? Where does it reuse keys? Does each device have its own keychain? How are new devices added? How are files distributed securely?

A: The scheme (may be evolving in the future) is to use a lazy revocation key management. There is one key per element in the repository folder generated using chacha20. Each device has its own certificate, when you add one device the master certificate has to validate the new device's certificate and then send the encrypted encryption key using this certificate. Since it's E2EE, the file are distributed safely. We will release the encryption documentation when the feature is ready to explain in details how it works.

Q: What's the security like?

A: Security is SSH protocol + End-to-End Encryption (E2EE not in beta, it will be implemented soon).

Q: How can we be sure it's not opening our files to anyone who scans our network?

A: Because your files are only accessible via SSH, one of the safest protocols around.

Q: How do I connect to the storage if I have a dynamic IP?

A: You can configure a dynamic DNS name like dyndns. You can add as many ways to connect to your storage as you need, the app will try each one until it finds one configuration that works. You can have one config with your local IP, another with your external IP, another with your dynamic DNS name, etc... We will have in the future our own dynamic DNS name service that will be included in the app price, so people don't have to pay for it with another company if they don't want to.

Q: Can you have multiple remote servers? or is each "node" equivalent?

A: Just to clarify, there is no server, just storage endpoints. At the moment only one storage endpoint per cloud is available. In the future we will have RAID functionalities that allows you to have multiple storage endpoints per cloud.

Q: Will the product support multiple storage points for both RAID and/or multiple folders?

A: Yes, but in the future, not right now.

Q: How will the files be accessed outside the local network?

A: From a user experience perspective, it doesn't change anything to be inside or outside your network. From a technical point of view, it depends how you configure your storage endpoint into the app. So you can have multiple connections: one when you are inside your local network, one when you are outside your local network, etc. You tell the app how to connect to the storage endpoint in the different cases. In the future we will have automatic configuration for the storage plug to the router, so configuring manually the connection will not be required anymore.

Q: Connections to what, exactly?

A: Connections to your storage endpoints. No need for server.

Q: But whatever connects to the repository is the server and needs to be always available and running, otherwise you have no cloud mechanism?

A: No, because you don’t have a server, you just have clients. You don’t need any one of them to be up for the other ones to access the cloud. They just need to be able to access the storage endpoints.

Q: Are all the nodes that sync peers? None of the nodes is a server as such?

A: We do not have peers or servers. Our model is Client/Storage, the client app is connected directly to a Duple repository containing the entirety of your cloud.

Q: What protocols are needed for connectivity between nodes?

A: There are no nodes, just clients connected to a shared folder. The clients can use SFTP or a locally mounted folder. More protocols will be added in the future.

Q: How do I access my data from my workstation when it's a USB connected to my router?

A: Because your router is connected to internet, the app uses SSH to connect to it (so it's safe) and SSH is available on both sides of the router (local network and internet interface). From a user experience point of view, it's the same as Dropbox.

Q: How does the USB reach the outside world since the router is running its own locked down software?

A: You connect to the USB key via SFTP. And every router runs on Linux where SSH is available.

Q: Does this work with a vps?

A: Yes it does. Works everywhere you can have SSH (SFTP) access.

Q: Does it make off site backups at a friendly/secure location (ie. crashplan's P2P backup). Does this do this? Can you store the "repository" on another computer hosted by a friend (and vice versa)?

A: Yes.