mirror of
https://github.com/syssecfsu/witty.git
synced 2026-03-18 05:28:03 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b18309c036 | ||
|
|
9e0c9f2d6e | ||
|
|
92364e3c72 | ||
|
|
9ce1d8b6d2 | ||
|
|
9754d61e6d | ||
|
|
fae4d5df66 | ||
|
|
712cf368f0 | ||
|
|
8f771fc8e0 | ||
|
|
f60f65ec24 |
@ -8,12 +8,12 @@
|
|||||||
<meta property="og:description" content>
|
<meta property="og:description" content>
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/404.html">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/404.html">
|
||||||
<title>404 Page not found | WiTTY: Web-based interactive TTY</title>
|
<title>404 Page not found | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
<style>.not-found{text-align:center}.not-found h1{margin:.25em 0 0;opacity:.25;font-size:40vmin}</style>
|
<style>.not-found{text-align:center}.not-found h1{margin:.25em 0 0;opacity:.25;font-size:40vmin}</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
<h1>404</h1>
|
<h1>404</h1>
|
||||||
<h2>Page Not Found</h2>
|
<h2>Page Not Found</h2>
|
||||||
<h3>
|
<h3>
|
||||||
<a href=https://syssecfsu.github.io/witty/>WiTTY: Web-based interactive TTY</a>
|
<a href=https://syssecfsu.github.io/witty/>WiTTY</a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -8,13 +8,13 @@
|
|||||||
<meta property="og:description" content>
|
<meta property="og:description" content>
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/categories/">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/categories/">
|
||||||
<title>Categories | WiTTY: Web-based interactive TTY</title>
|
<title>Categories | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/categories/index.xml title="WiTTY: Web-based interactive TTY">
|
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/categories/index.xml title=WiTTY>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -24,7 +24,7 @@
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -61,25 +61,8 @@
|
|||||||
</label>
|
</label>
|
||||||
<strong>Categories</strong>
|
<strong>Categories</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Categories</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Tags</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
@ -88,24 +71,6 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Categories</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Tags</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on WiTTY: Web-based interactive TTY</title><link>https://syssecfsu.github.io/witty/categories/</link><description>Recent content in Categories on WiTTY: Web-based interactive TTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on WiTTY</title><link>https://syssecfsu.github.io/witty/categories/</link><description>Recent content in Categories on WiTTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
||||||
@ -12,12 +12,13 @@ The program has been tested on Linux, WSL2, Raspberry Pi 3B (Debian), and MacOSX
|
|||||||
Most icons were provided by fontawesome under this license.">
|
Most icons were provided by fontawesome under this license.">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/about/"><meta property="article:section" content="docs">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/about/"><meta property="article:section" content="docs">
|
||||||
<title>About | WiTTY: Web-based interactive TTY</title>
|
<meta property="article:modified_time" content="2022-02-06T20:15:40-05:00">
|
||||||
|
<title>About | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -27,7 +28,7 @@ Most icons were provided by fontawesome under this license.">
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -64,21 +65,13 @@ Most icons were provided by fontawesome under this license.">
|
|||||||
</label>
|
</label>
|
||||||
<strong>About</strong>
|
<strong>About</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#about-witty>About WiTTY</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><h2 id=about-witty>
|
<article class=markdown><h1 id=about-witty>
|
||||||
About WiTTY
|
About WiTTY
|
||||||
<a class=anchor href=#about-witty>#</a>
|
<a class=anchor href=#about-witty>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>WiTTY is written in the <a href=https://go.dev/>go programming language</a>, using the
|
<p>WiTTY is written in the <a href=https://go.dev/>go programming language</a>, using the
|
||||||
<a href=https://github.com/gin-gonic/gin>Gin web framework</a>, <a href=https://github.com/gorilla/websocket>gorilla/websocket</a>, <a href=https://github.com/creack/pty>pty</a>, and the wonderful <a href=https://xtermjs.org/>xterm.js</a>!
|
<a href=https://github.com/gin-gonic/gin>Gin web framework</a>, <a href=https://github.com/gorilla/websocket>gorilla/websocket</a>, <a href=https://github.com/creack/pty>pty</a>, and the wonderful <a href=https://xtermjs.org/>xterm.js</a>!
|
||||||
The workflow is simple, the client initiates a terminal
|
The workflow is simple, the client initiates a terminal
|
||||||
@ -88,6 +81,11 @@ window (xterm.js) and creates a websocket with the server, which relays the data
|
|||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/acce7b514f3f5fc0796bdbef318863e7707934fd title="Last modified by Zhi Wang | February 6, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 6, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -95,15 +93,6 @@ window (xterm.js) and creates a websocket with the server, which relays the data
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#about-witty>About WiTTY</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -1,157 +0,0 @@
|
|||||||
<!doctype html><html lang=en-us dir=ltr>
|
|
||||||
<head>
|
|
||||||
<meta charset=utf-8>
|
|
||||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
|
||||||
<meta name=description content="This page is hidden in menu # Quondam non pater est dignior ille Eurotas # Latent te facies # Lorem markdownum arma ignoscas vocavit quoque ille texit mandata mentis ultimus, frementes, qui in vel. Hippotades Peleus pennas conscia cuiquam Caeneus quas.
|
|
||||||
Pater demittere evincitque reddunt Maxime adhuc pressit huc Danaas quid freta Soror ego Luctus linguam saxa ultroque prior Tatiumque inquit Saepe liquitur subita superata dederat Anius sudor Cum honorum Latona # O fallor in sustinui iussorum equidem.">
|
|
||||||
<meta name=theme-color content="#FFFFFF">
|
|
||||||
<meta name=color-scheme content="light dark"><meta property="og:title" content>
|
|
||||||
<meta property="og:description" content="This page is hidden in menu # Quondam non pater est dignior ille Eurotas # Latent te facies # Lorem markdownum arma ignoscas vocavit quoque ille texit mandata mentis ultimus, frementes, qui in vel. Hippotades Peleus pennas conscia cuiquam Caeneus quas.
|
|
||||||
Pater demittere evincitque reddunt Maxime adhuc pressit huc Danaas quid freta Soror ego Luctus linguam saxa ultroque prior Tatiumque inquit Saepe liquitur subita superata dederat Anius sudor Cum honorum Latona # O fallor in sustinui iussorum equidem.">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/hidden/"><meta property="article:section" content="docs">
|
|
||||||
<title>Hidden | WiTTY: Web-based interactive TTY</title>
|
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
|
||||||
</head>
|
|
||||||
<body dir=ltr>
|
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
|
||||||
<input type=checkbox class="hidden toggle" id=toc-control>
|
|
||||||
<main class="container flex">
|
|
||||||
<aside class=book-menu>
|
|
||||||
<div class=book-menu-content>
|
|
||||||
<nav>
|
|
||||||
<h2 class=book-brand>
|
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
<div class=book-search>
|
|
||||||
<input type=text id=book-search-input placeholder=Search aria-label=Search maxlength=64 data-hotkeys=s/>
|
|
||||||
<div class="book-search-spinner hidden"></div>
|
|
||||||
<ul id=book-search-results></ul>
|
|
||||||
</div>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href=https://syssecfsu.github.io/witty/docs/install/>Installation</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href=https://syssecfsu.github.io/witty/docs/ui/>User Interface</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href=https://syssecfsu.github.io/witty/docs/record/>Record Sessions</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href=https://syssecfsu.github.io/witty/docs/vm/>VirtualBox</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href=https://syssecfsu.github.io/witty/docs/about/>About</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<script>(function(){var a=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(b){localStorage.setItem("menu.scrollTop",a.scrollTop)}),a.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
<div class=book-page>
|
|
||||||
<header class=book-header>
|
|
||||||
<div class="flex align-center justify-between">
|
|
||||||
<label for=menu-control>
|
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/menu.svg class=book-icon alt=Menu>
|
|
||||||
</label>
|
|
||||||
<strong>Hidden</strong>
|
|
||||||
<label for=toc-control>
|
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#latent-te-facies>Latent te facies</a></li>
|
|
||||||
<li><a href=#cum-honorum-latona>Cum honorum Latona</a></li>
|
|
||||||
<li><a href=#fronde-cetera-dextrae-sequens-pennis-voce-muneris>Fronde cetera dextrae sequens pennis voce muneris</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
|
||||||
<article class=markdown><h1 id=this-page-is-hidden-in-menu>
|
|
||||||
This page is hidden in menu
|
|
||||||
<a class=anchor href=#this-page-is-hidden-in-menu>#</a>
|
|
||||||
</h1>
|
|
||||||
<h1 id=quondam-non-pater-est-dignior-ille-eurotas>
|
|
||||||
Quondam non pater est dignior ille Eurotas
|
|
||||||
<a class=anchor href=#quondam-non-pater-est-dignior-ille-eurotas>#</a>
|
|
||||||
</h1>
|
|
||||||
<h2 id=latent-te-facies>
|
|
||||||
Latent te facies
|
|
||||||
<a class=anchor href=#latent-te-facies>#</a>
|
|
||||||
</h2>
|
|
||||||
<p>Lorem markdownum arma ignoscas vocavit quoque ille texit mandata mentis ultimus,
|
|
||||||
frementes, qui in vel. Hippotades Peleus <a href=http://gratia.net/tot-qua.php>pennas
|
|
||||||
conscia</a> cuiquam Caeneus quas.</p>
|
|
||||||
<ul>
|
|
||||||
<li>Pater demittere evincitque reddunt</li>
|
|
||||||
<li>Maxime adhuc pressit huc Danaas quid freta</li>
|
|
||||||
<li>Soror ego</li>
|
|
||||||
<li>Luctus linguam saxa ultroque prior Tatiumque inquit</li>
|
|
||||||
<li>Saepe liquitur subita superata dederat Anius sudor</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id=cum-honorum-latona>
|
|
||||||
Cum honorum Latona
|
|
||||||
<a class=anchor href=#cum-honorum-latona>#</a>
|
|
||||||
</h2>
|
|
||||||
<p>O fallor <a href=http://www.spectataharundine.org/aquas-relinquit.html>in sustinui
|
|
||||||
iussorum</a> equidem.
|
|
||||||
Nymphae operi oris alii fronde parens dumque, in auro ait mox ingenti proxima
|
|
||||||
iamdudum maius?</p>
|
|
||||||
<pre><code>reality(burnDocking(apache_nanometer),
|
|
||||||
pad.property_data_programming.sectorBrowserPpga(dataMask, 37,
|
|
||||||
recycleRup));
|
|
||||||
intellectualVaporwareUser += -5 * 4;
|
|
||||||
traceroute_key_upnp /= lag_optical(android.smb(thyristorTftp));
|
|
||||||
surge_host_golden = mca_compact_device(dual_dpi_opengl, 33,
|
|
||||||
commerce_add_ppc);
|
|
||||||
if (lun_ipv) {
|
|
||||||
verticalExtranet(1, thumbnail_ttl, 3);
|
|
||||||
bar_graphics_jpeg(chipset - sector_xmp_beta);
|
|
||||||
}
|
|
||||||
</code></pre>
|
|
||||||
<h2 id=fronde-cetera-dextrae-sequens-pennis-voce-muneris>
|
|
||||||
Fronde cetera dextrae sequens pennis voce muneris
|
|
||||||
<a class=anchor href=#fronde-cetera-dextrae-sequens-pennis-voce-muneris>#</a>
|
|
||||||
</h2>
|
|
||||||
<p>Acta cretus diem restet utque; move integer, oscula non inspirat, noctisque
|
|
||||||
scelus! Nantemque in suas vobis quamvis, et labori!</p>
|
|
||||||
<pre><code>var runtimeDiskCompiler = home - array_ad_software;
|
|
||||||
if (internic > disk) {
|
|
||||||
emoticonLockCron += 37 + bps - 4;
|
|
||||||
wan_ansi_honeypot.cardGigaflops = artificialStorageCgi;
|
|
||||||
simplex -= downloadAccess;
|
|
||||||
}
|
|
||||||
var volumeHardeningAndroid = pixel + tftp + onProcessorUnmount;
|
|
||||||
sector(memory(firewire + interlaced, wired));</code></pre>
|
|
||||||
</article>
|
|
||||||
<footer class=book-footer>
|
|
||||||
<div class="flex flex-wrap justify-between">
|
|
||||||
</div>
|
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
|
||||||
</footer>
|
|
||||||
<div class=book-comments>
|
|
||||||
</div>
|
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
|
||||||
</div>
|
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#latent-te-facies>Latent te facies</a></li>
|
|
||||||
<li><a href=#cum-honorum-latona>Cum honorum Latona</a></li>
|
|
||||||
<li><a href=#fronde-cetera-dextrae-sequens-pennis-voce-muneris>Fronde cetera dextrae sequens pennis voce muneris</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -8,13 +8,13 @@
|
|||||||
<meta property="og:description" content>
|
<meta property="og:description" content>
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/">
|
||||||
<title>Table of content | WiTTY: Web-based interactive TTY</title>
|
<title>Table of content | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/docs/index.xml title="WiTTY: Web-based interactive TTY">
|
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/docs/index.xml title=WiTTY>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -24,7 +24,7 @@
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -61,26 +61,22 @@
|
|||||||
</label>
|
</label>
|
||||||
<strong>Table of content</strong>
|
<strong>Table of content</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown></article>
|
<article class=markdown></article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/cff6bb968e067e1c82a63ab27fefb6b6346a819e title="Last modified by Zhi Wang | February 6, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 6, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -1,13 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Table of content on WiTTY: Web-based interactive TTY</title><link>https://syssecfsu.github.io/witty/docs/</link><description>Recent content in Table of content on WiTTY: Web-based interactive TTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://syssecfsu.github.io/witty/docs/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/install/</guid><description>Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSl (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Table of content on WiTTY</title><link>https://syssecfsu.github.io/witty/docs/</link><description>Recent content in Table of content on WiTTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://syssecfsu.github.io/witty/docs/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/install/</guid><description>Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSL2 (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
||||||
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
||||||
Download the release for your system
|
Download the release for your system
|
||||||
Decompress the binary with the following command at selected location.
|
Decompress the binary with the following command at selected location.
|
||||||
tar -xzvf releasevxxx_xxx.tar.gz
|
tar -xzvf witty_vx.x.x_xxx.tar.gz
|
||||||
From Source Code Install the go compiler.</description></item><item><title>User Interface</title><link>https://syssecfsu.github.io/witty/docs/ui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/ui/</guid><description>Sub-commands # Similar to git and apt, WiTTY uses sub-commands for its various functions. WiTTY currently supports the following sub-commands: adduser, deluser, listusers, replay, merge, run.
|
For example, use tar -xzvf witty_v1.</description></item><item><title>User Interface</title><link>https://syssecfsu.github.io/witty/docs/ui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/ui/</guid><description>Sub-commands # Similar to git and apt, WiTTY uses sub-commands for its various functions. WiTTY currently supports the following sub-commands: adduser, deluser, listusers, replay, merge, run.
|
||||||
Sub-command Description adduser Add/update an authenticated user with their password deluser Delete an authenticated user listusers List all the authenticated users replay Replay a recorded session (set your terminal to 120x36 first) merge Merge several recorded sessions into one session run Run a specified CLI program when user connects with browser Some sub-commands have options.</description></item><item><title>Record Sessions</title><link>https://syssecfsu.github.io/witty/docs/record/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/record/</guid><description>Record Sessions # You can record an ongoing session in the interactive terminal window.
|
Sub-command Description adduser Add/update an authenticated user with their password deluser Delete an authenticated user listusers List all the authenticated users replay Replay a recorded session (set your terminal to 120x36 first) merge Merge several recorded sessions into one session run Run a specified CLI program when user connects with browser Some sub-commands have options.</description></item><item><title>Record Sessions</title><link>https://syssecfsu.github.io/witty/docs/record/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/record/</guid><description>Record Sessions # You can record an ongoing session in the interactive terminal window.
|
||||||
Recorded sessions will be listed in the main window of WiTTY. You can click the button to rename a recorded session. By default, a recorded session is named based on its session ID and the current time, not very meaningful for human. Rename them to something easy to remember, such as task1, task2,&hellip;
|
Recorded sessions will be listed in the main window of WiTTY. You can click the button to rename a recorded session. By default, a recorded session is named based on its session ID and the current time, not very meaningful for human. Rename them to something easy to remember, such as task1, task2,&hellip;
|
||||||
WiTTY provides two sub-commands to merge and replay recorded sessions.</description></item><item><title>VirtualBox</title><link>https://syssecfsu.github.io/witty/docs/vm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/vm/</guid><description>Use WiTTY with SEED VM # The SEED labs provides a number of security hands-on labs. It is a popular security lab course taught at many universities. The SEED labs use VirtualBox to run its VMs (because VirtualBox is cross-platform.)
|
WiTTY provides two sub-commands to merge and replay recorded sessions.</description></item><item><title>VirtualBox</title><link>https://syssecfsu.github.io/witty/docs/vm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/vm/</guid><description>Use WiTTY with SEED VM # The SEED labs provides a number of security hands-on labs. It is a popular security lab course taught at many universities. The SEED labs use VirtualBox to run its VMs (because VirtualBox is cross-platform.)
|
||||||
By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.</description></item><item><title>About</title><link>https://syssecfsu.github.io/witty/docs/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/about/</guid><description>About WiTTY # WiTTY is written in the go programming language, using the Gin web framework, gorilla/websocket, pty, and the wonderful xterm.js! The workflow is simple, the client initiates a terminal window (xterm.js) and creates a websocket with the server, which relays the data between pty and xterm.
|
By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.</description></item><item><title>About</title><link>https://syssecfsu.github.io/witty/docs/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/about/</guid><description>About WiTTY # WiTTY is written in the go programming language, using the Gin web framework, gorilla/websocket, pty, and the wonderful xterm.js! The workflow is simple, the client initiates a terminal window (xterm.js) and creates a websocket with the server, which relays the data between pty and xterm.
|
||||||
The program has been tested on Linux, WSL2, Raspberry Pi 3B (Debian), and MacOSX using Google Chrome, Firefox, and Safari.
|
The program has been tested on Linux, WSL2, Raspberry Pi 3B (Debian), and MacOSX using Google Chrome, Firefox, and Safari.
|
||||||
Most icons were provided by fontawesome under this license.</description></item><item><title/><link>https://syssecfsu.github.io/witty/docs/hidden/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/hidden/</guid><description>This page is hidden in menu # Quondam non pater est dignior ille Eurotas # Latent te facies # Lorem markdownum arma ignoscas vocavit quoque ille texit mandata mentis ultimus, frementes, qui in vel. Hippotades Peleus pennas conscia cuiquam Caeneus quas.
|
Most icons were provided by fontawesome under this license.</description></item></channel></rss>
|
||||||
Pater demittere evincitque reddunt Maxime adhuc pressit huc Danaas quid freta Soror ego Luctus linguam saxa ultroque prior Tatiumque inquit Saepe liquitur subita superata dederat Anius sudor Cum honorum Latona # O fallor in sustinui iussorum equidem.</description></item></channel></rss>
|
|
||||||
@ -2,28 +2,29 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||||
<meta name=description content="Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSl (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
<meta name=description content="Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSL2 (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
||||||
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
||||||
Download the release for your system
|
Download the release for your system
|
||||||
Decompress the binary with the following command at selected location.
|
Decompress the binary with the following command at selected location.
|
||||||
tar -xzvf releasevxxx_xxx.tar.gz
|
tar -xzvf witty_vx.x.x_xxx.tar.gz
|
||||||
From Source Code Install the go compiler.">
|
For example, use tar -xzvf witty_v1.">
|
||||||
<meta name=theme-color content="#FFFFFF">
|
<meta name=theme-color content="#FFFFFF">
|
||||||
<meta name=color-scheme content="light dark"><meta property="og:title" content="Installation">
|
<meta name=color-scheme content="light dark"><meta property="og:title" content="Installation">
|
||||||
<meta property="og:description" content="Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSl (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
<meta property="og:description" content="Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSL2 (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
||||||
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
||||||
Download the release for your system
|
Download the release for your system
|
||||||
Decompress the binary with the following command at selected location.
|
Decompress the binary with the following command at selected location.
|
||||||
tar -xzvf releasevxxx_xxx.tar.gz
|
tar -xzvf witty_vx.x.x_xxx.tar.gz
|
||||||
From Source Code Install the go compiler.">
|
For example, use tar -xzvf witty_v1.">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/install/"><meta property="article:section" content="docs">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/install/"><meta property="article:section" content="docs">
|
||||||
<title>Installation | WiTTY: Web-based interactive TTY</title>
|
<meta property="article:modified_time" content="2022-02-17T08:49:10-05:00">
|
||||||
|
<title>Installation | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -33,7 +34,7 @@ tar -xzvf releasevxxx_xxx.tar.gz
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -70,24 +71,14 @@ tar -xzvf releasevxxx_xxx.tar.gz
|
|||||||
</label>
|
</label>
|
||||||
<strong>Installation</strong>
|
<strong>Installation</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#installation>Installation</a></li>
|
|
||||||
<li><a href=#post-installation-configuration>Post-installation Configuration</a></li>
|
|
||||||
<li><a href=#example-use-case>Example Use Case</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><h2 id=installation>
|
<article class=markdown><h1 id=installation>
|
||||||
Installation
|
Installation
|
||||||
<a class=anchor href=#installation>#</a>
|
<a class=anchor href=#installation>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>WiTTY runs on Linux (ARM and x86), macOS, and WSl (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.</p>
|
<p>WiTTY runs on Linux (ARM and x86), macOS, and WSL2 (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.</p>
|
||||||
<div class=book-tabs><input type=radio class=toggle name=tabs-install_method id=tabs-install_method-0 checked>
|
<div class=book-tabs><input type=radio class=toggle name=tabs-install_method id=tabs-install_method-0 checked>
|
||||||
<label for=tabs-install_method-0>From Binary</label>
|
<label for=tabs-install_method-0>From Binary</label>
|
||||||
<div class="book-tabs-content markdown-inner"><ol>
|
<div class="book-tabs-content markdown-inner"><ol>
|
||||||
@ -99,7 +90,10 @@ Installation
|
|||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Decompress the binary with the following command at selected location.</p>
|
<p>Decompress the binary with the following command at selected location.</p>
|
||||||
<p><code>tar -xzvf releasevxxx_xxx.tar.gz</code></p>
|
<p><code>tar -xzvf witty_vx.x.x_xxx.tar.gz</code></p>
|
||||||
|
<blockquote>
|
||||||
|
<p>For example, use <code>tar -xzvf witty_v1.1.1_linux_amd64.tar.gz</code> to decompress release v1.1.1 for Linux on AMD64.</p>
|
||||||
|
</blockquote>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</div><input type=radio class=toggle name=tabs-install_method id=tabs-install_method-1>
|
</div><input type=radio class=toggle name=tabs-install_method id=tabs-install_method-1>
|
||||||
@ -125,10 +119,10 @@ macOS users can install go with <a href=https://brew.sh/>homebrew</a>. Note that
|
|||||||
WiTTY uses <a href=https://pkg.go.dev/embed>go:embed</a> to embed assets in the binary. Remember to re-build WiTTY after changing templates.
|
WiTTY uses <a href=https://pkg.go.dev/embed>go:embed</a> to embed assets in the binary. Remember to re-build WiTTY after changing templates.
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</div></div>
|
</div></div>
|
||||||
<h2 id=post-installation-configuration>
|
<h1 id=post-installation-configuration>
|
||||||
Post-installation Configuration
|
Post-installation Configuration
|
||||||
<a class=anchor href=#post-installation-configuration>#</a>
|
<a class=anchor href=#post-installation-configuration>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
<p>WiTTY uses TLS to protect its traffic. You can request a free <a href=https://letsencrypt.org/>Let’s Encrypt</a> cert or use a self-signed cert. Here is how to create a self-signed cert in the <code>tls</code> sub-directory:</p>
|
<p>WiTTY uses TLS to protect its traffic. You can request a free <a href=https://letsencrypt.org/>Let’s Encrypt</a> cert or use a self-signed cert. Here is how to create a self-signed cert in the <code>tls</code> sub-directory:</p>
|
||||||
@ -156,14 +150,14 @@ WiTTY normally listens on port 8080. It can be overridden with the <code>-p/-por
|
|||||||
</blockquote>
|
</blockquote>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Connect to the server with your browser at port 8080 or the one specified in step 6, for example</p>
|
<p>Connect to the server with your browser at port 8080 or the one specified in step 3, for example</p>
|
||||||
<p><code>https://<witty_server_ip>:8080</code></p>
|
<p><code>https://<witty_server_ip>:8080</code></p>
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
<h2 id=example-use-case>
|
<h1 id=example-use-case>
|
||||||
Example Use Case
|
Example Use Case
|
||||||
<a class=anchor href=#example-use-case>#</a>
|
<a class=anchor href=#example-use-case>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>WiTTY doesn’t support Windows because Windows doesn’t have <a href=https://en.wikipedia.org/wiki/Pseudoterminal>PTY</a>. You can still use WiTTY to access Windows terminal through a proxy.</p>
|
<p>WiTTY doesn’t support Windows because Windows doesn’t have <a href=https://en.wikipedia.org/wiki/Pseudoterminal>PTY</a>. You can still use WiTTY to access Windows terminal through a proxy.</p>
|
||||||
<p>Here is how to do it. We can run WiTTY on a Raspberry Pi running <a href=https://www.raspberrypi.com/software/>Raspbian</a> (at address <code>192.168.1.2</code>). When a user connects via browser to <code>https://192.168.1.2:9000</code>, WiTTY will start a new <code>ssh</code> session to the Windows machine (at address <code>192.168.1.3</code>) running a SSH server. The command to run WiTTY on the RPI is as follows:</p>
|
<p>Here is how to do it. We can run WiTTY on a Raspberry Pi running <a href=https://www.raspberrypi.com/software/>Raspbian</a> (at address <code>192.168.1.2</code>). When a user connects via browser to <code>https://192.168.1.2:9000</code>, WiTTY will start a new <code>ssh</code> session to the Windows machine (at address <code>192.168.1.3</code>) running a SSH server. The command to run WiTTY on the RPI is as follows:</p>
|
||||||
<p><code>./witty run -p 9000 ssh 192.168.1.3 -l user_name</code></p>
|
<p><code>./witty run -p 9000 ssh 192.168.1.3 -l user_name</code></p>
|
||||||
@ -172,12 +166,17 @@ Example Use Case
|
|||||||
<script>mermaid.initialize({flowchart:{useMaxWidth:!0},theme:"default"})</script>
|
<script>mermaid.initialize({flowchart:{useMaxWidth:!0},theme:"default"})</script>
|
||||||
<p class=mermaid>
|
<p class=mermaid>
|
||||||
graph LR
|
graph LR
|
||||||
A[user on a phone] -- browser --> B[RPI: 192.168.1.1 <br> runs WiTTY]
|
A[user on a phone] -- browser --> B[RPI: 192.168.1.2 <br> runs WiTTY]
|
||||||
B -- ssh --> C[Windows: 192.168.1.2 <br> runs SSH server ]
|
B -- ssh --> C[Windows: 192.168.1.3 <br> runs SSH server ]
|
||||||
</p>
|
</p>
|
||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/8564aedad71b12c1f7afcb7b5501b9a818f6d3bb title="Last modified by Zhi Wang | February 17, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 17, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -185,17 +184,6 @@ B -- ssh --> C[Windows: 192.168.1.2 <br> runs SSH server ]
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#installation>Installation</a></li>
|
|
||||||
<li><a href=#post-installation-configuration>Post-installation Configuration</a></li>
|
|
||||||
<li><a href=#example-use-case>Example Use Case</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -12,12 +12,13 @@ Recorded sessions will be listed in the main window of WiTTY. You can click the
|
|||||||
WiTTY provides two sub-commands to merge and replay recorded sessions.">
|
WiTTY provides two sub-commands to merge and replay recorded sessions.">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/record/"><meta property="article:section" content="docs">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/record/"><meta property="article:section" content="docs">
|
||||||
<title>Record Sessions | WiTTY: Web-based interactive TTY</title>
|
<meta property="article:modified_time" content="2022-02-07T21:17:14-05:00">
|
||||||
|
<title>Record Sessions | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -27,7 +28,7 @@ WiTTY provides two sub-commands to merge and replay recorded sessions.">
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -64,12 +65,8 @@ WiTTY provides two sub-commands to merge and replay recorded sessions.">
|
|||||||
</label>
|
</label>
|
||||||
<strong>Record Sessions</strong>
|
<strong>Record Sessions</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><h1 id=record-sessions>
|
<article class=markdown><h1 id=record-sessions>
|
||||||
Record Sessions
|
Record Sessions
|
||||||
@ -86,7 +83,7 @@ Record Sessions
|
|||||||
</ul>
|
</ul>
|
||||||
<p>Recorded sessions often have long delay between outputs. You can set <code>wait_time</code> of the <code>replay</code> command to limit the maximum wait time between outputs, to speed up the replay.</p>
|
<p>Recorded sessions often have long delay between outputs. You can set <code>wait_time</code> of the <code>replay</code> command to limit the maximum wait time between outputs, to speed up the replay.</p>
|
||||||
<p>The following screenshot shows how to use <code>witty merge</code> to merge three recorded sessions into <code>alltasks.scr</code>.</p>
|
<p>The following screenshot shows how to use <code>witty merge</code> to merge three recorded sessions into <code>alltasks.scr</code>.</p>
|
||||||
<img src=https://syssecfsu.github.io/witty/static/img/merge.png width=640px>
|
<p><img src=https://syssecfsu.github.io/witty/static/img/merge.png alt=img></p>
|
||||||
<blockquote class="book-hint info">
|
<blockquote class="book-hint info">
|
||||||
The intended use of this is to record a separate session for each individual task, rename and merge them into a final session for submission to a project.
|
The intended use of this is to record a separate session for each individual task, rename and merge them into a final session for submission to a project.
|
||||||
</blockquote>
|
</blockquote>
|
||||||
@ -96,6 +93,11 @@ All the recorded sessions are located under the <code>records</code> directory.
|
|||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/8fbf423e33318bbb3ab7eaf94c82ccced9ff7470 title="Last modified by Zhi Wang | February 7, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 7, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -103,11 +105,6 @@ All the recorded sessions are located under the <code>records</code> directory.
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -10,12 +10,13 @@
|
|||||||
Sub-command Description adduser Add/update an authenticated user with their password deluser Delete an authenticated user listusers List all the authenticated users replay Replay a recorded session (set your terminal to 120x36 first) merge Merge several recorded sessions into one session run Run a specified CLI program when user connects with browser Some sub-commands have options.">
|
Sub-command Description adduser Add/update an authenticated user with their password deluser Delete an authenticated user listusers List all the authenticated users replay Replay a recorded session (set your terminal to 120x36 first) merge Merge several recorded sessions into one session run Run a specified CLI program when user connects with browser Some sub-commands have options.">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/ui/"><meta property="article:section" content="docs">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/ui/"><meta property="article:section" content="docs">
|
||||||
<title>User Interface | WiTTY: Web-based interactive TTY</title>
|
<meta property="article:modified_time" content="2022-02-07T21:17:14-05:00">
|
||||||
|
<title>User Interface | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -25,7 +26,7 @@
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -62,23 +63,13 @@
|
|||||||
</label>
|
</label>
|
||||||
<strong>User Interface</strong>
|
<strong>User Interface</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#sub-commands>Sub-commands</a></li>
|
|
||||||
<li><a href=#user-authentication>User Authentication</a></li>
|
|
||||||
<li><a href=#web-interface-witty-run>Web Interface (witty run)</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><h2 id=sub-commands>
|
<article class=markdown><h1 id=sub-commands>
|
||||||
Sub-commands
|
Sub-commands
|
||||||
<a class=anchor href=#sub-commands>#</a>
|
<a class=anchor href=#sub-commands>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>Similar to <code>git</code> and <code>apt</code>, WiTTY uses sub-commands for its various functions. WiTTY currently supports the following sub-commands: <code>adduser</code>, <code>deluser</code>, <code>listusers</code>, <code>replay</code>, <code>merge</code>, <code>run</code>.</p>
|
<p>Similar to <code>git</code> and <code>apt</code>, WiTTY uses sub-commands for its various functions. WiTTY currently supports the following sub-commands: <code>adduser</code>, <code>deluser</code>, <code>listusers</code>, <code>replay</code>, <code>merge</code>, <code>run</code>.</p>
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
@ -128,10 +119,10 @@ Usage of run:
|
|||||||
Max wait time between outputs (default 1000)
|
Max wait time between outputs (default 1000)
|
||||||
-wait uint
|
-wait uint
|
||||||
Max wait time between outputs (default 1000)
|
Max wait time between outputs (default 1000)
|
||||||
</code></pre><h2 id=user-authentication>
|
</code></pre><h1 id=user-authentication>
|
||||||
User Authentication
|
User Authentication
|
||||||
<a class=anchor href=#user-authentication>#</a>
|
<a class=anchor href=#user-authentication>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>WiTTY uses username/password based authentication. The user database is stored in <code>user.db</code> under the main directory of WiTTY. The passwords are salted with 64 bytes of random characters and then hashed using SHA256. In addition, passwords must be 12 bytes or longer. WiTTY provides three sub-commands to manage <code>user.db</code>.</p>
|
<p>WiTTY uses username/password based authentication. The user database is stored in <code>user.db</code> under the main directory of WiTTY. The passwords are salted with 64 bytes of random characters and then hashed using SHA256. In addition, passwords must be 12 bytes or longer. WiTTY provides three sub-commands to manage <code>user.db</code>.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>witty adduser <username></code></li>
|
<li><code>witty adduser <username></code></li>
|
||||||
@ -139,10 +130,10 @@ User Authentication
|
|||||||
<li><code>witty listusers</code></li>
|
<li><code>witty listusers</code></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>They are pretty self-explanatory. Just follow the instructions on screen.</p>
|
<p>They are pretty self-explanatory. Just follow the instructions on screen.</p>
|
||||||
<h2 id=web-interface-witty-run>
|
<h1 id=web-interface-witty-run>
|
||||||
Web Interface (witty run)
|
Web Interface (witty run)
|
||||||
<a class=anchor href=#web-interface-witty-run>#</a>
|
<a class=anchor href=#web-interface-witty-run>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>The web interface of WiTTY is mostly self-explanatory. After login, the user is presented with the main interface, as shown in this screenshot:</p>
|
<p>The web interface of WiTTY is mostly self-explanatory. After login, the user is presented with the main interface, as shown in this screenshot:</p>
|
||||||
<p><img src=https://syssecfsu.github.io/witty/static/img/main.png alt=img></p>
|
<p><img src=https://syssecfsu.github.io/witty/static/img/main.png alt=img></p>
|
||||||
<p>There are two tabs that list live and recorded sessions, respectively. You can click <code>New Session</code> to create a new interactive session, which opens in a new browser tab. The main window will list the newly created interactive session similar to the follows:</p>
|
<p>There are two tabs that list live and recorded sessions, respectively. You can click <code>New Session</code> to create a new interactive session, which opens in a new browser tab. The main window will list the newly created interactive session similar to the follows:</p>
|
||||||
@ -152,11 +143,16 @@ Web Interface (witty run)
|
|||||||
<p><img src=https://syssecfsu.github.io/witty/static/img/interactive.png alt=img></p>
|
<p><img src=https://syssecfsu.github.io/witty/static/img/interactive.png alt=img></p>
|
||||||
<p>After a session has been recorded, the main window’s <code>Recorded Sessions</code> will list the records, as shown below. You can replay <img src=https://syssecfsu.github.io/witty/static/img/play.svg width=16px>, download <img src=https://syssecfsu.github.io/witty/static/img/download.svg width=16px>, rename <img src=https://syssecfsu.github.io/witty/static/img/edit.svg width=16px>, and delete <img src=https://syssecfsu.github.io/witty/static/img/delete.svg width=16px> recorded sessions.</p>
|
<p>After a session has been recorded, the main window’s <code>Recorded Sessions</code> will list the records, as shown below. You can replay <img src=https://syssecfsu.github.io/witty/static/img/play.svg width=16px>, download <img src=https://syssecfsu.github.io/witty/static/img/download.svg width=16px>, rename <img src=https://syssecfsu.github.io/witty/static/img/edit.svg width=16px>, and delete <img src=https://syssecfsu.github.io/witty/static/img/delete.svg width=16px> recorded sessions.</p>
|
||||||
<p><img src=https://syssecfsu.github.io/witty/static/img/main3.png alt=img></p>
|
<p><img src=https://syssecfsu.github.io/witty/static/img/main3.png alt=img></p>
|
||||||
<p>Here is a screencast where we replay a recorded session that updates the <a href=https://pi-hole.net/>pi-hole</a> system. You can fully control the playback using the progress bar. Clicking on the progress bar stops the replay and fast-forwards (or fast-backwards) the screen to that location. You can scroll the screen to view the history when replay is stopped or resume the replay.</p>
|
<p>Here is a screencast where we replay a recorded session that updates the <a href=https://pi-hole.net/>pi-hole</a> system. You can fully control the playback using the progress bar. Clicking on the progress bar stops the replay and fast-forwards (or fast-backwards) the screen to that location. You can scroll the screen to view the history when replay is stopped and resume the replay.</p>
|
||||||
<p><img src=https://syssecfsu.github.io/witty/static/img/replay.gif width=720px> </p>
|
<p><img src=https://syssecfsu.github.io/witty/static/img/replay.gif alt=img></p>
|
||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/8fbf423e33318bbb3ab7eaf94c82ccced9ff7470 title="Last modified by Zhi Wang | February 7, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 7, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -164,17 +160,6 @@ Web Interface (witty run)
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#sub-commands>Sub-commands</a></li>
|
|
||||||
<li><a href=#user-authentication>User Authentication</a></li>
|
|
||||||
<li><a href=#web-interface-witty-run>Web Interface (witty run)</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -10,12 +10,13 @@ By default, the SEED VM uses only NAT-based network, which means that the VM can
|
|||||||
By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.">
|
By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/vm/"><meta property="article:section" content="docs">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/docs/vm/"><meta property="article:section" content="docs">
|
||||||
<title>VirtualBox | WiTTY: Web-based interactive TTY</title>
|
<meta property="article:modified_time" content="2022-02-07T12:30:17-05:00">
|
||||||
|
<title>VirtualBox | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -25,7 +26,7 @@ By default, the SEED VM uses only NAT-based network, which means that the VM can
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -62,31 +63,31 @@ By default, the SEED VM uses only NAT-based network, which means that the VM can
|
|||||||
</label>
|
</label>
|
||||||
<strong>VirtualBox</strong>
|
<strong>VirtualBox</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#use-witty-with-seed-vm>Use WiTTY with SEED VM</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><h2 id=use-witty-with-seed-vm>
|
<article class=markdown><h1 id=use-witty-with-seed-vm>
|
||||||
Use WiTTY with SEED VM
|
Use WiTTY with SEED VM
|
||||||
<a class=anchor href=#use-witty-with-seed-vm>#</a>
|
<a class=anchor href=#use-witty-with-seed-vm>#</a>
|
||||||
</h2>
|
</h1>
|
||||||
<p>The <a href=https://seedsecuritylabs.org/Labs_20.04/>SEED labs</a> provides a number of security hands-on labs. It is a popular security lab course taught at many universities. The SEED labs use <a href=https://www.virtualbox.org/>VirtualBox</a> to run its VMs (because VirtualBox is cross-platform.)</p>
|
<p>The <a href=https://seedsecuritylabs.org/Labs_20.04/>SEED labs</a> provides a number of security hands-on labs. It is a popular security lab course taught at many universities. The SEED labs use <a href=https://www.virtualbox.org/>VirtualBox</a> to run its VMs (because VirtualBox is cross-platform.)</p>
|
||||||
<p>By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.) We need to add a second, host-only network adaptor in order to run WiTTY in the guest and access WiTTY from a browser in the host.</p>
|
<p>By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.) We need to add a second, host-only network adaptor in order to run WiTTY in the guest and access WiTTY from a browser in the host.</p>
|
||||||
<p>To do that, first open the <code>Host Network Manager</code> and create a host network if there is not one already, as shown below (on macOS):
|
<p>To do that, first open the <code>Host Network Manager</code> and create a host network if there is not one already, as shown below (on macOS.):
|
||||||
<img src=https://syssecfsu.github.io/witty/static/img/host.png alt=img></p>
|
<img src=https://syssecfsu.github.io/witty/static/img/host.png alt=img></p>
|
||||||
<p>Then, open the setting for the SEED VM, go to the Network setting, and enable the second adaptor, choose the <code>host-only</code> adaptor. Leave the first adaptor as is.</p>
|
<p>Then, open the setting for the SEED VM, go to the Network setting, and enable the second adaptor, choose the <code>host-only</code> adaptor. Leave the first adaptor as is.</p>
|
||||||
<p><img src=https://syssecfsu.github.io/witty/static/img/adapter2.png alt=img></p>
|
<p><img src=https://syssecfsu.github.io/witty/static/img/adapter2.png alt=img></p>
|
||||||
<p>After this, start the VM and list all the adaptors using the command <code>ifconfig</code> in a terminal. Look for the adaptor with an IP address starting with <code>192.168.</code>. You should be able to ssh into the guest using this IP address from the host.</p>
|
<p>After this, start the VM and list all the adaptors using the command <code>ifconfig</code> in a terminal. Look for the adaptor with an IP address starting with <code>192.168.</code>. You should be able to ssh into the guest using this IP address from the host. Follow the instruction <a href=https://syssecfsu.github.io/witty/docs/install/>here</a> to install and use WiTTY.</p>
|
||||||
|
<blockquote class="book-hint info">
|
||||||
|
If the host runs Windows, make sure virtualbox host adapter is not disabled in the Windows network settings if VirtualBox cannot find the host-only Ethernet adapter.
|
||||||
|
</blockquote>
|
||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/924a38a5d2aae36483f97d8669c89b57a01031de title="Last modified by Zhi Wang | February 7, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 7, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -94,15 +95,6 @@ Use WiTTY with SEED VM
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents>
|
|
||||||
<ul>
|
|
||||||
<li><a href=#use-witty-with-seed-vm>Use WiTTY with SEED VM</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
'use strict';(function(){const g='/en.search-data.min.aef7c3dce499f6fbc6dc37f0c7211de7c96f8246746f83000032c59cce445ecf.json',h=Object.assign({cache:!0},{doc:{id:'id',field:['title','content'],store:['title','href','section']}}),a=document.querySelector('#book-search-input'),b=document.querySelector('#book-search-results');if(!a)return;a.addEventListener('focus',c),a.addEventListener('keyup',d),document.addEventListener('keypress',e);function e(b){if(b.target.value!==void 0)return;if(a===document.activeElement)return;const c=String.fromCharCode(b.charCode);if(!f(c))return;a.focus(),b.preventDefault()}function f(b){const c=a.getAttribute('data-hotkeys')||'';return c.indexOf(b)>=0}function c(){a.removeEventListener('focus',c),a.required=!0,fetch(g).then(a=>a.json()).then(a=>{window.bookSearchIndex=FlexSearch.create('balance',h),window.bookSearchIndex.add(a)}).then(()=>a.required=!1).then(d)}function d(){while(b.firstChild)b.removeChild(b.firstChild);if(!a.value)return;const c=window.bookSearchIndex.search(a.value,10);c.forEach(function(a){const c=i('<li><a href></a><small></small></li>'),d=c.querySelector('a'),e=c.querySelector('small');d.href=a.href,d.textContent=a.title,e.textContent=a.section,b.appendChild(c)})}function i(b){const a=document.createElement('div');return a.innerHTML=b,a.firstChild}})()
|
'use strict';(function(){const g='/en.search-data.min.6b854d792c3149a3e9d7fea498d4a129d5bb011901e75102f72de2c52e379737.json',h=Object.assign({cache:!0},{doc:{id:'id',field:['title','content'],store:['title','href','section']}}),a=document.querySelector('#book-search-input'),b=document.querySelector('#book-search-results');if(!a)return;a.addEventListener('focus',c),a.addEventListener('keyup',d),document.addEventListener('keypress',e);function e(b){if(b.target.value!==void 0)return;if(a===document.activeElement)return;const c=String.fromCharCode(b.charCode);if(!f(c))return;a.focus(),b.preventDefault()}function f(b){const c=a.getAttribute('data-hotkeys')||'';return c.indexOf(b)>=0}function c(){a.removeEventListener('focus',c),a.required=!0,fetch(g).then(a=>a.json()).then(a=>{window.bookSearchIndex=FlexSearch.create('balance',h),window.bookSearchIndex.add(a)}).then(()=>a.required=!1).then(d)}function d(){while(b.firstChild)b.removeChild(b.firstChild);if(!a.value)return;const c=window.bookSearchIndex.search(a.value,10);c.forEach(function(a){const c=i('<li><a href></a><small></small></li>'),d=c.querySelector('a'),e=c.querySelector('small');d.href=a.href,d.textContent=a.title,e.textContent=a.section,b.appendChild(c)})}function i(b){const a=document.createElement('div');return a.innerHTML=b,a.firstChild}})()
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<!doctype html><html lang=en-us dir=ltr>
|
<!doctype html><html lang=en-us dir=ltr>
|
||||||
<head>
|
<head>
|
||||||
<meta name=generator content="Hugo 0.92.1">
|
<meta name=generator content="Hugo 0.92.2">
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||||
<meta name=description content="Introduction # WiTTY is a cross-platform, open-source, web-based terminal emulator. It exports the terminal interface on the server (i.e., where WiTTY runs) to the browser. Simply run WiTTY on a computer and give it the command to execute when users connect via the browser. WiTTY has the following features that distinguish itself from other similar tools:
|
<meta name=description content="Introduction # WiTTY is a cross-platform, open-source, web-based terminal emulator. It exports the terminal interface on the server (i.e., where WiTTY runs) to the browser. Simply run WiTTY on a computer and give it the command to execute when users connect via the browser. WiTTY has the following features that distinguish itself from other similar tools:
|
||||||
@ -10,13 +10,13 @@
|
|||||||
<meta property="og:description" content>
|
<meta property="og:description" content>
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/">
|
||||||
<title>Introduction | WiTTY: Web-based interactive TTY</title>
|
<title>Introduction | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/index.xml title="WiTTY: Web-based interactive TTY">
|
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/index.xml title=WiTTY>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -63,18 +63,14 @@
|
|||||||
</label>
|
</label>
|
||||||
<strong>Introduction</strong>
|
<strong>Introduction</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><h1 id=introduction>
|
<article class=markdown><h1 id=introduction>
|
||||||
Introduction
|
Introduction
|
||||||
<a class=anchor href=#introduction>#</a>
|
<a class=anchor href=#introduction>#</a>
|
||||||
</h1>
|
</h1>
|
||||||
<p>WiTTY is a cross-platform, open-source, web-based terminal emulator. It exports the terminal interface on the server (i.e., where WiTTY runs) to the browser. Simply run WiTTY on a computer and give it the command to execute when users connect via the browser. WiTTY has the following features that distinguish itself from other similar tools:</p>
|
<p><a href=https://github.com/syssecfsu/witty>WiTTY</a> is a cross-platform, open-source, web-based terminal emulator. It exports the terminal interface on the server (i.e., where WiTTY runs) to the browser. Simply run WiTTY on a computer and give it the command to execute when users connect via the browser. WiTTY has the following features that distinguish itself from other similar tools:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
<p>WiTTY allows users to <strong>easily record, replay, and share console sessions</strong> with just a few clicks.</p>
|
<p>WiTTY allows users to <strong>easily record, replay, and share console sessions</strong> with just a few clicks.</p>
|
||||||
@ -99,6 +95,11 @@ Instructors can also record their demos in WiTTY and send them to students. Stud
|
|||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/924a38a5d2aae36483f97d8669c89b57a01031de title="Last modified by Zhi Wang | February 7, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 7, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -106,11 +107,6 @@ Instructors can also record their demos in WiTTY and send them to students. Stud
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -1,13 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Introduction on WiTTY: Web-based interactive TTY</title><link>https://syssecfsu.github.io/witty/</link><description>Recent content in Introduction on WiTTY: Web-based interactive TTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://syssecfsu.github.io/witty/docs/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/install/</guid><description>Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSl (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Introduction on WiTTY</title><link>https://syssecfsu.github.io/witty/</link><description>Recent content in Introduction on WiTTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://syssecfsu.github.io/witty/docs/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/install/</guid><description>Installation # WiTTY runs on Linux (ARM and x86), macOS, and WSL2 (Windows subsystem for Linux, basically Linux). You can install from the pre-built binary or from the source code.
|
||||||
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
From Binary Visit the release page of WiTTY at https://github.com/syssecfsu/witty/releases
|
||||||
Download the release for your system
|
Download the release for your system
|
||||||
Decompress the binary with the following command at selected location.
|
Decompress the binary with the following command at selected location.
|
||||||
tar -xzvf releasevxxx_xxx.tar.gz
|
tar -xzvf witty_vx.x.x_xxx.tar.gz
|
||||||
From Source Code Install the go compiler.</description></item><item><title>User Interface</title><link>https://syssecfsu.github.io/witty/docs/ui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/ui/</guid><description>Sub-commands # Similar to git and apt, WiTTY uses sub-commands for its various functions. WiTTY currently supports the following sub-commands: adduser, deluser, listusers, replay, merge, run.
|
For example, use tar -xzvf witty_v1.</description></item><item><title>User Interface</title><link>https://syssecfsu.github.io/witty/docs/ui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/ui/</guid><description>Sub-commands # Similar to git and apt, WiTTY uses sub-commands for its various functions. WiTTY currently supports the following sub-commands: adduser, deluser, listusers, replay, merge, run.
|
||||||
Sub-command Description adduser Add/update an authenticated user with their password deluser Delete an authenticated user listusers List all the authenticated users replay Replay a recorded session (set your terminal to 120x36 first) merge Merge several recorded sessions into one session run Run a specified CLI program when user connects with browser Some sub-commands have options.</description></item><item><title>Record Sessions</title><link>https://syssecfsu.github.io/witty/docs/record/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/record/</guid><description>Record Sessions # You can record an ongoing session in the interactive terminal window.
|
Sub-command Description adduser Add/update an authenticated user with their password deluser Delete an authenticated user listusers List all the authenticated users replay Replay a recorded session (set your terminal to 120x36 first) merge Merge several recorded sessions into one session run Run a specified CLI program when user connects with browser Some sub-commands have options.</description></item><item><title>Record Sessions</title><link>https://syssecfsu.github.io/witty/docs/record/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/record/</guid><description>Record Sessions # You can record an ongoing session in the interactive terminal window.
|
||||||
Recorded sessions will be listed in the main window of WiTTY. You can click the button to rename a recorded session. By default, a recorded session is named based on its session ID and the current time, not very meaningful for human. Rename them to something easy to remember, such as task1, task2,&hellip;
|
Recorded sessions will be listed in the main window of WiTTY. You can click the button to rename a recorded session. By default, a recorded session is named based on its session ID and the current time, not very meaningful for human. Rename them to something easy to remember, such as task1, task2,&hellip;
|
||||||
WiTTY provides two sub-commands to merge and replay recorded sessions.</description></item><item><title>VirtualBox</title><link>https://syssecfsu.github.io/witty/docs/vm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/vm/</guid><description>Use WiTTY with SEED VM # The SEED labs provides a number of security hands-on labs. It is a popular security lab course taught at many universities. The SEED labs use VirtualBox to run its VMs (because VirtualBox is cross-platform.)
|
WiTTY provides two sub-commands to merge and replay recorded sessions.</description></item><item><title>VirtualBox</title><link>https://syssecfsu.github.io/witty/docs/vm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/vm/</guid><description>Use WiTTY with SEED VM # The SEED labs provides a number of security hands-on labs. It is a popular security lab course taught at many universities. The SEED labs use VirtualBox to run its VMs (because VirtualBox is cross-platform.)
|
||||||
By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.</description></item><item><title>About</title><link>https://syssecfsu.github.io/witty/docs/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/about/</guid><description>About WiTTY # WiTTY is written in the go programming language, using the Gin web framework, gorilla/websocket, pty, and the wonderful xterm.js! The workflow is simple, the client initiates a terminal window (xterm.js) and creates a websocket with the server, which relays the data between pty and xterm.
|
By default, the SEED VM uses only NAT-based network, which means that the VM can access the Internet but not the host machine (i.e., the machine that runs VirtualBox is called the host, and the VM is often called the guest.</description></item><item><title>About</title><link>https://syssecfsu.github.io/witty/docs/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/about/</guid><description>About WiTTY # WiTTY is written in the go programming language, using the Gin web framework, gorilla/websocket, pty, and the wonderful xterm.js! The workflow is simple, the client initiates a terminal window (xterm.js) and creates a websocket with the server, which relays the data between pty and xterm.
|
||||||
The program has been tested on Linux, WSL2, Raspberry Pi 3B (Debian), and MacOSX using Google Chrome, Firefox, and Safari.
|
The program has been tested on Linux, WSL2, Raspberry Pi 3B (Debian), and MacOSX using Google Chrome, Firefox, and Safari.
|
||||||
Most icons were provided by fontawesome under this license.</description></item><item><title/><link>https://syssecfsu.github.io/witty/docs/hidden/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/docs/hidden/</guid><description>This page is hidden in menu # Quondam non pater est dignior ille Eurotas # Latent te facies # Lorem markdownum arma ignoscas vocavit quoque ille texit mandata mentis ultimus, frementes, qui in vel. Hippotades Peleus pennas conscia cuiquam Caeneus quas.
|
Most icons were provided by fontawesome under this license.</description></item><item><title/><link>https://syssecfsu.github.io/witty/menu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/menu/</guid><description> Installation User Interface Record Sessions VirtualBox About</description></item></channel></rss>
|
||||||
Pater demittere evincitque reddunt Maxime adhuc pressit huc Danaas quid freta Soror ego Luctus linguam saxa ultroque prior Tatiumque inquit Saepe liquitur subita superata dederat Anius sudor Cum honorum Latona # O fallor in sustinui iussorum equidem.</description></item><item><title/><link>https://syssecfsu.github.io/witty/menu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://syssecfsu.github.io/witty/menu/</guid><description> Manual Installation UI Record VM About</description></item></channel></rss>
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "WiTTY: Web-based interactive TTY",
|
"name": "WiTTY",
|
||||||
"short_name": "WiTTY: Web-based interactive TTY",
|
"short_name": "WiTTY",
|
||||||
"start_url": "/",
|
"start_url": "/",
|
||||||
"scope": "/",
|
"scope": "/",
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
|
|||||||
@ -2,18 +2,19 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta name=viewport content="width=device-width,initial-scale=1">
|
<meta name=viewport content="width=device-width,initial-scale=1">
|
||||||
<meta name=description content=" Manual Installation UI Record VM About ">
|
<meta name=description content=" Installation User Interface Record Sessions VirtualBox About ">
|
||||||
<meta name=theme-color content="#FFFFFF">
|
<meta name=theme-color content="#FFFFFF">
|
||||||
<meta name=color-scheme content="light dark"><meta property="og:title" content>
|
<meta name=color-scheme content="light dark"><meta property="og:title" content>
|
||||||
<meta property="og:description" content=" Manual Installation UI Record VM About ">
|
<meta property="og:description" content=" Installation User Interface Record Sessions VirtualBox About ">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/menu/"><meta property="article:section" content>
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/menu/"><meta property="article:section" content>
|
||||||
<title>Index | WiTTY: Web-based interactive TTY</title>
|
<meta property="article:modified_time" content="2022-02-07T12:30:17-05:00">
|
||||||
|
<title>Index | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -23,7 +24,7 @@
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -60,25 +61,25 @@
|
|||||||
</label>
|
</label>
|
||||||
<strong>Index</strong>
|
<strong>Index</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<article class=markdown><ul>
|
<article class=markdown><ul>
|
||||||
<li><a href=https://syssecfsu.github.io/witty/docs/>Manual</a></li>
|
|
||||||
<li><a href=https://syssecfsu.github.io/witty/docs/install/>Installation</a></li>
|
<li><a href=https://syssecfsu.github.io/witty/docs/install/>Installation</a></li>
|
||||||
<li><a href=https://syssecfsu.github.io/witty/docs/ui/>UI</a></li>
|
<li><a href=https://syssecfsu.github.io/witty/docs/ui/>User Interface</a></li>
|
||||||
<li><a href=https://syssecfsu.github.io/witty/docs/record/>Record</a></li>
|
<li><a href=https://syssecfsu.github.io/witty/docs/record/>Record Sessions</a></li>
|
||||||
<li><a href=https://syssecfsu.github.io/witty/docs/vm/>VM</a></li>
|
<li><a href=https://syssecfsu.github.io/witty/docs/vm/>VirtualBox</a></li>
|
||||||
<li><a href=https://syssecfsu.github.io/witty/docs/about/>About</a>
|
<li><a href=https://syssecfsu.github.io/witty/docs/about/>About</a>
|
||||||
<br></li>
|
<br></li>
|
||||||
</ul>
|
</ul>
|
||||||
</article>
|
</article>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
|
<div><a class="flex align-center" href=https://github.com/syssecfsu/witty-docs/commit/924a38a5d2aae36483f97d8669c89b57a01031de title="Last modified by Zhi Wang | February 7, 2022" target=_blank rel=noopener>
|
||||||
|
<img src=https://syssecfsu.github.io/witty/svg/calendar.svg class=book-icon alt=Calendar>
|
||||||
|
<span>February 7, 2022</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
<script>(function(){function a(c){const a=window.getSelection(),b=document.createRange();b.selectNodeContents(c),a.removeAllRanges(),a.addRange(b)}document.querySelectorAll("pre code").forEach(b=>{b.addEventListener("click",function(c){a(b.parentElement),navigator.clipboard&&navigator.clipboard.writeText(b.parentElement.textContent)})})})()</script>
|
||||||
</footer>
|
</footer>
|
||||||
@ -86,11 +87,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav id=TableOfContents></nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://syssecfsu.github.io/witty/docs/install/</loc></url><url><loc>https://syssecfsu.github.io/witty/docs/</loc></url><url><loc>https://syssecfsu.github.io/witty/docs/ui/</loc></url><url><loc>https://syssecfsu.github.io/witty/docs/record/</loc></url><url><loc>https://syssecfsu.github.io/witty/docs/vm/</loc></url><url><loc>https://syssecfsu.github.io/witty/docs/about/</loc></url><url><loc>https://syssecfsu.github.io/witty/docs/hidden/</loc></url><url><loc>https://syssecfsu.github.io/witty/menu/</loc></url><url><loc>https://syssecfsu.github.io/witty/categories/</loc></url><url><loc>https://syssecfsu.github.io/witty/</loc></url><url><loc>https://syssecfsu.github.io/witty/tags/</loc></url></urlset>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://syssecfsu.github.io/witty/docs/install/</loc><lastmod>2022-02-17T08:49:10-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/docs/</loc><lastmod>2022-02-06T13:48:21-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/docs/ui/</loc><lastmod>2022-02-07T21:17:14-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/docs/record/</loc><lastmod>2022-02-07T21:17:14-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/docs/vm/</loc><lastmod>2022-02-07T12:30:17-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/docs/about/</loc><lastmod>2022-02-06T20:15:40-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/menu/</loc><lastmod>2022-02-07T12:30:17-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/categories/</loc></url><url><loc>https://syssecfsu.github.io/witty/</loc><lastmod>2022-02-07T12:30:17-05:00</lastmod></url><url><loc>https://syssecfsu.github.io/witty/tags/</loc></url></urlset>
|
||||||
@ -8,13 +8,13 @@
|
|||||||
<meta property="og:description" content>
|
<meta property="og:description" content>
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:url" content="https://syssecfsu.github.io/witty/tags/">
|
<meta property="og:url" content="https://syssecfsu.github.io/witty/tags/">
|
||||||
<title>Tags | WiTTY: Web-based interactive TTY</title>
|
<title>Tags | WiTTY</title>
|
||||||
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
<link rel=manifest href=https://syssecfsu.github.io/witty/manifest.json>
|
||||||
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
<link rel=icon href=https://syssecfsu.github.io/witty/favicon.png type=image/x-icon>
|
||||||
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.97cfda4f5e3c9fa49a2bf8d401f4ddc0eec576c99cdcf6afbec19173200c37db.css integrity="sha256-l8/aT148n6SaK/jUAfTdwO7Fdsmc3PavvsGRcyAMN9s=" crossorigin=anonymous>
|
<link rel=stylesheet href=https://syssecfsu.github.io/witty/book.min.ce78b1b74b3a1081ebd0d36b0eb48d28d6d6f79be1ed3d41925fcc9a239d7a44.css integrity="sha256-znixt0s6EIHr0NNrDrSNKNbW95vh7T1Bkl/MmiOdekQ=" crossorigin=anonymous>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
<script defer src=https://syssecfsu.github.io/witty/flexsearch.min.js></script>
|
||||||
<script defer src=https://syssecfsu.github.io/witty/en.search.min.6dbfe7631619689d9b1cb375be53995a78dfe7f6d2f67f62e91feec139a6349c.js integrity="sha256-bb/nYxYZaJ2bHLN1vlOZWnjf5/bS9n9i6R/uwTmmNJw=" crossorigin=anonymous></script>
|
<script defer src=https://syssecfsu.github.io/witty/en.search.min.c2e16a8098729d8520f5f13d7a4e43262b74a3ca3c2e8681edd14da9dc145e7e.js integrity="sha256-wuFqgJhynYUg9fE9ek5DJit0o8o8LoaB7dFNqdwUXn4=" crossorigin=anonymous></script>
|
||||||
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/tags/index.xml title="WiTTY: Web-based interactive TTY">
|
<link rel=alternate type=application/rss+xml href=https://syssecfsu.github.io/witty/tags/index.xml title=WiTTY>
|
||||||
</head>
|
</head>
|
||||||
<body dir=ltr>
|
<body dir=ltr>
|
||||||
<input type=checkbox class="hidden toggle" id=menu-control>
|
<input type=checkbox class="hidden toggle" id=menu-control>
|
||||||
@ -24,7 +24,7 @@
|
|||||||
<div class=book-menu-content>
|
<div class=book-menu-content>
|
||||||
<nav>
|
<nav>
|
||||||
<h2 class=book-brand>
|
<h2 class=book-brand>
|
||||||
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><span>WiTTY: Web-based interactive TTY</span>
|
<a class="flex align-center" href=https://syssecfsu.github.io/witty/><img src=https://syssecfsu.github.io/witty/static/img/logo.svg alt=Logo><span>WiTTY</span>
|
||||||
</a>
|
</a>
|
||||||
</h2>
|
</h2>
|
||||||
<div class=book-search>
|
<div class=book-search>
|
||||||
@ -61,25 +61,8 @@
|
|||||||
</label>
|
</label>
|
||||||
<strong>Tags</strong>
|
<strong>Tags</strong>
|
||||||
<label for=toc-control>
|
<label for=toc-control>
|
||||||
<img src=https://syssecfsu.github.io/witty/svg/toc.svg class=book-icon alt="Table of Contents">
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<aside class="hidden clearfix">
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Categories</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Tags</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</aside>
|
|
||||||
</header>
|
</header>
|
||||||
<footer class=book-footer>
|
<footer class=book-footer>
|
||||||
<div class="flex flex-wrap justify-between">
|
<div class="flex flex-wrap justify-between">
|
||||||
@ -88,24 +71,6 @@
|
|||||||
</footer>
|
</footer>
|
||||||
<label for=menu-control class="hidden book-menu-overlay"></label>
|
<label for=menu-control class="hidden book-menu-overlay"></label>
|
||||||
</div>
|
</div>
|
||||||
<aside class=book-toc>
|
|
||||||
<div class=book-toc-content>
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Categories</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class=book-section-flat>
|
|
||||||
<strong>Tags</strong>
|
|
||||||
<ul>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on WiTTY: Web-based interactive TTY</title><link>https://syssecfsu.github.io/witty/tags/</link><description>Recent content in Tags on WiTTY: Web-based interactive TTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on WiTTY</title><link>https://syssecfsu.github.io/witty/tags/</link><description>Recent content in Tags on WiTTY</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://syssecfsu.github.io/witty/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
|
||||||
Loading…
x
Reference in New Issue
Block a user