All Projects → Dugnist → jsberry

Dugnist / jsberry

Licence: MIT license
JSBerry is open source modular simple architecture for building Node.js applications.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to jsberry

Impress
Enterprise application server for Node.js and Metarhia private cloud ⚡
Stars: ✭ 634 (+645.88%)
Mutual labels:  scalable, cluster
core
augejs is a progressive Node.js framework for building applications. https://github.com/augejs/augejs.github.io
Stars: ✭ 18 (-78.82%)
Mutual labels:  module, cluster
node-advanced
Node Advanced Courseware
Stars: ✭ 80 (-5.88%)
Mutual labels:  module, cluster
Coerce Rs
Coerce - an asynchronous (async/await) Actor runtime and cluster framework for Rust
Stars: ✭ 231 (+171.76%)
Mutual labels:  scalable, cluster
admin-training
Galaxy Admin Training
Stars: ✭ 55 (-35.29%)
Mutual labels:  cluster
diffusion-maps
Fast computation of diffusion maps and geometric harmonics in Python
Stars: ✭ 36 (-57.65%)
Mutual labels:  module
atomic-calendar-revive
An advanced calendar card for Home Assistant Lovelace.
Stars: ✭ 218 (+156.47%)
Mutual labels:  module
NodeMCU-BlackBox
ESP8266 based CAN-Bus Diagnostic Tool
Stars: ✭ 28 (-67.06%)
Mutual labels:  cluster
fury-kubernetes-opa
Kubernetes Fury OPA. Policy enforcement for your Kubernetes Cluster
Stars: ✭ 34 (-60%)
Mutual labels:  module
puppetlabs-dns
A Puppet DNS records management module for DNSimple, DNSMadeEasy and AWS Route53
Stars: ✭ 23 (-72.94%)
Mutual labels:  module
MeetupPS
PowerShell module to interact with Meetup.com API
Stars: ✭ 15 (-82.35%)
Mutual labels:  module
icingaweb2-module-fileshipper
Provide CSV, JSON, XML and YAML files as an Import Source for the Icinga Director and optionally ship hand-crafted additional Icinga2 config files
Stars: ✭ 25 (-70.59%)
Mutual labels:  module
Meteor-Mailer
📮 Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup
Stars: ✭ 21 (-75.29%)
Mutual labels:  cluster
skmeans
Super fast simple k-means implementation for unidimiensional and multidimensional data.
Stars: ✭ 59 (-30.59%)
Mutual labels:  cluster
gordo
An API-first distributed deployment system of deep learning models using timeseries data to predict the behaviour of systems
Stars: ✭ 25 (-70.59%)
Mutual labels:  scalable
automatic-vendor-federation
Utility to enable automatic vendor sharing within bundles using Module Federation
Stars: ✭ 69 (-18.82%)
Mutual labels:  module
easy qsub
Easily submitting multiple PBS jobs or running local jobs in parallel. Multiple input files supported.
Stars: ✭ 26 (-69.41%)
Mutual labels:  cluster
deploy shard mongodb
This repository has a set of scripts and resources required for deploying MongoDB replicated sharded cluster.
Stars: ✭ 17 (-80%)
Mutual labels:  cluster
bump
a tiny tool to bump nimble versions 🍻
Stars: ✭ 23 (-72.94%)
Mutual labels:  module
ppa6-python
Python module and documentation for direct printing on Peripage A6 / A6+ thermal printer via bluetooth
Stars: ✭ 37 (-56.47%)
Mutual labels:  module

JSBerry Logo
JSBerry

contributions welcome GitHub last commit HitCount GitHub issues GitHub pull requests GitHub release license

JSBerry is open source modular simple architecture for building Node.js applications.

JSBerry is not a framework. It's a solution for creating applications using any frameworks, modules, and plugins.

IMPORTANT NOTE: JSBerry isn't yet ready for production, stay tuned for releases, beta version will come soon. You can see what we're working on here and our ROADMAP.

Documentation

Modules and plugins store

How to core work

Quick start

npm i -g jsberry@latest

Create new project:

  jsberry new my-project
  cd my-project
  npm start

Modules and plugins store.

How to use

After installing you can create any your own module in "src/modules" directory or any your own plugin in "src/plugins" directory. For example, we can create a plugin for making outside requests from the server using the npm module "request".

  • Install node module "request-promise" using npm i request-promise.
  • Create a directory "request" in "src/plugins".
  • Create file "index.js" in "request" directory.
  • Paste this code to "index.js" for create plugin wrapper.
  const request = require('request-promise');

  module.exports = ({ ACTIONS }) => {
    // plugin code...
  });
  • Create an ACTION which will send outside request. Paste this code instead "// plugin code..."
  ACTIONS.on('request.send', ({ url = 'http://www.google.com' }) => {
    return request(url);
  });

After that, you need to connect your module/plugin to application "core":

  • Go to "src/plugins/index.js".
  • Add this line to top: const Request = require('./request');
  • Add your plugin variable Request to array "PLUGINS".

Now, you can call ACTION.send('request.send', { url: 'example.com' }); from any other module/plugin and it will return promised site response.

List Of Scripts

  • npm start - run application with development mode
  • npm run prod - run application with production mode
  • npm run inspect - run application with node debugger (dev mode)
  • npm run check - run npm modules vulnerabilities checker (npm i nsp -g)
  • npm run protect- run npm modules vulnerabilities checker (npm i snyk -g)

Docker

Add yourself to the docker group to enable running docker commands without prefixing with sudo:

  sudo groupadd docker
  sudo chown root:docker /var/run/docker.sock
  sudo chown `$USER`:docker /home/`$USER`/.docker/config.json
  sudo usermod -a -G docker $USER
  reboot

To build simple Docker jsberry image:

  docker build -t `$USER`/jsberry .

To run build:

  docker run -p 8080:8000 -d `$USER`/jsberry

To restart container automatically:

  docker run -dit --restart unless-stopped `$USER`/jsberry

To remove unused (none:none) images use:

  docker rmi $(sudo docker images -f "dangling=true" -q)

Debugger

Run npm run inspect and open this url in browser:

chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/${uuid}

where "uuid" - debug session id from the console.

OR:

Install extension nodejs-v8-inspector and launch it on 9229 port.

What's new?

You can check our ROADMAP and propose new features.

Community support

For general help using JSBerry, please refer to the official documentation. For additional help, you can use ask question here:

CONTRIBUTORS


Alexey Dugnist

Sergey Rudenko
💡 💻 📖 💬 💻

Author

Dugnist Alexey

Copyright and license

Code and documentation copyright 2017-2018 JSBerry. Code released under the MIT license.

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].