npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fuge

v2.0.2

Published

microservices manager

Downloads

168

Readme

fuge-logo

Fuge configuration has changed if you are upgrading to fuge V2.0 read this guide upgrading.md

Fuge - The Microservice Shell

npm version npm downloads Build Status Win Status Gitter

Fuge is a microservice shell and workbench. It provides an execution environment for developing microservice systems, eliminating shell hell and significantly reducing developer friction.

If you're using this module, and need help, you can:

Install

Use npm to install globally.

npm install -g fuge

A Micoservice shell?

Yup. Fuge is a shell environment that focuses on a specific system configuration, providing an emulation environment in which services can run in development that is close to a modern container production deployment.

Usage

In order to run your system via fuge, you need to create a YAML configuration file. Fuge also integrates with docker-compose. Full documentation on configuring fuge is available here.

Full example demonstration systems are available here: https://github.com/apparatus/fuge-examples.

Example Configuration

A simple configuration is provided below:

fuge_global:
  tail: true
  monitor: true
  monitor_excludes:
    - '**/node_modules/**'
    - '**/.git/**'
    - '*.log'
myservice:
  type: process
  path: ../myservice
  run: 'node index.js'
  ports:
    - myservice=8000
webapp:
  type: process
  path: ../webapp
  run: 'npm start'
  ports:
    - webapp=3000
mongo:
  image: mongo
  type: container
  ports:
    - mongo=27017:27017

This configuration defines a front end webapp process, a single microservice and a mongodb container. The system can be started by running:

$ fuge shell <path to config file>
fuge> start all

This will start the mongo container through the local docker API and also the webapp and myservice processes. Fuge will also inject configuration information into these processes as environment variables, tail the logs and watch the file system for changes, restarting the appropriate processes as you write code.

To fully explore the capabilites of Fuge, you are encouraged to run the example systems which can be found here: https://github.com/apparatus/fuge-examples.

Docker

Fuge is fully compatible with V1, V2 and V3 docker-compose formats. Fuge services can be specified entirely using docker-compose or entirely in fuge.yml or a mixture of anything in between.

Command Reference

Fuge can be started by running:

$ fuge shell <path to fuge config file>
fuge>

The fuge command shell supports the following commands

| command | action | | ------------- | ------------- | | help | display a list of supported commands | | ps | list status of managed processes and containers | | info [process] [full]| show information on a specific process. The fulloption will output the entire environment that will be injected into this process| |start [process] / all| start a process or all processes | |stop [process] / all| stop a process and any associated watcher or all processes | |debug [process]| start a process in debug mode (only supported for node.js processes) | |apply [Shell command]| run the specified shell command in the root of each service e.g.apply npm install, apply git status| |zone| display dns zone information for fuge internal DNS server - requires thedns_enabledsetting in fuge configuration file | |watch [process] / all| turn on watching for a process or for all processes | |unwatch [process] / all| turn off watching for a process or for all processes | |tail [process] / all| tail output for a process or for all processes | |untail [process] / all| end tail output for a specific processes or for all processes | |grep 'search string' [process]| searches a process' log or all processes' logs | |exit` | terminate all managed processes and exit the shell |

Shell pass through

In addition to the above commands, Fuge will pass through all other commands to the underlying shell, for example:

fuge> ps aux | grep -i node

Will bypass the fuge ps command and execute the underlying ps command.

fuge> netstat -an | grep -i listen

Will be passed through to the underlying shell to display a lists of open listening port and so on.

Contributing

The apparatus team encourage open participation. If you feel you can help in any way, be it with documentation, examples, extra testing, or new features please get in touch.

License

Copyright the apparatus team 2016, Licensed under MIT.