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

jbnc

v0.3.0

Published

IRC Bouncer with no registration/setup required written in nodejs with support for separate client buffers and always-on.

Downloads

4

Readme

jbnc

IRC Bouncer/IRC Gateway with no authentication required written in nodejs with support for separate client buffers for playback history, an always-on connection, and SSL in and out.

This is the missing link for IRC.

Purpose

Bouncers are hard to configure. I felt that we needed an easier one in this world. This requires nearly no configuration to connect! Just set a password! Join #jbnc on freenode to learn more!

Currently usable, but in beta test. Please report bugs by creating an issue on github. I'm using it as my daily driver.

Features

  • Always on connection to IRC
  • No registration or account required
  • Separate buffers for clients
  • SSL with stunnel
  • Works with any RFC 1459 Compatible Client
  • Password can be changed in the config and a HUP will reload the passwords.
  • Gateway Mode for IRC Servers and Networks (See Below)

Compatibility

Works on:

  • Freenode
  • Rizon
  • DALnet
  • OFTC
  • EFnet
  • Any RFC1459 Compliant Network/Server

Setup / Installation

  1. Clone the repo
git clone https://github.com/realrasengan/jbnc
  1. Edit config (there are different example.confs for different use cases)
cp example.conf jbnc.conf
<edit> jbnc.conf

Values:

mode: gateway|bouncer
bouncerPassword: leave blank for no password
serverPort: if gateway mode, else ignored
server: if gateway mode, else eignored
webircPassword: if its there, it will try webirc authentication
bouncerPort: port for bnc,
bouncerAdmin: admin pass
  1. Run To use the default jbnc.conf in the same folder:
node bouncer.js &

To use another config file:

node bouncer.js somefile.conf &

Keep it running forever (no downtime)

Sometimes stunnel crashes, so in order to keep things running 24/7/365, there's a great app called immortal.

The immortaldir files are located in this repo (stunnel.yml and jbnc.yml).

Note: To use immortal on ubuntu, after following the steps on the page, please be sure to systemctl enable immortaldir as well as start.

SSL

  1. On Ubuntu
sudo apt install stunnel
  1. Get an SSL cert from Let's Encrypt

  2. Edit /etc/stunnel/stunnel.conf

cert = /etc/stunnel/fullchain.pem
key  = /etc/stunnel/privkey.pem
client = no

[jbnc]
accept = 9998
connect = 8888
  1. Run!

IRC Client

You just need to set your password in your jbnc config and then setup your IRC client: Just put this in your password:

YourServerPassword||ConnectionPasswordGoesHere/ServerGoesHere

To save clientbuffers for your client

YourServerPassword||ConnectionPasswordGoesHere/ServerGoesHere/deviceid

Here is an example for a desktop and mobile setup with a password protected server (password: dragon) connecting to DALnet:

dragon||AJFiej2fn2345/irc.dal.net:6667/desktop
dragon||AJFiej2fn2345/irc.dal.net:6667/mobile

SSL Client

Use "+port" to do SSL. For example:

dragon||Ajdfklsjfa/irc.dal.net:+6697/mobile

Whilst Connected

To get a list of commands:

/jbnc

Gateway Mode

Enable gateway mode and run on the same box as your IRCd to instantly give all your users always on connectivity and seamless synchronization across all devices.

  1. Edit the config file and use gateway mode instead of bouncer.

  2. Run

Gateway Mode Setup on Client Side

If you are running jbnc on the same machine as your irc server, let's say irc.example.com, then the only difference would be that your users would need to:

  1. Use a different port (8888 default for plaintext and 9998 default for SSL)

  2. Enter a password in their IRC client. They make up the password and use it to identify to their connection.

SomePassword/buffername

An example buffername could be 'desktop' and on the mobile phone could be 'mobile.'

TODO

Beta Testing

Copyright

(c) 2020 Andrew Lee [email protected] All Rights Reserved.

MIT LICENSED