<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>App on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/app/</link>
        <description>Recent content in App on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Wed, 27 Aug 2025 15:28:19 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/app/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Pake</title>
        <link>https://producthunt.programnotes.cn/en/p/pake/</link>
        <pubDate>Wed, 27 Aug 2025 15:28:19 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/pake/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1596784269480-039b2a893af0?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTYyNzk2MTd8&amp;ixlib=rb-4.1.0" alt="Featured image of post Pake" /&gt;&lt;h1 id=&#34;tw93pake&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/tw93/Pake&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tw93/Pake&lt;/a&gt;
&lt;/h1&gt;&lt;h4 align=&#34;right&#34;&gt;&lt;strong&gt;English&lt;/strong&gt; | &lt;a href=&#34;https://github.com/tw93/Pake/blob/main/README_CN.md&#34;&gt;简体中文&lt;/a&gt; | &lt;a href=&#34;https://github.com/tw93/Pake/blob/main/README_JP.md&#34;&gt;日本語&lt;/a&gt;&lt;/h4&gt;
&lt;p align=&#34;center&#34;&gt;
    &lt;img src=https://gw.alipayobjects.com/zos/k/fa/logo-modified.png width=138/&gt;
&lt;/p&gt;
&lt;h1 align=&#34;center&#34;&gt;Pake&lt;/h1&gt;
&lt;p align=&#34;center&#34;&gt;&lt;strong&gt;Turn any webpage into a desktop app with Rust &lt;em&gt;with ease&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;div align=&#34;center&#34;&gt;
    &lt;a href=&#34;https://twitter.com/HiTw93&#34; target=&#34;_blank&#34;&gt;
    &lt;img alt=&#34;twitter&#34; src=&#34;https://img.shields.io/badge/follow-Tw93-red?style=flat-square&amp;logo=Twitter&#34;&gt;&lt;/a&gt;
    &lt;a href=&#34;https://t.me/+GclQS9ZnxyI2ODQ1&#34; target=&#34;_blank&#34;&gt;
    &lt;img alt=&#34;telegram&#34; src=&#34;https://img.shields.io/badge/chat-telegram-blueviolet?style=flat-square&amp;logo=Telegram&#34;&gt;&lt;/a&gt;
    &lt;a href=&#34;https://github.com/tw93/Pake/releases&#34; target=&#34;_blank&#34;&gt;
    &lt;img alt=&#34;GitHub downloads&#34; src=&#34;https://img.shields.io/github/downloads/tw93/Pake/total.svg?style=flat-square&#34;&gt;&lt;/a&gt;
    &lt;a href=&#34;https://github.com/tw93/Pake/commits&#34; target=&#34;_blank&#34;&gt;
    &lt;img alt=&#34;GitHub commit&#34; src=&#34;https://img.shields.io/github/commit-activity/m/tw93/Pake?style=flat-square&#34;&gt;&lt;/a&gt;
    &lt;a href=&#34;https://github.com/tw93/Pake/issues?q=is%3Aissue+is%3Aclosed&#34; target=&#34;_blank&#34;&gt;
    &lt;img alt=&#34;GitHub closed issues&#34; src=&#34;https://img.shields.io/github/issues-closed/tw93/Pake.svg?style=flat-square&#34;&gt;&lt;/a&gt;
    &lt;a href=&#34;https://colab.research.google.com/drive/1bX345znvDZ30848xjRtpgtU8eypWwXrp?usp=sharing&#34; target=&#34;_blank&#34;&gt;
    &lt;img alt=&#34;Open in Colab&#34; src=&#34;https://colab.research.google.com/assets/colab-badge.svg&#34;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div align=&#34;left&#34;&gt;Pake supports Mac, Windows, and Linux. Check out README for &lt;a href=&#34;#popular-packages&#34;&gt;Popular Packages&lt;/a&gt;, &lt;a href=&#34;#command-line-packaging&#34;&gt;Command-Line Packaging&lt;/a&gt;, and &lt;a href=&#34;#development&#34;&gt;Customized Development&lt;/a&gt; information. Feel free to share your suggestions in &lt;a href=https://github.com/tw93/Pake/discussions&gt;Discussions&lt;/a&gt;.&lt;/div&gt;
&lt;h2 id=&#34;features&#34;&gt;Features
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;🎐 Nearly 20 times smaller than an Electron package (around 5M!)&lt;/li&gt;
&lt;li&gt;🚀 With Rust Tauri, Pake is much more lightweight and faster than JS-based frameworks.&lt;/li&gt;
&lt;li&gt;📦 Battery-included package — shortcut pass-through, immersive windows, and minimalist customization.&lt;/li&gt;
&lt;li&gt;👻 Pake is just a simple tool — replace the old bundle approach with Tauri (though PWA is good enough).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;popular-packages&#34;&gt;Popular Packages
&lt;/h2&gt;&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;WeRead
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/WeRead.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/WeRead_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/WeRead_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
        &lt;td&gt;Twitter
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Twitter.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Twitter_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Twitter_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/WeRead.jpg width=600/&gt;&lt;/td&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/Twitter.jpg width=600/&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Grok
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Grok.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Grok_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Grok_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
        &lt;td&gt;DeepSeek
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/DeepSeek.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/DeepSeek_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/DeepSeek_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/Grok.png width=600/&gt;&lt;/td&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/DeepSeek.png width=600/&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;ChatGPT
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/ChatGPT.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/ChatGPT_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/ChatGPT_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
        &lt;td&gt;Gemini
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Gemini.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Gemini_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Gemini_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/ChatGPT.png width=600/&gt;&lt;/td&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/Gemini.png width=600/&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;YouTube Music
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/YouTubeMusic.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/YouTubeMusic_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/YouTubeMusic_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
      &lt;/td&gt;
      &lt;td&gt;YouTube
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/YouTube.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/YouTube_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/YouTube_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/YouTubeMusic.png width=600 /&gt;&lt;/td&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/YouTube.jpg width=600 /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;LiZhi
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/LiZhi.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/LiZhi_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/LiZhi_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
        &lt;td&gt;ProgramMusic
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/ProgramMusic.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/ProgramMusic_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/ProgramMusic_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/LiZhi.jpg width=600/&gt;&lt;/td&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/ProgramMusic.jpg width=600/&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Excalidraw
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Excalidraw.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Excalidraw_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/Excalidraw_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
        &lt;td&gt;XiaoHongShu
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/XiaoHongShu.dmg&#34;&gt;Mac&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/XiaoHongShu_x64.msi&#34;&gt;Windows&lt;/a&gt;
            &lt;a href=&#34;https://github.com/tw93/Pake/releases/latest/download/XiaoHongShu_x86_64.deb&#34;&gt;Linux&lt;/a&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/Excalidraw.png width=600/&gt;&lt;/td&gt;
        &lt;td&gt;&lt;img src=https://raw.githubusercontent.com/tw93/static/main/pake/XiaoHongShu.png width=600/&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;details&gt;
