Skip to content

A simple Amazon S3 storage system based on Twitter identity implemented in Node.js.

License

Notifications You must be signed in to change notification settings

abaitam/nodeStorage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodeStorage

A simple server-side JavaScript storage system using Twitter identity, running in Node.js.

Overview

  1. Public and private data.

  2. Store data in local filesystem or on Amazon S3.

  3. User identity through Twitter.

  4. The back-end of an open source blogging system, with MyWord Editor as the front-end.

  5. Written by Dave Winer, first deployed in June 2014, supports a small set of browser-based JavaScript software. Hope to expand to become a community of apps.

How to set up

Here's quick guide to setting up a NodeStorage server on Ubuntu, but probably works on many other Unix systems. It doesn't assume you have Node.js installed or a Git client. It shows you how to set up a connection with Twitter. It stores user data, both public and private, in the filesystem of the Ubuntu machine.

It's a good guide for installing on any Unix system, but has been tested on Ubuntu.

Links

  1. I wrote a backgrounder that explains the philosophy of NodeStorage, what it can be used for and where it's likely to go as it evolves.

  2. A blog post provides another perspective.

  3. Andrew Shell wrote a guide to setting up a new nodeStorage server.

  4. Marco Fabbri wrote a howto for Heroku server setup.

  5. Why use Twitter for identity?

Demo app #1

  1. A minimal demo app.

  2. The full source for the demo app is available on GitHub. MIT License.

Demo app #2

  1. MyWord Editor is a simple and beautiful blogging system.

  2. It's fully open source, MIT License.

  3. The back-end is NodeStorage.

API

api.js file provides glue for browser-based JavaScript apps.

You can also access it in api.nodestorage.io and include it from apps if you want.

Updates

v0.79 - 9/9/15 by DW

In the new chat functionality, when we return from a longpoll, we used to send back the entire chatlog. This is not very efficient, esp over a mobile connection. Now we only send back the new item that caused us to return. See postChatMessage for the change.

v0.78 - 9/3/15 by DW

New routines support a basic chat capability.

Slack-compatible incoming and outgoing webhooks.

Can be configured to watch for a change to the mod date of storage.js, which causes it to quit (presumably to be relaunched by the OS or forever). Makes installing updates automatic.

By default, longpolls timeout after 60 seconds, previously it was 20 seconds.

The everyMinute script now runs at the top of the minute. Previously it was a function of when the app was launched. It also announces itself with the current time and the version of nodeStorage.

v0.77 - 7/29/15 by DW

We can now store user data in the local file system. Previous versions could only store data in Amazon S3. The changes are documented in this post.

v0.75 - 7/15/15 by DW

New functionality to support named outlines.

v0.74 - 5/20/15 by DW

Fixed an error in the way whitelists are specified.

v0.73 - 5/10/15 by DW

A new way to configure nodeStorage, with a config.json file.

v0.72 - 3/5/15 by DW

The /getfilelist endpoint now returns an array of objects, one for each file, as before. The objects contain three values, path, whenLastChange and ctChars.

Previously we were returning the array that S3 returns to us. The file paths it returns are not easily used by a client.

There is a possibility of breakage if you had built on this endpoint, but given its previous state, it's hard to imagine anyone doing that. ;-)

v0.66 -1/29/15 by DW

New stats for longpolling, in serverStats.json. Example. Gives us a way to see how many people are watching resources managed by a nodeStorage server.

v0.65 -1/24/15 by DW

Added a readout of free memory as the second item in the server log.

In this screen shot the arrow points to the free memory readout.

Questions, problems

Please post a note on the server-snacks mail list.

About

A simple Amazon S3 storage system based on Twitter identity implemented in Node.js.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%