Code Monkey home page Code Monkey logo

ut-drive's Introduction

#UT-Drive A personal cloud storage solution built on top of Silverwind's droppy project, with a speedy HTML5 interface, running on node.js.

####Demos available: Demo #1 (Log in with test:test)

Main View Editor Images

###Features

  • Lightweight. Performs great, even on a Raspberry Pi.
  • Fully responsive, mobile-ready CSS.
  • Realtime updating of all connected clients via WebSockets.
  • Asynchronous multi-file uploads. Recursive directory uploads in Chrome.
  • Download directories as ZIPs.
  • Edit text files in CodeMirror, a feature-rich editor.
  • Basic file system operations: Cut, Copy, Rename, Delete, Create directory.
  • Drag and Drop support for uploads and filesystem operations. CTRL/CMD to copy, Shift to move.
  • Playback of audio files supported by the <audio> API.
  • Support for shortened links to share file downloads with your friends without them needing to log in.

##Installation Currently the only way to install UT-Drive is to clone the repo and run npm install.

##Running the server Inside UT-Drives's directory run:

sudo node drive

By default, the server will listen on port 8989. On first startup, you'll be prompted for a username and password for your first account. To list, add or remove accounts, either use the configuration dialog or see node drive help.

##Configuration Configuration is done through config.json, which is created on the first run, with these defaults:

{
    "debug"        : false,
    "useTLS"       : false,
    "useSPDY"      : false,
    "useHSTS"      : false,
    "listenHost"   : "0.0.0.0",
    "listenPort"   : 8989,
    "readInterval" : 250,
    "keepAlive"    : 20000,
    "linkLength"   : 3,
    "logLevel"     : 2,
    "maxOpen"      : 256,
    "maxFileSize"  : 0,
    "zipLevel"     : 1,
    "noLogin"      : false,
    "demoMode"     : false,
    "timestamps"   : true,
    "db"           : "./db.json",
    "incomingDir"  : "./temp/incoming/",
    "resDir"       : "./res/",
    "srcDir"       : "./src/",
    "tls" : {
        "key"      : "./key.pem",
        "cert"     : "./cert.pem",
        "ca"       : []
    }
}

###General options

  • debug: Skip resource minification and enable automatic CSS reloading when the source files change.
  • useTLS: Whether the server should use SSL/TLS encryption.
  • useSPDY: Enables the SPDYv3 protocol. Depends on useTLS.
  • useHSTS: Enables the HSTS header with 1 year caching time. Depends on useTLS.
  • listenHost: The host address to listen on.
  • listenPort: The port to listen on.
  • readInterval: The minimum time gap in milliseconds in which updates to a single directory are sent.
  • keepAlive: The interval in milliseconds in which the server sends keepalive message over the websocket. This obviously adds some overhead, but may be needed to keep clients connected when proxies are involved. Set to 0 to disable keepalive messages.
  • linkLength: The amount of characters in a shortlink.
  • logLevel: The amount of logging to show. 0 is no logging, 1 is errors, 2 is info ( HTTP requests), 3 is debug (socket communication).
  • maxOpen: The maximum number of concurrently opened files. This number is primarily of concern for Windows servers.
  • maxFileSize: The maximum file size in bytes a user can upload in a single file.
  • zipLevel: The level of compression for zip files. Ranging from 0 (no compression) to 9 (maximum compression).
  • noLogin: When enabled, the client skips the login page, making the server essentially public.
  • demoMode: When enabled, the server will regularly clean out all files and restore samples.
  • timestamps: Adds timestamps to log output. Useful if your logging facility does not provide timestamps.

###Path options

  • db: Location of the database file.
  • incomingDir: The directory for temporary files during uploads.
  • resDir: The directory which contains the compiled resources and images.
  • srcDir: The directory which contains the html/js/css sources.
  • tls: See TLS options below.

###TLS options These paths are passed directly to node's tls when useTLS is enabled. All files are required in PEM format.

  • key: Path to your private key.
  • cert: Path to your certificate.
  • ca: An optional array of paths to your intermediate (CA) certificates.

##Supported Browsers

  • Firefox (last 2 versions)
  • Chrome (last 2 versions)
  • Internet Explorer 10 or higher (not regularly tested)

In case of Firefox and Chrome older version may still work, but I'm not targeting CSS code at them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.