mirror of
https://github.com/ddworken/hishtory.git
synced 2024-11-26 02:03:37 +01:00
226 lines
12 KiB
HTML
226 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
<meta name="description" content="">
|
|
<meta name="author" content="">
|
|
<title>Hishtory: Better Shell History</title>
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-144207374-1"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
|
|
function gtag() {
|
|
dataLayer.push(arguments);
|
|
}
|
|
gtag('js', new Date());
|
|
gtag('config', 'UA-144207374-1');
|
|
</script>
|
|
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
|
|
<link href="https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700" rel="stylesheet">
|
|
<link href='https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic' rel='stylesheet' type=
|
|
'text/css'>
|
|
<link href="vendor/magnific-popup/magnific-popup.css" rel="stylesheet">
|
|
<link href="css/creative.min.css" rel="stylesheet">
|
|
<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>
|
|
li.install-nav-item>:not([active]) {
|
|
background-color: #f7f7f9
|
|
}
|
|
</style>
|
|
</head>
|
|
<body id="page-top">
|
|
<!-- Navigation -->
|
|
<nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" id="mainNav">
|
|
<div class="container">
|
|
<a class="navbar-brand js-scroll-trigger" href="#page-top">Hishtory</a>
|
|
<div class="collapse navbar-collapse" id="navbarResponsive">
|
|
<ul class="navbar-nav ml-auto my-2 my-lg-0">
|
|
<li class="nav-item">
|
|
<a class="nav-link js-scroll-trigger" href="#about">About</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link js-scroll-trigger" href="#setup">Setup & Usage</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link js-scroll-trigger" href="#faq">FAQ</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav><!-- Masthead -->
|
|
<header class="masthead">
|
|
<div class="container h-100">
|
|
<div class="row h-100 align-items-center justify-content-center text-center">
|
|
<div class="col-lg-12 align-self-end">
|
|
<h2 class="text-white font-weight-bold">Your shell history: synced, queryable, and in context</h2>
|
|
<hr class="divider my-4">
|
|
</div>
|
|
<div class="col-lg-8 align-self-baseline">
|
|
<script id="asciicast-xW0ddZdZm7Utv1iLATegM4Oe4" src="https://asciinema.org/a/xW0ddZdZm7Utv1iLATegM4Oe4.js" async data-autoplay=
|
|
"true" data-speed="1.5"></script>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header><!-- About Section -->
|
|
<section class="page-section bg-primary" id="about">
|
|
<div class="container">
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-8 text-center">
|
|
<h2 class="text-white mt-0">Shell scripting is powerful, keep track of how you use it</h2>
|
|
<hr class="divider light my-4">
|
|
<p class="text-white-50 mb-4">Your shell keeps a list of every command you run locally, but this list of commands is devoid of
|
|
context (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 two terminals at once? Say goodbye to your shell history!).<br>
|
|
<br>
|
|
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
|
|
what machine. It syncs this information across all your machines, so you can always find that useful shell pipeline you wrote a
|
|
month ago.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section><!-- Setup Section -->
|
|
<section class="page-section" id="setup">
|
|
<div class="container">
|
|
<h2 class="text-center mt-0">Setup Process</h2>
|
|
<hr class="divider my-4">
|
|
<p class="text-black-50 mb-4"></p>
|
|
<div style="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;*/">
|
|
<li class="nav-item install-nav-item">
|
|
<a class="nav-link active" id="install-first-tab" data-toggle="tab" href="#install-first" role="tab" style="margin: 10px">First
|
|
Installation</a>
|
|
</li>
|
|
<li class="nav-item install-nav-item">
|
|
<a class="nav-link" id="install-second-tab" data-toggle="tab" href="#install-second" role="tab" style=
|
|
"margin: 10px">Installation on additional computers</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content">
|
|
<div class="tab-pane active" id="install-first" role="tabpanel" aria-labelledby="home-tab">
|
|
<br>
|
|
To install hishtory on your first machine:<br>
|
|
<code> curl https://hishtory.dev/install.py | python3 -<br></code>
|
|
</div>
|
|
<div class="tab-pane" id="install-second" role="tabpanel" aria-labelledby="profile-tab">
|
|
<br>
|
|
To install hishtory on your second machine, you must first retrieve your secret key from first first machine. To do so, run
|
|
<code>hishtory status</code> and copy your "Secret Key". Then to install it on your second machine:<br>
|
|
<code> curl https://hishtory.dev/install.py | python3 -<br>
|
|
hishtory init $YOUR_HISHTORY_SECRET</code>
|
|
</div>
|
|
</div>
|
|
</div><br>
|
|
<h2 class="text-center mt-0">Usage</h2>
|
|
<ul>
|
|
<li>To query your hishtory: <code>hishtory query foo</code> or use the custom search atoms
|
|
<code>cwd:/etc/</code>, <code>exit_code:127</code>, <code>hostname:laptop</code>, <code>user:david</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> / <code>hishtory enable</code></li>
|
|
<li>To update to the latest version: <code>hishtory update</code></li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
<section class="page-section bg-primary" id="faq">
|
|
<div class="container">
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-8 text-center">
|
|
<h2 class="mt-0">FAQ</h2><!-- FAQ -->
|
|
<hr class="divider my-4">
|
|
<div class="accordion" id="accordionExample">
|
|
<div class="card">
|
|
<div class="card-header" id="headingZero">
|
|
<h2 class="mb-0"><button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapseZero"
|
|
aria-expanded="true" aria-controls="collapseZero">How does this work?</button></h2>
|
|
</div>
|
|
<div id="collapseZero" class="collapse show" aria-labelledby="headingZero" data-parent="#accordionExample">
|
|
<div class="card-body">
|
|
Hishtory hooks into your shell to record everything you could want to know about your shell history. It saves this data
|
|
in a local sqlite DB, and then syncs an encrypted copy of this DB with all your other computers.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-header" id="headingOne">
|
|
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseOne"
|
|
aria-expanded="false" aria-controls="collapseOne">Is this secure?</button></h2>
|
|
</div>
|
|
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
|
|
<div class="card-body">
|
|
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
|
|
computer(s). The code is <a href='https://github.com/ddworken/hishtory'>OSS</a> and verifiably built as <a href=
|
|
'https://slsa.dev/'>SLSA Level 3</a> so you can verify that the software you're running is the code on Github, and that
|
|
it in fact does not share any of your private data. In addition, the backend server is OSS so you can verify how it
|
|
works.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-header" id="headingTwo">
|
|
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo"
|
|
aria-expanded="false" aria-controls="collapseTwo">What about `.bash_history`?</button></h2>
|
|
</div>
|
|
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
|
|
<div class="card-body">
|
|
If it works for you, great! But I find I constantly get annoyed with `.bash_history` either because I lose context (which
|
|
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
|
|
multiple terminals at the same time).
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-header" id="headingThree">
|
|
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseThree"
|
|
aria-expanded="false" aria-controls="collapseThree">Is this free?</button></h2>
|
|
</div>
|
|
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
|
|
<div class="card-body">
|
|
Yes! This is just a hobby project for me that I use, and I hope other people get some use out of. It is also <a href=
|
|
'https://github.com/ddworken/hishtory'>OSS</a>, so feel free to fork it and self-host!
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card">
|
|
<div class="card-header" id="headingFour">
|
|
<h2 class="mb-0"><button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseFour"
|
|
aria-expanded="false" aria-controls="collapseFour">Who made this?</button></h2>
|
|
</div>
|
|
<div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordionExample">
|
|
<div class="card-body">
|
|
Made with ❤️ by <a href="https://daviddworken.com">David Dworken</a>. I'm 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>
|
|
<hr class="divider my-4">
|
|
<div class="row justify-content-center">
|
|
<div class="col-lg-8 text-center">
|
|
<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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section><!-- Footer -->
|
|
<footer class="bg-light py-5">
|
|
<div class="container">
|
|
<div class="small text-center text-muted">
|
|
<a href='https://github.com/ddworken/hishtory'>github.com/ddworken/hishtory</a><br>
|
|
Copyright © 2022 - David Dworken
|
|
</div>
|
|
</div>
|
|
</footer><!-- Bootstrap core JavaScript -->
|
|
<script src="vendor/jquery/jquery.min.js"></script>
|
|
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script> <!-- Plugin JavaScript -->
|
|
|
|
<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="js/creative.min.js"></script>
|
|
</body>
|
|
</html>
|