No description
Find a file
2017-07-03 17:13:32 +10:00
client feature (#12): syntax highlighting for a wide range of language 2017-07-02 00:59:08 +10:00
docker feature (lazy loading): as per: #7, lazy load stuff 2017-06-29 13:00:16 +10:00
server cleanup (cache): setup caching policies 2017-07-03 17:13:32 +10:00
.babelrc code base cleanup 2017-06-13 17:44:33 +10:00
.gitignore feature (lazy loading): as per: #7, lazy load stuff 2017-06-29 13:00:16 +10:00
.travis.yml feature (ci): #9: create docker image as part of the build 2017-07-03 14:34:24 +10:00
config.js feature (ci): #9: create docker image as part of the build 2017-07-03 14:34:24 +10:00
LICENSE Initial commit 2017-06-13 15:34:14 +10:00
package.json feature (lazy loading): as per: #7, lazy load stuff 2017-06-29 13:00:16 +10:00
README.org Update README.org 2017-07-02 09:54:24 +02:00
webpack.config.js feature (lazy loading): as per: #7, lazy load stuff 2017-06-29 13:00:16 +10:00

What is it about?

Call it an FTP client, an S3 viewer or a Dropbox like web app, Nuage leverages your existing storage to help you manage your files in the cloud using any of the following protocols/platforms:

  • FTP
  • SFTP
  • WebDAV
  • Git
  • S3
  • Dropbox
  • Google Drive

Demo

Try before install https://raw.githubusercontent.com/mickael-kerjean/nuage/master/server/public/img/photo.jpg

Features

  • manage your files directly from your browser
  • listen to music
  • watch your videos
  • show images
  • work with multiple cloud providers and protocols
  • upload files and folders
  • mobile friendly
  • emacs keybindings ;)

What about my credentials?

Credentials are stored in your browser in a http only cookie encrypted using aes-256-ctr and aren't persistent in the server disk at all. The "remember me" feature relies on localstorage to store your credentials encrypted using aes-256-ctr.

Note that on the FTP and sFTP sessions connections aren't destroyed on every request but are reused and killed after 2 minutes to make it feel faster and avoid reconnecting everytime you want to list some files.

Install

It's a simple react app with node in the backend. Installation requires docker, docker-compose and npm:

# get the code
curl -L -X GET https://github.com/mickael-kerjean/nuage/archive/master.zip > nuage.zip
unzip nuage.zip && cd nuage-master 
# install dependencies and create the actual image
npm run image && npm run start

That's it !

Known Issues

  • WebDAV: the underlying library (webdav-fs) doesn't support stream which makes it memory greedy if you try to upload or fetch large files.
  • Google Drive: Google Drive lets you add multiple files with the same name in the same directory. You won't be able to see all those in Nuage as we assume that all filenames in a directory are uniques.

Motivation

I built this as a weekend project initially to edit my org-mode files on my mobile because I wasn't satisfied with any of the existing mobile clients that try to force some predefined workflow or certain provider/protocols.

As I realise it soon, it doesn't have to be tied to org-mode specifically and once I delivered the MVP, I just couldn't help myself to add more and more features and that's what I ended up with.

Credits

  • Icons from www.flaticon.com
  • The Folks that develop awesome libraries