&lt;summary&gt;🏂 You can download more applications from &lt;a href=&#34;https://github.com/tw93/Pake/releases&#34;&gt;Releases&lt;/a&gt;. &lt;b&gt;Click here to expand the shortcuts reference!&lt;/b&gt;&lt;/summary&gt;
&lt;br/&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Mac&lt;/th&gt;
          &lt;th&gt;Windows/Linux&lt;/th&gt;
          &lt;th&gt;Function&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;[&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;←&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Return to the previous page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;]&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;→&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Go to the next page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;↑&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;↑&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Auto scroll to top of page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;↓&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;↓&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Auto scroll to bottom of page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;r&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;r&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Refresh Page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;w&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;w&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Hide window, not quite&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;-&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;-&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Zoom out the page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;+&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;+&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Zoom in the page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;=&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;=&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Zoom in the Page&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;kbd&gt;⌘&lt;/kbd&gt; + &lt;kbd&gt;0&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;0&lt;/kbd&gt;&lt;/td&gt;
          &lt;td&gt;Reset the page zoom&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In addition, double-click the title bar to switch to full-screen mode. For Mac users, you can also use the gesture to go to the previous or next page and drag the title bar to move the window.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&#34;before-starting&#34;&gt;Before starting
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;For beginners&lt;/strong&gt;: Play with Popular Packages to find out Pake&amp;rsquo;s capabilities, or try to pack your application with &lt;a class=&#34;link&#34; href=&#34;https://github.com/tw93/Pake/wiki/Online-Compilation-%28used-by-ordinary-users%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Actions&lt;/a&gt;. Don&amp;rsquo;t hesitate to reach for assistance at &lt;a class=&#34;link&#34; href=&#34;https://github.com/tw93/Pake/discussions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Discussion&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;For developers&lt;/strong&gt;: “Command-Line Packaging” supports macOS fully. For Windows/Linux users, it requires some tinkering. &lt;a class=&#34;link&#34; href=&#34;https://tauri.app/start/prerequisites/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Configure your environment&lt;/a&gt; before getting started.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;For hackers&lt;/strong&gt;: For people who are good at both front-end development and Rust, how about customizing your apps&amp;rsquo; function more with the following &lt;a class=&#34;link&#34; href=&#34;#development&#34; &gt;Customized Development&lt;/a&gt;?&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;command-line-packaging&#34;&gt;Command-Line Packaging
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;https://raw.githubusercontent.com/tw93/static/main/pake/pake.gif&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Pake&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pake provides a command line tool, making the flow of package customization quicker and easier. See &lt;a class=&#34;link&#34; href=&#34;./bin/README.md&#34; &gt;documentation&lt;/a&gt; for more information.&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Install with npm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g pake-cli
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Command usage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pake url &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;OPTIONS&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Feel free to play with Pake! It might take a while to prepare the environment the first time you launch Pake.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pake https://weekly.tw93.fun --name Weekly --hide-title-bar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you are new to the command line, you can compile packages online with &lt;em&gt;GitHub Actions&lt;/em&gt;. See the &lt;a class=&#34;link&#34; href=&#34;https://github.com/tw93/Pake/wiki/Online-Compilation-%28used-by-ordinary-users%29&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tutorial&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&#34;development&#34;&gt;Development
&lt;/h2&gt;&lt;p&gt;Prepare your environment before starting. Make sure you have Rust &lt;code&gt;&amp;gt;=1.89&lt;/code&gt; and Node &lt;code&gt;&amp;gt;=22&lt;/code&gt; (e.g., &lt;code&gt;22.11.0&lt;/code&gt;) installed on your computer. &lt;em&gt;Note: Older versions (Rust ≥1.78, Node ≥16) may also work but latest stable versions are recommended.&lt;/em&gt; For installation guidance, see &lt;a class=&#34;link&#34; href=&#34;https://tauri.app/start/prerequisites/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tauri documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are unfamiliar with these, it is better to try out the above tool to pack with one click.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Install Dependencies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Local development [Right-click to open debug mode.]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Pack application&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;advanced-usage&#34;&gt;Advanced Usage
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;You can refer to the &lt;a class=&#34;link&#34; href=&#34;https://github.com/tw93/Pake/wiki/Description-of-Pake%27s-code-structure&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;codebase structure&lt;/a&gt; before working on Pake, which will help you much in development.&lt;/li&gt;
&lt;li&gt;Modify the &lt;code&gt;url&lt;/code&gt; and &lt;code&gt;productName&lt;/code&gt; fields in the &lt;code&gt;pake.json&lt;/code&gt; file under the src-tauri directory, the &amp;ldquo;domain&amp;rdquo; field in the &lt;code&gt;tauri.config.json&lt;/code&gt; file needs to be modified synchronously, as well as the &lt;code&gt;icon&lt;/code&gt; and &lt;code&gt;identifier&lt;/code&gt; fields in the &lt;code&gt;tauri.xxx.conf.json&lt;/code&gt; file. You can select an &lt;code&gt;icon&lt;/code&gt; from the &lt;code&gt;icons&lt;/code&gt; directory or download one from &lt;a class=&#34;link&#34; href=&#34;https://macosicons.com/#/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;macOSicons&lt;/a&gt; to match your product needs.&lt;/li&gt;
&lt;li&gt;For configurations on window properties, you can modify the &lt;code&gt;pake.json&lt;/code&gt; file to change the value of &lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt;, &lt;code&gt;fullscreen&lt;/code&gt; (or not), &lt;code&gt;resizable&lt;/code&gt; (or not), &lt;code&gt;hide_on_close&lt;/code&gt; (hide window on close instead of exiting) of the &lt;code&gt;windows&lt;/code&gt; property. To adapt to the immersive header on Mac, change &lt;code&gt;hideTitleBar&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;, look for the &lt;code&gt;Header&lt;/code&gt; element, and add the &lt;code&gt;padding-top&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;For advanced usages such as style rewriting, advertisement removal, JS injection, container message communication, and user-defined shortcut keys, see &lt;a class=&#34;link&#34; href=&#34;https://github.com/tw93/Pake/wiki/Advanced-Usage-of-Pake&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Advanced Usage of Pake&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;developers&#34;&gt;Developers
&lt;/h2&gt;&lt;p&gt;Pake&amp;rsquo;s development can not be without these Hackers. They contributed a lot of capabilities for Pake. Also, welcome to follow them! ❤️&lt;/p&gt;
&lt;!-- readme: contributors -start --&gt;
&lt;table&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/tw93&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/8736212?v=4&#34; width=&#34;90;&#34; alt=&#34;tw93&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Tw93&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/Tlntin&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/28218658?v=4&#34; width=&#34;90;&#34; alt=&#34;Tlntin&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Tlntin&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/jeasonnow&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/16950207?v=4&#34; width=&#34;90;&#34; alt=&#34;jeasonnow&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Santree&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/pan93412&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/28441561?v=4&#34; width=&#34;90;&#34; alt=&#34;pan93412&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Pan93412&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/stone-w4tch3r&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/100294019?v=4&#34; width=&#34;90;&#34; alt=&#34;stone-w4tch3r&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Данил Бизимов&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/wanghanzhen&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/25301012?v=4&#34; width=&#34;90;&#34; alt=&#34;wanghanzhen&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Volare&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/liby&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/38807139?v=4&#34; width=&#34;90;&#34; alt=&#34;liby&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Bryan Lee&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/essesoul&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/58624474?v=4&#34; width=&#34;90;&#34; alt=&#34;essesoul&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Essesoul&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/YangguangZhou&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/61733195?v=4&#34; width=&#34;90;&#34; alt=&#34;YangguangZhou&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Jerry Zhou&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/AielloChan&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/7900765?v=4&#34; width=&#34;90;&#34; alt=&#34;AielloChan&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Aiello&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/m1911star&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/4948120?v=4&#34; width=&#34;90;&#34; alt=&#34;m1911star&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Horus&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/Pake-Actions&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/126550811?v=4&#34; width=&#34;90;&#34; alt=&#34;Pake-Actions&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Pake Actions&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/GoodbyeNJN&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/6856639?v=4&#34; width=&#34;90;&#34; alt=&#34;GoodbyeNJN&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;GoodbyeNJN&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/kittizz&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/62899732?v=4&#34; width=&#34;90;&#34; alt=&#34;kittizz&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Kittizz&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/mattbajorek&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/17235301?v=4&#34; width=&#34;90;&#34; alt=&#34;mattbajorek&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Matt Bajorek&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/vaddisrinivas&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/38348871?v=4&#34; width=&#34;90;&#34; alt=&#34;vaddisrinivas&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Srinivas Vaddi&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/QingZ11&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/38887077?v=4&#34; width=&#34;90;&#34; alt=&#34;QingZ11&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Steam&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/Tianj0o&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/68584284?v=4&#34; width=&#34;90;&#34; alt=&#34;Tianj0o&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Qitianjia&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/xinyii&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/17895104?v=4&#34; width=&#34;90;&#34; alt=&#34;xinyii&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Yi Xin&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/g1eny0ung&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/15034155?v=4&#34; width=&#34;90;&#34; alt=&#34;g1eny0ung&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Yue Yang&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/lkieryan&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/187804088?v=4&#34; width=&#34;90;&#34; alt=&#34;lkieryan&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Kieran&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/exposir&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/33340988?v=4&#34; width=&#34;90;&#34; alt=&#34;exposir&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;孟世博&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/2nthony&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/19513289?v=4&#34; width=&#34;90;&#34; alt=&#34;2nthony&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;2nthony&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/ACGNnsj&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/22112141?v=4&#34; width=&#34;90;&#34; alt=&#34;ACGNnsj&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Null&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/imabutahersiddik&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/138387257?v=4&#34; width=&#34;90;&#34; alt=&#34;imabutahersiddik&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Abu Taher Siddik&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/kidylee&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/841310?v=4&#34; width=&#34;90;&#34; alt=&#34;kidylee&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;An Li&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/nekomeowww&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/11081491?v=4&#34; width=&#34;90;&#34; alt=&#34;nekomeowww&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Ayaka Neko&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/turkyden&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/24560160?v=4&#34; width=&#34;90;&#34; alt=&#34;turkyden&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Dengju Deng&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/fvn-elmy&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/71275745?v=4&#34; width=&#34;90;&#34; alt=&#34;fvn-elmy&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Fabien&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/Fechin&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/2541482?v=4&#34; width=&#34;90;&#34; alt=&#34;Fechin&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Fechin&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/ImgBotApp&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/31427850?v=4&#34; width=&#34;90;&#34; alt=&#34;ImgBotApp&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Imgbot&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/droid-Q&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/708277?v=4&#34; width=&#34;90;&#34; alt=&#34;droid-Q&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Jiaqi Gu&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/Milo123459&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/50248166?v=4&#34; width=&#34;90;&#34; alt=&#34;Milo123459&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Milo&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/princemaple&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/1329716?v=4&#34; width=&#34;90;&#34; alt=&#34;princemaple&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Po Chen&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/beautifulrem&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/98527099?v=4&#34; width=&#34;90;&#34; alt=&#34;beautifulrem&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Xie Ruiqi&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/bocanhcam&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/35592955?v=4&#34; width=&#34;90;&#34; alt=&#34;bocanhcam&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Null&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/geekvest&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/126322776?v=4&#34; width=&#34;90;&#34; alt=&#34;geekvest&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Null&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/houhoz&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/19684376?v=4&#34; width=&#34;90;&#34; alt=&#34;houhoz&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Hyzhao&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/lakca&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/16255922?v=4&#34; width=&#34;90;&#34; alt=&#34;lakca&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Null&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/liudonghua123&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/2276718?v=4&#34; width=&#34;90;&#34; alt=&#34;liudonghua123&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Liudonghua&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/liusishan&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/33129823?v=4&#34; width=&#34;90;&#34; alt=&#34;liusishan&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Liusishan&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/piaoyidage&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/5135405?v=4&#34; width=&#34;90;&#34; alt=&#34;piaoyidage&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;Ranger&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
            &lt;td align=&#34;center&#34;&gt;
                &lt;a href=&#34;https://github.com/hetz&#34;&gt;
                    &lt;img src=&#34;https://avatars.githubusercontent.com/u/820141?v=4&#34; width=&#34;90;&#34; alt=&#34;hetz&#34;/&gt;
                    &lt;br /&gt;
                    &lt;sub&gt;&lt;b&gt;贺天卓&lt;/b&gt;&lt;/sub&gt;
                &lt;/a&gt;
            &lt;/td&gt;
		&lt;/tr&gt;
	&lt;tbody&gt;
