This repository has been archived on 2022-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
arsenm-dev-site/public/docs/simpledash/configuration/index.html

74 lines
18 KiB
HTML

<!doctype html><html lang=en-us><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><script src=https://code.iconify.design/1/1.0.7/iconify.min.js></script><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin><link rel=preload as=font href=/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin><link rel=stylesheet href=/main.db7090cddb6602125f0ed93682d138976ae6d5a9a2f2f92c4bcd4de73e6debc939331bf2ec54e8cd7b933fa961527404e59b7ddc6eede1ed4bb4cf90ad77caab.css integrity="sha512-23CQzdtmAhJfDtk2gtE4l2rm1ami8vksS81N5z5t68k5Mxvy7FTozXuTP6lhUnQE5Zt93G7t4e1LtM+QrXfKqw==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><meta name=robots content="index, follow"><meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"><title>Configuration | Arsen Dev</title><meta name=description content="Configuring simpledash"><link rel=canonical href=/docs/simpledash/configuration/><meta name=twitter:card content="summary"><meta name=twitter:title content="Configuration"><meta name=twitter:description content="Configuring simpledash"><meta name=twitter:site content="@"><meta name=twitter:creator content="@"><meta property="og:title" content="Configuration"><meta property="og:description" content="Configuring simpledash"><meta property="og:type" content="article"><meta property="og:url" content="/docs/simpledash/configuration/"><meta property="og:site_name" content="Arsen Dev"><meta property="article:publisher" content="https://www.facebook.com/"><meta property="article:author" content="https://www.facebook.com/"><meta property="og:locale" content><script type=application/ld+json>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"\/"},{"@type":"ListItem","position":2,"name":"Docssimpledashconfiguration","item":"\/docssimpledashconfiguration\/"}]}</script><meta name=theme-color content="#fff"><link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest><link rel=stylesheet href=/css/highlightjs/dracula.min.css><script src=/js/highlightjs/highlight.min.js></script><script>hljs.initHighlightingOnLoad();</script></head><body class="docs single"><div class="header-bar fixed-top"></div><header class="navbar fixed-top navbar-expand-md navbar-light"><div class=container><input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label><a class="navbar-brand order-1 order-md-0 mr-auto" href=/>Arsen Dev</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span><span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span></button><ul class="navbar-nav social-nav order-3 order-md-5"><li class=nav-item><a class=nav-link href=https://gitea.arsenm.dev/Arsen6331><span class=iconify data-icon=cib:gitea data-inline=false></span><span class="ml-2 sr-only">Gitea</span></a></li><li class=nav-item><a class=nav-link href=https://gitlab.com/moussaelianarsen><span class=iconify data-icon=fa-brands:gitlab data-inline=false></span><span class="ml-2 sr-only">GitLab</span></a></li></ul><div class="collapse navbar-collapse order-4 order-md-1"><ul class="navbar-nav main-nav mr-auto order-5 order-md-2"><li class=nav-item><a class=nav-link href=/>Home</a></li><li class="nav-item active"><a class=nav-link href=/docs/>Docs</a></li></ul><div class="break order-6 d-md-none"></div><form class="navbar-form flex-grow-1 order-7 order-md-3"><input id=userinput class="form-control is-search" type=search placeholder="Search docs..." aria-label="Search docs..." autocomplete=off><div id=suggestions class="shadow bg-white rounded"></div></form></div></div></header><div class="wrap container" role=document><div class=content><div class="row flex-xl-nowrap"><div class="col-lg-5 col-xl-4 docs-sidebar"><nav class=docs-links aria-label="Main navigation"><h3>Docs</h3><ul class=list-unstyled><li><a class=docs-link href=/docs/advmake/>AdvMake Docs</a></li><li><a class=docs-link href=/docs/kbdemu/>KbdEmu Docs</a></li><li><a class=docs-link href=/docs/opensend/>OpenSend Docs</a></li><li><a class=docs-link href=/docs/pak/>Pak Docs</a></li><li><a class=docs-link href=/docs/simpledash/>Simpledash Docs</a></li></ul></nav></div><nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation"><div class=page-links><h3>On this page</h3><nav id=TableOfContents><ul><li><a href=#flags>Flags</a></li><li><a href=#config-file>Config file</a><ul><li><a href=#title>Title</a></li><li><a href=#theme>Theme</a></li><li><a href=#loginrequired>LoginRequired</a></li><li><a href=#session>Session</a></li><li><a href=#users>Users</a></li><li><a href=#cards>Cards</a></li></ul></li></ul></nav></div></nav><main class="docs-content col-lg-11 col-xl-9 mx-xl-auto"><a href=..>&lArr; Simpledash Docs</a><h1 style=margin-top:.2rem>Configuration</h1><p class=lead></p><h2 id=flags>Flags<a href=#flags class=anchor aria-hidden=true>#</a></h2><p>Simpledash can be run using the simpledash binary directly, or for convenience, using <code>advmake run</code>.</p><p>If using the binary directly, the listen IP, port, etc. can be configured via flags.</p><p>This is the help screen of simpledash:</p><div class=highlight><pre class=chroma><code class=language-text data-lang=text>Usage of ./simpledash:
-a, --addr ip Bind address for HTTP server (default 0.0.0.0)
-c, --config string TOML config file (default &#34;simpledash.toml&#34;)
--hash string Generate new bcrypt password hash
-p, --port int Bind port for HTTP server (default 8080)
simpledash: help requested
</code></pre></div><p>The default address of simpledash is <code>0.0.0.0:8080</code> meaning any origin IP on any interface, port 8080.</p><p>The <code>--hash</code> option creates a suitable bcrypt password hash for use in the config, prints it, and exits.</p><h2 id=config-file>Config file<a href=#config-file class=anchor aria-hidden=true>#</a></h2><p>Simpledash is configured using a TOML configuration file (simpledash.toml by default). It contains the users, cards, etc.</p><p>An example file is provided in the simpledash repository. It contains examples of all the card types in simpledash.</p><p>This is the example:</p><div class=highlight><pre class=chroma><code class=language-toml data-lang=toml><span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;SimpleDash&#34;</span>
<span class=nx>theme</span> <span class=p>=</span> <span class=s2>&#34;dark&#34;</span>
<span class=nx>loginRequired</span> <span class=p>=</span> <span class=kc>false</span>
<span class=nx>allowProxy</span> <span class=p>=</span> <span class=p>[</span><span class=s2>&#34;https://www.metaweather.com/&#34;</span><span class=p>,</span> <span class=s2>&#34;https://ifconfig.co/json&#34;</span><span class=p>]</span>
<span class=p>[</span><span class=nx>session</span><span class=p>]</span>
<span class=nx>name</span> <span class=p>=</span> <span class=s2>&#34;simpledash-session&#34;</span>
<span class=p>[</span><span class=nx>users</span><span class=p>]</span>
<span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>_public_</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;weather&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Weather&#34;</span>
<span class=nx>data</span> <span class=p>=</span> <span class=p>{</span><span class=s2>&#34;woeid&#34;</span> <span class=p>=</span> <span class=s2>&#34;2442047&#34;</span><span class=p>}</span>
<span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>_public_</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;api&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Server IP (API card example)&#34;</span>
<span class=nx>url</span> <span class=p>=</span> <span class=s2>&#34;https://ifconfig.co/json&#34;</span>
<span class=nx>data</span> <span class=p>=</span> <span class=p>{</span><span class=s2>&#34;format&#34;</span> <span class=p>=</span> <span class=s2>&#34;&#34;&#34;
</span><span class=s2> &lt;p class=&#34;</span><span class=nx>subtitle</span><span class=s2>&#34;&gt;${data.ip}&lt;/p&gt;
</span><span class=s2> Country: ${data.country} (${data.country_iso})
</span><span class=s2> Time zone: ${data.time_zone}
</span><span class=s2> &#34;&#34;&#34;</span><span class=p>}</span>
<span class=p>[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>]</span>
<span class=nx>passwordHash</span> <span class=p>=</span> <span class=s2>&#34;$2a$10$w00dzQ1PP6nwXLhuzV2pFOUU6m8bcZXtDX3UVxpOYq3fTSwVMqPge&#34;</span>
<span class=nx>showPublic</span> <span class=p>=</span> <span class=kc>true</span>
<span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;status&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Google&#34;</span>
<span class=nx>icon</span> <span class=p>=</span> <span class=s2>&#34;ion:logo-google&#34;</span>
<span class=nx>desc</span> <span class=p>=</span> <span class=s2>&#34;Google search engine. Status card example.&#34;</span>
<span class=nx>url</span> <span class=p>=</span> <span class=s2>&#34;https://www.google.com&#34;</span>
<span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;simple&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Gmail&#34;</span>
<span class=nx>icon</span> <span class=p>=</span> <span class=s2>&#34;simple-icons:gmail&#34;</span>
<span class=nx>desc</span> <span class=p>=</span> <span class=s2>&#34;Gmail mail client. Simple card example&#34;</span>
<span class=nx>url</span> <span class=p>=</span> <span class=s2>&#34;https://mail.google.com/&#34;</span>
<span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;collection&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Programming&#34;</span>
<span class=nx>icon</span> <span class=p>=</span> <span class=s2>&#34;entypo:code&#34;</span>
<span class=p>[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>.</span><span class=nx>card</span><span class=p>.</span><span class=nx>data</span><span class=p>]</span>
<span class=nx>Godoc</span> <span class=p>=</span> <span class=p>{</span><span class=s2>&#34;url&#34;</span> <span class=p>=</span> <span class=s2>&#34;https://pkg.go.dev&#34;</span><span class=p>,</span> <span class=s2>&#34;target&#34;</span> <span class=p>=</span> <span class=s2>&#34;newTab&#34;</span><span class=p>}</span>
<span class=nx>Ruby</span><span class=err>-</span><span class=nx>Doc</span> <span class=p>=</span> <span class=p>{</span><span class=s2>&#34;url&#34;</span> <span class=p>=</span> <span class=s2>&#34;https://ruby-doc.org/&#34;</span><span class=p>,</span> <span class=s2>&#34;target&#34;</span> <span class=p>=</span> <span class=s2>&#34;sameTab&#34;</span><span class=p>}</span>
<span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;collection&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Science&#34;</span>
<span class=nx>icon</span> <span class=p>=</span> <span class=s2>&#34;ic:outline-science&#34;</span>
<span class=nx>data</span> <span class=p>=</span> <span class=p>{</span><span class=s2>&#34;Google Scholar&#34;</span> <span class=p>=</span> <span class=p>{</span><span class=s2>&#34;url&#34;</span> <span class=p>=</span> <span class=s2>&#34;https://scholar.google.com/&#34;</span><span class=p>,</span> <span class=s2>&#34;target&#34;</span> <span class=p>=</span> <span class=s2>&#34;sameTab&#34;</span><span class=p>}}</span>
</code></pre></div><h3 id=title>Title<a href=#title class=anchor aria-hidden=true>#</a></h3><p>The title field sets the name of the website which will be used in all mentions including title tags and headers.</p><h3 id=theme>Theme<a href=#theme class=anchor aria-hidden=true>#</a></h3><p>The theme can either be dark or light. The dark theme was generated using darkreader.</p><h3 id=loginrequired>LoginRequired<a href=#loginrequired class=anchor aria-hidden=true>#</a></h3><p>The loginRequired field denotes whether login is required to view the dashboard. If <code>false</code>, public cards will be viewable without logging in.</p><h3 id=session>Session<a href=#session class=anchor aria-hidden=true>#</a></h3><p>The session section contains one field, <code>name</code>. This field is the name of the session cookie set in the browser upon visiting simpledash.</p><h3 id=users>Users<a href=#users class=anchor aria-hidden=true>#</a></h3><p>The <code>users</code> section contains all users and their associated cards. A user can be defined like so:</p><div class=highlight><pre class=chroma><code class=language-toml data-lang=toml><span class=p>[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>]</span>
<span class=nx>passwordHash</span> <span class=p>=</span> <span class=s2>&#34;$2a$10$w00dzQ1PP6nwXLhuzV2pFOUU6m8bcZXtDX3UVxpOYq3fTSwVMqPge&#34;</span>
<span class=nx>showPublic</span> <span class=p>=</span> <span class=kc>true</span>
</code></pre></div><p>The <code>passwordHash</code> field contains a hash as created by the <code>--hash</code> flag.</p><p>The <code>showPublic</code> field is a boolean denoting whether to show public cards as well when logged in.</p><h3 id=cards>Cards<a href=#cards class=anchor aria-hidden=true>#</a></h3><p>Cards reside under their respective user in the config file. A card can be defined like so:</p><div class=highlight><pre class=chroma><code class=language-toml data-lang=toml><span class=p>[[</span><span class=nx>users</span><span class=p>.</span><span class=nx>admin</span><span class=p>.</span><span class=nx>card</span><span class=p>]]</span>
<span class=nx>type</span> <span class=p>=</span> <span class=s2>&#34;status&#34;</span>
<span class=nx>title</span> <span class=p>=</span> <span class=s2>&#34;Google&#34;</span>
<span class=nx>icon</span> <span class=p>=</span> <span class=s2>&#34;ion:logo-google&#34;</span>
<span class=nx>desc</span> <span class=p>=</span> <span class=s2>&#34;Google search engine. Status card example.&#34;</span>
<span class=nx>url</span> <span class=p>=</span> <span class=s2>&#34;https://www.google.com&#34;</span>
</code></pre></div><p>The cards contain various fields, some required, some not:</p><ul><li><code>type</code>: The type of the card. (required)</li><li><code>title</code>: The title of the card to be used in the header. (required)</li><li><code>icon</code>: The icon to be used in various places depending on the card. Icons can be anything from <a href=https://iconify.design>iconify</a>.</li><li><code>desc</code>: The description of the card&rsquo;s content.</li><li><code>url</code>: The URL of the card to be used for various purposes depending on the card.</li><li><code>data</code>: A dictionary containing any extra data not listed above.</li></ul><p>Card types can be added simply by adding a file to <code>resources/templates/cards</code>. The name of the file will be used as the name of the card type</p></main></div></div></div><script src=/main.f6b484f556ad1f3bcf6061082139a2f21fa759f13930c39a25fe4a9f78f35e64122c2d86dffd56e67b292dabbda4095d8077194f196e0e348441c106a9f3d40e.js integrity="sha512-9rSE9VatHzvPYGEIITmi8h+nWfE5MMOaJf5Kn3jzXmQSLC2G3/1W5nspLau9pAldgHcZTxluDjSEQcEGqfPUDg==" crossorigin=anonymous defer></script><script src=/index.min.0bb9680af77e79babe9df0ae1ec6cde613082f15a3240104024e266a941003c61fed2727c7de80b61615ce780b4a2b2d09d2d8410e4c78cdde86d0452a129121.js integrity="sha512-C7loCvd+ebq+nfCuHsbN5hMILxWjJAEEAk4mapQQA8Yf7Scnx96AthYVzngLSistCdLYQQ5MeM3ehtBFKhKRIQ==" crossorigin=anonymous defer></script></body></html>