update FAQ + usage + longer lines

This commit is contained in:
David Dworken 2022-04-07 22:05:26 -07:00
parent e0199f830f
commit 10eac23f7c
2 changed files with 86 additions and 172 deletions

View File

@ -16,6 +16,6 @@ repos:
pass_filenames: false pass_filenames: false
- id: html-tidy - id: html-tidy
name: html-tidy name: html-tidy
entry: tidy -quiet -modify -indent web/landing/www/index.html entry: tidy -quiet -modify -indent -wrap 140 web/landing/www/index.html
language: system language: system
pass_filenames: false pass_filenames: false

View File

@ -1,18 +1,14 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta name="generator" content= <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
"HTML Tidy for HTML5 for Linux version 5.6.0">
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content= <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
"width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content=""> <meta name="description" content="">
<meta name="author" content=""> <meta name="author" content="">
<title>Hishtory: Better Shell History</title> <title>Hishtory: Better Shell History</title><!-- Global site tag (gtag.js) - Google Analytics -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src= <script async src="https://www.googletagmanager.com/gtag/js?id=UA-144207374-1"></script>
"https://www.googletagmanager.com/gtag/js?id=UA-144207374-1"></script>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
@ -22,23 +18,14 @@
gtag('js', new Date()); gtag('js', new Date());
gtag('config', 'UA-144207374-1'); gtag('config', 'UA-144207374-1');
</script><!-- Font Awesome Icons --> </script><!-- Font Awesome Icons -->
<link href="vendor/fontawesome-free/css/all.min.css" rel= <link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css"><!-- Google Fonts -->
"stylesheet" type="text/css"><!-- Google Fonts --> <link href="https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700" rel="stylesheet">
<link href= <link href='https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic' rel='stylesheet' type=
"https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700" 'text/css'><!-- Plugin CSS -->
rel="stylesheet"> <link href="vendor/magnific-popup/magnific-popup.css" rel="stylesheet"><!-- Theme CSS - Includes Bootstrap -->
<link href= <link href="css/creative.min.css" rel="stylesheet"><!-- Highlight JS -->
'https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic' <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/styles/default.min.css">
rel='stylesheet' type='text/css'><!-- Plugin CSS --> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/highlight.min.js"></script>
<link href="vendor/magnific-popup/magnific-popup.css" rel=
"stylesheet"><!-- Theme CSS - Includes Bootstrap -->
<link href="css/creative.min.css" rel="stylesheet">
<!-- Highlight JS -->
<link rel="stylesheet" href=
"//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/styles/default.min.css">
<script src=
"//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.8/highlight.min.js"></script>
<style> <style>
li.install-nav-item>:not([active]) { li.install-nav-item>:not([active]) {
background-color: #f7f7f9 background-color: #f7f7f9
@ -47,24 +34,19 @@
</head> </head>
<body id="page-top"> <body id="page-top">
<!-- Navigation --> <!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" <nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" id="mainNav">
id="mainNav">
<div class="container"> <div class="container">
<a class="navbar-brand js-scroll-trigger" href= <a class="navbar-brand js-scroll-trigger" href="#page-top">Hishtory</a>
"#page-top">Hishtory</a>
<div class="collapse navbar-collapse" id="navbarResponsive"> <div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto my-2 my-lg-0"> <ul class="navbar-nav ml-auto my-2 my-lg-0">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link js-scroll-trigger" href= <a class="nav-link js-scroll-trigger" href="#about">About</a>
"#about">About</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link js-scroll-trigger" href= <a class="nav-link js-scroll-trigger" href="#setup">Setup & Usage</a>
"#setup">Setup</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link js-scroll-trigger" href= <a class="nav-link js-scroll-trigger" href="#faq">FAQ</a>
"#faq">FAQ</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -72,17 +54,14 @@
</nav><!-- Masthead --> </nav><!-- Masthead -->
<header class="masthead"> <header class="masthead">
<div class="container h-100"> <div class="container h-100">
<div class= <div class="row h-100 align-items-center justify-content-center text-center">
"row h-100 align-items-center justify-content-center text-center">
<div class="col-lg-12 align-self-end"> <div class="col-lg-12 align-self-end">
<h2 class="text-white font-weight-bold">Your shell <h2 class="text-white font-weight-bold">Your shell history: synced, queryable, and in context</h2>
history: synced, queryable, and in context</h2>
<hr class="divider my-4"> <hr class="divider my-4">
</div> </div>
<div class="col-lg-8 align-self-baseline"> <div class="col-lg-8 align-self-baseline">
<script id="asciicast-xW0ddZdZm7Utv1iLATegM4Oe4" src= <script id="asciicast-xW0ddZdZm7Utv1iLATegM4Oe4" src="https://asciinema.org/a/xW0ddZdZm7Utv1iLATegM4Oe4.js" async data-autoplay=
"https://asciinema.org/a/xW0ddZdZm7Utv1iLATegM4Oe4.js" "true" data-loop="true"></script>
async data-autoplay="true" data-loop="true"></script>
</div> </div>
</div> </div>
</div> </div>
@ -91,21 +70,15 @@
<div class="container"> <div class="container">
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-lg-8 text-center"> <div class="col-lg-8 text-center">
<h2 class="text-white mt-0">Bash scripting is powerful, <h2 class="text-white mt-0">Bash scripting is powerful, keep track of how you use it</h2>
keep track of how you use it</h2>
<hr class="divider light my-4"> <hr class="divider light my-4">
<p class="text-white-50 mb-4">Bash keeps a list of every <p class="text-white-50 mb-4">Bash keeps a list of every command you run locally, but this list of commands is devoid of context
command you run locally, but this list of commands is (where did I run that command? what was the output of the command? how long did it take to run?) and it is easily corrupted (open
devoid of context (where did I run that command? what was two terminals at once? Say goodbye to your bash history!).<br>
the output of the command? how long did it take to run?)
and it is easily corrupted (open two terminals at once?
Say goodbye to your bash history!).<br>
<br> <br>
Hishtory keeps track of the command you ran, how long it Hishtory keeps track of the command you ran, how long it took to run, whether it succeeded or failed, where you ran it, and on
took to run, whether it succeeded or failed, where you what machine. It syncs this information across all your machines, so you can always find that useful bash pipeline you wrote a
ran it, and on what machine. It syncs this information month ago.</p>
across all your machines, so you can always find that
useful bash pipeline you wrote a month ago.</p>
</div> </div>
</div> </div>
</div> </div>
@ -115,50 +88,43 @@
<h2 class="text-center mt-0">Setup Process</h2> <h2 class="text-center mt-0">Setup Process</h2>
<hr class="divider my-4"> <hr class="divider my-4">
<p class="text-black-50 mb-4"></p> <p class="text-black-50 mb-4"></p>
<div style= <div style="border: solid #f7f7f9; border-width: 2px;border-radius:10px;padding:2%">
"border: solid #f7f7f9; border-width: 2px;border-radius:10px;padding:2%"> <ul class="nav nav-tabs nav-pills nav-justified" id="myTab" role="tablist" style="/*border: solid #f7f7f9; border-width: 2px;*/">
<ul class="nav nav-tabs nav-pills nav-justified" id="myTab"
role="tablist" style=
"/*border: solid #f7f7f9; border-width: 2px;*/">
<li class="nav-item install-nav-item"> <li class="nav-item install-nav-item">
<a class="nav-link active" id="install-first-tab" <a class="nav-link active" id="install-first-tab" data-toggle="tab" href="#install-first" role="tab" style="margin: 10px">First
data-toggle="tab" href="#install-first" role="tab" Installation</a>
style="margin: 10px">First Installation</a>
</li> </li>
<li class="nav-item install-nav-item"> <li class="nav-item install-nav-item">
<a class="nav-link" id="install-second-tab" <a class="nav-link" id="install-second-tab" data-toggle="tab" href="#install-second" role="tab" style=
data-toggle="tab" href="#install-second" role="tab" "margin: 10px">Installation on additional computers</a>
style="margin: 10px">Installation on additional
computers</a>
</li> </li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane active" id="install-first" role= <div class="tab-pane active" id="install-first" role="tabpanel" aria-labelledby="home-tab">
"tabpanel" aria-labelledby="home-tab">
<br> <br>
To install hishtory on your first machine:<br> To install hishtory on your first machine:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>curl -o &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>curl -o hishtory https://hishtory.dev/binaries/hishtory-linux; chmod +x hishtory;
hishtory https://hishtory.dev/binaries/hishtory-linux; ./hishtory install</code>
chmod +x hishtory; ./hishtory install</code>
</div> </div>
<div class="tab-pane" id="install-second" role="tabpanel" <div class="tab-pane" id="install-second" role="tabpanel" aria-labelledby="profile-tab">
aria-labelledby="profile-tab">
<br> <br>
To install hishtory on your second machine, you must To install hishtory on your second machine, you must first retrieve your secret key from first first machine. To do so, run
first retrieve your secret key from first first <code>hishtory status</code> and copy your "Secret Key". Then to install it on your second machine:<br>
machine. To do so, run <code>hishtory status</code> and &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>curl -o hishtory https://hishtory.dev/binaries/hishtory-linux; chmod +x hishtory;
copy your "Secret Key". Then to install it on your ./hishtory install $YOUR_HISHTORY_SECRET</code>
second machine:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>curl -o
hishtory https://hishtory.dev/binaries/hishtory-linux;
chmod +x hishtory; ./hishtory install
$YOUR_HISHTORY_SECRET</code>
</div>
</div> </div>
</div> </div>
</div><br>
<h2 class="text-center mt-0">Usage</h2>
<ul>
<li>To query your hishtory: <code>hishtory query foo</code></li>
<li>To dump all hishtory entries to stdout: <code>hishtory export</code></li>
<li>To temporarily turn on/off hishtory recording: <code>hishtory disable</code>&nbsp;/&nbsp;<code>hishtory enable</code></li>
<li>To update to the latest version: <code>hishtory update</code></li>
</ul>
</div> </div>
</section> </section>
<section class="page-section" id="faq"> <section class="page-section bg-primary" id="faq">
<div class="container"> <div class="container">
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-lg-8 text-center"> <div class="col-lg-8 text-center">
@ -167,123 +133,76 @@
<div class="accordion" id="accordionExample"> <div class="accordion" id="accordionExample">
<div class="card"> <div class="card">
<div class="card-header" id="headingZero"> <div class="card-header" id="headingZero">
<h2 class="mb-0"><button class="btn btn-link" type= <h2 class="mb-0"><button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseZero"
"button" data-toggle="collapse" data-target= aria-expanded="true" aria-controls="collapseZero">How does this work?</button></h2>
"#collapseZero" aria-expanded="true" aria-controls=
"collapseZero">How does this work?</button></h2>
</div> </div>
<div id="collapseZero" class="collapse show" <div id="collapseZero" class="collapse show" aria-labelledby="headingZero" data-parent="#accordionExample">
aria-labelledby="headingZero" data-parent=
"#accordionExample">
<div class="card-body"> <div class="card-body">
Hishtory hooks into your shell to record Hishtory hooks into your shell to record everything you could want to know about your shell history. It saves this data
everything you could want to know about your in a local sqlite DB, and then syncs an encrypted copy of this DB with all your other computers.
shell history. It supports two modes:
<ol>
<li>Offline mode: It persists all this data in
a local SQLite database</li>
<li>Online mode: Only if you opt-in, it syncs
this data between all your machines so your
history is immediately queryable from every one
of your machines</li>
</ol>
</div> </div>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="card-header" id="headingOne"> <div class="card-header" id="headingOne">
<h2 class="mb-0"><button class= <h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseOne"
"btn btn-link collapsed" type="button" data-toggle= aria-expanded="false" aria-controls="collapseOne">Is this secure?</button></h2>
"collapse" data-target="#collapseOne"
aria-expanded="false" aria-controls=
"collapseOne">Is this secure?</button></h2>
</div> </div>
<div id="collapseOne" class="collapse" <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
aria-labelledby="headingOne" data-parent=
"#accordionExample">
<div class="card-body"> <div class="card-body">
This is up to you to judge, but in my opinion: This is up to you to judge, but in my opinion: Yes! All data is end-to-end encrypted with a key that never leaves your
Yes! All data is end-to-end encrypted with a key computer(s). The code is OSS, so you can verify this, and the pre-built binaries are reproducibly built with the commit
that never leaves your computer(s). The code is
OSS, so you can verify this, and the pre-built
binaries are reproducibly built with the commit
hash embedded in them for easy verification. hash embedded in them for easy verification.
</div> </div>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="card-header" id="headingTwo"> <div class="card-header" id="headingTwo">
<h2 class="mb-0"><button class= <h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo"
"btn btn-link collapsed" type="button" data-toggle= aria-expanded="false" aria-controls="collapseTwo">What about `.bash_history`?</button></h2>
"collapse" data-target="#collapseTwo"
aria-expanded="false" aria-controls=
"collapseTwo">What about
`.bash_history`?</button></h2>
</div> </div>
<div id="collapseTwo" class="collapse" <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
aria-labelledby="headingTwo" data-parent=
"#accordionExample">
<div class="card-body"> <div class="card-body">
If it works for you, great! But I find I If it works for you, great! But I find I constantly get annoyed with `.bash_history` either because I lose context (which
constantly get annoyed with `.bash_history` directory do I need to run that command from?) or because I full on lose the file (it tends to get corrupted if you open
either because I lose context (which directory do multiple terminals at the same time).
I need to run that command from?) or because I
full on lose the file (it tends to get corrupted
if you open multiple terminals at the same time).
</div> </div>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="card-header" id="headingThree"> <div class="card-header" id="headingThree">
<h2 class="mb-0"><button class= <h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseThree"
"btn btn-link collapsed" type="button" data-toggle= aria-expanded="false" aria-controls="collapseThree">Is this free?</button></h2>
"collapse" data-target="#collapseThree"
aria-expanded="false" aria-controls=
"collapseThree">Is this free?</button></h2>
</div> </div>
<div id="collapseThree" class="collapse" <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
aria-labelledby="headingThree" data-parent=
"#accordionExample">
<div class="card-body"> <div class="card-body">
Yes! This is just a hobby project for me that I Yes! This is just a hobby project for me that I use, and I hope other people get some use out of.
use, and I hope other people get some use out of.
</div> </div>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="card-header" id="headingFour"> <div class="card-header" id="headingFour">
<h2 class="mb-0"><button class= <h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseFour"
"btn btn-link collapsed" type="button" data-toggle= aria-expanded="false" aria-controls="collapseFour">Who made this?</button></h2>
"collapse" data-target="#collapseFour"
aria-expanded="false" aria-controls=
"collapseFour">Who made this?</button></h2>
</div> </div>
<div id="collapseFour" class="collapse" <div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordionExample">
aria-labelledby="headingFour" data-parent=
"#accordionExample">
<div class="card-body"> <div class="card-body">
Made with ❤️ by <a href= Made with ❤️ by <a href="https://daviddworken.com">David Dworken</a>. I'm a Security Engineer who also enjoys creating
"https://daviddworken.com">David Dworken</a>. I'm software. I built this to solve a problem for myself, and wanted to share it with others who may find it useful.
a Security Engineer who also enjoys creating
software. I built this to solve a problem for
myself, and wanted to share it with others who
may find it useful.
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<hr class="divider my-4"> <hr class="divider my-4">
<p class="text-muted mb-5">Feedback, thoughts, ideas, or
other questions? Let me know!</p>
</div>
</div>
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-lg-4 text-center"> <div class="col-lg-8 text-center">
<a class="d-block" href= <p class="mb-3">Feedback, thoughts, ideas, or other questions? Let me know!</p><a class="text-white-50 d-block" href=
"mailto:david@daviddworken.com">david@daviddworken.com</a> "mailto:david@daviddworken.com">david@daviddworken.com</a>
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</section><!-- Footer --> </section><!-- Footer -->
<footer class="bg-light py-5"> <footer class="bg-light py-5">
<div class="container"> <div class="container">
@ -293,15 +212,10 @@
</div> </div>
</footer><!-- Bootstrap core JavaScript --> </footer><!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script> <script src="vendor/jquery/jquery.min.js"></script>
<script src= <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script> <!-- Plugin JavaScript -->
"vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script> <script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<script src="vendor/magnific-popup/jquery.magnific-popup.min.js"></script> <!-- Custom scripts for this template -->
<script src=
"vendor/magnific-popup/jquery.magnific-popup.min.js"></script>
<!-- Custom scripts for this template -->
<script src="js/creative.min.js"></script> <script src="js/creative.min.js"></script>
</body> </body>