An open-source, decentralized, E2E encrypted, privacy friendly alternative to Google Drive/Dropbox.
Version: 0.2.1
- Files are encrypted locally and uploaded to server app using Nym mixnet.
- Server app (service-provider) store the files in IPFS using Textile buckets.
- Files can be retrieved/deleted later using the file hash. Knowledge of hash proves the ownership of files.
- Neither service-provider or IPFS storage providers can see the contents or name of the stored files.
- Connect multiple devices running NymDrive and keep them in sync.
This repo contain code for both client app (written in Electron) and service-provider.
- Client app can be found in folder
/ui
- service-provider can be found in
/service-provider
Note: Even though the client can be theoretically built for Windows, Linux and Mac, only Mac build is tested and available for download at the moment. Feel free to build for Windows and Linux and raise an issue if you find any challenge.
- Download NymDrive Client - NymDrive v0.2.1 (Mac build)
- Run Nym web-socket client in your machine like
./nym-client run --id client-id
- Open the NymDrive app. It should connect to your local Nym client and bring up the application.
- Note: The service provider app will be hosted in a cloud provider. It may not work all the time due to connection timeout from the Nym client running in the server.
- The address of the service provider is configurable in the client. The hosted server app will be listening to the default address configured in the app.
- You can chose to run your own service provider and have your client send messages to that (read below).
To run the server app, go to /service-provider
and run
-
npm run start
-
You will need to provide Textile Buckets API keys for env variables (
THREAD_KEY
andTHREAD_SECRET
). -
To update the client to point to your own service provider, update
NYM_SERVER_ADDRESS
key inconfig.json
file in your Application Data folder. The AppData folder in Mac would be~/Library/Application Support/nym-drive/
.
You can also run using Docker
docker build -t nymdrive .
docker run -e THREAD_KEY=your-key -e THREAD_SECRET=your-secret -e NYM_CLIENT_URL="ws://host.docker.internal:1234" nymdrive
(if nym-client is running on port 1234 in host machine).
To run the client app in dev mode, go to /ui
and run both the commands below:
npm run start-react
npm run electron
Tp build the client, run
npm run make
- Add file logger instead on console logs
- Use nym web-assembly client for UI when ready
- Option for publishing Public un-encrypted files to nym blockchain
- UI to match Windows/Linux
- File drag and drop is inconsistent in Ubuntu