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

nsite-ts

v0.5.1

Published

A blossom server implementation written in Typescript

Downloads

66

Readme

nsite-ts

A Typescript implementation of nsite

Running with docker-compose

git clone https://github.com/hzrd149/nsite-ts.git
cd nsite-ts
docker compose up

Once the service is running you can access the cached version at http://localhost:8080

If you need to test, you can directly access the ts server at http://localhost:3000

Running with docker

The ghcr.io/hzrd149/nsite-ts image can be used to run a http instance locally

docker run --rm -it --name nsite -p 8080:80 ghcr.io/hzrd149/nsite-ts

Manual nginx setup

Before manually setting up nginx and nsite-ts you need a few things installed

Next your going to need to clone the nsite-ts repo and set it up

git clone https://github.com/hzrd149/nsite-ts
cd nsite-ts

# install dependencies
pnpm install

# build app
pnpm build

Then create a new .env file for configuration

cp .env.example .env

Next copy and setup the systemd service

sudo cp contrib/nsite.service /etx/systemd/system/nsite.service

# edit the service and set the working directory path
sudo nano /etx/systemd/system/nsite.service

# reload systemd service
sudo systemctl daemon-reload

# start service
sudo systemctl start nsite

Then once nsite-ts is running, next you need to configure nginx

Start by modifying the /etx/nginx/nginx.conf file and adding a proxy_cache_path to the http section

sudo nano /etc/nginx/nginx.conf
http {
+  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=request_cache:10m max_size=10g inactive=60m use_temp_path=off;
}

Next modify the default site config (usually /etx/nginx/sites-enabled/default or /etc/nginx/conf.d/default.conf) to be one of

Once that is done you can restart nginx and you should have a new nsite server running on port 80

Tor setup

First you need to install tor (sudo apt install tor on debian systems) or Documentation

Then able the tor service

sudo systemctl enable tor
sudo systemctl start tor

Setup hidden service

Modify the torrc file to enable HiddenServiceDir and HiddenServicePort

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080

Then restart tor

sudo systemctl restart tor

Next get the onion address using cat /var/lib/tor/hidden_service/hostname and set the ONION_HOST variable in the .env file

# don't forget to start with http://
ONION_HOST="http://q457mvdt5smqj726m4lsqxxdyx7r3v7gufzt46zbkop6mkghpnr7z3qd.onion"

Connecting to Tor and I2P relays and blossom servers

Install Tor (Documentation) and optionally I2Pd (Documentation) and then add the TOR_PROXY and I2P_PROXY variables to the .env file

TOR_PROXY=127.0.0.1:9050
I2P_PROXY=127.0.0.1:4447