&lt;/table&gt;
&lt;!-- readme: contributors -end --&gt;
&lt;h2 id=&#34;frequently-asked-questions&#34;&gt;Frequently Asked Questions
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Right-clicking on an image element in the page to open the menu and select download image or other events does not work (common in MacOS systems). This issue is due to the MacOS built-in webview not supporting this feature.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;support&#34;&gt;Support
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;I have two cats, TangYuan and Coke. If you think Pake delights your life, you can feed them &lt;a href=&#34;https://miaoyan.app/cats.html?name=Pake&#34; target=&#34;_blank&#34;&gt;some canned food 🥩&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If you like Pake, you can star it on GitHub. Also, welcome to &lt;a class=&#34;link&#34; href=&#34;https://twitter.com/intent/tweet?url=https://github.com/tw93/Pake&amp;amp;text=%23Pake%20-%20A%20simple%20Rust%20packaged%20web%20pages%20to%20generate%20Mac%20App%20tool,%20compared%20to%20traditional%20Electron%20package,%20the%20size%20of%20nearly%2040%20times%20smaller,%20generally%20about%202M,%20the%20underlying%20use%20of%20Tauri,%20performance%20experience%20than%20the%20JS%20framework%20is%20much%20lighter~&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;recommend Pake&lt;/a&gt; to your friends.&lt;/li&gt;
&lt;li&gt;You can follow my &lt;a class=&#34;link&#34; href=&#34;https://twitter.com/HiTw93&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Twitter&lt;/a&gt; to get the latest news of Pake or join our &lt;a class=&#34;link&#34; href=&#34;https://t.me/&amp;#43;GclQS9ZnxyI2ODQ1&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Telegram&lt;/a&gt; chat group.&lt;/li&gt;
&lt;li&gt;I hope that you enjoy playing with it. Let us know if you find a website that would be great for a Mac App!&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        <item>
        <title>dashy</title>
        <link>https://producthunt.programnotes.cn/en/p/dashy/</link>
        <pubDate>Tue, 22 Jul 2025 15:33:52 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/dashy/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1695237115264-1ba2ed594c73?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTMxNjk1NjF8&amp;ixlib=rb-4.1.0" alt="Featured image of post dashy" /&gt;&lt;h1 id=&#34;lissy93dashy&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lissy93/dashy&lt;/a&gt;
&lt;/h1&gt;&lt;h1 align=&#34;center&#34;&gt;Dashy&lt;/h1&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;i&gt;Dashy helps you organize your self-hosted services by making them accessible from a single place&lt;/i&gt;
   &lt;br/&gt;
  &lt;img width=&#34;120&#34; src=&#34;https://i.ibb.co/yhbt6CY/dashy.png&#34; /&gt;
  &lt;br/&gt;
  &lt;b&gt;&lt;a href=&#34;./docs/showcase.md&#34;&gt;User Showcase&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href=&#34;https://demo.dashy.to&#34;&gt;Live Demo&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href=&#34;./docs/quick-start.md&#34;&gt;Getting Started&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href=&#34;https://dashy.to/docs&#34;&gt;Documentation&lt;/a&gt;&lt;/b&gt; | &lt;b&gt;&lt;a href=&#34;https://github.com/Lissy93/dashy&#34;&gt;GitHub&lt;/a&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
