backy/docs/public/getting-started/config/index.html

356 lines
39 KiB
HTML
Raw Permalink Normal View History

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="generator" content="Hugo 0.110.0">
<meta name="generator" content="Relearn 5.11.2">
<meta name="description" content="This page tells you how to configure Backy.
">
<title>Config File Definitions - A tool for commands</title>
<!-- https://github.com/filamentgroup/loadCSS/blob/master/README.md#how-to-use -->
<link href="/css/fontawesome-all.min.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fontawesome-all.min.css?1676866111" rel="stylesheet"></noscript>
<link href="/css/auto-complete.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/auto-complete.css?1676866111" rel="stylesheet"></noscript>
<link href="/css/perfect-scrollbar.min.css?1676866111" rel="stylesheet">
<link href="/css/nucleus.css?1676866111" rel="stylesheet">
<link href="/css/fonts.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fonts.css?1676866111" rel="stylesheet"></noscript>
<link href="/css/theme.css?1676866111" rel="stylesheet">
<link href="/css/theme-auto.css?1676866111" rel="stylesheet" id="variant-style">
<link href="/css/ie.css?1676866111" rel="stylesheet">
<link href="/css/variant.css?1676866111" rel="stylesheet">
<link href="/css/print.css?1676866111" rel="stylesheet" media="print">
<script src="/js/url.js?1676866111"></script>
<script src="/js/variant.js?1676866111"></script>
<script>
// hack to let hugo tell us how to get to the root when using relativeURLs, it needs to be called *url= for it to do its magic:
// https://github.com/gohugoio/hugo/blob/145b3fcce35fbac25c7033c91c1b7ae6d1179da8/transform/urlreplacers/absurlreplacer.go#L72
window.index_js_url="/index.search.js";
var root_url="/";
var baseUri=root_url.replace(/\/$/, '');
// translations
window.T_Copy_to_clipboard = 'Copy to clipboard';
window.T_Copied_to_clipboard = 'Copied to clipboard!';
window.T_Copy_link_to_clipboard = 'Copy link to clipboard';
window.T_Link_copied_to_clipboard = 'Copied link to clipboard!';
window.T_No_results_found = 'No results found for \u0022{0}\u0022';
window.T_N_results_found = '{1} results found for \u0022{0}\u0022';
// some further base stuff
var baseUriFull='http:\/\/example.org/';
window.variants && variants.init( [ 'auto' ] );
</script>
</head>
<body class="mobile-support html" data-url="/getting-started/config/index.html">
<div id="body" class="default-animation">
<div id="sidebar-overlay"></div>
<div id="toc-overlay"></div>
<nav id="topbar" class="highlightable" dir="ltr">
<div>
<div id="breadcrumbs">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" class="topbar-link" title='Menu (CTRL+ALT+n)'><i class="fas fa-bars fa-fw"></i></a>
</span>
<span id="toc-menu" title='Table of Contents (CTRL+ALT+t)'><i class="fas fa-list-alt fa-fw"></i></span>
<span class="links">
Config File Definitions
</span>
</div>
<div class="default-animation progress">
<div class="toc-wrapper" dir="ltr">
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#commands">Commands</a></li>
<li><a href="#lists">Lists</a></li>
<li><a href="#hosts">Hosts</a></li>
<li><a href="#notifications">Notifications</a></li>
<li><a href="#logging">Logging</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</div>
</nav>
<main id="body-inner" class="highlightable default" tabindex="-1">
<div class="flex-block-wrapper">
<div id="head-tags">
</div>
<article class="default">
<h1 id="config-file-definitions">Config File Definitions</h1>
<h3 id="commands">Commands</h3>
<p>The commands section is for defining commands. These can be run with or without a shell and on a host or locally.</p>
<p>See the <a href="/config/commands">commands documentation</a> for further information.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">commands</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">  stop-docker-container</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">    cmd</span>: <span style="color:#ae81ff">docker</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    args</span>:
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - compose</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - -f /some/path/to/docker-compose.yaml</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - down</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">   </span> <span style="color:#75715e"># if host is not defined, cmd will be run locally</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    host</span>: <span style="color:#ae81ff">some-host </span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">  backup-docker-container-script</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">    cmd</span>: <span style="color:#ae81ff">/path/to/script</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">   </span> <span style="color:#75715e"># The host has to be defined in the config file</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    host</span>: <span style="color:#ae81ff">some-host</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    environment</span>:
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - FOO=BAR</span>
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">    - APP=$VAR</span> <span style="color:#75715e"># defined in .env file in config directory</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">  shell-cmd</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">    cmd</span>: <span style="color:#ae81ff">rsync</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    shell</span>: <span style="color:#ae81ff">bash</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    args</span>:
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - -av</span>
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">some-host:/path/to/data </span>
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">~/Docker/Backups/docker-data</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">  hostname</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">    cmd</span>: <span style="color:#ae81ff">hostname</span>
</span></span></code></pre></div><h3 id="lists">Lists</h3>
<p>To execute groups of commands in sequence, use a list configuration.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">cmd-configs</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">cmds-to-run</span>: <span style="color:#75715e"># this can be any name you want</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># all commands have to be defined</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">order</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">stop-docker-container</span>
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">backup-docker-container-script</span>
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">shell-cmd</span>
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">hostname</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">notifications</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">matrix</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">backup-some-server</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">hostname</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">name</span>: <span style="color:#ae81ff">hostname</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">order</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">hostname</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">notifications</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">prod-email</span>
</span></span></code></pre></div><h3 id="hosts">Hosts</h3>
<p>The hosts object may or may not be defined.</p>
<div class="box notices cstyle info">
<div class="box-label"><i class="fa-fw fas fa-info-circle"></i> Info</div>
<div class="box-content">
<p>If any <code>host</code> from a commands object does not match any <code>host</code> object, the needed values will be checked in the default SSH config files.</p>
</div>
</div>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">hosts</span>:
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># any ssh_config(5) keys/values not listed here will be looked up in the config file or the default config file</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">some-host</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">hostname</span>: <span style="color:#ae81ff">some-hostname</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">config</span>: <span style="color:#ae81ff">~/.ssh/config</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">user</span>: <span style="color:#ae81ff">user</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">privatekeypath</span>: <span style="color:#ae81ff">/path/to/private/key</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">port</span>: <span style="color:#ae81ff">22</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># can also be env:VAR or the password itself</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">password</span>: <span style="color:#ae81ff">file:/path/to/file</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># can also be env:VAR or the password itself</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">privatekeypassword</span>: <span style="color:#ae81ff">file:/path/to/file</span>
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># only one is supported for now</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">proxyjump</span>: <span style="color:#ae81ff">some-proxy-host</span>
</span></span></code></pre></div><h3 id="notifications">Notifications</h3>
<p>The notifications object can have two forms.</p>
<p>For more, <a href="/config/notifications">see the notification object documentation</a>. The top-level map key is id that has to be referenced by the <code>cmd-configs</code> key <code>notifications</code>.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">notifications</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">prod-email</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">type</span>: <span style="color:#ae81ff">mail</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">host</span>: <span style="color:#ae81ff">yourhost.tld</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">port</span>: <span style="color:#ae81ff">587</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">senderAddress</span>: <span style="color:#ae81ff">email@domain.tld</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">recipients</span>:
</span></span><span style="display:flex;"><span> - <span style="color:#ae81ff">admin@domain.tld</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">username</span>: <span style="color:#ae81ff">smtp-username@domain.tld</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">password</span>: <span style="color:#ae81ff">your-password-here</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">matrix</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">type</span>: <span style="color:#ae81ff">matrix</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">home-server</span>: <span style="color:#ae81ff">your-home-server.tld</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">room-id</span>: <span style="color:#ae81ff">room-id</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">access-token</span>: <span style="color:#ae81ff">your-access-token</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">user-id</span>: <span style="color:#ae81ff">your-user-id</span>
</span></span></code></pre></div><h3 id="logging">Logging</h3>
<p>cmd-std-out controls whether commands output is echoed to StdOut.</p>
<p>If logfile is not defined, the log file will be written to the config directory in the file <code>backy.log</code>.</p>
<p><code>console-disabled</code> controls whether the logging messages are echoed to StdOut. Default is false.</p>
<p><code>verbose</code> basically does nothing as all necessary info is already output.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">logging</span>:
</span></span><span style="display:flex;"><span> <span style="color:#f92672">verbose</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">file</span>: <span style="color:#ae81ff">path/to/log/file.log</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">console-disabled</span>: <span style="color:#66d9ef">false</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">cmd-std-out</span>: <span style="color:#66d9ef">false</span>
</span></span></code></pre></div>
<footer class="footline">
</footer>
</article>
</div>
</main>
</div>
<aside id="sidebar" class="default-animation" dir="ltr">
<div id="header-wrapper" class="default-animation">
<div id="header" class="default-animation">
<style>
a#logo {
color: #282828;
color: var(--MENU-SECTIONS-BG-color);
font-family: 'Work Sans', 'Helvetica', 'Tahoma', 'Geneva', 'Arial', sans-serif;
font-size: 30px;
font-weight: 300;
margin-top: -13px;
text-transform: uppercase;
width: 256px;
white-space: nowrap;
}
a#logo:hover {
color: #282828;
color: var(--MENU-SECTIONS-BG-color);
}
#logo svg {
margin-bottom: -20px;
margin-left: -23.5px;
width: 40.5%;
}
@media only all and (max-width: 59.938em) {
a#logo {
font-size: 25px;
margin-top: -3px;
}
#logo svg {
margin-bottom: -12px;
margin-left: -23px;
}
}
@media all and (-ms-high-contrast:none) {
/* IE11s understanding of positioning is weird at best */
a#logo {
margin-top: -58px;
}
#logo svg {
margin-bottom: -62px;
}
}
</style>
<a id="logo" href="/index.html">
<svg version="1.1" id="_x36_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-51.2 -51.2 614.40 614.40" xml:space="preserve" width="128px" height="128px" fill="#ffffff" stroke="#ffffff" stroke-width="0.00512" transform="rotate(0)"><g id="SVGRepo_bgCarrier" stroke-width="0"><rect x="-51.2" y="-51.2" width="614.40" height="614.40" rx="0" fill="#000000" strokewidth="0"></rect></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <polygon style="fill:none;" points="275.211,140.527 360.241,140.527 380.083,120.685 275.211,120.685 "></polygon> <polygon style="fill:none;" points="232.234,268.534 219.714,281.054 232.234,281.054 "></polygon> <g> <g> <rect x="232.254" y="69.157" style="fill:#718176;" width="42.982" height="377.465"></rect> <polygon style="fill:#718176;" points="56.146,446.588 76.861,489.564 232.234,489.564 232.234,446.588 "></polygon> <polygon style="fill:#718176;" points="275.21,446.588 275.21,489.564 435.111,489.564 455.826,446.588 "></polygon> <rect x="232.234" y="446.588" style="fill:#979696;" width="42.977" height="42.977"></rect> <path style="fill:#718176;" d="M511.972,7.837v105.05c0,4.315-3.485,7.8-7.8,7.8H7.8c-4.315,0-7.8-3.485-7.8-7.8V7.837 c0-4.315,3.485-7.799,7.8-7.799h496.372C508.487,0.037,511.972,3.522,511.972,7.837z"></path> <path style="fill:#718176;" d="M511.972,148.318v105.05c0,4.315-3.485,7.883-7.8,7.883H7.8c-4.315,0-7.8-3.568-7.8-7.883v-105.05 c0-4.315,3.485-7.8,7.8-7.8h496.372C508.487,140.518,511.972,144.003,511.972,148.318z"></path> <path style="fill:#718176;" d="M511.972,288.882v105.05c0,4.315-3.485,7.799-7.8,7.799H7.8c-4.315,0-7.8-3.484-7.8-7.799v-105.05 c0-4.314,3.485-7.799,7.8-7.799h496.372C508.487,281.082,511.972,284.568,511.972,288.882z"></path> <path style="fill:#FFFFFF;" d="M492.427,6.264H19.545c-7.351,0-13.31,5.959-13.31,13.31v81.539 c0,7.351,5.959,13.309,13.31,13.309h472.882c7.351,0,13.31-5.959,13.31-13.309V19.573 C505.737,12.222,499.778,6.264,492.427,6.264z"></path> <path style="fill:#FFFFFF;" d="M492.427,146.79H19.545c-7.351,0-13.31,5.959-13.31,13.31v81.539c0,7.351,5.959,13.31,13.31,13.31 h472.882c7.351,0,13.31-5.959,13.31-13.31V160.1C505.737,152.749,499.778,146.79,492.427,146.79z"></path> <path style="fill:#FFFFFF;" d="M492.427,287.318H19.545c-7.351,0-13.31,5.959-13.31,13.31v81.539 c0,7.351,5.959,13.31,13.31,13.31h472.882c7.351,0,13.31-5.959,13.31-13.31v-81.539 C505.737,293.276,499.778,287.318,492.427,287.318z"></path> <g> <g> <path style="fill:#718176;" d="M57.355,26.558H43.829c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V28.674C59.471,27.505,58.524,26.558,57.355,26.558z"></path> <path style="fill:#718176;" d="M57.355,52.308H43.829c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V54.424C59.471,53.256,58.524,52.308,57.355,52.308z"></path> <path style="fill:#718176;" d="M57.355,78.059H43.829c-1.169,0-2.116,0.948-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V80.175C59.471,79.006,58.524,78.059,57.355,78.059z"></path> </g> <g> <path style="fill:#718176;" d="M89.021,26.558H75.495c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V28.674C91.137,27.505,90.19,26.558,89.021,26.558z"></path> <path style="fill:#718176;" d="M89.021,52.308H75.495c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V54.424C91.137,53.256,90.19,52.308,89.021,52.308z"></path> <path style="fill:#718176;" d="M89.021,78.059H75.495c-1.169,0-2.116,0.948-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V80.175C91.137,79.006,90.19,78.059,89.021,78.059z"></path> </g> <g> <path style="fill:#718176;" d="M120.687,26.558h-13.525c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.525c1.169,0,2.116-0.948,2.116-2.116V28.674 C122.804,27.505,121.856,26.558,120.68
Backy
</a>
</div>
<div class="searchbox default-animation">
<i class="fas fa-search" title="Search (CTRL+ALT+f)"></i>
<label class="a11y-only" for="search-by">Search</label>
<input data-search-input id="search-by" name="search-by" class="search-by" type="search" placeholder="Search...">
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
<script>
var contentLangs=['en'];
</script>
<script src="/js/auto-complete.js?1676866111" defer></script>
<script src="/js/lunr/lunr.min.js?1676866111" defer></script>
<script src="/js/lunr/lunr.stemmer.support.min.js?1676866111" defer></script>
<script src="/js/lunr/lunr.multi.min.js?1676866111" defer></script>
<script src="/js/lunr/lunr.en.min.js?1676866111" defer></script>
<script src="/js/search.js?1676866111" defer></script>
</div>
<div id="content-wrapper" class="highlightable">
<ul class="topics collapsible-menu">
<li data-nav-id="/getting-started/index.html" class="dd-item parent"><input type="checkbox" id="section-c727fab97b4d77e5b28ce8c448fb9000" aria-controls="subsections-c727fab97b4d77e5b28ce8c448fb9000" class="toggle" checked><label class="a11y-only toggle" for="section-c727fab97b4d77e5b28ce8c448fb9000" >Submenu Getting started</label><a href="/getting-started/index.html">Getting started</a><ul id="subsections-c727fab97b4d77e5b28ce8c448fb9000">
<li data-nav-id="/getting-started/install/index.html" class="dd-item"><a href="/getting-started/install/index.html">Install Backy</a></li>
<li data-nav-id="/getting-started/config/index.html" class="dd-item active"><a href="/getting-started/config/index.html">Config File Definitions</a></li></ul></li>
<li data-nav-id="/config/index.html" class="dd-item"><input type="checkbox" id="section-98a8c13bcd8ebb34cfcbafd00ee6590b" aria-controls="subsections-98a8c13bcd8ebb34cfcbafd00ee6590b" class="toggle"><label class="a11y-only toggle" for="section-98a8c13bcd8ebb34cfcbafd00ee6590b" >Submenu Configuring Backy</label><a href="/config/index.html">Configuring Backy</a><ul id="subsections-98a8c13bcd8ebb34cfcbafd00ee6590b">
<li data-nav-id="/config/command-lists/index.html" class="dd-item"><a href="/config/command-lists/index.html">Command Lists</a></li>
<li data-nav-id="/config/commands/index.html" class="dd-item"><a href="/config/commands/index.html">Commands</a></li>
<li data-nav-id="/config/notifications/index.html" class="dd-item"><a href="/config/notifications/index.html">Notifications</a></li></ul></li>
<li data-nav-id="/cli/index.html" class="dd-item"><a href="/cli/index.html">CLI</a></li>
<li data-nav-id="/repositories/index.html" class="dd-item"><a href="/repositories/index.html">Repositories</a></li>
</ul>
<div class="footermargin footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showFooter"></div>
<hr class="default-animation footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showFooter">
<div id="prefooter" class="footerLangSwitch footerVariantSwitch footerVisitedLinks">
<ul>
<li id="select-language-container" class="footerLangSwitch">
<div class="padding select-container">
<i class="fas fa-language fa-fw"></i>
<span>&nbsp;</span>
<div class="select-style">
<label class="a11y-only" for="select-language">Language</label>
<select id="select-language" onchange="location = baseUri + this.value;">
</select>
</div>
<div class="select-clear"></div>
</div>
</li>
<li id="select-variant-container" class="footerVariantSwitch">
<div class="padding select-container">
<i class="fas fa-paint-brush fa-fw"></i>
<span>&nbsp;</span>
<div class="select-style">
<label class="a11y-only" for="select-variant">Theme</label>
<select id="select-variant" onchange="window.variants && variants.changeVariant( this.value );">
<option id="auto" value="auto" selected>Auto</option>
</select>
</div>
<div class="select-clear"></div>
</div>
<script>window.variants && variants.markSelectedVariant();</script>
</li>
<li class="footerVisitedLinks"><button class="padding" onclick="clearHistory();"><i class="fas fa-history fa-fw"></i> Clear History</button></li>
</ul>
</div>
<div id="footer" class="footerFooter showFooter">
<p>Built with <a href="https://github.com/McShelby/hugo-theme-relearn" title="love"><i class="fas fa-heart"></i></a> by <a href="https://gohugo.io/">Hugo</a></p>
</div>
</div>
</aside>
<script src="/js/clipboard.min.js?1676866111" defer></script>
<script src="/js/perfect-scrollbar.min.js?1676866111" defer></script>
<script>
function useMathJax( config ){
if( !Object.assign ){
return;
}
window.MathJax = Object.assign( window.MathJax || {}, {
loader: {
load: ['[tex]/mhchem']
},
startup: {
elements: [
'.math'
]
},
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
},
options: {
enableMenu: false
}
}, config );
}
useMathJax( JSON.parse("{}") );
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script src="/js/d3/d3-color.min.js?1676866111" defer></script>
<script src="/js/d3/d3-dispatch.min.js?1676866111" defer></script>
<script src="/js/d3/d3-drag.min.js?1676866111" defer></script>
<script src="/js/d3/d3-ease.min.js?1676866111" defer></script>
<script src="/js/d3/d3-interpolate.min.js?1676866111" defer></script>
<script src="/js/d3/d3-selection.min.js?1676866111" defer></script>
<script src="/js/d3/d3-timer.min.js?1676866111" defer></script>
<script src="/js/d3/d3-transition.min.js?1676866111" defer></script>
<script src="/js/d3/d3-zoom.min.js?1676866111" defer></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js" defer></script>
<script>
window.themeUseMermaid = JSON.parse("{ \"theme\": \"default\" }");
</script>
<script src="https://unpkg.com/rapidoc/dist/rapidoc-min.js" defer></script>
<script>
window.themeUseSwagger = JSON.parse("{ \"theme\": \"light\" }");
</script>
<script src="/js/theme.js?1676866111" defer></script>
</body>
</html>