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

spreadr

v1.4.2

Published

spread http(s) requests to different hosts based on hostname with http2 and sni ssl support

Downloads

6

Readme

spreadr

Travis David npm

spread http(s) requests to different hosts based on hostname with http2 and sni ssl support

features

  • define any number of virtual hosts containing any number of aliases
  • define non-ssl and ssl target-hostname
  • allow to define specific port for non-ssl and ssl target
  • define ssl-context per virtual host, allowing to forward ssl-requests (sni, server name indication)
  • define whether to allow invalid certificates on ssl target host (per virtual host)
  • http/2 support (via NPN and ALPN)
  • support for multiple cpu-cores, will spawn as many workers as cpu-cores available

how-to use

Clone repository, look at configs/example.org.json and define as many additional files as you want.

When done, fire up spreadr with

sudo node spreadr.js

You need to sudo because spreadr listens on port 80 & 443 and you need root access to bind on ports lower than 1024. If you want to listen on other ports, you may want to edit the spreadr.json file in root folder.

run as docker container

Pull latest docker image:

docker pull dnljst/spreadr

Start your machine:

docker run -d -p 80:80 -p 443:443 --name my-spreadr-container dnljst/spreadr

This command creates a new docker container based on the spreadr image named "my-spreadr-container" and exposes ports 80 and 443 to the new container.

run as docker container with custom configuration

Clone spreadr to your docker machine:

git clone https://github.com/dnl-jst/spreadr.git && cd spreadr

Edit configuration files, for example:

vim configs/example.org/config.json

When changes are done, build your custom docker image with your configuration:

docker build -t my-custom-spreadr-configuration .

You build your own image named "my-custom-spreadr-configuration". You can change that name to whatever you want.

Now you can run your custom container like this:

docker run -d -p 80:80 -p 443:443 --name my-custom-spreadr-container my-custom-spreadr-configuration

This will run a new docker container named "my-custom-spreadr-container" with our own image "my-custom-spreadr-configuration".