&lt;br&gt;
&lt;sup&gt;Dashy is kindly sponsored by &lt;a href=&#34;https://umbrel.com?ref=dashy&#34;&gt;Umbrel&lt;/a&gt; - the personal home cloud and OS for self-hosting&lt;/sup&gt;&lt;br&gt;
&lt;a href=&#34;https://umbrel.com?ref=dashy&#34;&gt;
&lt;img width=&#34;400&#34; src=&#34;https://github.com/Lissy93/dashy/blob/WEBSITE/docs-site-source/static/umbrel-banner.jpg?raw=true&#34; /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
Version &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/releases/tag/3.0.0&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;3.0.0&lt;/a&gt; has been released, and requires some changes to your setup, see &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/discussions/1529&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;#1529&lt;/a&gt; for details.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;details&gt;
  &lt;summary&gt;&lt;b&gt;Table of Contents&lt;/b&gt;&lt;/summary&gt;
  &lt;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#features-&#34; &gt;🌈 Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#demo-&#34; &gt;⚡Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#getting-started-&#34; &gt;🚀 Getting Started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#configuring-&#34; &gt;🔧 Configuring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feature Overview&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#theming-&#34; &gt;🎨 Theming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#icons-&#34; &gt;🧸 Icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#status-indicators-&#34; &gt;🚦 Status Indicators&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#widgets-&#34; &gt;📊 Widgets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#authentication-&#34; &gt;🔐 Authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#alternate-views-&#34; &gt;👓 Alternate Views&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#opening-methods-&#34; &gt;🖱️ Opening Methods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#searching-and-shortcuts-&#34; &gt;🔎 Searching and Shortcuts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#config-editor-&#34; &gt;⚙️ Config Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#cloud-backup--sync-&#34; &gt;☁ Cloud Backup &amp;amp; Sync&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#language-switching-&#34; &gt;🌎 Language Switching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#multi-page-support-&#34; &gt;📃 Multi-Page Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#system-requirements-&#34; &gt;📊 System Requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#support-&#34; &gt;🙋‍♀️ Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#supporting-dashy-&#34; &gt;💖 Supporting Dashy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#credits-&#34; &gt;🏆 Credits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#developing-&#34; &gt;🧱 Developing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#release-schedule-&#34; &gt;🗞️ Release Schedule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#documentation-&#34; &gt;📘 Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#roadmap-&#34; &gt;🛣️ Roadmap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#alternatives-&#34; &gt;🙌 Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#license-&#34; &gt;📜 License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&#34;features-&#34;&gt;Features 🌈
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;📃 Support for multiple pages&lt;/li&gt;
&lt;li&gt;🚦 Real-time status monitoring for each of your apps/links&lt;/li&gt;
&lt;li&gt;📊 Use widgets to display info and dynamic content from self-hosted services&lt;/li&gt;
&lt;li&gt;🔎 Instant search by name, domain, or tags + customizable hotkeys &amp;amp; keyboard shortcuts&lt;/li&gt;
&lt;li&gt;🎨 Many built-in color themes, with UI color editor and support for custom CSS&lt;/li&gt;
&lt;li&gt;🧸 Many icon options - Font-Awesome, homelab icons, auto-fetching Favicon, images, emojis, etc.&lt;/li&gt;
&lt;li&gt;💂 Optional authentication with multi-user access, configurable privileges, and SSO support&lt;/li&gt;
&lt;li&gt;🌎 Multi-language support, with 10+ human-translated languages, and more on the way&lt;/li&gt;
&lt;li&gt;☁ Optional, encrypted, free off-site cloud backup and restore feature available&lt;/li&gt;
&lt;li&gt;💼 A workspace view, for easily switching between multiple apps simultaneously&lt;/li&gt;
&lt;li&gt;🛩️ A minimal view, for use as a fast-loading browser Startpage&lt;/li&gt;
&lt;li&gt;🖱️ Choose app launch methods: new tab, same tab, clipboard, pop-up modal, or open in workspace view&lt;/li&gt;
&lt;li&gt;📏 Customizable layout, sizes, text, component visibility, sort order, behavior, etc.&lt;/li&gt;
&lt;li&gt;🖼️ Options for a full-screen background image, custom nav-bar links, HTML footer, title, etc.&lt;/li&gt;
&lt;li&gt;🚀 Easy to setup with Docker, or on bare metal, or with 1-Click cloud deployment&lt;/li&gt;
&lt;li&gt;⚙️ Easy single-file YAML-based configuration, and option to configure app through the UI&lt;/li&gt;
&lt;li&gt;✨ Under active development with improvements and new features added regularly&lt;/li&gt;
&lt;li&gt;🤏 Small bundle size, fully responsive UI, and PWA for basic offline access&lt;/li&gt;
&lt;li&gt;🆓 100% free and open-source&lt;/li&gt;
&lt;li&gt;🔐 Strong focus on privacy&lt;/li&gt;
&lt;li&gt;🌈 And loads more&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;demo-&#34;&gt;Demo ⚡
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Live Instances&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://demo.dashy.to&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Demo 1&lt;/a&gt; (Live Demo) ┆ &lt;a class=&#34;link&#34; href=&#34;https://live.dashy.to&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Demo 2&lt;/a&gt; (Dashy Links) ┆ &lt;a class=&#34;link&#34; href=&#34;https://dev.dashy.to&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Demo 3&lt;/a&gt; (Dev Preview)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Screenshots&lt;/strong&gt;: Checkout the &lt;a class=&#34;link&#34; href=&#34;./docs/showcase.md&#34; &gt;Showcase&lt;/a&gt;, to see example dashboards from the community&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Spin up your own demo&lt;/strong&gt;: [&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img width=&#34;800&#34; src=&#34;https://i.ibb.co/L8YbNNc/dashy-demo2.gif&#34; alt=&#34;Demo&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;getting-started-&#34;&gt;Getting Started 🚀
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full setup instructions, see: &lt;a class=&#34;link&#34; href=&#34;./docs/deployment.md&#34; &gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;deploying-from-docker-hub-&#34;&gt;Deploying from Docker Hub 🐳
&lt;/h3&gt;&lt;p&gt;You will need &lt;a class=&#34;link&#34; href=&#34;https://docs.docker.com/get-docker/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Docker&lt;/a&gt; installed on your system&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -p 8080:8080 lissy93/dashy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-docker&#34; data-lang=&#34;docker&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 4000:8080 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v /root/my-local-conf.yml:/app/user-data/conf.yml &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name my-dashboard &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --restart&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;always &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  lissy93/dashy:latest&lt;span class=&#34;err&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://hub.docker.com/r/lissy93/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://dockeri.co/image/lissy93/dashy&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Dashy on Docker Hub&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See also: &lt;a class=&#34;link&#34; href=&#34;./docs/deployment.md#using-docker-compose&#34; &gt;examples with Docker Compose&lt;/a&gt;. Dashy is also available via GHCR, and tags for other architectures (&lt;code&gt;arm32v7&lt;/code&gt;, &lt;code&gt;arm64v8&lt;/code&gt;, etc.) and set versions are supported&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Once you&amp;rsquo;ve got Dashy running, see &lt;a class=&#34;link&#34; href=&#34;./docs/management.md&#34; &gt;App Management Docs&lt;/a&gt; for info on using health checks, updating, backups, web-server configs, logs, performance, security, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;deploying-from-source-&#34;&gt;Deploying from Source 🔨
&lt;/h3&gt;&lt;p&gt;You will need &lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/downloads&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;git&lt;/a&gt;, the latest or LTS version of &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node.js&lt;/a&gt; and &lt;em&gt;(optionally)&lt;/em&gt; &lt;a class=&#34;link&#34; href=&#34;https://yarnpkg.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Yarn&lt;/a&gt; installed on your system.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Clone the Repo: &lt;code&gt;git clone https://github.com/Lissy93/dashy.git&lt;/code&gt; and &lt;code&gt;cd dashy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configuration: Fill in your settings in &lt;code&gt;./user-data/conf.yml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Install dependencies: &lt;code&gt;yarn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Build: &lt;code&gt;yarn build&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run: &lt;code&gt;yarn start&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;See docs: &lt;a class=&#34;link&#34; href=&#34;./docs/management.md#basic-commands&#34; &gt;Full list of Dashy&amp;rsquo;s commands&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;deploy-to-the-cloud-&#34;&gt;Deploy to the Cloud ☁️
&lt;/h3&gt;&lt;p&gt;Dashy supports &lt;strong&gt;1-Click deployments&lt;/strong&gt; on several popular cloud platforms. To spin up a new instance, just click a link below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/ZxtzrP3/netlify.png&#34; width=&#34;18&#34;/&gt; Deploy to Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://heroku.com/deploy?template=https://github.com/Lissy93/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/d2P1WZ7/heroku.png&#34; width=&#34;18&#34;/&gt; Deploy to Heroku&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://vercel.com/new/project?template=https://github.com/lissy93/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/Ld2FZzb/vercel.png&#34; width=&#34;18&#34;/&gt; Deploy to Vercel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://render.com/deploy?repo=https://github.com/lissy93/dashy/tree/deploy_render&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/xCHtzgh/render.png&#34; width=&#34;18&#34;/&gt; Deploy to Render&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://railway.app/template/MtdjAQ?referralCode=app&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://railway.app/brand/logo-light.png&#34; width=&#34;18&#34;/&gt; Deploy to Railway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/J7MGymY/googlecloud.png&#34; width=&#34;18&#34;/&gt; Deploy to GCP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/HVWVYF7/docker.png&#34; width=&#34;18&#34;/&gt; Deploy to PWD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://easypanel.io/docs/templates/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://i.ibb.co/7NxnM2P/easypanel.png&#34; width=&#34;18&#34;/&gt; Deploy to Easypanel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;For more 1-click cloud deployments, see &lt;a class=&#34;link&#34; href=&#34;./docs/deployment.md#deploy-to-cloud-service&#34; &gt;Cloud Deployment&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;configuring-&#34;&gt;Configuring 🔧
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full configuration documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/configuring.md&#34; &gt;&lt;strong&gt;Configuring&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dashy is configured through a YAML file, located at &lt;code&gt;./user-data/conf.yml&lt;/code&gt;. In addition, you can find a complete list of available options in the &lt;a class=&#34;link&#34; href=&#34;./docs/configuring.md&#34; &gt;Configuring Docs&lt;/a&gt;. The config can also be edited and saved directly through the UI.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;theming-&#34;&gt;Theming 🎨
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full theming documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/theming.md&#34; &gt;&lt;strong&gt;Theming&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dashy comes pre-bundled with several built-in themes, which you can preview, apply and edit through the UI. With the theme configurator and support for custom CSS, everything is in place to quickly develop your own unique-looking dashboard.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;a href=&#34;https://i.ibb.co/BVSHV1v/dashy-themes-slideshow.gif&#34;&gt;
    &lt;img alt=&#34;Example Themes&#34; src=&#34;https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/theme-slideshow.gif&#34; width=&#34;400&#34; /&gt;
  &lt;/a&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;a href=&#34;https://i.ibb.co/cLDXj1R/dashy-theme-configurator.gif&#34;&gt;
    &lt;img alt=&#34;Example Themes&#34; src=&#34;https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/theme-config-demo.gif&#34; width=&#34;400&#34; /&gt;
  &lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;icons-&#34;&gt;Icons 🧸
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full iconography documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/icons.md&#34; &gt;&lt;strong&gt;Icons&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Both sections and items can have an icon associated with them, defined under the &lt;code&gt;icon&lt;/code&gt; attribute. With several different icon packs supported, you&amp;rsquo;ll be able to find the perfect thumbnail for any app or service.&lt;/p&gt;
&lt;p&gt;The following icon types are supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Favicon&lt;/strong&gt; - Automatically fetch an apps icon from its Favicon or logo image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Icon Packs&lt;/strong&gt; - Use any icon from &lt;a class=&#34;link&#34; href=&#34;https://fontawesome.com/icons&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;font-awesome&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://simpleicons.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;simple-icons&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://selfh.st/icons&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;selfh.st/icons&lt;/a&gt;, or &lt;a class=&#34;link&#34; href=&#34;https://github.com/Templarian/MaterialDesign&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;material icons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emoji&lt;/strong&gt; - Any valid emoji can be used as an icon&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generative&lt;/strong&gt; - Unique, auto-generated images for easily identifying services&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;URL&lt;/strong&gt; - Pass the URL of any valid image in to have it fetched and rendered&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Local&lt;/strong&gt; - Store custom images locally and reference by filename&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Homelab Icons&lt;/strong&gt; - Using &lt;a class=&#34;link&#34; href=&#34;https://github.com/WalkxCode/dashboard-icons&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;dashboard-icons&lt;/a&gt; for logos of commonly self-hosted services&lt;/li&gt;
&lt;/ul&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img width=&#34;400&#34; src=&#34;https://i.ibb.co/GTVmZnc/dashy-example-icons.png&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;status-indicators-&#34;&gt;Status Indicators 🚦
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full monitoring documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/status-indicators.md&#34; &gt;&lt;strong&gt;Status Indicators&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dashy has an optional feature to check if each app/ service is up and responding, then display a small status indicator icon. Hovering over it will show additional stats like response time and status code.&lt;/p&gt;
&lt;p&gt;Status indicators can be globally enabled by setting &lt;code&gt;appConfig.statusCheck: true&lt;/code&gt; or enabled/ disabled on a per-item basis. Status is checked on page load, but you can allow continuous polling by specifying a time interval between checks, in seconds under &lt;code&gt;appConfig.statusCheckInterval&lt;/code&gt;. You can also use a different endpoint for status checking, with &lt;code&gt;statusCheckUrl&lt;/code&gt;, and if needed, pass in custom headers under &lt;code&gt;statusCheckHeaders&lt;/code&gt;.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img alt=&#34;Status Checks demo&#34; src=&#34;https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/status-check-demo.gif&#34; width=&#34;600&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;widgets-&#34;&gt;Widgets 📊
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full widget documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/widgets.md&#34; &gt;&lt;strong&gt;Widgets&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can display dynamic content from services in the form of widgets. There are several pre-built widgets available for showing useful info, and integrations with commonly self-hosted services, but you can also easily create your own for almost any app.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img width=&#34;600&#34; src=&#34;https://i.ibb.co/GFjXVHy/dashy-widgets.png&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;authentication-&#34;&gt;Authentication 🔐
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full authentication documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/authentication.md&#34; &gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dashy has full support for secure single-sign-on using &lt;a class=&#34;link&#34; href=&#34;https://www.keycloak.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Keycloak&lt;/a&gt; for secure, easy authentication, see &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/authentication.md#keycloak&#34; &gt;setup docs&lt;/a&gt; for a full usage guide.&lt;/p&gt;
&lt;p&gt;There is also a basic auth feature, which doesn&amp;rsquo;t require additional setup. To enable this, add an &lt;code&gt;auth&lt;/code&gt; attribute under &lt;code&gt;appConfig&lt;/code&gt;, containing an array of &lt;code&gt;users&lt;/code&gt;, each with a username, SHA-256 hashed password and optional user type. Basic auth also supports several access control features, including read-only guest access and granular controls.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;appConfig&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;auth&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;users&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;alicia&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;4D1E58C90B3B94BCAD9848ECCACD6D2A8C9FBC5CA913304BBA5CDEAB36FEEFA3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;admin&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Other access control systems are also supported, see the &lt;a class=&#34;link&#34; href=&#34;./docs/authentication.md#alternative-authentication-methods&#34; &gt;Alternative Auth Methods&lt;/a&gt; docs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;alternate-views-&#34;&gt;Alternate Views 👓
&lt;/h2&gt;&lt;p&gt;As well as the default homepage, there is also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A minimal view, valid for use as a browser start page&lt;/li&gt;
&lt;li&gt;A workspace view, useful for visiting many apps simultaneously&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can change the view from the UI, using the switch icon in the top-right corner, or select a default view in the config under &lt;code&gt;appConfig.startingView&lt;/code&gt; attribute.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;b&gt;Example of Workspace View&lt;/b&gt;&lt;br&gt;
  &lt;img alt=&#34;Workspace view demo&#34; src=&#34;https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/workspace-demo.gif&#34; width=&#34;600&#34; /&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;b&gt;Example of Minimal View&lt;/b&gt;&lt;br&gt;
  &lt;img alt=&#34;Workspace view demo&#34; src=&#34;https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/minimal-view-demo.gif&#34; width=&#34;600&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;opening-methods-&#34;&gt;Opening Methods 🖱️
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full documentation on views and opening methods, see: &lt;a class=&#34;link&#34; href=&#34;./docs/alternate-views.md&#34; &gt;&lt;strong&gt;Alternate Views&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are several different ways you can launch apps. You can specify the default opening method for any given item under the &lt;code&gt;target&lt;/code&gt; attribute or set a site-wide default under &lt;code&gt;appConfig.defaultOpeningMethod&lt;/code&gt;. Right-click on an item to item for all options. The following options are supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sametab&lt;/code&gt; - The app will be launched in the current tab&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newtab&lt;/code&gt; - The app will be launched in a new tab (or use Ctrl + Click)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;modal&lt;/code&gt; - Launch app in a resizable/ movable popup modal on the current page (or use Alt + Click)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;workspace&lt;/code&gt; - Changes to Workspace view and launches app&lt;/li&gt;
&lt;li&gt;&lt;code&gt;clipboard&lt;/code&gt; - Copy the app&amp;rsquo;s URL to your system clipboard&lt;/li&gt;
&lt;li&gt;&lt;code&gt;top&lt;/code&gt; - Opens in the top-most browsing context, useful if you&amp;rsquo;re accessing Dashy through an iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;searching-and-shortcuts-&#34;&gt;Searching and Shortcuts 🔎
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full documentation on searching, see: &lt;a class=&#34;link&#34; href=&#34;./docs/searching.md&#34; &gt;&lt;strong&gt;Searching &amp;amp; Shortcuts&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Quickly finding and launching applications is the primary aim of Dashy. To that end, instant search and customizable keyboard shortcuts are built-in.&lt;/p&gt;
&lt;p&gt;To start filtering, start typing—no need to select the search bar or use any special key. Then use either the tab key or arrow keys to select and move between results, and hit enter to launch the currently selected application.&lt;/p&gt;
&lt;p&gt;For apps that you use regularly, you can set a custom keybinding. Use the &lt;code&gt;hotkey&lt;/code&gt; parameter on a certain item to specify a numeric key between &lt;code&gt;0 - 9&lt;/code&gt;. You can then launch that app by just pressing that key.&lt;/p&gt;
&lt;p&gt;You can also add custom tags to a given item to make finding them based on keywords easier. For example, in the following example, searching for &amp;lsquo;Movies&amp;rsquo; will show &amp;lsquo;Plex&amp;rsquo;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;items&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Plex&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;hotkey&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;icon&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;favicon&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Media library&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;https://plex.lab.local&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;movies, videos, music ]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;To search the web directly through Dashy, just press enter after typing your query. Options for web search are set under &lt;code&gt;appConfig.webSearch&lt;/code&gt;. There is built-in support for &lt;a class=&#34;link&#34; href=&#34;./docs/searching.md#setting-search-engine&#34; &gt;10+ search engines&lt;/a&gt;, or &lt;a class=&#34;link&#34; href=&#34;./docs/searching.md#using-custom-search-engine&#34; &gt;use your own custom provider&lt;/a&gt; or self-hosted instance. With the web search, you can also define your bangs to redirect results to any given app, website, or search engine, when the query is preceded with a certain character sequence (usually beginning in &lt;code&gt;/&lt;/code&gt;, &lt;code&gt;!&lt;/code&gt; or &lt;code&gt;:&lt;/code&gt;).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;webSearch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;searchEngine&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;duckduckgo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;openingMethod&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;newtab&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;searchBangs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;/r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;reddit&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;/w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;wikipedia&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;/s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;https://whoogle.local/search?q=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#39;:wolf&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;wolframalpha&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#39;:so&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;stackoverflow&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#39;:git&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;github&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Hit &lt;code&gt;Esc&lt;/code&gt; at any time to close any open apps, clear the search field, or hide any modals.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;config-editor-&#34;&gt;Config Editor ⚙️
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full config documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/configuring.md&#34; &gt;&lt;strong&gt;Configuring&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As well as passing in a YAML config file, you can also configure the app directly through the UI and preview changes live.&lt;/p&gt;
&lt;p&gt;To edit any section or item, right-click on it, and select &amp;ldquo;Edit&amp;rdquo;, or enter the Edit Mode (using the Pen icon in the top-right), then click any part of the page to edit. Changes will be visible immediately but will not be saved until clicking &amp;ldquo;Save to Disk&amp;rdquo; or &amp;ldquo;Save Locally&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Under the config menu, you can export, view, backup, or reset app config and edit the raw config file in a text editor with built-in schema validation. It&amp;rsquo;s recommended to keep a backup of your config.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img alt=&#34;Interactive Editor demo&#34; src=&#34;https://user-images.githubusercontent.com/1862727/139543020-b0576d28-0830-476f-afc8-a815d4de6def.gif&#34; width=&#34;600&#34; /&gt;
&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;
  &lt;img alt=&#34;Config Editor demo&#34; src=&#34;https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/config-editor-demo.gif&#34; width=&#34;600&#34; /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;cloud-backup--sync-&#34;&gt;Cloud Backup &amp;amp; Sync ☁
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full backup documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/backup-restore.md&#34; &gt;&lt;strong&gt;Cloud Backup &amp;amp; Sync&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dashy has an &lt;strong&gt;optional&lt;/strong&gt; built-in feature for securely backing up your config to a hosted cloud service and then restoring it on another instance. This is useful not only for backing up your configuration off-site but also enables Dashy to be used without having to write a YAML config file.&lt;/p&gt;
&lt;p&gt;All data is fully E2E encrypted before being sent to the backend (done in &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/blob/master/src/utils/CloudBackup.js&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;code&gt;CloudBackup.js&lt;/code&gt;&lt;/a&gt; using &lt;a class=&#34;link&#34; href=&#34;https://github.com/brix/crypto-js&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;crypto.js&lt;/a&gt; &amp;rsquo;s AES method). The data is then sent to a &lt;a class=&#34;link&#34; href=&#34;https://developers.cloudflare.com/workers/learning/how-workers-works&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Cloudflare worker&lt;/a&gt; and stored in a &lt;a class=&#34;link&#34; href=&#34;https://developers.cloudflare.com/workers/learning/how-kv-works&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;KV&lt;/a&gt; data store.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;language-switching-&#34;&gt;Language Switching 🌎
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full internationalization documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/multi-language-support.md&#34; &gt;&lt;strong&gt;Multi-Language Support&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dashy supports multiple languages and locales. When available, your language should be automatically detected and applied on load. But you can also select a language through the UI (under config &amp;ndash;&amp;gt; Switch Language) or set &lt;code&gt;appConfig.language&lt;/code&gt; to your language (specified as a 2-digit &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ISO 639-1 code&lt;/a&gt;), as seen below, e.g. &lt;code&gt;language: de&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;supported-languages&#34;&gt;Supported Languages
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;🇬🇧 &lt;strong&gt;English&lt;/strong&gt;: &lt;code&gt;en&lt;/code&gt; - &lt;em&gt;Default&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;🇦🇪 &lt;strong&gt;Arabic&lt;/strong&gt;: &lt;code&gt;ar&lt;/code&gt; - &lt;em&gt;Auto-generated&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;🇧🇩 &lt;strong&gt;Bengali&lt;/strong&gt;: &lt;code&gt;bn&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/soaibsafi&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@soaibsafi&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇧🇬 &lt;strong&gt;Bulgarian&lt;/strong&gt;: &lt;code&gt;bg&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/asenov&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@asenov&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇨🇳 &lt;strong&gt;Chinese&lt;/strong&gt;: &lt;code&gt;cn&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/FormatToday&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@FormatToday&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇨🇿 &lt;strong&gt;Czech&lt;/strong&gt;: &lt;code&gt;cs&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Tuzi555&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Tuzi555&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇩🇰 &lt;strong&gt;Danish&lt;/strong&gt;: &lt;code&gt;da&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/lordpansar&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@lordpansar&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇳🇱 &lt;strong&gt;Dutch&lt;/strong&gt;: &lt;code&gt;nl&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/evroon&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@evroon&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇫🇷 &lt;strong&gt;French&lt;/strong&gt;: &lt;code&gt;fr&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/EVOTk&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@EVOTk&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇩🇪 &lt;strong&gt;German&lt;/strong&gt;: &lt;code&gt;de&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Niklashere&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Niklashere&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇬🇷 &lt;strong&gt;Greek&lt;/strong&gt;: &lt;code&gt;el&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/aviolaris&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@aviolaris&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇮🇳 &lt;strong&gt;Hindi&lt;/strong&gt;: &lt;code&gt;hi&lt;/code&gt; - &lt;em&gt;Auto-generated&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;🇮🇹 &lt;strong&gt;Italian&lt;/strong&gt;: &lt;code&gt;it&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/alexdelprete&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@alexdelprete&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇯🇵 &lt;strong&gt;Japanese&lt;/strong&gt;: &lt;code&gt;ja&lt;/code&gt; - &lt;em&gt;Auto-generated&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;🇰🇷 &lt;strong&gt;Korean&lt;/strong&gt;: &lt;code&gt;ko&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/boggy-cs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@boggy-cs&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇳🇴 &lt;strong&gt;Norwegian Bokmål&lt;/strong&gt;: &lt;code&gt;nb&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/rubjo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@rubjo&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇵🇱 &lt;strong&gt;Polish&lt;/strong&gt;: &lt;code&gt;pl&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/skaarj1989&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@skaarj1989&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇵🇹 &lt;strong&gt;Portuguese&lt;/strong&gt;: &lt;code&gt;pt&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/LeoColman&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@LeoColman&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🛰️ &lt;strong&gt;Galician&lt;/strong&gt;: &lt;code&gt;gl&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/pvillaverde&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@pvillaverde&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇷🇺 &lt;strong&gt;Russian&lt;/strong&gt;: &lt;code&gt;ru&lt;/code&gt; -Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/sasetz&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@sasetz&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇸🇰 &lt;strong&gt;Slovak&lt;/strong&gt;: &lt;code&gt;sk&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Smexhy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Smexhy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇸🇮 &lt;strong&gt;Slovenian&lt;/strong&gt;: &lt;code&gt;sl&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/UrekD&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@UrekD&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇪🇸 &lt;strong&gt;Spanish&lt;/strong&gt;: &lt;code&gt;es&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/lu4t&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@lu4t&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇸🇪 &lt;strong&gt;Swedish&lt;/strong&gt;: &lt;code&gt;sv&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/BOZG&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@BOZG&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇹🇼 &lt;strong&gt;Traditional Chinese&lt;/strong&gt;: &lt;code&gt;zh-TW&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/stanly0726&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@stanly0726&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇹🇷 &lt;strong&gt;Turkish&lt;/strong&gt;: &lt;code&gt;tr&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/imsakg&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@imsakg&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🇺🇦 &lt;strong&gt;Ukrainian&lt;/strong&gt;: &lt;code&gt;uk&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/allozavrr&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@allozavrr&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;🏴‍☠️ &lt;strong&gt;Pirate&lt;/strong&gt;: &lt;code&gt;pirate&lt;/code&gt; - Contributed by &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/lissy93&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@Lissy93&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;add-your-language&#34;&gt;Add your Language
&lt;/h4&gt;&lt;p&gt;I would love Dashy to be available to everyone without language being a barrier to entry. If you&amp;rsquo;ve got a few minutes to spare, consider adding translations for your language. It&amp;rsquo;s a quick task, and all text is in &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/tree/master/src/assets/locales&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;a single JSON file&lt;/a&gt;. Since any missing text will fall back to English, you don&amp;rsquo;t need to translate it all.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;multi-page-support-&#34;&gt;Multi-Page Support 📃
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full multi-page documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/pages-and-sections.md&#34; &gt;&lt;strong&gt;Pages &amp;amp; Sections&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Within your dashboard, you can have as many sub-pages as you require. To load additional pages, specify a name, and path to a config file under &lt;code&gt;pages&lt;/code&gt;. The config file can be either local (stored in &lt;code&gt;/public&lt;/code&gt;), or remote (located anywhere accessible).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pages&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Networking Services&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;networking.yml&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Work Stuff&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;work.yml&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Or&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;pages&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Getting Started&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://snippet.host/tvcw/raw&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Homelab&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://snippet.host/tetp/raw&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Browser Startpage&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;https://snippet.host/zcom/raw&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;system-requirements-&#34;&gt;System Requirements 📊
&lt;/h2&gt;&lt;p&gt;If running on bare metal, Dashy requires &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org/en/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node&lt;/a&gt; V 16.0.0 or later, LTS (16.13.2) is recommended.&lt;/p&gt;
&lt;p&gt;If running in Docker container, the recommended base image is Alpine (3.15)&lt;/p&gt;
&lt;p&gt;The hardware requirements vary depending on where and how you are running Dashy. Generally speaking, on a bare-metal system or Docker container, 1GB of memory should be more than enough, and depending on whether you are using your own assets, then 1GB of disk space should be sufficient.&lt;/p&gt;
&lt;p&gt;If you are using one of the 1-click cloud deployment methods, serving the app through a CDN or using a static hosting provider, then there are no specific requirements, as the built app is just a series of static JS files, and so is very light-weight.&lt;/p&gt;
&lt;p&gt;Dashy also wells run on low-powered ARM-based single board computers, such as a Raspberry Pi (tested on Pi 3)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Browser Support&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;img src=&#34;https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Chrome&#34;
	
	
&gt;&lt;/th&gt;
          &lt;th&gt;&lt;img src=&#34;https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Firefox&#34;
	
	
&gt;&lt;/th&gt;
          &lt;th&gt;&lt;img src=&#34;https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;IE&#34;
	
	
&gt;&lt;/th&gt;
          &lt;th&gt;&lt;img src=&#34;https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Opera&#34;
	
	
&gt;&lt;/th&gt;
          &lt;th&gt;&lt;img src=&#34;https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Safari&#34;
	
	
&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Latest ✔&lt;/td&gt;
          &lt;td&gt;Latest ✔&lt;/td&gt;
          &lt;td&gt;10+ ✔&lt;/td&gt;
          &lt;td&gt;Latest ✔&lt;/td&gt;
          &lt;td&gt;6.1+ ❌&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;support-&#34;&gt;Support 🙋‍♀️
&lt;/h2&gt;&lt;p&gt;If you&amp;rsquo;re having trouble getting Dashy up and running, or have a question about usage or configuration, feel free to ask. The best place to do this is via &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/discussions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;the Discussions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve found something which isn&amp;rsquo;t working as it should, please raise a bug by &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/issues/new/choose&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;opening a ticket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s best to check the &lt;a class=&#34;link&#34; href=&#34;./docs&#34; &gt;docs&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/issues?q=label%3A%22%F0%9F%A4%B7%E2%80%8D%E2%99%82%EF%B8%8F&amp;#43;Question%22&amp;#43;&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;previous issues&lt;/a&gt; and &lt;a class=&#34;link&#34; href=&#34;./docs/troubleshooting.md&#34; &gt;troubleshooting guide&lt;/a&gt; first.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;supporting-dashy-&#34;&gt;Supporting Dashy 💖
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full details and other ways you can help out, see: &lt;a class=&#34;link&#34; href=&#34;./docs/contributing.md&#34; &gt;&lt;strong&gt;Contributing&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you&amp;rsquo;re using Dashy and would like to help support its development, then that would be awesome! Contributions of any type, any size, are always very much appreciated, and we will appropriately credit you for your effort.&lt;/p&gt;
&lt;p&gt;Several areas that we need a bit of help with at the moment are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Translating - Help make Dashy available to non-native English speakers by &lt;a class=&#34;link&#34; href=&#34;./docs/multi-language-support.md#adding-a-new-language&#34; &gt;adding your language&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Donate a small amount by &lt;a class=&#34;link&#34; href=&#34;https://github.com/sponsors/Lissy93&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Sponsoring @Lissy93 on GitHub&lt;/a&gt; and receive some extra perks!&lt;/li&gt;
&lt;li&gt;Complete a &lt;a class=&#34;link&#34; href=&#34;https://survey.typeform.com/to/gl0L68ou&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;short survey&lt;/a&gt; to have your say about future features&lt;/li&gt;
&lt;li&gt;Share your dashboard in the &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#dashy-showcase-&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Showcase&lt;/a&gt;, to inspire others&lt;/li&gt;
&lt;li&gt;Spread the word by sharing Dashy or a screenshot of your dashboard to help new users discover it&lt;/li&gt;
&lt;li&gt;Submit a PR to add a new feature, fix a bug, update the docs, add a theme, widget or something else&lt;/li&gt;
&lt;li&gt;Star Dashy on GitHub/ DockerHub or leave an upvote / review on &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/blob/master/docs/contributing.md#star-upvote-or-leave-a-review&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;these platforms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/sponsors/Lissy93&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;credits-&#34;&gt;Credits 🏆
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For a complete list of credits, and attributions to packages used within Dashy, see: &lt;a class=&#34;link&#34; href=&#34;./docs/credits.md&#34; &gt;&lt;strong&gt;Credits&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thank you so much to everyone who has helped with Dashy so far; every contribution is very much appreciated.&lt;/p&gt;
&lt;h4 id=&#34;sponsors&#34;&gt;Sponsors
&lt;/h4&gt;&lt;p&gt;Huge thanks to the sponsors helping to support Dashy&amp;rsquo;s development!&lt;/p&gt;
&lt;!-- readme: sponsors -start --&gt;
&lt;table&gt;
&lt;tr&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/vincentkoc&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/25068?u=fbd5b2d51142daa4bdbc21e21953a3b8b8188a4a&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;vincentkoc&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Vincent Koc&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/BrianCurliss&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/1222949?v=4&#34; width=&#34;80;&#34; alt=&#34;BrianCurliss&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Brian Curliss&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/AnandChowdhary&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/2841780?u=747e554b3a7f12eb20b7910e1c87d817844f714f&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;AnandChowdhary&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Anand Chowdhary&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/bile0026&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/5022496?u=aec96ad173c0ea9baaba93807efa8a848af6595c&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;bile0026&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Zach Biles&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/UlisesGascon&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/5110813?u=3c41facd8aa26154b9451de237c34b0f78d672a5&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;UlisesGascon&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Ulises Gascón&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/InDieTasten&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/7047377?u=8d8f8017628b38bc46dcbf3620e194b01d3fb2d1&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;InDieTasten&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;InDieTasten&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/araguaci&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/7318668?v=4&#34; width=&#34;80;&#34; alt=&#34;araguaci&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Araguaci&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/bmcgonag&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/7346620?u=2a0f9284f3e12ac1cc15288c254d1ec68a5081e8&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;bmcgonag&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Brian McGonagill&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/vlad-tim&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/11474041?u=eee43705b54d2ec9f51fc4fcce5ad18dd17c87e4&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;vlad-tim&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Vlad&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/helixzz&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/12218889?u=d06d0c103dfbdb99450623064f7da3c5a3675fb6&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;helixzz&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;HeliXZz&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/mryesiller&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/24632172?u=0d20f2d615158f87cd60a3398d3efb026c32f291&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;mryesiller&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Göksel Yeşiller&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/undefined&#34;&gt;
            &lt;img src=&#34;&#34; width=&#34;80;&#34; alt=&#34;undefined&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Undefined&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/OlliVHH&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/84959562?v=4&#34; width=&#34;80;&#34; alt=&#34;OlliVHH&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;HamburgerJung&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/frankdez93&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/87549420?v=4&#34; width=&#34;80;&#34; alt=&#34;frankdez93&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Frankdez93&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/hudsonrock-partnerships&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/163282900?u=5f2667f7fe5d284ac7a2da6b0800ea8970b0fcbf&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;hudsonrock-partnerships&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Hudsonrock-partnerships&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;
    &lt;td align=&#34;center&#34;&gt;
        &lt;a href=&#34;https://github.com/gl0bal01&#34;&gt;
            &lt;img src=&#34;https://avatars.githubusercontent.com/u/173822055?u=4d323807f120b34da9b156bfd168b46a22844764&amp;v=4&#34; width=&#34;80;&#34; alt=&#34;gl0bal01&#34;/&gt;
            &lt;br /&gt;
            &lt;sub&gt;&lt;b&gt;Gl0bal01 💖 龴ↀ◡ↀ龴&lt;/b&gt;&lt;/sub&gt;
        &lt;/a&gt;
    &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;!-- readme: sponsors -end --&gt;
&lt;h4 id=&#34;contributors&#34;&gt;Contributors
&lt;/h4&gt;&lt;p&gt;[&lt;/p&gt;
&lt;h4 id=&#34;stats&#34;&gt;Stats
&lt;/h4&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/blob/master/docs/credits.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://repobeats.axiom.co/api/embed/48546e3c768d38c450ba136e32c0992bcf58ad73.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Stats&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;developing-&#34;&gt;Developing 🧱
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full development documentation, see: &lt;a class=&#34;link&#34; href=&#34;./docs/developing.md&#34; &gt;&lt;strong&gt;Developing&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://open.vscode.dev/Lissy93/Dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Open_in-VS_Code-863cfc?style=flat-square&amp;amp;logo=visualstudiocode&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Open Project in VS Code&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://gitpod.io/#github.com/lissy93/dashy.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Open_in-GitPod-ffae33?style=flat-square&amp;amp;logo=gitpod&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Open in GitPod&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.dev/Lissy93/dashy&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/badge/Open_in-Code%20Spaces-131313?style=flat-square&amp;amp;logo=github&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Open in GitHub Code Spaces&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Before getting started, you&amp;rsquo;ll need &lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/downloads&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git&lt;/a&gt;, &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org/en/download/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node&lt;/a&gt; and optionally &lt;a class=&#34;link&#34; href=&#34;https://yarnpkg.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Yarn&lt;/a&gt; (run &lt;code&gt;npm i -g yarn&lt;/code&gt;) installed.&lt;/p&gt;
&lt;p&gt;To set up the development environment:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get Code: &lt;code&gt;git clone https://github.com/Lissy93/dashy.git&lt;/code&gt;  and &lt;code&gt;cd dashy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Install dependencies: &lt;code&gt;yarn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start dev server: &lt;code&gt;yarn dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Open the browser: &lt;code&gt;http://localhost:8080&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you&amp;rsquo;re ready, you can build the production app with &lt;code&gt;yarn build&lt;/code&gt;, and then run it with &lt;code&gt;yarn start&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re new to web development, I&amp;rsquo;ve put together a short &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/blob/master/docs/developing.md#resources-for-beginners&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;list of resources&lt;/a&gt; to help beginners get started&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Repo Status&lt;/strong&gt;:
&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/pulls&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://flat.badgen.net/github/open-prs/lissy93/dashy?icon=github&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Open PRs&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/pulls?q=&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://flat.badgen.net/github/prs/lissy93/dashy?icon=github&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Total PRs&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/commits/master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/github/commit-activity/m/lissy93/dashy?style=flat-square&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;GitHub commit activity&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/commits/master&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://flat.badgen.net/github/last-commit/lissy93/dashy?icon=github&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Last Commit&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/graphs/contributors&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://flat.badgen.net/github/contributors/lissy93/dashy?icon=github&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Contributors&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;documentation-&#34;&gt;Documentation 📘
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;For full docs, see: &lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;./docs/readme.md&#34; &gt;Documentation Contents&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;running-dashy&#34;&gt;Running Dashy
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;💨 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/quick-start.md&#34; &gt;Quick Start&lt;/a&gt; - TDLR guide on getting Dashy up and running in under 5 minutes&lt;/li&gt;
&lt;li&gt;🚀 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/deployment.md&#34; &gt;Deployment&lt;/a&gt; - Full guide on setting up Dashy on various different environments&lt;/li&gt;
&lt;li&gt;🔧 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/configuring.md&#34; &gt;Configuring&lt;/a&gt; - Complete list of all available options in the config file&lt;/li&gt;
&lt;li&gt;💻 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/management.md&#34; &gt;Management&lt;/a&gt; - Managing your app, updating, security, web server configuration, etc&lt;/li&gt;
&lt;li&gt;🚒 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/troubleshooting.md&#34; &gt;Troubleshooting&lt;/a&gt; - Common errors and problems, and how to fix them&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;feature-docs&#34;&gt;Feature Docs
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;🛡️ &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/authentication.md&#34; &gt;Authentication&lt;/a&gt; - Guide to setting up authentication to protect your dashboard&lt;/li&gt;
&lt;li&gt;🌈 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/alternate-views.md&#34; &gt;Alternate Views&lt;/a&gt; - Outline of available pages / views and item opening methods&lt;/li&gt;
&lt;li&gt;💾 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/backup-restore.md&#34; &gt;Backup &amp;amp; Restore&lt;/a&gt; - Guide to backing up config with Dashy&amp;rsquo;s cloud sync feature&lt;/li&gt;
&lt;li&gt;🧸 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/icons.md&#34; &gt;Icons&lt;/a&gt; - Outline of all available icon types for sections and items, with examples&lt;/li&gt;
&lt;li&gt;🌐 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/multi-language-support.md&#34; &gt;Multi-Language Support&lt;/a&gt; - Switching languages, and adding a new locales&lt;/li&gt;
&lt;li&gt;🚦 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/status-indicators.md&#34; &gt;Status Indicators&lt;/a&gt; - Using Dashy to monitor uptime and status of your apps&lt;/li&gt;
&lt;li&gt;🔍 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/searching.md&#34; &gt;Searching  &amp;amp; Shortcuts&lt;/a&gt; - Searching, launching methods + keyboard shortcuts&lt;/li&gt;
&lt;li&gt;🎨 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/theming.md&#34; &gt;Theming&lt;/a&gt; - Complete guide to applying, writing and modifying themes + styles&lt;/li&gt;
&lt;li&gt;📊 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/widgets.md&#34; &gt;Widgets&lt;/a&gt; - List of all dynamic content widgets, with usage guides and examples&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;development-and-contributing&#34;&gt;Development and Contributing
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;🧱 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/developing.md&#34; &gt;Developing&lt;/a&gt; - Running Dashy development server locally, and general workflow&lt;/li&gt;
&lt;li&gt;🛎️ &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/development-guides.md&#34; &gt;Development Guides&lt;/a&gt; - Common development tasks, to help new contributors&lt;/li&gt;
&lt;li&gt;💖 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/contributing.md&#34; &gt;Contributing&lt;/a&gt; - How to contribute to Dashy&lt;/li&gt;
&lt;li&gt;🌟 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/showcase.md&#34; &gt;Showcase&lt;/a&gt; - See how others are using Dashy, and share your dashboard&lt;/li&gt;
&lt;li&gt;🏆 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/credits.md&#34; &gt;Credits&lt;/a&gt; - Shout out to the amazing people who have contributed so far&lt;/li&gt;
&lt;li&gt;🗞️ &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/release-workflow.md&#34; &gt;Release Workflow&lt;/a&gt; - Info about releases, CI and automated tasks&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;misc&#34;&gt;Misc
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;🔐 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/docs/privacy.md&#34; &gt;Privacy &amp;amp; Security&lt;/a&gt; - List of requests, potential issues, and security resources&lt;/li&gt;
&lt;li&gt;📄 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/LICENSE&#34; &gt;License&lt;/a&gt; - Copy of the MIT License&lt;/li&gt;
&lt;li&gt;⚖️ &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/.github/LEGAL.md&#34; &gt;Legal&lt;/a&gt; - Licenses of direct dependencies&lt;/li&gt;
&lt;li&gt;📏 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/.github/CODE_OF_CONDUCT.md&#34; &gt;Code of Conduct&lt;/a&gt; - Contributor Covenant Code of Conduct&lt;/li&gt;
&lt;li&gt;🌳 &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/.github/CHANGELOG.md&#34; &gt;Changelog&lt;/a&gt; - Details of recent changes, and historical versions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;roadmap-&#34;&gt;Roadmap 🛣️
&lt;/h2&gt;&lt;p&gt;For upcoming features that will be released in the near future, see the &lt;a class=&#34;link&#34; href=&#34;https://github.com/Lissy93/dashy/discussions/405&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;strong&gt;Current Roadmap&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For past updates, see the &lt;a class=&#34;link&#34; href=&#34;https://producthunt.programnotes.cn/.github/CHANGELOG.md&#34; &gt;&lt;strong&gt;Changelog&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;alternatives-&#34;&gt;Alternatives 🙌
&lt;/h2&gt;&lt;p&gt;A few self-hosted web apps serve a similar purpose to Dashy. If you&amp;rsquo;re looking for a dashboard, and Dashy doesn&amp;rsquo;t meet your needs, I highly recommend you check these projects out!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/pawelmalak/flame&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Flame&lt;/a&gt; by @pawelmalak (&lt;code&gt;MIT&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://lamarios.github.io/Homedash2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;HomeDash2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/bastienwirtz/homer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Homer&lt;/a&gt; (&lt;code&gt;Apache License 2.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://organizr.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Organizr&lt;/a&gt; (&lt;code&gt;GPL-3.0 License&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/linuxserver/Heimdall&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Heimdall&lt;/a&gt; (&lt;code&gt;MIT&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Smashing/smashing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Smashing&lt;/a&gt; (&lt;code&gt;MIT&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;See more 👉 &lt;a class=&#34;link&#34; href=&#34;https://github.com/awesome-selfhosted/awesome-selfhosted#personal-dashboards&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Awesome Self-Hosted&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;license-&#34;&gt;License 📜
&lt;/h2&gt;&lt;p&gt;Dashy is Licensed under &lt;a class=&#34;link&#34; href=&#34;https://en.wikipedia.org/wiki/MIT_License&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;MIT X11&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-zed&#34; data-lang=&#34;zed&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Copyright&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;©&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;2021&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;2024&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Alicia&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Sykes&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;//aliciasykes.com&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Permission&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hereby&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;granted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;free&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;charge&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;any&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;person&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;obtaining&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;copy&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;software&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;and&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;associated&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;documentation&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;files&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Software&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;deal&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Software&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;without&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;restriction&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;including&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;without&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;limitation&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rights&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;use&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;copy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;modify&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;merge&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;publish&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;distribute&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sublicense&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;and/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;or&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sell&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;copies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Software&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;and&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;permit&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;persons&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;whom&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Software&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;furnished&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;do&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;so&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;subject&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;following&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;conditions&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;The&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;above&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;copyright&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;notice&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;and&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;permission&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;notice&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shall&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;be&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;included&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;all&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;copies&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;or&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;substantial&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;portions&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;of&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Software&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;THE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SOFTWARE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PROVIDED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IS&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WITHOUT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WARRANTY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ANY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;KIND&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EXPRESS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IMPLIED&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;INCLUDING&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;BUT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;NOT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LIMITED&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;TO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;THE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WARRANTIES&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MERCHANTABILITY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FITNESS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FOR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;A&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PARTICULAR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PURPOSE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AND&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;NONINFRINGEMENT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;NO&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EVENT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SHALL&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;THE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AUTHORS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;COPYRIGHT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HOLDERS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;BE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;LIABLE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FOR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ANY&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CLAIM&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DAMAGES&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OTHER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LIABILITY&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WHETHER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ACTION&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OF&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CONTRACT&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;TORT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OTHERWISE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ARISING&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;FROM&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OUT&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OF&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CONNECTION&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WITH&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;THE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SOFTWARE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;THE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;USE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;OR&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;OTHER&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DEALINGS&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IN&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;THE&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SOFTWARE&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Except&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;as&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contained&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;notice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Dashy&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shall&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;not&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;be&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;used&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;advertising&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;or&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;otherwise&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;to&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;promote&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sale&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;use&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;or&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;other&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dealings&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Software&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;without&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;prior&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;written&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;authorization&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;from&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;the&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;repo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;owner&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;TDLR;&lt;/strong&gt; &lt;em&gt;You can do whatever you like with Dashy: use it in private or commercial settings,&lt;/em&gt;
&lt;em&gt;redistribute and modify it. But you must display this license and credit the author.&lt;/em&gt;
&lt;em&gt;There is no warranty that this app will work as expected, and the author cannot be held&lt;/em&gt;
&lt;em&gt;liable for anything that goes wrong.&lt;/em&gt;
For more info, see TLDR Legal&amp;rsquo;s &lt;a class=&#34;link&#34; href=&#34;https://tldrlegal.com/license/mit-license&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Explanation of MIT&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://app.fossa.com/projects/git%2Bgithub.com%2FLissy93%2Fdashy?ref=badge_large&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://app.fossa.com/api/projects/git%2Bgithub.com%2FLissy93%2Fdashy.svg?type=large&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;FOSSA Status&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class=&#34;link&#34; href=&#34;#dashy&#34; &gt;⬆️ Back to Top&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;!-- License + Copyright --&gt;
&lt;p  align=&#34;center&#34;&gt;
  &lt;i&gt;© &lt;a href=&#34;https://aliciasykes.com&#34;&gt;Alicia Sykes&lt;/a&gt; 2024&lt;/i&gt;&lt;br&gt;
  &lt;i&gt;Licensed under &lt;a href=&#34;https://gist.github.com/Lissy93/143d2ee01ccc5c052a17&#34;&gt;MIT&lt;/a&gt;&lt;/i&gt;&lt;br&gt;
  &lt;a href=&#34;https://github.com/lissy93&#34;&gt;&lt;img src=&#34;https://i.ibb.co/4KtpYxb/octocat-clean-mini.png&#34; /&gt;&lt;/a&gt;&lt;br&gt;
  &lt;sup&gt;Thanks for visiting :)&lt;/sup&gt;
&lt;/p&gt;
&lt;!-- Dinosaurs are Awesome --&gt;
&lt;!-- 
                        . - ~ ~ ~ - .
      ..     _      .-~               ~-.
     //|     \ `..~                      `.
    || |      }  }              /       \  \
