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

asciinema-selfhost

v1.0.0

Published

asciinema selfhost

Downloads

65

Readme

asciinema-selfhost -- ipfs <3 asciinema

asciinema is awesome! I love it. However, i often want to show or send asciinemas without depending on the internet working, or working fast.

asciinema-selfhost downloads an asciinema from asciinema.org and makes a small static website. It has all the necessary data, js, and css. It is completely self-hosted! It can be published anywhere, and even works offline!

npm install -g asciinema-selfhost

What is this

This tool will download all the assets representing an asciinema, and it will prepare a static directiory. Optionally, it can publish them to IPFS.

How it works

This script is run after you upload to asciinema.org. We hope to be able to avoid the hassle of relying on specific network hosts (because sometimes the internet is slow, or not there...). But for now some necessary post-processing is done server-side. So:

  1. Run asciinema to record as usual
  2. Upload to asciinema.org
  3. Run asciinema-rehost --clone <id> to download it.
  4. Run asciinema-rehost --rehost <id> to publish to ipfs.

Install

From npm:

npm install -g asciinema-selfhost

Usage

> asciinema-selfhost -h
asciinema-selfhost <asciinema-id> - self-host asciinema

Options:
  -h, --help   show this help output
  -c, --clone  clone asciinema
  -j, --json   fetch asciinema.json
  -s, --size   rehost asciinema to ipfs

Examples

--clone <id> to make a static website

--clone downloads an asciinema and makes a small static website. It has all the necessary data, js, and css. It is completely self-hosted! It can be published anywhere, and even works offline!

> asciinema-selfhost --clone 8mi43wht7qnbcivang0gxu6vh myAsciinema
cloning 8mi43wht7qnbcivang0gxu6vh to myAsciinema
copying /Users/jbenet/git/asciinema-selfhost/build to myAsciinema
writing myAsciinema/data/asciinema.json
writing myAsciinema/data/size.json
writing myAsciinema/iframe.html

--rehost <id> to publish static website to ipfs

--rehost does what --clone does and takes it a step further: it publishes the static website on ipfs. This makes the asciinema viewable by anyone on the HTTP gateway, or in an offline ipfs network.

asciinema-selfhost --rehost 8mi43wht7qnbcivang0gxu6vh
cloning 8mi43wht7qnbcivang0gxu6vh to /tmp/asciinema/8mi43wht7qnbcivang0gxu6vh
copying /Users/jbenet/git/asciinema-selfhost/build to /tmp/asciinema/8mi43wht7qnbcivang0gxu6vh
writing /tmp/asciinema/8mi43wht7qnbcivang0gxu6vh/data/asciinema.json
writing /tmp/asciinema/8mi43wht7qnbcivang0gxu6vh/data/size.json
writing /tmp/asciinema/8mi43wht7qnbcivang0gxu6vh/iframe.html

adding to ipfs. make sure your ipfs daemon is running.
ipfs add -r /tmp/asciinema/8mi43wht7qnbcivang0gxu6vh
published to /ipfs/QmdEaGfwzkNHQtxgp3XWxPgeuCEKecEHLSPnCUUpz3W7zs
view locally at http://localhost:8080/ipfs/QmdEaGfwzkNHQtxgp3XWxPgeuCEKecEHLSPnCUUpz3W7zs
view globally at http://gateway.ipfs.io/ipfs/QmdEaGfwzkNHQtxgp3XWxPgeuCEKecEHLSPnCUUpz3W7zs

Show me!

See it live here: