All Projects → seriousme → Node Dash

seriousme / Node Dash

Licence: other
Serverless setup using node.js

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Node Dash

Midway
🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈
Stars: ✭ 5,080 (+38976.92%)
Mutual labels:  serverless, serverless-framework
Serverless Devs
🔥🔥🔥 Serverless Devs developer tool ( Serverless Devs 开发者工具 )
Stars: ✭ 545 (+4092.31%)
Mutual labels:  serverless, serverless-framework
Serverless Plugin Aws Alerts
A Serverless Framework plugin that creates CloudWatch alarms for functions.
Stars: ✭ 419 (+3123.08%)
Mutual labels:  serverless, serverless-framework
Serverless Wsgi
Serverless plugin to deploy WSGI applications (Flask/Django/Pyramid etc.) and bundle Python packages
Stars: ✭ 377 (+2800%)
Mutual labels:  serverless, serverless-framework
Serverless Nodejs Starter
A Node.js starter for Serverless Framework with ES6 and TypeScript support
Stars: ✭ 683 (+5153.85%)
Mutual labels:  serverless, serverless-framework
Skygear Server
Skygear - an open source serverless platform for modern secure app development
Stars: ✭ 380 (+2823.08%)
Mutual labels:  serverless, serverless-framework
Webiny Js
Enterprise open-source serverless CMS. Includes a headless CMS, page builder, form builder and file manager. Easy to customize and expand. Deploys to AWS.
Stars: ✭ 4,869 (+37353.85%)
Mutual labels:  serverless, serverless-framework
Github Action
⚡️ A Github Action for deploying with the Serverless Framework
Stars: ✭ 323 (+2384.62%)
Mutual labels:  serverless, serverless-framework
Serverless Plugin Typescript
Serverless plugin for zero-config Typescript support
Stars: ✭ 611 (+4600%)
Mutual labels:  serverless, serverless-framework
Serverless Authentication Boilerplate
Generic authentication boilerplate for Serverless framework
Stars: ✭ 563 (+4230.77%)
Mutual labels:  serverless, serverless-framework
Swim
Distributed software platform for building stateful, massively real-time streaming applications.
Stars: ✭ 368 (+2730.77%)
Mutual labels:  serverless, serverless-framework
Serverless Aws Lambda Node Postgres
Serverless AWS Lambda with Node.js,Postgres Rest API with Sequelize.
Stars: ✭ 18 (+38.46%)
Mutual labels:  serverless, serverless-framework
Midway Faas
🔱 A simple and lightweight serverless framework
Stars: ✭ 363 (+2692.31%)
Mutual labels:  serverless, serverless-framework
Serverless Express
Run Node.js web applications and APIs using existing application frameworks on AWS #serverless technologies such as Lambda, API Gateway, Lambda@Edge, and ALB.
Stars: ✭ 4,265 (+32707.69%)
Mutual labels:  serverless, serverless-framework
Express
⚡ Take existing Express.js apps and host them easily on cheap, auto-scaling, serverless infrastructure (AWS Lambda and AWS HTTP API).
Stars: ✭ 337 (+2492.31%)
Mutual labels:  serverless, serverless-framework
Guide
Serverless Guide - An open-source definitive guide to serverless architectures.
Stars: ✭ 421 (+3138.46%)
Mutual labels:  serverless, serverless-framework
Serverless Golang
AWS Lambda Go functions using Serverless Framework and Python shim
Stars: ✭ 292 (+2146.15%)
Mutual labels:  serverless, serverless-framework
Serverless Iam Roles Per Function
Serverless Plugin for easily defining IAM roles per function via the use of iamRoleStatements at the function level.
Stars: ✭ 311 (+2292.31%)
Mutual labels:  serverless, serverless-framework
Puppeteer Lambda Starter Kit
Starter Kit for running Headless-Chrome by Puppeteer on AWS Lambda.
Stars: ✭ 563 (+4230.77%)
Mutual labels:  serverless, serverless-framework
Serverless Step Functions
AWS Step Functions plugin for Serverless Framework ⚡️
Stars: ✭ 758 (+5730.77%)
Mutual labels:  serverless, serverless-framework

node-dash

Build Status Greenkeeper badge

An experiment to build a serverless setup using node.js.

Node-dash design

The repository and queue are implemented using Pouchdb, but Couchdb will work as well.

Installation

There are 4 options to get this running:

  • git clone this repository and run npm install followed by npm start
  • docker run -d -p 8080:8080 seriousme/node-dash
  • use the docker-compose file in the docker folder
  • use kubectl create -f https://raw.githubusercontent.com/seriousme/node-dash/master/k8/node-dash.yaml to create a deployment on a Kubernetes Installation.

Once it runs you can send your browser to http://<your host>:8080/ which will show you a web interface, on Kubernetes kubectl describe service apiserver will show the IP/port. Alternatively you can use any REST client (e.g. CURL/Postman/etc) to talk to the API server

REST endpoints

The following endpoints are supported:

List of requests:

curl -X GET "http://localhost:8080/dash/requests"

Details of a request

curl -X GET "http://localhost:8080/dash/requests/:requestid"

Create a new asynchronous request

An example:

curl -X GET "http://localhost:8080/myactions/sum?a=1&b=2"

Create a new synchronous request

An example:

curl -X GET "http://localhost:8080/myactions/sum?a=1&b=2&sync"

List of actions

curl -X GET "http://localhost:8080/dash/actions"

Details of an action

curl -X GET "http://localhost:8080/dash/actions/:actionid"

Create a new action

An example:

curl -X PUT -H "Content-Type: application/json" -d '{
  "_id": "/myactions/min",
  "code": "function main(params){ return { \"min\": Number(params.a) - Number(params.b)};}"
}' "http://localhost:8080/dash/actions/%2fmyactions%2fmin"

Update an action

An example:

curl -X PUT -H "Content-Type: application/json" -d '{
  "_id": "/myactions/min",
  "code": "function main(params){ return { \"min\": Number(params.a) - Number(params.b)};}",
  "_rev": "1-dadb9a995a83675dea6954a1515e08bb"
}' "http://localhost:8080/dash/actions/%2fmyactions%2fmin"

Todo

Its an experiment, so don't use this in production unless you know what you are doing ! E.g. isolation between actioncode and the framework is based on node VM functionality which offers some protection but is not bulletproof against hostile actions !

A better, and more elaborate, approach would be to inject the action code into a docker container and then send the requests to that container. If the container is then idle for say 5 minutes it can be shut.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].