(\   \\ \~^..&#39;                 |         }  \
 \`.-~  o      /       }       |        /    \
 (__          |       /        |       /      `.
  `- - ~ ~ -._|      /_ - ~ ~ ^|      /- _      `.
              |     /          |     /     ~-.     ~- _
              |_____|          |_____|         ~ - . _ _~_-_
--&gt;
</description>
        </item>
        <item>
        <title>omni-tools</title>
        <link>https://producthunt.programnotes.cn/en/p/omni-tools/</link>
        <pubDate>Mon, 07 Jul 2025 15:31:40 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/omni-tools/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1533382433768-3d403240fa40?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3NTE4NzM0MjZ8&amp;ixlib=rb-4.1.0" alt="Featured image of post omni-tools" /&gt;&lt;h1 id=&#34;iib0011omni-tools&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/iib0011/omni-tools&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;iib0011/omni-tools&lt;/a&gt;
&lt;/h1&gt;&lt;div align=&#34;center&#34;&gt;
        &lt;img src=&#34;src/assets/logo.png&#34; width=&#34;300&#34; /&gt;
        &lt;br /&gt;&lt;br /&gt;
&lt;a href=&#34;https://trendshift.io/repositories/13055&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;https://trendshift.io/api/badge/repositories/13055&#34; alt=&#34;iib0011%2Fomni-tools | Trendshift&#34; style=&#34;width: 200px;&#34; width=&#34;200&#34;/&gt;&lt;/a&gt;
   &lt;br /&gt;&lt;br /&gt;
&lt;a href=&#34;https://github.com/iib0011/omni-tools/releases&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/badge/version-0.4.0-blue?style=for-the-badge&#34; /&gt;
        &lt;/a&gt;
        &lt;a href=&#34;https://hub.docker.com/r/iib0011/omni-tools&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/pulls/iib0011/omni-tools?style=for-the-badge&amp;logo=docker&#34; /&gt;
        &lt;/a&gt;
        &lt;a href=&#34;https://github.com/iib0011&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/github/stars/iib0011/omni-tools?style=for-the-badge&amp;logo=github&#34; /&gt;
        &lt;/a&gt;
        &lt;a href=&#34;https://github.com/iib0011/omni-tools/blob/main/LICENSE&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/github/license/iib0011/omni-tools?style=for-the-badge&#34; /&gt;
        &lt;/a&gt;
        &lt;a href=&#34;https://discord.gg/SDbbn3hT4b&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/discord/1342971141823664179?label=Discord&amp;style=for-the-badge&#34; /&gt;
        &lt;/a&gt;
        &lt;br /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;Welcome to OmniTools, a self-hosted web app offering a variety of online tools to simplify everyday tasks.
Whether you are coding, manipulating images/videos, PDFs or crunching numbers, OmniTools has you covered. Please don&amp;rsquo;t
forget to
star the repo to support us.
Here is the &lt;a class=&#34;link&#34; href=&#34;https://omnitools.app&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;demo&lt;/a&gt; website.&lt;/p&gt;
&lt;p&gt;All files are processed entirely on the client side: nothing ever leaves your device.
Plus, the Docker image is super lightweight at just 28MB, making it fast to deploy and easy to self-host.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://producthunt.programnotes.cn/img.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;img.png&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;table-of-contents&#34;&gt;Table of Contents
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#features&#34; &gt;Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#self-hostrun&#34; &gt;Self-host&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#contribute&#34; &gt;Contribute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#license&#34; &gt;License&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#contact&#34; &gt;Contact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;features&#34;&gt;Features
&lt;/h2&gt;&lt;p&gt;We strive to offer a variety of tools, including:&lt;/p&gt;
&lt;h2 id=&#34;imagevideobinary-tools&#34;&gt;&lt;strong&gt;Image/Video/Binary Tools&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Image Resizer&lt;/li&gt;
&lt;li&gt;Image Converter&lt;/li&gt;
&lt;li&gt;Video Trimmer&lt;/li&gt;
&lt;li&gt;Video Reverser&lt;/li&gt;
&lt;li&gt;And more&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;stringlist-tools&#34;&gt;&lt;strong&gt;String/List Tools&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Case Converters&lt;/li&gt;
&lt;li&gt;List Shuffler&lt;/li&gt;
&lt;li&gt;Text Formatters&lt;/li&gt;
&lt;li&gt;And more&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;date-and-time-tools&#34;&gt;&lt;strong&gt;Date and Time Tools&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Date Calculators&lt;/li&gt;
&lt;li&gt;Time Zone Converters&lt;/li&gt;
&lt;li&gt;And more&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;math-tools&#34;&gt;&lt;strong&gt;Math Tools&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Generate Prime Numbers&lt;/li&gt;
&lt;li&gt;Generate Perfect Numbers&lt;/li&gt;
&lt;li&gt;And more&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;miscellaneous-tools&#34;&gt;&lt;strong&gt;Miscellaneous Tools&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;JSON Tools&lt;/li&gt;
&lt;li&gt;PDF Tools&lt;/li&gt;
&lt;li&gt;CSV Tools&lt;/li&gt;
&lt;li&gt;And more&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stay tuned as we continue to expand and improve our collection!&lt;/p&gt;
&lt;h2 id=&#34;self-hostrun&#34;&gt;Self-host/Run
&lt;/h2&gt;&lt;h3 id=&#34;docker&#34;&gt;Docker
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d --name omni-tools --restart unless-stopped -p 8080:80 iib0011/omni-tools:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;docker-compose&#34;&gt;Docker Compose
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;omni-tools&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;iib0011/omni-tools:latest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;omni-tools&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;s2&#34;&gt;&amp;#34;8080:80&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;contribute&#34;&gt;Contribute
&lt;/h2&gt;&lt;p&gt;This is a React Project with Typescript Material UI. We use icons from &lt;a class=&#34;link&#34; href=&#34;https://icon-sets.iconify.design&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Iconify&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;project-setup&#34;&gt;Project setup
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/iib0011/omni-tools.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; omni-tools
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm i
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;create-a-new-tool&#34;&gt;Create a new tool
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run script:create:tool my-tool-name folder1 &lt;span class=&#34;c1&#34;&gt;# npm run script:create:tool split pdf&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;For tools located under multiple nested directories, use:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run script:create:tool my-tool-name folder1/folder2 &lt;span class=&#34;c1&#34;&gt;# npm run script:create:tool compress image/png&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Use &lt;code&gt;folder1\folder2&lt;/code&gt; on Windows.&lt;/p&gt;
&lt;h3 id=&#34;run-tests&#34;&gt;Run tests
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;For e2e tests&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run test:e2e
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src=&#34;https://api.star-history.com/svg?repos=iib0011/omni-tools&amp;type=Date&#34;/&gt;
&lt;h2 id=&#34;-looking-to-contribute&#34;&gt;🤝 Looking to contribute?
&lt;/h2&gt;&lt;p&gt;We welcome contributions! You can help by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✅ Reporting bugs&lt;/li&gt;
&lt;li&gt;✅ Suggesting new features in Github issues or &lt;a class=&#34;link&#34; href=&#34;https://tally.so/r/nrkkx2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;✅ Improving documentation&lt;/li&gt;
&lt;li&gt;✅ Submitting pull requests&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also join our &lt;a class=&#34;link&#34; href=&#34;https://discord.gg/SDbbn3hT4b&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Discord server&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;contributors&#34;&gt;Contributors
&lt;/h3&gt;&lt;a href=&#34;https://github.com/iib0011/omni-tools/graphs/contributors&#34;&gt;
  &lt;img src=&#34;https://contrib.rocks/image?repo=iib0011/omni-tools&#34; /&gt;
&lt;/a&gt;
&lt;h2 id=&#34;contact&#34;&gt;Contact
&lt;/h2&gt;&lt;p&gt;For any questions or suggestions, feel free to open an issue or contact me at:
&lt;a class=&#34;link&#34; href=&#34;mailto:ibracool99@gmail.com&#34; &gt;ibracool99@gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;This project is licensed under the MIT License. See the &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;LICENSE&lt;/a&gt; file for details.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
