The site

Clone this repo:


  1. e7e71fb redirects: restore trailing + on componentid by Mike Frysinger · 5 weeks ago main
  2. 5c05409 redirects: fix bugs redirect by Mike Frysinger · 5 weeks ago
  3. 84f0a62 redirects: switch to issuetracker by Mike Frysinger · 10 months ago
  4. d82262c redirects: carve out /_/ namespace and migrate most links over by Mike Frysinger · 11 months ago
  5. 3f55c25 redirects: update /docs/ with new ssh links by Mike Frysinger · 1 year, 4 months ago website

This repo is the website and related tooling.

The site uses Firebase for hosting.

Site Layout

Here's the layout of the site of real files.

  • /404.html: The default HTTP/404 error page.
  • /index.html: The main page's HTML code.
  • /index.js: The main page's JavaScript code.
  • /css/: Various .css files.
  • /dist/: hterm versions for live use on the site.
    • <ver>/: Each release goes into a versioned directory.
  • /img/: Various image files.

Here's the pseudo layout (managed via the firebase.json config file).

  • /docs: Redirect to the main set of docs. Subpaths may be used to redirect to specific docs.
  • /faq: Stable link to the hterm FAQ.
    • <id>: Stable links to specific questions.
  • /x/: Namespace for stable links. Once created, these should never be deleted or renamed. Anything directly under this is hterm related.
    • ssh/: Namespace for ssh related links.
  • /_/: Internal namespace for reducing URL base duplication. Would be nice to avoid exposing externally, but Firebase doesn't seem to support internal rewrites, or variables in the config file.

Source Layout

Here's the layout of this git repo.

  • bin/: Various scripts to help manage the site.
  • firebase.json: The Firebase configuration file for the site.
  • htdocs/: All the files uploaded to the website. See site layout too.

Firebase Cheatsheet

You will need the firebase-tools package available via npm. You can follow the quickstart guide, or use the version bundled with the libdot repo (that hterm is part of). For now, we assume that firebase is in your $PATH.

Local Testing

To test out changes locally, run firebase serve. That will start up a webserver on the local system so you can fully test out changes to the site and to the firebase.json config file.


To deploy the changes to the real site, run firebase -P hterm-website deploy.


Some docs that might be useful: