Files
2026-06-25 19:32:06 +02:00

326 lines
23 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-us" dir="ltr" itemscope itemtype="http://schema.org/Article" data-r-output-format="html">
<head>
<meta charset="utf-8">
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="generator" content="Hugo 0.161.1">
<meta name="generator" content="Relearn 8.2.0+220806ce3ced8264fbdd693f77f28216a8a1b6ae">
<meta name="description" content="Written for gokrazy The following third-party programs specifically target gokrazy.
To get your program listed here, just send us a pull request.
scan2drive scan2drive is an appliance (with a web interface) that scans paper documents 📄 from a scanner 🖨️ as PDFs to Google Drive for full-text search.">
<meta name="author" content="">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Showcase :: gokrazy">
<meta name="twitter:description" content="Written for gokrazy The following third-party programs specifically target gokrazy.
To get your program listed here, just send us a pull request.
scan2drive scan2drive is an appliance (with a web interface) that scans paper documents 📄 from a scanner 🖨️ as PDFs to Google Drive for full-text search.">
<meta property="og:url" content="https://gokrazy.org/packages/showcase/index.html">
<meta property="og:site_name" content="gokrazy">
<meta property="og:title" content="Showcase :: gokrazy">
<meta property="og:description" content="Written for gokrazy The following third-party programs specifically target gokrazy.
To get your program listed here, just send us a pull request.
scan2drive scan2drive is an appliance (with a web interface) that scans paper documents 📄 from a scanner 🖨️ as PDFs to Google Drive for full-text search.">
<meta property="og:locale" content="en_us">
<meta property="og:type" content="article">
<meta property="article:section" content="Available packages">
<meta itemprop="name" content="Showcase :: gokrazy">
<meta itemprop="description" content="Written for gokrazy The following third-party programs specifically target gokrazy.
To get your program listed here, just send us a pull request.
scan2drive scan2drive is an appliance (with a web interface) that scans paper documents 📄 from a scanner 🖨️ as PDFs to Google Drive for full-text search.">
<meta itemprop="wordCount" content="435">
<title>Showcase :: gokrazy</title>
<link href="/images/favicon.png?1782408721" rel="icon" type="image/png">
<link href="/css/auto-complete/auto-complete.min.css?1782408721" rel="stylesheet">
<script src="/js/auto-complete/auto-complete.min.js?1782408721" defer></script>
<script src="/js/search-lunr.min.js?1782408721" defer></script>
<script src="/js/search.min.js?1782408721" defer></script>
<script>
window.relearn = window.relearn || {};
window.relearn.index_js_url="/searchindex.en.js?1782408721";
</script>
<script src="/js/lunr/lunr.min.js?1782408721" defer></script>
<script src="/js/lunr/lunr.stemmer.support.min.js?1782408721" defer></script>
<script src="/js/lunr/lunr.multi.min.js?1782408721" defer></script>
<script src="/js/lunr/lunr.en.min.js?1782408721" defer></script>
<script>
window.relearn = window.relearn || {};
window.relearn.contentLangs=['en'];
</script>
<link href="/fonts/fontawesome/css/fontawesome-all.min.css?1782408721" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/fonts/fontawesome/css/fontawesome-all.min.css?1782408721" rel="stylesheet"></noscript>
<link href="/css/perfect-scrollbar/perfect-scrollbar.min.css?1782408721" rel="stylesheet">
<link href="/css/theme.min.css?1782408721" rel="stylesheet">
<link href="/css/format-html.min.css?1782408721" rel="stylesheet" id="R-format-style">
<script>
window.relearn = window.relearn || {};
// configuration
window.relearn.min = `.min`;
window.relearn.path='\/packages\/showcase\/index.html';
window.relearn.relBasePath='..\/..';
window.relearn.relBaseUri='..\/..';
window.relearn.absBaseUri='https:\/\/gokrazy.org';
window.relearn.disableInlineCopyToClipboard=true;
window.relearn.enableBlockCodeWrap=true;
// legal
window.relearn.getItem = (s,n) => {return s.getItem(n)};
window.relearn.setItem = (s,n,v) => {return s.setItem(n,v)};
window.relearn.removeItem = (s,n) => {return s.removeItem(n)};
// translations
window.T_Copy_to_clipboard = `Copy text to clipboard`;
window.T_Copied_to_clipboard = `Text copied to clipboard!`;
window.T_Link_copied_to_clipboard = `Link copied to clipboard!`;
window.T_Reset_view = `Reset view`;
window.T_View_reset = `View reset!`;
window.T_No_results_found = `No results found for "{0}"`;
window.T_N_results_found = `{1} results found for "{0}"`;
window.T_Browser_unsupported_feature = `This browser doesn't support this feature`;
// variant stuff
window.relearn.themevariants = [ 'auto' ];
window.relearn.customvariantname = "my-custom-variant";
window.relearn.changeVariant = function(variant) {
var oldVariant = document.documentElement.dataset.rThemeVariant;
window.relearn.setItem(window.localStorage, window.relearn.absBaseUri + "/variant", variant);
document.documentElement.dataset.rThemeVariant = variant;
if (oldVariant != variant) {
document.dispatchEvent( new CustomEvent('themeVariantLoaded', { detail: { variant, oldVariant } }) );
window.relearn.markVariant();
}
}
window.relearn.markVariant = function() {
var variant = window.relearn.getItem(window.localStorage, window.relearn.absBaseUri + "/variant");
document.querySelectorAll(".R-variantswitcher select").forEach((select) => {select.value = variant;});
}
window.relearn.initVariant = function() {
var variant = window.relearn.getItem(window.localStorage, window.relearn.absBaseUri + "/variant") ?? "";
if( variant == window.relearn.customvariantname ){
}else if( !variant || !window.relearn.themevariants.includes(variant) ){
variant = window.relearn.themevariants[0];
window.relearn.setItem(window.localStorage, window.relearn.absBaseUri + "/variant", variant);
}
document.documentElement.dataset.rThemeVariant = variant;
}
window.relearn.initVariant();
window.relearn.markVariant();
</script>
</head>
<body class="mobile-support html" data-url="/packages/showcase/index.html">
<div id="R-body" class="default-animation">
<div id="R-body-overlay"></div>
<nav id="R-topbar">
<div class="topbar-wrapper">
<div class="topbar-sidebar-divider"></div>
<div class="topbar-area topbar-area-start" data-area="start">
<div class="topbar-button topbar-button-sidebar" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide">
<span class="btn cstyle button link noborder notitle interactive"><button onclick="toggleNav()" type="button" title="Menu (CTRL&#43;ALT&#43;n)"><i class="fa-fw fas fa-bars"></i></button></span>
</div>
<div class="topbar-button topbar-button-toc" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show">
<span class="btn cstyle button link noborder notitle interactive"><button onclick="toggleTopbarFlyout(this)" type="button" title="Table of Contents (CTRL&#43;ALT&#43;t)"><i class="fa-fw fas fa-list-alt"></i></button></span>
<div class="topbar-content">
<div class="topbar-content-wrapper">
<nav class="TableOfContents">
<ul>
<li><a href="#written-for-gokrazy">Written for gokrazy</a>
<ul>
<li><a href="#scan2drive">scan2drive</a></li>
<li><a href="#router7">router7</a></li>
<li><a href="#hmgo">hmgo</a></li>
<li><a href="#beatbox">beatbox</a></li>
<li><a href="#consrv">consrv</a></li>
<li><a href="#krazyotelcol">krazyotelcol</a></li>
<li><a href="#restics-rest-server">Restic&rsquo;s rest-server</a></li>
<li><a href="#waiw">waiw</a></li>
<li><a href="#the-relax-switch">The relax switch</a></li>
</ul>
</li>
<li><a href="#successfully-tested">Successfully tested</a>
<ul>
<li><a href="#prometheus">Prometheus</a></li>
<li><a href="#grafana">Grafana</a></li>
<li><a href="#minio">MinIO</a></li>
</ul>
</li>
<li><a href="#no-go-software-for-your-idea">No Go software for your idea?</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement" class=""><a itemprop="item" href="/index.html"><span itemprop="name">gokrazy Go appliances</span></a><meta itemprop="position" content="1">&nbsp;>&nbsp;</li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement" class=""><a itemprop="item" href="/packages/index.html"><span itemprop="name">Available packages</span></a><meta itemprop="position" content="2">&nbsp;>&nbsp;</li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement" class=""><span itemprop="name">Showcase</span><meta itemprop="position" content="3"></li>
</ol>
<div class="topbar-area topbar-area-end" data-area="end">
<div class="topbar-button topbar-button-edit" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show">
<span class="btn cstyle button link noborder notitle interactive"><a href="https://github.com/gokrazy/gokrazy/tree/master/website/content/packages/showcase.markdown" rel="external" title="Edit (CTRL+ALT+w)"><i class="fa-fw fas fa-pen"></i></a></span>
</div>
<div class="topbar-button topbar-button-more" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show">
<span class="btn cstyle button link noborder notitle interactive"><button onclick="toggleTopbarFlyout(this)" type="button" title="More"><i class="fa-fw fas fa-ellipsis-v"></i></button></span>
<div class="topbar-content">
<div class="topbar-content-wrapper">
<div class="topbar-area topbar-area-more" data-area="more">
</div>
</div>
</div>
</div>
</div>
</div>
</nav>
<div id="R-main-overlay"></div>
<main id="R-body-inner" class="highlightable packages" tabindex="-1">
<div class="flex-block-wrapper">
<article class="default">
<header class="headline">
</header>
<h1 id="showcase">Showcase</h1>
<h2 id="written-for-gokrazy">Written for gokrazy<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h2>
<p>The following third-party programs specifically target gokrazy.</p>
<p>To get your program listed here, just <a
href="https://github.com/gokrazy/gokrazy">send us a pull request</a>.</p>
<h3 id="scan2drive">scan2drive<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/stapelberg/scan2drive" rel="external"><strong>scan2drive</strong></a> is an appliance (with
a web interface) that scans paper documents 📄 from a scanner 🖨️ as PDFs to
Google Drive for full-text search.</p>
<h3 id="router7">router7<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/rtr7/router7" rel="external"><strong>router7</strong></a> is a small home internet router
completely written in Go.</p>
<h3 id="hmgo">hmgo<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/stapelberg/hmgo" rel="external"><strong>hmgo</strong></a> is a minimal HomeMatic house
automation central control unit replacement (specific to <a
href="https://github.com/stapelberg">stapelberg</a>s home network).</p>
<h3 id="beatbox">beatbox<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/anisse/beatbox" rel="external"><strong>beatbox</strong></a> is a Raspberry Pi 3-based toy
that combines a Mir:ror and NFC figurines for playing music stored on the device
or directly from Spotify.</p>
<h3 id="consrv">consrv<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/mdlayher/consrv" rel="external"><strong>consrv</strong></a> is a Raspberry Pi 4-based
appliance that provides a basic SSH to serial console bridge for accessing
remote devices.</p>
<h3 id="krazyotelcol">krazyotelcol<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/svrnm/krazyotelcol" rel="external"><strong>krazyotelcol</strong></a> is an appliance
running the <a href="https://github.com/open-telemetry/opentelemetry-collector" rel="external">OpenTelemetry
Collector</a>, a
vendor-agnostic implementation on how to receive, process and export telemetry
data.</p>
<h3 id="restics-rest-server">Restic&rsquo;s rest-server<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/restic/rest-server" rel="external"><strong>Rest Server</strong></a> is a high performance
HTTP server that implements restic&rsquo;s REST backend API. Running it requires some
setup and other configurations which are available in
<a href="https://dcpri.me/2022/08/31/restic-rest-server-gokrazy/" rel="external">this blog post</a>.</p>
<h3 id="waiw">waiw<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/BrunoTeixeira1996/waiw" rel="external"><strong>waiw</strong></a> is a Go webserver to store
movies/series/animes ratings and comments. Running it requires some setup but the
README describes every step to make it work.</p>
<h3 id="the-relax-switch">The relax switch<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://github.com/drio/relaxswitch" rel="external">The relax switch</a> is a gokrazy appliance
to enhance your bathroom experience. A friend of mine had a hilarious idea:
having a dedicated switch in your bathroom that, when switched, would play a
90s relaxing song. The original prototype ran on top of Raspbian OS, but
gokrazy is a much better fit for this project. You wire a smart relay to your
switch. The switch talks MQTT. When the person turns on the switch, the service
running on the Pi plays a 90s relaxing song. When they turn off the switch the
music go off. Simple and relaxing.</p>
<h2 id="successfully-tested">Successfully tested<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h2>
<p>The following third-party programs have been successfully used with gokrazy
but might require additional setup:</p>
<h3 id="prometheus">Prometheus<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://prometheus.io/" rel="external"><strong>Prometheus</strong></a> is a monitoring and alerting system
built on a time series database.</p>
<p>The <a href="https://github.com/prometheus/node_exporter" rel="external"><strong>Prometheus node exporter</strong></a>
exposes various metrics of the system on which it is running for use with the <a
href="https://prometheus.io">prometheus</a> monitoring and alerting system.</p>
<p>The <a href="https://github.com/prometheus/blackbox_exporter" rel="external"><strong>Prometheus blackbox
exporter</strong></a> allows blackbox
probing of endpoints over HTTP, HTTPS, DNS, TCP and ICMP for use with the <a
href="https://prometheus.io">prometheus</a> monitoring and alerting system.</p>
<h3 id="grafana">Grafana<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://grafana.com/" rel="external"><strong>Grafana</strong></a> is an open platform for beautiful analytics
and monitoring.</p>
<h3 id="minio">MinIO<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h3>
<p><a href="https://min.io/" rel="external"><strong>MinIO</strong></a> is a high performance, S3-compatible, cloud native
object storage service.</p>
<p>See also <a href="/packages/minio/index.html">Available packages → MinIO</a>.</p>
<h2 id="no-go-software-for-your-idea">No Go software for your idea?<span class="btn cstyle anchor copyanchor scrollanchor link noborder notitle interactive"><button type="button" title="Copy link to clipboard"><i class="fa-fw fas fa-link fa-lg"></i></button></span></h2>
<p>You can prototype your idea by temporarily using existing software to close the
gap. See <a href="/prototyping/">Prototyping</a>.</p>
<footer class="footline">
</footer>
</article>
</div>
</main>
</div>
<aside id="R-sidebar" class="default-animation">
<div id="R-header-topbar" class="default-animation"></div>
<div id="R-header-wrapper" class="default-animation">
<div id="R-header" class="default-animation">
<img src="/logo.svg" width="100%" alt="gokrazy logo" title="gokrazy logo">
</div>
<search><form action="/search/index.html" method="get">
<div class="searchbox default-animation">
<button class="search-detail" type="submit" title="Search (CTRL+ALT+f)"><i class="fas fa-search"></i></button>
<label class="a11y-only" for="R-search-by">Search</label>
<input data-search-input id="R-search-by" name="search-by" class="search-by" type="search" placeholder="Search...">
<button class="search-clear" type="button" data-search-clear="" title="Clear search"><i class="fas fa-times" title="Clear search"></i></button>
</div>
</form></search>
</div>
<div id="R-homelinks" class="default-animation homelinks">
<div class="R-menu-divider default-animation">
<hr class="padding">
</div>
<div class="R-sidebarmenu R-shortcutmenu-homelinks">
<ul class="space collapsible-menu">
<li class="" data-nav-url="/index.html"><a class="padding" href="/index.html"><i class="fa-fw fas fa-home"></i> Home</a></li>
</ul>
</div>
<div class="R-menu-divider default-animation">
<hr class="padding">
</div>
<div class="R-sidebarmenu R-shortcutmenu-headercontrols">
<ul class="">
</ul>
</div>
<div class="R-menu-divider default-animation">
<hr class="padding">
</div>
</div>
<div id="R-content-wrapper" class="highlightable">
<div class="R-sidebarmenu R-shortcutmenu-main">
<ul class="enlarge morespace collapsible-menu">
<li class="" data-nav-url="/quickstart/index.html"><a class="padding" href="/quickstart/index.html"><b>1. </b>Quickstart</a></li>
<li class="" data-nav-url="/platforms/index.html"><a class="padding" href="/platforms/index.html"><b>2. </b>Supported platforms</a></li>
<li class="" data-nav-url="/userguide/index.html"><a class="padding" href="/userguide/index.html"><b>3. </b>Configuration</a><ul id="R-subsections-74b4df3a3d9365853f09e9f1dfe7bbba" class="collapsible-menu"></ul></li>
<li class="parent " data-nav-url="/packages/index.html"><a class="padding" href="/packages/index.html"><b>4. </b>Available packages</a><ul id="R-subsections-bdf1e8ce92aa8ff6883c617f10480430" class="collapsible-menu">
<li class="active " data-nav-url="/packages/showcase/index.html"><a class="padding" href="/packages/showcase/index.html">Showcase</a></li>
<li class="" data-nav-url="/packages/tailscale/index.html"><a class="padding" href="/packages/tailscale/index.html">Tailscale VPN</a></li>
<li class="" data-nav-url="/packages/caddy-http-server/index.html"><a class="padding" href="/packages/caddy-http-server/index.html">Caddy HTTP server</a></li>
<li class="" data-nav-url="/packages/minio/index.html"><a class="padding" href="/packages/minio/index.html">MinIO object storage</a></li>
<li class="" data-nav-url="/packages/docker-containers/index.html"><a class="padding" href="/packages/docker-containers/index.html">Docker containers</a></li>
<li class="" data-nav-url="/packages/prometheus/index.html"><a class="padding" href="/packages/prometheus/index.html">Prometheus</a></li></ul></li>
<li class="" data-nav-url="/development/index.html"><a class="padding" href="/development/index.html"><b>5. </b>Package development</a><ul id="R-subsections-54b0ce3c97b111c8cd4d107325fd580c" class="collapsible-menu"></ul></li>
</ul>
</div>
<div class="R-sidebarmenu R-shortcutmenu-shortcuts">
<div class="nav-title padding">More</div>
<ul class="space collapsible-menu">
<li class="" data-nav-url="https://github.com/gokrazy/gokrazy"><a class="padding" href="https://github.com/gokrazy/gokrazy" rel="external"><i class='fab fa-github'></i> GitHub repo</a></li>
</ul>
</div>
<div id="R-footer-margin"></div>
<div class="R-menu-divider default-animation">
<hr class="padding">
</div>
<div class="R-sidebarmenu R-shortcutmenu-footercontrols">
<ul class="">
</ul>
</div>
<div id="R-footer"><p>Built with <a href="https://github.com/McShelby/hugo-theme-relearn" title="love"><i class="fas fa-heart"></i></a> by <a href="https://gohugo.io/">Hugo</a></p></div>
</div>
</aside>
<script src="/js/perfect-scrollbar/perfect-scrollbar.min.js?1782408721" defer></script>
<script src="/js/theme.min.js?1782408721" defer></script>
<div id="toast-container" role="status" aria-live="polite" aria-atomic="false"></div>
</body>
</html>