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 🙏

© 2025 – Pkg Stats / Ryan Hefner

ristretto.git

v0.0.1

Published

Git daemon in nodejs

Downloads

4

Readme

Ristretto

Ristretto is a very light-weight git server written in nodejs. After a night of sleep deprivation and over caffination the initial version is released. Current release has two components

  1. Git server that manages requests over ssh
  2. Simple api that currently support authentication and creating new user repo.

Installation

Most of the parts about installation is pretty straight as you see in a node project.

git clone https://github.com/georoot/ristretto.git
cd ristretto
npm install

Now both servers are written in separate files. Git server comes under app.js and the api under api.js. You can run the both using

pm2 start app.js
pm2 start api.js

If you are developing the app, you can use

npm run devDaemon
npm run devApi

Which is configured with nodemon to autoreload the server on file change.

Environment variables

There are some environment variables that you do need to define

privateKey = { Location of your private key file, needed by ssh server}
             { EX : /home/user/.ssh/id_rsa}
GitBase    = { Where exactly do you want to store the repository}
             { EX : /home/user/git}
DbHost     = { mongodb host}
DbName     = { Name of database you want to use}
SaltRound  = { Used for password hashing, just set that to 10 ;) }
Secret     = { This is needed to generate token... Its a secret}
             { In linux you can generate using `xxd -l 20 -p /dev/urandom`}
HttpPort   = { The port where your api should run at}
GitPort    = { The port where your ssh server should run at}

Documentation

Although you can generate documentation on you own using

npm run genDocs

But again i have uploaded a version of the same over here

User interface

Using api you can always create one, if you do create a very nice one, share the repo link and i will merge that with codebase. I hate writing HTMl so this probably takes the back of my seat.

Docker support

It's in the pipeline once i get the codebase stable.

Why not to use this ?

As i wrote above, most of the codebase is hack and currently lacks some very important features.

Why to use this ?

If you are a programer, which i pretty much believe you are because you are looking at this site, you can fork the code and make PR to further this project.

My condition

I took me around 10 hours to get though this code-base and now i look more like

Random dude with coffee mug

Feel free to make PR ;) happy hacking !!