5172 lines
473 KiB
Plaintext
Executable File
5172 lines
473 KiB
Plaintext
Executable File
a:8:{s:5:"child";a:1:{s:0:"";a:1:{s:3:"rss";a:1:{i:0;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:1:{s:7:"version";s:3:"2.0";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:1:{s:7:"channel";a:1:{i:0;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:2:{s:0:"";a:8:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:8:"selfh.st";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:45:"Self-hosted news, content, updates, and more.";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:17:"https://selfh.st/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:5:"image";a:1:{i:0;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:1:{s:0:"";a:3:{s:3:"url";a:1:{i:0;a:5:{s:4:"data";s:28:"https://selfh.st/favicon.png";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:8:"selfh.st";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:17:"https://selfh.st/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}s:9:"generator";a:1:{i:0;a:5:{s:4:"data";s:11:"Ghost 5.105";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:13:"lastBuildDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Wed, 01 Jan 2025 12:42:56 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:3:"ttl";a:1:{i:0;a:5:{s:4:"data";s:2:"60";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"item";a:15:{i:0;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:45:"My Favorite Self-Hosted Apps Launched In 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:82:"A look back at some of my favorite self-hosted software and applications from 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:40:"https://selfh.st/2024-favorite-new-apps/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"6751baf6fbddd900019cd8cf";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:4:"Blog";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Mon, 30 Dec 2024 12:45:27 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:66:"https://selfh.st/content/images/2024/12/2024-favorite-new-apps.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:19088:"<img src="https://selfh.st/content/images/2024/12/2024-favorite-new-apps.png" alt="My Favorite Self-Hosted Apps Launched In 2024"><p>2024 has undoubtedly been a fantastic year for self-hosted software. Not only were developers busy delivering <a href="https://www.home-assistant.io/blog/2024/12/19/voice-preview-edition-the-era-of-open-voice/?ref=selfh.st">significant</a> <a href="https://immich.app/blog/2024/immich-core-team-goes-fulltime?ref=selfh.st">updates</a> to <a href="https://github.com/jellyfin/jellyfin/releases/tag/v10.9.0?ref=selfh.st">existing</a> <a href="https://github.com/knadh/listmonk/releases/tag/v4.1.0?ref=selfh.st">projects</a> – they were also launching new projects left and right. <a href="https://selfh.st/newsletter" rel="noreferrer">In my weekly newsletter</a>, I averaged featuring anywhere from 10-15 new projects a week (I'm fairly certain the record was <em>26 in a single week</em>).</p><p>As someone who keeps a close eye on many of these projects after launch, I thought it'd be helpful for others to compile a list of those I've found to be particularly noteworthy. I've included them based on a number of informal 'scoring' factors, which include functionality (uniqueness, etc.), community reception, and development activity.</p><p>And while I've compiled this list to help those who might not have the bandwidth to explore every option, I'd still recommend readers make an effort to discover and support other projects as well (I do have my own biases, after all). If you're new to <strong>selfh.st</strong>, I have a <a href="https://selfh.st/apps" rel="noreferrer"><strong>helpful directory of self-hosted software and alternatives</strong></a> that might also be helpful.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosted Software and Apps</div><div class="kg-bookmark-description">A directory of self-hosted software and applications for easy browsing and discovery</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-20.png" alt="My Favorite Self-Hosted Apps Launched In 2024"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/2024-08-12-apps-featured-image-2-1.png" alt="My Favorite Self-Hosted Apps Launched In 2024" onerror="this.style.display = 'none'"></div></a></figure><h3 id="hoarder">Hoarder</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-hoarder.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>It’s hard to ignore the impact <strong>Hoarder</strong> has had in the read later and bookmarking software space, especially given <a href="https://blog.omnivore.app/p/details-on-omnivore-shutting-down?ref=selfh.st">Omnivore's recent news</a>. The application came running right out of the gate with a clean interface for cataloguing links while also seamlessly integrating AI to assist users with tagging and organizing their articles. As a bonus, Hoarder comes with its own mobile apps for both iOS and Android while also supporting single sign-on.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://hoarder.app/?ref=selfh.st" data-umami-event="blog-favorite-2024-new-website-hoarder"><strong>Website</strong></a>, <a href="https://github.com/hoarder-app/hoarder?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-hoarder"><strong>Source Code</strong></a> <i>(Released Feb 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="pinchflat">Pinchflat</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-pinchflat.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>We’ve witnessed many YouTube frontends and downloaders come and go over the last several years, but <strong>Pinchflat’s</strong> release earlier this year turned a new page for those looking to collect and manage their favorite YouTube channels and playlists. Featuring a minimal interface and easy-to-spin up Docker container, Pinchflat makes subscribing to and downloading YouTube content a breeze – especially when streaming it through popular media servers like Plex, Jellyfin, or Emby.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/kieraneglin/pinchflat?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-pinchflat"><strong>Source Code</strong></a> <i>(Released Mar 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="glance">Glance</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-glance.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Glance</strong> is a Swiss Army Knife dashboard that consolidates various feeds into a single page, with built-in support for RSS feeds, subreddits, bookmarks, Hacker News, YouTube feeds, calendars, stocks, Twitch channels, GitHub releases, and more. Its iFrame widget also allows easy integration with webpages and other dashboards for those looking to combine functionality with other unsupported tools.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/glanceapp/glance?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-glance"><strong>Source Code</strong></a> <i>(Released Apr 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="docmost">Docmost</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-docmost.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Docmost</strong> is a promising documentation and collaboration platform that quickly became a fan favorite with its initial launch halfway through the year. Featuring a modern, clean interface, Docmost supports multiple workspaces, real-time collaboration, comments, page history, attachments, and integrations with a few diagram services. The software is under active development and is expected to continue receiving new features that should make it a more than adequate alternative for other tools in the space.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://docmost.com/?ref=selfh.st" data-umami-event="blog-favorite-2024-new-website-docmost"><strong>Website</strong></a>, <a href="https://github.com/docmost/docmost?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-docmost"><strong>Source Code</strong></a> <i>(Released Jun 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="postiz">Postiz</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-postiz.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Postiz</strong> is a social media consolidation and scheduling tool with a touch of AI for those strategically managing multiple accounts. The application currently supports most popular social networks, and the development team has been extremely receptive to adding more. Postiz is also a one-stop-shop for post analytics, while standing out from the competition with its lack of paywalled features in its self-hosted edition.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://postiz.com/?ref=selfh.st" data-umami-event="blog-favorite-2024-new-website-postiz"><strong>Website</strong></a>, <a href="https://github.com/gitroomhq/postiz-app?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-postiz"><strong>Source Code</strong></a> <i>(Released Sep 2024)</i></div><br><br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/nordvpn" data-umami-event="newsletter-affiliate-nordvpn"><div class="kg-bookmark-content"><div class="kg-bookmark-title">NordVPN’s Holiday Deal</div><div class="kg-bookmark-description">The most festive sale of the year! This holiday season, save 72% and get 3 extra months when you buy the world’s leading VPN.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-180x180-1.png" alt="My Favorite Self-Hosted Apps Launched In 2024"><span class="kg-bookmark-author">NordVPN (Affiliate Link)</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/main" alt="My Favorite Self-Hosted Apps Launched In 2024" onerror="this.style.display = 'none'"></div></a></figure>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="beszel">Beszel</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-beszel.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Beszel</strong> is a lightweight resource monitoring tool that made a huge splash in the community given its lack of overhead versus similar tools like Grafana. The platform can be used to easily monitor system and Docker stats with configurable alerts for a number of resources. Its split installation functionality between hub and agents means it can be installed on multiple systems while leveraging multi-user support and SSO to ensure users only have access to the specific systems.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/henrygd/beszel?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-beszel"><strong>Source Code</strong></a> <i>(Released Jul 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="bytestash">ByteStash</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-bytestash.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>ByteStash</strong> is a sleek code snippet platform that launched just a few months ago. It features a modern interface that easily allows users to capture code snippets in various languages, with extensive search capabilities for later finding snippets by programming language or other keywords. The application also supports features like multiple users (including single sign-on) and fragments for storing the same snippet in various languages.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-bytestash"><strong>Source Code</strong></a> <i>(Released Oct 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="beaver-habit-tracker">Beaver Habit Tracker</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-beaver-habit-tracker.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" style="max-width:18%;max-height: 18%" ">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>The launch of <strong>Beaver Habit Tracker</strong> scratched a very popular itch in the self-hosted world — habit tracking. Built for mobile use, the software features a mobile screen-friendly view for adding, managing, and tracking habits on-the-go. For those who need a little motivation to complete their tasks, Beaver Habit Tracker also features a GitHub streak-like chart for visualizing progress over a given period of time.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/daya0576/beaverhabits?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-beaver-habit-tracker"><strong>Source Code</strong></a> <i>(Released May 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="streamyfin">Streamyfin</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-streamyfin.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Streamyfin</strong> is a Jellyfin client that was very well-received across the community with its Android and iOS launches earlier this year. The application features a modern interface with support for a ton of official and unofficial Jellyfin capabilities, including Trickplay images, intro/credits skipping, background audio, picture-in-picture, media downloads, and Chromecast support. Streamyfin makes a very compelling case for those who’ve previously been afraid to make the jump to Jellyfin from Plex due to a lack of capable clients.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/fredrikburmester/streamyfin?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-streamyfin"><strong>Source Code</strong></a> <i>(Released Aug 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="pocket-id">Pocket ID</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-pocket-id.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Pocket ID</strong> takes a novel approach to authentication capabilities by acting as a simple OIDC provider with support for passkeys only (yes, this means no passwords). Users can leverage Pocket ID’s functionality to replace similar but slightly more complex tools like Authelia, Authentik, or Keycloak for logging into their self-hosted services – eliminating the need for separate accounts for every service.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/stonith404/pocket-id?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-pocket-id"><strong>Source Code</strong></a> <i>(Released Aug 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="pdfding">PdfDing</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-pdfding.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>PdfDing</strong> is a PDF manager, viewer, and as of recent – editor – inspired by the likes of the popular bookmark manager Linkding in both name and design. PdfDing gives users an intuitive interface for tracking and accessing PDF files, with the ability to easily share with others – with or without password protection and expiration dates. For those managing multiple users, the application also supports single sign-on.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/mrmn2/PdfDing?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-pdfding"><strong>Source Code</strong></a> <i>(Released Jul 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="whodb">WhoDB</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-whodb.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>WhoDB</strong> is a lightweight database visualization and management tool meant to compete with existing database management solutions. The tool features a clean interface, fast performance, and broad support for various database systems. WhoDB’s integration with AI tools also makes it easy to quickly generate complex SQL queries directly from the application’s interface.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://whodb.clidey.com/?ref=selfh.st" data-umami-event="blog-favorite-2024-new-website-whodb"><strong>Website</strong></a>, <a href="https://github.com/clidey/whodb?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-whodb"><strong>Source Code</strong></a> <i>(Released Aug 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="dawarich">Dawarich</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-dawarich.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>Dawarich</strong> is a self-hosted location tracking alternative to Google Maps Timeline. The application integrates with a number of services for tracking user locations — OwnTracks and Home Assistant, to name a few — and provides an interactive map and statistics for later revisiting. Dawarich also provides import capabilities for users migrating to the platform who may not want to start from scratch.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://dawarich.app/?ref=selfh.st" data-umami-event="blog-favorite-2024-new-website-dawarich"><strong>Website</strong></a>, <a href="https://github.com/Freika/dawarich?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-dawarich"><strong>Source Code</strong></a> <i>(Released Apr 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="slink">Slink</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-slink.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>While a ton of new projects have popped up that leverage existing photo solutions to share media with others, <strong>Slink</strong> is a dedicated app for easily doing the same independently from other projects. Akin to hosted services like Imgur, Slink features the ability to upload several file types – which can be set to public or private – while allowing administrators to select from a number of backend storage providers to store the data.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/andrii-kryvoviaz/slink?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-slink"><strong>Source Code</strong></a> <i>(Released Mar 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="godoxy">GoDoxy</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/blog/2024/12/30/screenshot-go-proxy.webp" alt="My Favorite Self-Hosted Apps Launched In 2024" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p><strong>GoDoxy</strong> is a lightweight, easy-to-use reverse proxy developed to challenge some of the more traditional options in the space like NGINX and Traefik. Unlike many of the others, GoDoxy comes packaged with a web interface and dashboard while also supporting other common features like auto SSL cert management. However, what really sets it apart is its Docker integration with support for auto-configuration and the ability to stop idle containers and wake them when traffic is detected.</p>
|
|
<!--kg-card-begin: html-->
|
|
<div>Links: <a href="https://github.com/yusing/go-proxy?ref=selfh.st" data-umami-event="blog-favorite-2024-new-repository-go-proxy"><strong>Source Code</strong></a> <i>(Released Mar 2024)</i></div>
|
|
<!--kg-card-end: html-->
|
|
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:1;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:43:"This Week in Self-Hosted (27 December 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:94:"Self-hosted news, updates, launches, and content for the week ending Friday, December 27, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-12-27/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"67656cc0bb4c3c000105cc7e";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 27 Dec 2024 12:53:40 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:58:"https://selfh.st/content/images/2024/11/featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:30615:"
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (27 December 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, an open source database with a spreadsheet UI for teams. <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home-sensitive" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out now.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2><img src="https://selfh.st/content/images/2024/11/featured-image.png" alt="This Week in Self-Hosted (27 December 2024)"><p>Happy Friday! Despite the chaos of the holidays, I still managed to capture a ton of notable software updates, launches (16!), and new <a href="https://selfh.st/apps" rel="noreferrer">directory apps</a> for those looking for new software to deploy during their time off (sorry, but not sorry). The <em>Community Content</em> section also has a ton of great new guides for apps like Jellyfin and Authentik if you've been dragging your feet and are a looking for an excuse to finally deploy them.</p><p>If you follow my content, you're probably aware of a new project called <a href="https://github.com/Sanjeet990/Astroluma?ref=selfh.st">Astroluma</a> – a dashboard for self-hosted apps and services that also centralizes functionality like tasks, system monitoring, and weather. This week, it dropped a release that includes support for icon packs, featuring <a href="https://selfh.st/icons" rel="noreferrer"><strong>selfh.st/icons</strong></a> as the default pack for new installs. If you're unfamiliar with either, check them out!</p><p>In other news, I received my delivery of the <a href="https://www.home-assistant.io/voice-pe/?ref=selfh.st">new Home Assistance Voice preview device</a> a few days early and have had a blast getting it up-and-running. While onboarding was a bit clunky, I've been incredibly impressed – especially with its microphone, which picks up audio so well that half of my commands fail because they're a combination of my voice and audio from a Bluey episode my daughter is streaming from across the house.</p><p>Lastly, if you're a regular listener of the YouTube/podcast version of this newsletter, you'll notice there is no release this week. The production involved in publishing an episode requires a bit more time than I had given the holiday and having been a bit under the weather. Rest assured, it'll be back next week!</p><p>As usual, thanks for the support and happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.joinmastodon.org/2024/12/annual-report-2023/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Annual Report 2023</div><div class="kg-bookmark-description">If you’re curious how Mastodon is doing by the numbers, the 2023 Annual Report is finally here. How large is our budget, and where does it go? Who works on Mastodon? For all of this and more, we’ve got an answer--at least as far as 2023 goes.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-16.ico" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">Mastodon Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/eugen-rochko.jpg" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://newsletter.openhomefoundation.org/the-era-of-open-voice/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The era of open voice</div><div class="kg-bookmark-description">We delve into why the world needs open and private voice control, and why it’s critically important for the Open Home.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-15.ico" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">Building the Open Home</span><span class="kg-bookmark-publisher">Paulus Schoutsen</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Opengraph--2-.jpg" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/Sanjeet990/Astroluma?ref=selfh.st"><strong>Astroluma</strong></a> <a href="https://github.com/Sanjeet990/Astroluma/releases/tag/v1.0.1?ref=selfh.st"><strong>v1.0.1</strong></a> | <strong>Dashboard</strong>: Additional TOTP functionality, icon pack support (including <a href="https://selfh.st/icons" rel="noreferrer"><strong>selfh.st/icons</strong></a>), folder management, UI improvements</li><li><a href="https://github.com/autobrr/autobrr?ref=selfh.st"><strong>autobrr</strong></a> <a href="https://github.com/autobrr/autobrr/releases/tag/v1.55.0?ref=selfh.st"><strong>v1.55.0</strong></a> | <strong>Download Automation</strong>: OIDC authentication proxy, BaseUrl support, TTLCache and TimeCache implementations</li><li><a href="https://github.com/daya0576/beaverhabits?ref=selfh.st"><strong>Beaver Habit Tracker</strong></a> <a href="https://github.com/daya0576/beaverhabits/releases/tag/v0.4.0?ref=selfh.st"><strong>v0.4.0</strong></a> | <strong>Habit Tracking</strong>: REST API and Swagger UI implementation, update and store JWT secret securely</li><li><a href="https://github.com/BookStackApp/BookStack?ref=selfh.st"><strong>BookStack</strong></a> <a href="https://github.com/BookStackApp/BookStack/releases/tag/v24.12?ref=selfh.st"><strong>v24.12</strong></a> | <strong>Documentation</strong>: New portable ZIP export format, WYSIWYG editor updates (including dark mode), API and LDAP improvements</li><li><a href="https://github.com/qdm12/ddns-updater?ref=selfh.st"><strong>DDNS Updater</strong></a> <a href="https://github.com/qdm12/ddns-updater/releases/tag/v2.9.0?ref=selfh.st"><strong>v2.9.0</strong></a> | <strong>DNS Records</strong>: Support for additional providers, updated Porkbun API endpoint</li><li><a href="https://github.com/joaovitoriasilva/endurain?ref=selfh.st"><strong>Endurain</strong></a> <a href="https://github.com/joaovitoriasilva/endurain/releases/tag/v0.6.5?ref=selfh.st"><strong>v0.6.5</strong></a> | <strong>Fitness Tracking</strong>: Timezone awareness, health dashboard, new activity types, PostgreSQL support</li><li><a href="https://github.com/FreshRSS/FreshRSS?ref=selfh.st"><strong>FreshRSS</strong></a> <a href="https://github.com/FreshRSS/FreshRSS/releases/tag/1.25.0?ref=selfh.st"><strong>v1.25.0</strong></a> | <strong>RSS Aggregator</strong>: Support for regex search, dynamic search operators, new feed mode, UI option to download SQLite database</li><li><a href="https://github.com/Phalcode/gamevault-app?ref=selfh.st"><strong>GameVault</strong></a> <a href="https://github.com/Phalcode/gamevault-app/releases/tag/1.14.0.0?ref=selfh.st"><strong>v1.14.0</strong></a> | <strong>Game Platform</strong>: Sync currently played game with Discord Presence API, sync installed games with Steam shortcuts, new Christmas theme</li><li><a href="https://github.com/Zibbp/ganymede?ref=selfh.st"><strong>Ganymede</strong></a> <a href="https://github.com/Zibbp/ganymede/releases/tag/v4.0.0?ref=selfh.st"><strong>v4.0.0</strong></a> | <strong>Live Streaming</strong>: Reduced number of containers required to deploy, initial iteration of clip archiving, frontend rewrite</li><li><a href="https://github.com/AkashRajpurohit/git-sync?ref=selfh.st"><strong>Git-Sync</strong></a> <a href="https://github.com/AkashRajpurohit/git-sync/releases/tag/v0.15.0?ref=selfh.st"><strong>v0.15.0</strong></a> | <strong>Git Backups</strong>: Move to next repository on sync failure, new retry option for specifying retry counts and delays</li><li><a href="https://github.com/hoarder-app/hoarder?ref=selfh.st"><strong>Hoarder</strong></a> <a href="https://github.com/hoarder-app/hoarder/releases/tag/v0.20.0?ref=selfh.st"><strong>v0.20.0</strong></a> | <strong>Read Later</strong>: Multi-language support, experimental WYSIWYG Markdown editor, mobile app improvements, broken link management</li><li><a href="https://github.com/gethomepage/homepage?ref=selfh.st"><strong>Homepage</strong></a> <a href="https://github.com/gethomepage/homepage/releases/tag/v0.10.0?ref=selfh.st"><strong>v0.10.0</strong></a> | <strong>Dashboard</strong>: Nested groups, multiple widgets per service, set CSS color-scheme, icons-only bookmark style, widget updates</li><li><a href="https://github.com/netbirdio/netbird?ref=selfh.st"><strong>NetBird</strong></a> <a href="https://github.com/netbirdio/netbird/releases/tag/v0.35.0?ref=selfh.st"><strong>v0.35.0</strong></a> | <strong>VPN</strong>: Introduced <em>Networks</em> for improved administration of routed resources and peer sharing visibility</li><li><a href="https://github.com/mrmn2/PdfDing?ref=selfh.st"><strong>PdfDing</strong></a> <a href="https://github.com/mrmn2/PdfDing/releases/tag/0.8.0?ref=selfh.st"><strong>v0.8</strong></a>/<a href="https://github.com/mrmn2/PdfDing/releases/tag/0.9.0?ref=selfh.st" rel="noreferrer"><strong>9</strong></a> | <strong>PDF Viewer</strong>: PDF editing capabilities, organize PDFs using hierarchical tags</li><li><a href="https://github.com/madeofpendletonwool/PinePods?ref=selfh.st"><strong>PinePods</strong></a> <a href="https://github.com/madeofpendletonwool/PinePods/releases/tag/0.7.2?ref=selfh.st"><strong>v0.7.2</strong></a> | <strong>Podcasts</strong>: Mobile progress bar, dynamic chapters and play button, RSS feed capabilities, filtering, quick search, database restore options</li><li><a href="https://github.com/andrii-kryvoviaz/slink?ref=selfh.st"><strong>Slink</strong></a> <a href="https://github.com/andrii-kryvoviaz/slink/releases/tag/v1.3.0?ref=selfh.st"><strong>v1.3.0</strong></a> | <strong>Image Sharing</strong>: User role management, time zone configuration, extended image formats, GIF resizing and animated image enhancements</li><li><a href="https://github.com/fredrikburmester/streamyfin?ref=selfh.st"><strong>Streamyfin</strong></a> <a href="https://github.com/fredrikburmester/streamyfin/releases/tag/v0.22.0?ref=selfh.st"><strong>v0.22.0</strong></a> | <strong>Jellyfin Client</strong>: View custom menu links, new downloads page for TV series, option for downloading entire series, macOS fullscreen support, improved video controls, customizable subtitle sizes</li><li><a href="https://github.com/ellite/Wallos?ref=selfh.st"><strong>Wallos</strong></a> <a href="https://github.com/ellite/Wallos/releases/tag/v2.42.0?ref=selfh.st"><strong>v2.42.0</strong></a> | <strong>Subscriptions</strong>: Monthly cost trend graph added to statistics page, email notifications without authentication</li><li><a href="https://github.com/clidey/whodb?ref=selfh.st"><strong>WhoDB</strong></a> <a href="https://github.com/clidey/whodb/releases/tag/0.44.0?ref=selfh.st"><strong>v0.44.0</strong></a> | <strong>Database Explorer</strong>: Clickhouse support, Postgres URL smart parsing</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/Freika/dawarich?ref=selfh.st"><strong>Dawarich</strong></a> <a href="https://github.com/Freika/dawarich/releases/tag/0.21.0?ref=selfh.st"><strong>v0.21.0</strong></a>: Database service transitioned to custom postgresql.conf file</li><li><a href="https://github.com/FreshRSS/FreshRSS?ref=selfh.st"><strong>FreshRSS</strong></a> <a href="https://github.com/FreshRSS/FreshRSS/releases/tag/1.25.0?ref=selfh.st"><strong>v1.25.0</strong></a>: Updated required minimum PHP and database versions</li><li><a href="https://github.com/Zibbp/ganymede?ref=selfh.st"><strong>Ganymede</strong></a> <a href="https://github.com/Zibbp/ganymede/releases/tag/v4.0.0?ref=selfh.st"><strong>v4.0.0</strong></a>: Reduced number of containers required to deploy</li><li><a href="https://www.linuxserver.io/?ref=selfh.st"><strong>LinuxServer.io</strong></a>: <a href="https://info.linuxserver.io/issues/2024-12-24-booksonic-air/?ref=selfh.st">Booksonic Air</a>, <a href="https://info.linuxserver.io/issues/2024-12-26-quassel/?ref=selfh.st">Quassel Core/Web</a> scheduled for deprecation</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://gitea.baerentsen.space/FrederikBaerentsen/BrickTracker?ref=selfh.st"><strong>BrickTracker</strong></a>: Web app for organizing and tracking LEGO inventories</li><li><a href="https://github.com/miroslavpejic85/call-me?ref=selfh.st"><strong>Call-Me</strong></a>: Easy one-to-one video calls from a browser</li><li><a href="https://github.com/Drop-OSS/drop?ref=selfh.st"><strong>Drop</strong></a>: Open-source game distribution platform</li><li><a href="https://github.com/DrewThomasson/ebook2audiobook?ref=selfh.st"><strong>ebook2audiobook</strong></a>: eBook to audiobook converter</li><li><a href="https://github.com/Fimeg/EnvelopePal?ref=selfh.st"><strong>EnvelopePal</strong></a>: Smart envelope budgeting web app</li><li><a href="https://github.com/rafael1mc/epub-tts?ref=selfh.st"><strong>epub-tts</strong></a>: Convert ePub to audio files</li><li><a href="https://github.com/TegridyTate/Hassarr?ref=selfh.st"><strong>Hassarr</strong></a>: Custom Home Assistant integration for adding media to the *arr apps </li><li><a href="https://github.com/dwot/isley?ref=selfh.st"><strong>Isley</strong></a>: Cannabis grow journal for homegrowers</li><li><a href="https://github.com/JaySea20/Media-Maid?ref=selfh.st"><strong>Media-Maid</strong></a>: Download folder media file clean-up</li><li><a href="https://github.com/0x101-Cyber-Security/NetLock-RMM?ref=selfh.st"><strong>NetLock RMM</strong></a>: Remote server monitoring and management</li><li><a href="https://github.com/eliasbenb/PlexAniBridge?ref=selfh.st"><strong>PlexAniBridge</strong></a>: Sync Plex watch activity with AniList</li><li><a href="https://github.com/sgtwtf/ReceiptHarvester?ref=selfh.st"><strong>Receipt Harvester</strong></a>: Extract digital receipts from select stores for analysis</li><li><a href="https://www.repoflow.io/?ref=selfh.st"><strong>RepoFlow</strong></a>: Software package management platform</li><li><a href="https://github.com/harshsbhat/sealnotes?ref=selfh.st"><strong>SealNotes</strong></a>: Lightweight encrypted notepad</li><li><a href="https://github.com/securemindorg/SimpleDash?ref=selfh.st"><strong>SimpleDash</strong></a>: Very simple personal and minimal dashboard</li><li><a href="https://github.com/jarvis2f/telegram-files?ref=selfh.st"><strong>Telegram Files</strong></a>: Simple Telegram file downloader</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/nordvpn" data-umami-event="newsletter-affiliate-nordvpn"><div class="kg-bookmark-content"><div class="kg-bookmark-title">NordVPN’s holiday deal</div><div class="kg-bookmark-description">The most festive sale of the year. This holiday season, save big and get 3 extra months when you buy the world’s leading VPN.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-180x180-1.png" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">NordVPN (Affiliate Link)</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/main" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps/">Directory</a> Apps</h2><ul><li><a href="https://github.com/Sanjeet990/Astroluma?ref=selfh.st"><strong>Astroluma</strong></a>: Feature-rich dashboard for services and tasks</li><li><a href="https://github.com/Vito0912/abs_flutter?ref=selfh.st"><strong>Buchable</strong></a>: Cross-platform AudioBookshelf client</li><li><a href="https://github.com/google/cadvisor?ref=selfh.st"><strong>cAdvisor</strong></a>: Container performance and characteristics monitoring</li><li><a href="https://github.com/anandslab/deployarr?ref=selfh.st"><strong>Deployarr</strong></a>: Automated homelab setups using Docker</li><li><a href="https://gitlab.com/glitchtip/glitchtip-backend?ref=selfh.st"><strong>GlitchTip</strong></a>: Simple, open-source error tracking</li><li><a href="https://installatron.com/?ref=selfh.st" rel="noopener noreferrer nofollow"><strong>Installatron</strong></a>: One-click web solution for application deployment</li><li><a href="https://github.com/kubero-dev/kubero?ref=selfh.st"><strong>Kubero</strong></a>: Self-hosted PaaS running on Kubernetes</li><li><a href="https://github.com/madeofpendletonwool/PinePods?ref=selfh.st"><strong>PinePods</strong></a>: Complete podcast management system</li><li><a href="https://github.com/pik4li/redeploy?ref=selfh.st"><strong>ReDeploy</strong></a>: Deploy Git-hosted sites locally</li><li><a href="https://github.com/sandstorm-io/sandstorm?ref=selfh.st"><strong>Sandstorm</strong></a>: Open-source platform for self-hosting web apps</li><li><a href="https://www.stackspin.net/?ref=selfh.st"><strong>Stackspin</strong></a>: Open-source single-click application installer</li><li><a href="https://github.com/Steam-Headless/docker-steam-headless?ref=selfh.st"><strong>Steam Headless</strong></a>: Unofficial headless remote Steam server via Docker</li><li><a href="https://github.com/syncloud/platform?ref=selfh.st"><strong>Syncloud</strong></a>: Simple deployment of popular apps</li></ul><h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/icons/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosted Dashboard Icons</div><div class="kg-bookmark-description">A collection of self-hosted dashboard icons and logos</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-19.png" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/screenshot-selfhst-icons-1-3.png" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/read-later/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Pocket, Omnivore</div><div class="kg-bookmark-description">Self-hosted alternatives to popular online read later and bookmarking services</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-18.png" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/read-later-3-3.png" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.smarthomebeginner.com/authentik-docker-compose-guide-2025/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ultimate Authentik Docker Compose Guide with Traefik 2025 | SHB</div><div class="kg-bookmark-description">Authentik, together with Traefik can give one of the best dynamic authentication layers for your homelab. This Authentik Docker Compose guide shows exactly that.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-17.png" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">SmartHomeBeginner</span><span class="kg-bookmark-publisher">Anand</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/admin-ajax-1.php" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/fabriziosalmi/patterns?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - fabriziosalmi/patterns: Automated OWASP CRS and Bad Bot Detection for Caddy, Nginx, Apache, Traefik and HaProxy</div><div class="kg-bookmark-description">Automated OWASP CRS and Bad Bot Detection for Caddy, Nginx, Apache, Traefik and HaProxy - fabriziosalmi/patterns</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/pinned-octocat-093da3e6fa40-6.svg" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">fabriziosalmi</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/patterns" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/jellyfin?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">selfhosted-apps-docker/jellyfin at master · DoTheEvo/selfhosted-apps-docker</div><div class="kg-bookmark-description">Guide by Example. Contribute to DoTheEvo/selfhosted-apps-docker development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/pinned-octocat-093da3e6fa40-7.svg" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">DoTheEvo</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/selfhosted-apps-docker" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://info.linuxserver.io/issues/2024-12-26-openshot/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">New Container: OpenShot | Info :: LinuxServer.io</div><div class="kg-bookmark-description">We have released a new container for OpenShot!
|
|
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-17.ico" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">Info :: LinuxServer.io</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/logo-3.png" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-hemmelig">Content Spotlight: Hemmelig</h2><p>Meet <a href="https://hemmelig.app/?ref=selfh.st"><strong>Hemmelig</strong></a>, an open-source secret sharing platform. <strong>Hemmelig</strong> gives users a minimal, modern interface for uploading secrets and sensitive files that can easily be shared with others. Features include client-side encryption, password protection, expiration dates, limited view counts, limited IP address access, account management, and auto-deletion after expiration.</p><p><strong>Hemmelig</strong> can be <a href="https://github.com/HemmeligOrg/Hemmelig.app?ref=selfh.st#self-hosting">deployed via Docker</a> and doesn't require any additional containers to get up-and-running.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-hemmelig.webp" alt="This Week in Self-Hosted (27 December 2024)" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://hemmelig.app/?ref=selfh.st" rel="noreferrer"><strong>Website</strong></a>, <a href="https://github.com/HemmeligOrg/Hemmelig.app?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=Qu8XhUC6nRg&ref=selfh.st"><strong>Proxmox Datacenter Manager (Alpha) First Look!</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=rsguS0hw1PI&ref=selfh.st"><strong>Proxmox just got a vCenter Alternative?!</strong></a> | 2GuysTek</li><li><a href="https://www.youtube.com/watch?v=hgcFdUIOf5M&ref=selfh.st"><strong>GluetunVPN Setup & Unraid Container Networking Explained</strong></a> | Spaceinvader One</li><li><a href="https://www.youtube.com/watch?v=gj_7hBXd2wk&ref=selfh.st"><strong>Building My ULTIMATE Linux Workstation</strong></a> | Techno Tim</li><li><a href="https://www.youtube.com/watch?v=RIXp4cHC-WE&ref=selfh.st"><strong>UniFi Protect: From Underdog to Industry Leader</strong></a> | Lawrence Systems</li></ul><h2 id="command-line-corner-headn-5-file">Command Line Corner: head -n 5 <file></h2><p>Use <strong>head -n 5 <file></strong> to quickly view the first five (or any number of) lines of a file from the terminal:</p><pre><code class="language-bash">/$ head -n 5 example.txt
|
|
This
|
|
is
|
|
This
|
|
Week
|
|
in</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/useful-foss-android-apps-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">These Are The Most Useful FOSS Android Apps I Discovered in 2024</div><div class="kg-bookmark-description">It would be a shame if you had an Android smartphone without some of these interesting open source apps in 2024. Try them out!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/android-chrome-192x192-6.png" alt="This Week in Self-Hosted (27 December 2024)"><span class="kg-bookmark-author">It's FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/most-useful-foss-apps-2024.png" alt="This Week in Self-Hosted (27 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:2;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:43:"This Week in Self-Hosted (20 December 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:94:"Self-hosted news, updates, launches, and content for the week ending Friday, December 20, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-12-20/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"6760156abb4c3c00010585db";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 20 Dec 2024 12:51:00 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:58:"https://selfh.st/content/images/2024/11/featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:25321:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/vltO2iHvnL4?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1809841?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (20 December 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, a more solid way to replace load-bearing spreadsheets. <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home-sensitive" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out now.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="in-the-news">In the News</h2><ul><li><strong>OPNsense</strong> <a href="https://forum.opnsense.org/index.php?topic=44693.0&ref=selfh.st">v24.7.11 dropped this week</a>, which includes the much-anticipated native <strong>Tailscale</strong> plugin. Oh, and they're also <a href="https://old.reddit.com/r/opnsense/comments/1hbvz0n/ongoing_ci_rebranding_hitting_the_gui_in_opnsense/?ref=selfh.st">working on a logo redesign</a>.</li><li><strong>Xiaomi</strong> released <a href="https://github.com/XiaoMi/ha_xiaomi_home?ref=selfh.st">official support</a> for <strong>Home Assistant</strong>, although TBD on how limited its capabilities are and whether it will actually deliver the privacy users have been seeking from its products.</li><li><strong>Home Assistant</strong> opened their <a href="https://home-assistant.typeform.com/communitysurvey?ref=selfh.st#source=blog">annual user survey</a> to responses this week, which runs through January 20th. They also announced <a href="https://www.home-assistant.io/voice-pe/?ref=selfh.st">some new voice hardware</a> as a part of their efforts to <a href="https://www.home-assistant.io/blog/2024/12/19/voice-preview-edition-the-era-of-open-voice/?ref=selfh.st">take voice assistants to the next level</a>.</li><li>The <strong>Ghost</strong> CMS project released updates for <a href="https://ghost.org/changelog/custom-fonts/?ref=selfh.st">native custom font suppor</a>t and <a href="https://ghost.org/changelog/upgraded-comments/?ref=selfh.st">enhanced comments</a> (replies-to-replies, sorting, and changes to hidden and deleted comment visibility).</li></ul><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://gitlab.com/baserow/baserow?ref=selfh.st"><strong>Baserow</strong></a> <a href="https://gitlab.com/baserow/baserow/-/releases/1.30.0?ref=selfh.st"><strong>v1.30.0</strong></a> | <strong>No-Code Database</strong>: Excel export, HubSpot integration, enhanced number formatting, design updates for improved usability</li><li><a href="https://github.com/azukaar/Cosmos-Server?ref=selfh.st"><strong>Cosmos</strong></a> <a href="https://github.com/azukaar/Cosmos-Server/releases/tag/v0.17.0?ref=selfh.st"><strong>v0.17.0</strong></a> | <strong>Server Manager</strong>: Rclone integration for remote storage support, remote shares, TCP/UDP socket proxying, </li><li><a href="https://github.com/amir20/dozzle?ref=selfh.st"><strong>Dozzle</strong></a> <a href="https://github.com/amir20/dozzle/releases/tag/v8.9.0?ref=selfh.st"><strong>v8.9.0</strong></a> | <strong>Container Logs</strong>: Granular control over container filters per user</li><li><a href="https://github.com/formbricks/formbricks?ref=selfh.st"><strong>Formbricks</strong></a> <a href="https://github.com/formbricks/formbricks/releases/tag/v3.0.0?ref=selfh.st"><strong>v3.0.0</strong></a> | <strong>Surveys</strong>: SSO removed from community edition, multi-language support, email follow-ups, new contact question type, WordPress plugin</li><li><a href="https://github.com/gotson/komga?ref=selfh.st"><strong>Komga</strong></a> <a href="https://github.com/gotson/komga/releases/tag/1.15.0?ref=selfh.st"><strong>v1.15.0</strong></a> | <strong>Comics and Manga</strong>: Improved filtering for series, new series list API</li><li><a href="https://gitlab.com/Dacid99/linkdroid-for-linkwarden?ref=selfh.st"><strong>LinkDroid</strong></a> <a href="https://gitlab.com/Dacid99/linkdroid-for-linkwarden/-/releases/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Linkwarden Companion</strong>: Support for default tags, open links in browser by default, tablet layout, restyled interface, new app icon, increased language support</li><li><a href="https://github.com/maybe-finance/maybe?ref=selfh.st"><strong>Maybe</strong></a> <a href="https://github.com/maybe-finance/maybe/releases/tag/v0.2.0?ref=selfh.st"><strong>v0.2.0</strong></a> | <strong>Personal Finances</strong>: Plaid integration, multi-currency investment portfolio support</li><li><a href="https://github.com/netdata/netdata?ref=selfh.st"><strong>Netdata</strong></a> <a href="https://github.com/netdata/netdata/releases/tag/v2.1.0?ref=selfh.st"><strong>v2.1.0</strong></a> | <strong>Server Monitoring</strong>: Major performance improvements, dynamic room allocation, repeat notifications per channel, pin favorite sections on the dashboard</li><li><a href="https://github.com/Chocobozzz/PeerTube?ref=selfh.st"><strong>PeerTube</strong></a> <a href="https://github.com/Chocobozzz/PeerTube/releases/tag/v7.0.0?ref=selfh.st"><strong>v7.0.0</strong></a> | <strong>Video Streaming</strong>: Global client redesign with new themes, improved accessibility, various UX improvements</li><li><a href="https://github.com/IgnisDa/ryot?ref=selfh.st"><strong>Ryot</strong></a> <a href="https://github.com/IgnisDa/ryot/releases/tag/v7.12.0?ref=selfh.st"><strong>v7.12.0</strong></a> | <strong>Tracking</strong>: Support for YouTube Music tracking</li><li><a href="https://github.com/wizarrrr/wizarr?ref=selfh.st"><strong>Wizarr</strong></a> <a href="https://github.com/wizarrrr/wizarr/releases/tag/v4.2.0?ref=selfh.st"><strong>v4.2.0</strong></a> | <strong>Invitation Management</strong>: Support for onboarding customization and page editing</li><li><a href="https://github.com/FuzzyGrim/Yamtrack?ref=selfh.st"><strong>Yamtrack</strong></a> <a href="https://github.com/FuzzyGrim/Yamtrack/releases/tag/v0.17.0?ref=selfh.st"><strong>v0.17.0</strong></a> | <strong>Media Tracking</strong>: Support for OpenLibrary book tracking, allow disabling of specific media types from profile page</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/inventree/InvenTree?ref=selfh.st"><strong>InvenTree</strong></a> <a href="https://github.com/inventree/InvenTree/releases/tag/0.17.0?ref=selfh.st"><strong>v0.17.0</strong></a>: Number of breaking changes requiring manual intervention</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/g1ibby/auto-vpn?ref=selfh.st"><strong>Auto-VPN</strong></a>: All-in-one tool for deploying WireGuard VPN servers with popular VPS providers</li><li><a href="https://github.com/calibrain/calibre-web-automated-book-downloader/?ref=selfh.st"><strong>Calibre-Web-Automated Book Downloader</strong></a>: Web interface for managing book downloads</li><li><a href="https://github.com/ericrosenberg1/CityBot2?ref=selfh.st"><strong>CityBot2</strong></a>: Design and create social media posts for a local area</li><li><a href="https://gitlab.com/rogs/dendrite-docker-bridges?ref=selfh.st"><strong>Dendrite Docker Bridges</strong></a>: Script for easily deploying Matrix and select custom app bridges</li><li><a href="https://github.com/zrougamed/dynamic-notification-system?ref=selfh.st"><strong>Dynamic Notification System</strong></a>: Multi-platform notification solutions</li><li><a href="https://github.com/TheImaginear/dynamiX?ref=selfh.st"><strong>DynamiX</strong></a>: Dynamically manage Plex collection pinning</li><li><a href="https://github.com/TobiasMarschner/ferrishare?ref=selfh.st"><strong>FerriShare</strong></a>: File sharing application with end-to-end encryption</li><li><a href="https://apps.apple.com/us/app/finer-player/id6738301953?ref=selfh.st"><strong>Finer Player</strong></a>: Native macOS Jellyfin music client</li><li><a href="https://github.com/sewera/gift-goose?ref=selfh.st"><strong>Gift Goose</strong></a>: Gifter-giftee random pairing tool</li><li><a href="https://github.com/LuisReinoso/github-stars-semantic-search?ref=selfh.st"><strong>GitHub Stars Semantic Search</strong></a>: Natural language search interactions with starred GitHub repositories</li><li><a href="https://github.com/kek-Sec/GopherDrop?ref=selfh.st"><strong>GopherDrop</strong></a>: Secure one-time secret sharing</li><li><a href="https://github.com/tristcoil/hanabira.org?ref=selfh.st"><strong>Hanabira</strong></a>: Japanese learning platform</li><li><a href="https://github.com/Barqawiz/iot_watering_system?ref=selfh.st"><strong>IoT Watering System</strong></a>: Automated Raspberry Pi plant watering system</li><li><a href="https://github.com/tanq16/local-content-share?ref=selfh.st"><strong>Local Content Share</strong></a>: Simple web app for sharing content within a local network</li><li><a href="https://github.com/Sean-on-Git/mealie-extension?ref=selfh.st"><strong>Mealie Extension</strong></a>: Firefox extension for quickly adding recipes to Mealie</li><li><a href="https://github.com/nothing2obvi/mkv_track_optimizer?ref=selfh.st"><strong>MKV Track Optimizer</strong></a>: Customizable MKV audio and subtitle track selection</li><li><a href="https://github.com/WCY-dt/my-github-2024?ref=selfh.st"><strong>My GitHub 2024</strong></a>: GitHub yearly statistics chart</li><li><a href="https://github.com/notificohq/notifico?ref=selfh.st"><strong>Notificox</strong></a>: Single-binary notification tool w/ multi-platform support</li><li><a href="https://github.com/janbjorge/pipegate?ref=selfh.st"><strong>PipeGate</strong></a>: Lightweight, self-hosted proxy</li><li><a href="https://github.com/mfat/ports-info?ref=selfh.st"><strong>PortsInfo</strong></a>: Utility for listing listening ports on Linux systems</li><li><a href="https://forum.proxmox.com/threads/proxmox-datacenter-manager-first-alpha-release.159324/?ref=selfh.st"><strong>Proxmox Datacenter Manager</strong></a>: Centralized overview of individual nodes and clusters (alpha release)</li><li><a href="https://github.com/jaypyles/dashboard?ref=selfh.st"><strong>Server Manager</strong></a>: Custom server manager and dashboard</li><li><a href="https://github.com/robiningelbrecht/strava-statistics?ref=selfh.st"><strong>Strava Statistics</strong></a>: Self-hosted statistics generated using Strava data</li><li><a href="https://github.com/MaximilianGT500/testflight-watcher?ref=selfh.st"><strong>Testflight Watcher</strong></a>: Periodically check TestFlight invitations for available seats</li><li><a href="https://github.com/vernu/textbee?ref=selfh.st"><strong>TextBee</strong></a>: Android SMS gateway for sending messages from the web</li><li><a href="https://github.com/navilg/trakt-year-in-review?ref=selfh.st"><strong>Trakt Year in Review</strong></a>: Python tool for generating Trakt year in review</li><li><a href="https://github.com/john-overton/yet-another-wiki?ref=selfh.st"><strong>Yet Another Wiki</strong></a>: Simplistic Markdown wiki platform</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps/">Directory</a> Apps</h2><ul><li><a href="https://github.com/adminerevo/adminerevo?ref=selfh.st"><strong>AdminerEvo</strong></a>: Database management via web UI</li><li><a href="https://github.com/cloudpanel-io/cloudpanel-ce?ref=selfh.st"><strong>CloudPanel</strong></a>: Simple server management and configuration</li><li><a href="https://www.cloudron.io/?ref=selfh.st"><strong>Cloudron</strong></a>: Complete solution for running apps on your own server</li><li><a href="https://github.com/GhostWriters/DockSTARTer?ref=selfh.st"><strong>DockSTARTer</strong></a>: Quick and easy Docker deployment platform</li><li><a href="https://github.com/dokku/dokku/?ref=selfh.st"><strong>Dokku</strong></a>: Open-source platform-as-a-service</li><li><a href="https://github.com/Dokploy/dokploy?ref=selfh.st"><strong>Dokploy</strong></a>: Application management and deployment platform</li><li><a href="https://easypanel.io/?ref=selfh.st"><strong>Easypanel</strong></a>: Next generation server control panel</li><li><a href="https://freedombox.org/?ref=selfh.st"><strong>FreedomBox</strong></a>: Install and configure server apps with only a few clicks</li><li><a href="https://github.com/RoastSlav/quickdrop?ref=selfh.st"><strong>QuickDrop</strong></a>: Easy-to-use file sharing application</li><li><a href="https://roon.app/en/core?ref=selfh.st"><strong>Roon</strong></a>: Music management, centralization, and listening platform</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/read-later/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Pocket, Omnivore</div><div class="kg-bookmark-description">Self-hosted alternatives to popular online read later and bookmarking services</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-17.png" alt="This Week in Self-Hosted (20 December 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/read-later-3-2.png" alt="This Week in Self-Hosted (20 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://akashrajpurohit.com/blog/metube-selfhosted-youtube-downloader-with-a-sleek-web-interface/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">MeTube — Self-hosted YouTube downloader with a sleek web interface</div><div class="kg-bookmark-description">MeTube is a web UI for youtube-dl/yt-dlp that allows you to download videos from YouTube and other platforms. It’s perfect for archiving your favorite content or downloading videos for offline viewing.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/safari-pinned-tab-4.svg" alt="This Week in Self-Hosted (20 December 2024)"><span class="kg-bookmark-author">Akash Rajpurohit</span><span class="kg-bookmark-publisher">Akash Rajpurohit</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/metube-selfhosted-youtube-downloader-with-a-sleek-web-interface-1.png" alt="This Week in Self-Hosted (20 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.danielbrendel.com/blog/12-hortusfox-recap-2024?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">HortusFox Recap 2024 🦊🎇 | Daniel Brendel | Blog</div><div class="kg-bookmark-description">As the year 2024 comes to an end and the new year 2025 is about</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.ghost.org/v5.0.0/images/link-icon.svg" alt="This Week in Self-Hosted (20 December 2024)"><span class="kg-bookmark-author">Indie Software Developer & Project Founder</span><span class="kg-bookmark-publisher">Daniel Brendel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/logo-2.png" alt="This Week in Self-Hosted (20 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.mealie.io/news/surveys/2024-october/overview/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">October 2024 - Mealie</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-6.png" alt="This Week in Self-Hosted (20 December 2024)"><span class="kg-bookmark-author">Mealie</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Question2.png" alt="This Week in Self-Hosted (20 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/12/16/community-survey-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Understanding Our Community: The 2024 Home Assistant Survey</div><div class="kg-bookmark-description">Today we launch our annual survey of our community, the insights gained will help us make Home Assistant better reflect all our users.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-192x192-6.png" alt="This Week in Self-Hosted (20 December 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Annika Schulz</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/art-3.jpg" alt="This Week in Self-Hosted (20 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-speedtest-tracker">Content Spotlight: Speedtest Tracker</h2><img src="https://selfh.st/content/images/2024/11/featured-image.png" alt="This Week in Self-Hosted (20 December 2024)"><p>Meet <a href="https://github.com/alexjustesen/speedtest-tracker?ref=selfh.st"><strong>Speedtest Tracker</strong></a>, a self-hosted application for monitoring the performance and uptime of an internet connection. With <strong>Speedtest Tracker</strong>, users are given a streamlined interface for managing a number of tracking-related features, which include viewing performance metrics (upload speeds, ping, packet loss, etc.), scheduling automated tests, and setting up notifications based on user-defined performance thresholds. The project also recently celebrated its <a href="https://github.com/alexjustesen/speedtest-tracker/releases/tag/v1.0.0?ref=selfh.st">milestone v1.0 release</a> and dropped a list of planned features including multiple schedules, ping tests, an API, and a revamped dashboard.</p><p><strong>Speedtest Tracker</strong> can be <a href="https://docs.speedtest-tracker.dev/getting-started/installation?ref=selfh.st">easily installed via Docker</a> and doesn't require any additional containers or resources to deploy.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-speedtest-tracker.webp" alt="This Week in Self-Hosted (20 December 2024)" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://speedtest-tracker.dev/?ref=selfh.st"><strong>Website</strong></a>, <a href="https://github.com/alexjustesen/speedtest-tracker?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=wbRViRwflbI&ref=selfh.st"><strong>My Favorite Home Lab So Far</strong></a> | Hardware Haven</li><li><a href="https://www.youtube.com/watch?v=MxNnq5H2WmI&ref=selfh.st"><strong>TrueNAS Drive Replacement</strong></a> | Jim's Garage</li><li><a href="https://www.youtube.com/watch?v=EAMIcwKSt4I&ref=selfh.st"><strong>How to Deploy Tududi for Simple Task Management</strong></a> | Techdox</li><li><a href="https://www.youtube.com/watch?v=zhftbniTLB8&ref=selfh.st"><strong>Meet Missy - Community Manager for Nabu Casa</strong></a> | Home Assistant</li><li><a href="https://www.youtube.com/watch?v=w9BbjUowmnE&ref=selfh.st"><strong>Local Smart Home Voice Control Is AMAZING</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=WXkWP-JZOd8&ref=selfh.st"><strong>Build a Secure Site-to-Site VPN with Pfsense & WireGuard</strong></a> | Lawrence Systems</li><li><a href="https://www.youtube.com/watch?v=THgs2m_WgaM&ref=selfh.st"><strong>Protect Your Network and Taking Back Your Privacy using Pi-Hole!</strong></a> | 2GuysTek</li></ul><h2 id="command-line-corner-tailn-5-file">Command Line Corner: tail -n 5 <file></h2><p>Use <strong>tail -n 5 <file></strong> to quickly view the last five lines of a file from the terminal, which is helpful for tasks like viewing the latest output from a log file:</p><pre><code class="language-bash">/$ tail -n 5 example.txt
|
|
is
|
|
This
|
|
Week
|
|
in
|
|
Self-Hosted</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/github-copilot-free/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">You Can Now Use GitHub Copilot For Free!</div><div class="kg-bookmark-description">Finally, it is a good to see a free GitHub Copilot offering. What do you think?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/android-chrome-192x192-5.png" alt="This Week in Self-Hosted (20 December 2024)"><span class="kg-bookmark-author">It's FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/copilot-is-now-free.png" alt="This Week in Self-Hosted (20 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:3;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:43:"This Week in Self-Hosted (13 December 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:94:"Self-hosted news, updates, launches, and content for the week ending Friday, December 13, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-12-13/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"6752f52cfbddd900019d0d9d";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 13 Dec 2024 12:42:19 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:58:"https://selfh.st/content/images/2024/11/featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:24599:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/90Y7nP66bDA?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1799877?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (13 December 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, a collaborative spreadsheet/database hybrid built for sensitive data. <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home-sensitive" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Sign up now.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.pcguide.com/news/raspberry-pi-just-released-an-official-monitor-ideal-for-desktop-use-that-doesnt-break-the-bank/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Raspberry Pi just released an official monitor “ideal for desktop use” that doesn’t break the bank</div><div class="kg-bookmark-description">Alongside the launch of the Raspberry Pi 500, a new Raspberry Pi Monitor is now available to buy - here’s all you need to know about it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/PCguide-favicon.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">PC Guide</span><span class="kg-bookmark-publisher">Jack Goodall</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Raspberry-Pi-monitor-with-Raspberry-Pi-500.jpg" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://joinpeertube.org/news/peertube-app?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PeerTube mobile app: discover videos while caring for your attention | JoinPeerTube</div><div class="kg-bookmark-description">Today, at Framasoft (bonjour!), we publish the very first version of the PeerTube Mobile app for android and iOS. A lot of care went into its concepti…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-4.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">JoinPeerTube</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/card-opengraph.jpg" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ollama.com/blog/structured-outputs?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Structured outputs · Ollama Blog</div><div class="kg-bookmark-description">Ollama now supports structured outputs making it possible to constrain a model’s output to a specific format defined by a JSON schema. The Ollama Python and JavaScript libraries have been updated to support structured outputs.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-16.png" alt="This Week in Self-Hosted (13 December 2024)"></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/og-1.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://automattic.com/2024/protecting-wordpress?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Defending Open Source: Protecting the Future of WordPress</div><div class="kg-bookmark-description">WordPress is a free toolkit anyone can use to build and customize a website. It powers over 40% of the web, giving freedom, ease, and flexibility in how websites are created. Core code, plugins, an…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-automattic-logo-square.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">Automattic</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/defending-open-source-forward.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/actualbudget/actual?ref=selfh.st"><strong>Actual Budget</strong></a> <a href="https://github.com/actualbudget/actual/releases/tag/v24.12.0?ref=selfh.st"><strong>v24.12.0</strong></a> | <strong>Personal Finance</strong>: Official dashboards release, budget tracking, new summary report card type, batch sync for SimpleFin accounts</li><li><a href="https://github.com/bigcapitalhq/bigcapital?ref=selfh.st"><strong>Bigcapital</strong></a> <a href="https://github.com/bigcapitalhq/bigcapital/releases/tag/v0.22.0?ref=selfh.st"><strong>v0.22.0</strong></a> | <strong>Accounting</strong>: Transaction discounts, mail previews (estimate, receipt, credit note)</li><li><a href="https://github.com/bitwarden/server?ref=selfh.st"><strong>Bitwarden</strong></a> <a href="https://github.com/bitwarden/server/releases/tag/v2024.12.0?ref=selfh.st"><strong>v2024.12.0</strong></a> | <strong>Passwords</strong>: New item type for SSH keys, SCIM support for Teams organizations</li><li><a href="https://github.com/chartdb/chartdb?ref=selfh.st"><strong>ChartDB</strong></a> <a href="https://github.com/chartdb/chartdb/releases/tag/v1.5.0?ref=selfh.st"><strong>v1.5.0</strong></a> | <strong>Database Diagrams</strong>: Support for CockroachDB</li><li><a href="https://github.com/bluewave-labs/checkmate?ref=selfh.st"><strong>Checkmate</strong></a> <a href="https://github.com/bluewave-labs/checkmate/releases/tag/v2.0?ref=selfh.st"><strong>v2.0</strong></a> | <strong>Server Monitoring</strong>: Support for infrastructure and Docker container monitoring</li><li><a href="https://github.com/investbrainapp/investbrain?ref=selfh.st"><strong>Investbrain</strong></a> <a href="https://github.com/investbrainapp/investbrain/releases/tag/v1.0.6?ref=selfh.st"><strong>v1.0.6</strong></a> | <strong>Investments</strong>: Support for Ollama</li><li><a href="https://github.com/getmaxun/maxun?ref=selfh.st"><strong>Maxun</strong></a> <a href="https://github.com/getmaxun/maxun/releases/tag/v0.0.4?ref=selfh.st"><strong>v0.0.4</strong></a> | <strong>Web Scraping</strong>: Extract content behind login, product update notifications</li><li><a href="https://github.com/enchant97/note-mark?ref=selfh.st"><strong>Note-Mark</strong></a> <a href="https://github.com/enchant97/note-mark/releases/tag/v0.15.0?ref=selfh.st"><strong>v0.15.0</strong></a> | <strong>Note-Taking</strong>: Syntax highlighting for code blocks, find user capabilities, basic templating</li><li><a href="https://github.com/stonith404/pocket-id?ref=selfh.st"><strong>Pocket ID</strong></a> <a href="https://github.com/stonith404/pocket-id/releases/tag/v0.20.0?ref=selfh.st"><strong>v0.20.0</strong></a> | <strong>OIDC</strong>: Added support for PostgreSQL database provider</li><li><a href="https://github.com/gitroomhq/postiz-app?ref=selfh.st"><strong>Postiz</strong></a> <a href="https://github.com/gitroomhq/postiz-app/releases/tag/v1.10.0?ref=selfh.st"><strong>v1.10.0</strong></a> | <strong>Social Scheduling</strong>: Support for plugs (repost after X amount of likes, etc.), autofill name based on username</li><li><a href="https://github.com/simplex-chat/simplex-chat/releases/tag/v6.2.0?ref=selfh.st"><strong>SimpleX Chat</strong></a> <a href="https://github.com/simplex-chat/simplex-chat/releases/tag/v6.2.0?ref=selfh.st"><strong>v6.2.0</strong></a> | <strong>Messaging</strong>: Partnership with Flux to improve metadata privacy, improved user experience and iOS notifications</li><li><a href="https://github.com/umami-software/umami?ref=selfh.st"><strong>Umami</strong></a> <a href="https://github.com/umami-software/umami/releases/tag/v2.15.0?ref=selfh.st"><strong>v2.15.0</strong></a> | <strong>Web Analytics</strong>: Partial URL matching in funnel report, proper search for city, region, and country names</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/Freika/dawarich?ref=selfh.st"><strong>Dawarich</strong></a> <a href="https://github.com/Freika/dawarich/releases/tag/0.19.4?ref=selfh.st"><strong>v0.19.4</strong></a>/<a href="https://github.com/Freika/dawarich/releases/tag/0.19.6?ref=selfh.st" rel="noreferrer"><strong>6</strong></a>: id/photos API endpoint now returns a different response structure, updated volume mounts</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/Sanjeet990/Astroluma?ref=selfh.st"><strong>Astroluma</strong></a>: Feature-rich dashboard for tasks and services</li><li><a href="https://github.com/biblioverse/biblioteca?ref=selfh.st"><strong>Biblioteca</strong></a>: Ebook library manager</li><li><a href="https://github.com/omeryusufyagci/fast-music-remover?ref=selfh.st"><strong>Fast Music Remover</strong></a>: Lightweight music and noise remover</li><li><a href="https://github.com/goinfinite/os?ref=selfh.st"><strong>Infinite OS</strong></a>: Container operating system for easy deployment</li><li><a href="https://github.com/aimok04/kitshn?ref=selfh.st"><strong>kitshn</strong></a>: Unofficial Android client for Tandoor</li><li><a href="https://github.com/dylski/PaperPiAI?ref=selfh.st"><strong>PaperPiAI</strong></a>: Raspberry Pi Zero generative art e-paper picture frame</li><li><a href="https://github.com/hussaino03/QuestLog?ref=selfh.st"><strong>QuestLog</strong></a>: Gamified productivity platform for tasks and projects</li><li><a href="https://github.com/Ralve-org/RabbitScout?ref=selfh.st"><strong>RabbitScount</strong></a>: Modern dashboard for RabbitMQ management</li><li><a href="https://github.com/d3v0ps-cloud/ratemyride?ref=selfh.st"><strong>Rate My Ride</strong></a>: Collect and manage family driver reviews</li><li><a href="https://github.com/mrusse/soularr?ref=selfh.st"><strong>Soularr</strong></a>: Python script for Lidarr/Soulseek integration</li><li><a href="https://github.com/guackamolly/zero-monitor?ref=selfh.st"><strong>Zero Monitor</strong></a>: Lightweight server monitoring tool</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps/">Directory</a> Apps</h2><ul><li><a href="https://github.com/bluewave-labs/checkmate?ref=selfh.st"><strong>Checkmate</strong></a>: Open-source server monitoring application</li><li><a href="https://github.com/corenting/eddrit?ref=selfh.st"><strong>eddrit</strong></a>: Lightweight alternative frontend for Reddit</li><li><a href="https://github.com/HemmeligOrg/Hemmelig.app?ref=selfh.st"><strong>Hemmelig</strong></a>: Encrypted secret sharing for everyone</li><li><a href="https://github.com/aimok04/kitshn?ref=selfh.st"><strong>kitshn</strong></a>: Unofficial Android client for Tandoor</li><li><a href="https://github.com/psi-4ward/psitransfer?ref=selfh.st"><strong>PsiTransfer</strong></a>: Simple open-source file sharing solution</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/survey/2024-results/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey Results</div><div class="kg-bookmark-description">Visualized results from the 2024 Self-Host User Survey</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-16.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/selfh-st-logo-banner-3-2.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://netsyms.com/gis/addresses?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Address Database 2024 :: Netsyms Technologies</div><div class="kg-bookmark-description">Self-hosted street address database</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/logo-flat-32.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">Netsyms Technologies</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/facebook-image.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://wiki.futo.org/index.php/Introduction_to_a_Self_Managed_Life:_a_13_hour_&_28_minute_presentation_by_FUTO_software?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introduction to a Self Managed Life: a 13 hour & 28 minute presentation by FUTO software - FUTO</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-14.ico" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">FUTO</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/477px-Tim_gilles.jpg" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://adventofdocker.com/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Advent of Docker 🐳🎄</div><div class="kg-bookmark-description">24 days of Docker</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-light.svg" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">Advent of Docker 🐳🎄</span><span class="kg-bookmark-publisher">Jonas Scholz</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/og.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://bret.dk/raspberry-pi-500-review-a-pi-5-in-a-keyboard?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Raspberry Pi 500 Review: A Pi 5 in a Keyboard? - bret.dk</div><div class="kg-bookmark-description">Building on the foundations the Pi 400 put in place, the Raspberry Pi 500 offers a powerful computer-in-a-keyboard experience. Kids room or workbench, perhaps?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-5.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">bret.dk</span><span class="kg-bookmark-publisher">Bret</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/raspberry_pi_500_review_rear_io-1024x683.jpg" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-glance">Content Spotlight: Glance</h2><img src="https://selfh.st/content/images/2024/11/featured-image.png" alt="This Week in Self-Hosted (13 December 2024)"><p>Meet <a href="https://github.com/glanceapp/glance?ref=selfh.st"><strong>Glance</strong></a>, a self-hosted one-stop-shop for consuming feeds from across the web on a single (or multiple) page(s). With <strong>Glance</strong>, users can subscribe to RSS feeds, subreddits, Hacker News, bookmarks, YouTube channels, public calendars, Twitch, GitHub releases, and more directly from a customizable dashboard. Other features include tab support for better feed organization, themes, and a mobile friendly design.</p><p><strong>Glance</strong> can be <a href="https://github.com/glanceapp/glance?ref=selfh.st#installation">installed via bare metal or Docker</a> and is configured entirely via a <a href="https://github.com/glanceapp/glance/blob/main/docs/configuration.md?ref=selfh.st">single YAML configuration file</a>.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-glance.webp" alt="This Week in Self-Hosted (13 December 2024)" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://github.com/glanceapp/glance?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=2jftRXvHvlU&ref=selfh.st"><strong>Reubah: Optimize Your Images & Files Without Compromising Your Privacy</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=Et5PPMYuOc8&ref=selfh.st"><strong>FUTO's Guide to a Self Managed Life</strong></a><strong> </strong>| FUTO</li><li><a href="https://www.youtube.com/watch?v=Jr5MjhgPz_c&ref=selfh.st"><strong>The Perfect Home Server 2024</strong></a> | Wolfgang's Channel</li><li><a href="https://www.youtube.com/watch?v=SpXAdOeE1YU&ref=selfh.st"><strong>What’s the better Git? // GitLab vs Gitea</strong></a> | Christian Lempa</li><li><a href="https://www.youtube.com/watch?v=RHwglGf_z40&ref=selfh.st"><strong>PostgresSQL Clustering the Hard Way...</strong></a> | Techno Tim</li><li><a href="https://www.youtube.com/watch?v=bM2UrI_8OdY&ref=selfh.st"><strong>TrueNAS vs Synology: Which NAS is Right for Your Needs?</strong></a> | Lawrence Systems</li></ul><h2 id="command-line-corner-dush">Command Line Corner: du -sh *</h2><p>Use <strong>du -sh *</strong> to easily preview a list of all files and folders in a directory with sizes displayed in a human-readable format:</p><pre><code class="language-bash">/$ du -sh *
|
|
20K docker-compose.yml
|
|
1K .env
|
|
56K example.txt</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://mullvad.net/en/blog/the-report-for-the-2024-security-audit-of-the-app-is-now-available?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The report for the 2024 security audit of the app is now available | Mullvad VPN</div><div class="kg-bookmark-description">The third party security audit of the Mullvad VPN app has concluded that the app has a high security level. Some non-critical issues were found, and have been fixed to the extent possible.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-15.png" alt="This Week in Self-Hosted (13 December 2024)"><span class="kg-bookmark-author">Mullvad VPN</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/MullvadVPN_logo_Round_RGB_Color_positive-1.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://tailscale.com/blog/tailscale-wrapped-2024?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tailscale wrapped: a year of secure remote access</div><div class="kg-bookmark-description">As 2024 comes to a close, let’s look at what’s changed—for Tailscale and in the broader landscape of secure networking. This year, the shift towards distributed work, increasingly complex regulatory requirements, and the growing awareness of Zero Trust principles all intersected with one universal truth: most people just want things to work.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-5.svg" alt="This Week in Self-Hosted (13 December 2024)"></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/a6b495a94ab0c53f457219ac5576d4a01dc53f6c-1476x780-1.png" alt="This Week in Self-Hosted (13 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:4;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:42:"This Week in Self-Hosted (6 December 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:93:"Self-hosted news, updates, launches, and content for the week ending Friday, December 6, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-12-06/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"674c4792a6e29400018e312d";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 06 Dec 2024 12:46:20 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:58:"https://selfh.st/content/images/2024/11/featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:30487:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/V07IfB5w_m0?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1787993?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.pikapods.com/?utm_source=selfh.st&utm_campaign=newsletter" data-umami-event="newsletter-sponsor-headline-logo-pikapods" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">PikaPods</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/pikapods.png" style="width: 40px; height: auto;" alt="This Week in Self-Hosted (6 December 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.pikapods.com/?utm_source=selfh.st&utm_campaign=newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-pikapods"><b><strong style="white-space: pre-wrap;">PikaPods</strong></b></a>, the instant open source hosting service. Run a large selection of open source apps within seconds from just $1/month. Server administration, updates, and backups are all taken care of, leaving you in control of your data. <a href="https://www.pikapods.com/?utm_source=selfh.st&utm_campaign=newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-pikapods"><b><strong style="white-space: pre-wrap;">Try it today</strong></b></a> with $5 free welcome credit!</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/openwrt-one/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">OpenWrt One: A Repairable FOSS Wi-Fi 6 Router From Banana Pi</div><div class="kg-bookmark-description">If you love open source hardware or the ones that give you full rights to do your own thing, this is one of them!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/android-chrome-192x192-3.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">It's FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/OpenWrt-One.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://wedistribute.org/2024/12/threads-fediverse-profiles/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Threads Beta Feature Enables Fediverse Profiles - We Distribute</div><div class="kg-bookmark-description">Meta’s social microblogging platform has enabled a new, fundamentally important feature: the ability to look up and follow profiles from the network.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-favicon-redone-4.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">We Distribute</span><span class="kg-bookmark-publisher">Sean Tilley</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Adobe_20240522_2115512-1.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://element.io/blog/senators-implore-department-of-defense-to-expand-the-use-of-matrix/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Senators implore Department of Defense to expand the use of Matrix</div><div class="kg-bookmark-description">Senators Ron Wyden and Eric Schmitt push the Defense Department to expand the use of Matrix to deliver sovereign, end-to-end encrypted and interoperable communications.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-3.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">Element Blog</span><span class="kg-bookmark-publisher">Steve Loynes</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Senators-implore__blog-1.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://linustechtips.com/topic/1590843-revealing-my-new-investment/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Revealing my new investment</div><div class="kg-bookmark-description">It’s finally here! Almost. It’s finally almost here. HexOS is a layer that goes on top of TrueNAS that will make the great software more user friendly that unRAID and even, dare I say it, Windows? Join us as we walk you through the features that make HexOS such a great option for hosting your own…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-180x180.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">Linus Tech Tips</span><span class="kg-bookmark-publisher">AdamFromLTT</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/image.png.ea314c368d514ba31642ca431c059b33.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/karlomikus/bar-assistant?ref=selfh.st"><strong>Bar Assistant</strong></a> <a href="https://github.com/karlomikus/bar-assistant/releases/tag/v4.2.0?ref=selfh.st"><strong>v4.2.0</strong></a> | <strong>Cocktail Recipes</strong>: Added cocktail prices, new API endpoints</li><li><a href="https://github.com/dgtlmoon/changedetection.io?ref=selfh.st"><strong>ChangeDetection</strong></a> <a href="https://github.com/dgtlmoon/changedetection.io/releases/tag/0.48.00?ref=selfh.st"><strong>v0.48.00</strong></a> | <strong>Change Monitoring</strong>: New scheduler functionality, local timezone info in settings</li><li><a href="https://github.com/chartdb/chartdb?ref=selfh.st"><strong>ChartDB</strong></a> <a href="https://github.com/chartdb/chartdb/releases/tag/v1.4.0?ref=selfh.st"><strong>v1.4.0</strong></a> | <strong>Database Diagrams</strong>: Six additional templates, ClickHouse support</li><li><a href="https://github.com/Freika/dawarich?ref=selfh.st"><strong>Dawarich</strong></a> <a href="https://github.com/Freika/dawarich/releases/tag/0.19.0?ref=selfh.st"><strong>v0.19.0</strong></a> | <strong>Location History</strong>: Integration with Photoprism for displaying images on the map</li><li><a href="https://github.com/docmost/docmost?ref=selfh.st"><strong>Docmost</strong></a> <a href="https://github.com/docmost/docmost/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a> | <strong>Collaborative Wiki</strong>: Full space exports with attachments, resizable sidebar, support for custom draw.io servers</li><li><a href="https://github.com/AkashRajpurohit/git-sync?ref=selfh.st"><strong>git-sync</strong></a> <a href="https://github.com/AkashRajpurohit/git-sync/releases/tag/v0.12.0?ref=selfh.st"><strong>v0.12.0</strong></a> | <strong>Backup and Sync</strong>: Raw git URL support for syncing public repositories from other users</li><li><a href="https://github.com/home-assistant/core?ref=selfh.st"><strong>Home Assistant</strong></a> <a href="https://github.com/home-assistant/core/releases/tag/2024.12.0?ref=selfh.st"><strong>v2024.12.0</strong></a> | <strong>Home Automation</strong>: Improved scene editor, LLM-based voice assistant fallback, voice re-engineering for quicker experiences, revised integration quality scale</li><li><a href="https://github.com/immich-app/immich?ref=selfh.st"><strong>Immich</strong></a> <a href="https://github.com/immich-app/immich/releases/tag/v1.122.0?ref=selfh.st"><strong>v1.122.0</strong></a> | <strong>Photos and Videos</strong>: HDR support on mobile, automatic local URL switching, hide users from search, recent albums in sidebar, custom email templates</li><li><a href="https://github.com/kamilkosek/jellyplist?ref=selfh.st"><strong>Jellyplist</strong></a> <a href="https://github.com/kamilkosek/jellyplist/releases/tag/0.1.7?ref=selfh.st"><strong>v0.1.7</strong></a> | <strong>Playlist Sync</strong>: Lidarr integration, major music provider overhaul to reimplement Spotify API changes via new plugin system</li><li><a href="https://github.com/pbogre/jetlog?ref=selfh.st"><strong>JetLog</strong></a> <a href="https://github.com/pbogre/jetlog/releases/tag/1.1.0?ref=selfh.st"><strong>v1.1.0</strong></a> | <strong>Flight Tracker</strong>: Support for multiple users, minor UI changes</li><li><a href="https://github.com/brufdev/many-notes?ref=selfh.st"><strong>Many Notes</strong></a> <a href="https://github.com/brufdev/many-notes/releases/tag/v0.2.0?ref=selfh.st"><strong>v0.2.0</strong></a> | <strong>Note-Taking</strong>: Custom Markdown editor, input sanitization, file upload within vaults, 'About' section added to menu</li><li><a href="https://github.com/sahara101/Movie-Roulette?ref=selfh.st"><strong>Movie Roulette</strong></a> <a href="https://github.com/sahara101/Movie-Roulette/releases/tag/v3.0?ref=selfh.st"><strong>v3.0</strong></a> | <strong>Movie Picker</strong>: Settings page, cinema poster link, person filmography, clickable movies with details, Trakt and Overseerr integrations</li><li><a href="https://github.com/makeplane/plane?ref=selfh.st"><strong>Plane</strong></a> <a href="https://github.com/makeplane/plane/releases/tag/v0.24.0?ref=selfh.st"><strong>v0.24.0</strong></a> | <strong>Project Management</strong>: Switch views without loading screens, workspace management from /god-mode, callouts and text-alignment on pages, workspace drafts</li><li><a href="https://github.com/fredrikburmester/streamyfin?ref=selfh.st"><strong>Streamyfin</strong></a> <a href="https://github.com/fredrikburmester/streamyfin/releases/tag/v0.21.0?ref=selfh.st"><strong>v0.21.0</strong></a> | <strong>Jellyfin Client</strong>: New native VLC player for increased codec and format support, native tab bar</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/Freika/dawarich?ref=selfh.st"><strong>Dawarich</strong></a> <a href="https://github.com/Freika/dawarich/releases/tag/0.19.0?ref=selfh.st"><strong>v0.19.0</strong></a>: Restructured response for '/api/v1/photos' endpoint</li><li><a href="https://github.com/sysadminsmedia/homebox?ref=selfh.st"><strong>Homebox</strong></a> <a href="https://github.com/sysadminsmedia/homebox/releases/tag/v0.16.0?ref=selfh.st"><strong>v0.16.0</strong></a>: ARM container now requires <em>latest-arm</em> tag</li><li><a href="https://github.com/pbogre/jetlog?ref=selfh.st"><strong>JetLog</strong></a> <a href="https://github.com/pbogre/jetlog/releases/tag/1.1.0?ref=selfh.st"><strong>v1.1.0</strong></a>: Update requires new SECRET_KEY environment variable</li><li><a href="https://github.com/epoupon/lms?ref=selfh.st"><strong>Lightweight Music Server</strong></a> <a href="https://github.com/epoupon/lms/releases/tag/v3.61.0?ref=selfh.st"><strong>v3.61.0</strong></a>: All users now required to generate an API key for Subsonic API usage</li><li><a href="https://github.com/alexjustesen/speedtest-tracker?ref=selfh.st"><strong>Speedtest Tracker</strong></a> <a href="https://github.com/alexjustesen/speedtest-tracker/releases/tag/v0.25.0?ref=selfh.st"><strong>v0.25.0</strong></a>: Users required to restate history as a result of rewritten InfluxDB integration</li><li><a href="https://github.com/Flomp/wanderer?ref=selfh.st"><strong>Wanderer</strong></a> <a href="https://github.com/Flomp/wanderer/releases/tag/v0.12.0?ref=selfh.st"><strong>0.12.0</strong></a>: Manual migration required for Meilisearch indices and custom raster tilesets</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/thepersonalaicompany/amurex?ref=selfh.st"><strong>Amurex</strong></a>: Real-time AI meeting assistant</li><li><a href="https://github.com/da-vinci-noob/bookmark-manager?ref=selfh.st"><strong>Bookmark Manager</strong></a>: Privacy-focused bookmark management solution</li><li><a href="https://github.com/BattermanZ/FlareSync?ref=selfh.st"><strong>FlareSync</strong></a>: Lightweight app for updating Cloudflare DNS records</li><li><a href="https://github.com/thisuxhq/fli.so?ref=selfh.st"><strong>Fli.so</strong></a>: Lightning-fast URL shortener</li><li><a href="https://github.com/tedhinklater/Jellyfin-Featured-Content-Bar?ref=selfh.st"><strong>Jellyfin Featured Content Bar</strong></a>: Featured media bar for Jellyfin</li><li><a href="https://github.com/elmeunick9/jp-dit?ref=selfh.st"><strong>JP-DIT</strong></a>: Web-based Japanese dictionary designed for embedding in Calibre</li><li><a href="https://github.com/oppiliappan/lurker?ref=selfh.st"><strong>lurker</strong></a>: Self-hosted read-only Reddit client</li><li><a href="https://github.com/Jerome-Herbinet/Nextcloud-Instances-Versions-Monitoring-Page?ref=selfh.st"><strong>Nextcloud Version Monitoring</strong></a>: Status page for monitoring multiple instances of Nextcloud</li><li><a href="https://github.com/privastead/privastead?ref=selfh.st"><strong>Privastead</strong></a>: Privacy-preserving home security camera solution</li><li><a href="https://github.com/dendianugerah/reubah?ref=selfh.st"><strong>Reubah</strong></a>: Universal file converter and image processor</li><li><a href="https://github.com/TheEmeryverse/runr.sh?ref=selfh.st"><strong>runr.sh</strong></a>: Set-and-forget container update manager</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps/">Directory</a> Apps</h2><ul><li><a href="https://github.com/amnezia-vpn/amnezia-client?ref=selfh.st"><strong>Amnezia</strong></a>: Open-source VPN server and client</li><li><a href="https://github.com/macarooni-man/auto-mcs?ref=selfh.st"><strong>auto-mcs</strong></a>: Cross-platform Minecraft server manager</li><li><a href="https://github.com/bknd-io/bknd?ref=selfh.st"><strong>bknd</strong></a>: Lightweight Firebase/Supabase alternative</li><li><a href="https://github.com/blinko-space/blinko?ref=selfh.st"><strong>Blinko</strong></a>: Open-source personal note tool</li><li><a href="https://gitlab.com/crafty-controller/crafty-4?ref=selfh.st"><strong>Crafty Controller</strong></a>: Minecraft server control panel and launcher</li><li><a href="https://github.com/Notifiarr/dockwatch?ref=selfh.st"><strong>Dockwatch</strong></a>: Container updates and notifications with web UI</li><li><a href="https://github.com/Graylog2/graylog2-server?ref=selfh.st"><strong>Graylog</strong></a>: Free and open log management platform</li><li><a href="https://github.com/kamilkosek/jellyplist?ref=selfh.st"><strong>Jellyplist</strong></a>: Sync Spotify playlists to Jellyfin</li><li><a href="https://github.com/Lessify/localess?ref=selfh.st"><strong>Localess</strong></a>: Translation and content management platform</li><li><a href="https://github.com/njic/medassist?ref=selfh.st"><strong>MedAssist</strong></a>: Daily medication reminders and management</li><li><a href="https://github.com/nocobase/nocobase?ref=selfh.st"><strong>NocoBase</strong></a>: No-code platform for creating business applications</li><li><a href="https://github.com/jittering/traefik-kop?ref=selfh.st"><strong>traefik-kop</strong></a>: Single public-facing Traefik instance for Kubernetes</li><li><a href="https://github.com/arabcoders/watchstate?ref=selfh.st"><strong>WatchState</strong></a>: Sync media play states across Plex, Jellyfin, and Emby</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/icons/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosted Dashboard Icons</div><div class="kg-bookmark-description">A collection of self-hosted dashboard icons and logos</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-14.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/screenshot-selfhst-icons-1-2.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/read-later/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Pocket, Omnivore</div><div class="kg-bookmark-description">Self-hosted alternatives to popular online read later and bookmarking services</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-15.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/read-later-3-1.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://akashrajpurohit.com/blog/setup-caddy-with-automatic-ssl-certificates-with-cloudflare/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Setup Caddy with automatic SSL certificates with Cloudflare</div><div class="kg-bookmark-description">Recently I migrated my homelab from using Nginx with local domain certificates to using Caddy with automatic SSL certificates from Cloudflare. This post will go over the steps I took to set up Caddy with Cloudflare.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/safari-pinned-tab-2.svg" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">Akash Rajpurohit</span><span class="kg-bookmark-publisher">Akash Rajpurohit</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/setup-caddy-with-automatic-ssl-certificates-with-cloudflare.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.research.net/r/SLQWZGF?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2025 State of Open Source Survey</div><div class="kg-bookmark-description">Tell us how your organization is innovating with open source software. Your input will be included in the next State of Open Source Report coming out in early 2025.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-12.ico" alt="This Week in Self-Hosted (6 December 2024)"></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/55b412de-932f-4f6c-b68b-838c164a12c9.jpg" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/11/30/the-month-of-what-the-heck/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The month of ‘What the Heck?!’ 2024</div><div class="kg-bookmark-description">Ever felt that ‘What the heck Home Assistant?!’ moment? This month, we would like to learn about your ‘what the heck?!’ moments…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-192x192-5.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Franck Nijhof</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/social.jpg" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-fliso">Content Spotlight: Fli.so</h2><img src="https://selfh.st/content/images/2024/11/featured-image.png" alt="This Week in Self-Hosted (6 December 2024)"><p>Meet <a href="https://fli.so/?ref=selfh.st"><strong>Fli.so</strong></a>, a simple and gorgeous self-hosted URL shortening service. With <strong>Fli.so</strong>, users can easily connect a domain (or subdomain) to build custom URLs and shortcuts for sharing links with others. Features include user-specified URLs, meta data controls, auto-generated QR codes, tags for organizing links, passwords and expiration dates, and analytics for performance tracking.</p><p><strong>Fli.so </strong>can be installed via <a href="https://github.com/thisuxhq/fli.so?ref=selfh.st#-quick-start" rel="noreferrer">bare metal</a> or <a href="https://github.com/thisuxhq/fli.so/blob/main/docker-compose.yml?ref=selfh.st">Docker</a> and requires an instance of PocketBase for backend functionality.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-fli-so.webp" alt="This Week in Self-Hosted (6 December 2024)" <br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://fli.so/?ref=selfh.st" rel="noreferrer"><strong>Website</strong></a>, <a href="https://github.com/thisuxhq/fli.so?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=AwfNqWvMVTI&ref=selfh.st"><strong>SafeLine: A Feature-Rich WAF with a Catch (or Two)</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=49axB6YkaLg&ref=selfh.st"><strong>Hoarder Mixes Bookmarks With AI</strong></a> | Jim's Garage</li><li><a href="https://www.youtube.com/watch?v=ZyuR1QWOZB8&ref=selfh.st"><strong>Everything New In Home Assistant 2024.12!</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=vy6QeCsHrcs&ref=selfh.st"><strong>SafeLine WAF: Self-Hosted Bot Protection</strong></a> | Techdox</li><li><a href="https://www.youtube.com/watch?v=oXN5pibHSQI&ref=selfh.st"><strong>How Much Power Can You Save by Putting Your NAS HDD's to Sleep?</strong></a> | Lawrence Systems</li><li><a href="https://www.youtube.com/watch?v=Kg0ct2lBUVg&ref=selfh.st"><strong>Self-host your own Git platform! // Gitea Tutorial</strong></a> | Christian Lempa</li></ul><h2 id="command-line-corner-lslt">Command Line Corner: ls -lt</h2><p>Use <strong>ls -lt </strong>to list files and folders in a directory sorted by modification time, which can be helpful for quickly finding recently modified files in large folders:</p><pre><code class="language-bash">/$ ls -lt
|
|
Dec 06 05:01 docker-compose.yml
|
|
Dec 05 11:56 example.txt
|
|
Nov 01 08:34 log.txt</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://forums.trakt.tv/t/automatically-sync-your-streaming-services/34947?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Automatically sync your streaming services!</div><div class="kg-bookmark-description">I’m super excited to announce the new Streaming Scrobbler! This feature is a game changer and allows automatic syncing from Netflix, Prime Video, Hulu, and Apple TV+ (and more services to come). First, make sure you have the most recent iOS or Android Trakt app installed. Next, follow these steps: After you connect a service in the Trakt app, it asks if you want to sync existing data or just new data moving forward. Your initial data will be imported about 10 minutes after you link a…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/942a4ad1e7a513f9e8e887098eb16dc1ee5fb722_2_32x32.svg" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">Trakt Forums</span><span class="kg-bookmark-publisher">justin</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/4b8d59a272b9a444e563256fbe0089f887251e3b_2_1024x512.jpeg" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://letsencrypt.org/2024/12/05/ending-ocsp/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ending OCSP Support in 2025</div><div class="kg-bookmark-description">Earlier this year we announced our intent to provide certificate revocation information exclusively via Certificate Revocation Lists (CRLs), ending support for providing certificate revocation information via the Online Certificate Status Protocol (OCSP). Today we are providing a timeline for ending OCSP services:
|
|
January 30, 2025 OCSP Must-Staple requests will fail, unless the requesting account has previously issued a certificate containing the OCSP Must Staple extension May 7, 2025 Prior to this date we will have added CRL URLs to certificates On this date we will drop OCSP URLs from certificates On this date all requests including the OCSP Must Staple extension will fail August 6, 2025 On this date we will turn off our OCSP responders Additionally, a very small percentage of our subscribers request certificates with the OCSP Must Staple Extension.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-13.ico" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">Let's Encrypt</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/LetsEncrypt-SocialShare.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/mozilla-new-branding-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Mozilla’s New Brand Logo is Here: Time For a Trip Down Memory Lane!</div><div class="kg-bookmark-description">With the new brand identify, let’s hope for a better future for Mozilla!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/android-chrome-192x192-4.png" alt="This Week in Self-Hosted (6 December 2024)"><span class="kg-bookmark-author">It's FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/mozilla-new-rebranding.png" alt="This Week in Self-Hosted (6 December 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:5;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:43:"This Week in Self-Hosted (29 November 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:94:"Self-hosted news, updates, launches, and content for the week ending Friday, November 29, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-11-29/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"674082d1ed7a870001e7151a";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 29 Nov 2024 12:50:30 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:58:"https://selfh.st/content/images/2024/11/featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:29583:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/sHzCiRmYMd8?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1776840?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (29 November 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, an open source database with a spreadsheet UI for teams. <a href="https://docs.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=signup" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2><img src="https://selfh.st/content/images/2024/11/featured-image.png" alt="This Week in Self-Hosted (29 November 2024)"><p>The initial draft of this week's newsletter had a cheeky comment about Americans celebrating Thanksgiving while also subsequently immersing themselves in the consumerism of Black Friday the following day, but I feel like those remarks have been overdone.</p><p>Instead, enjoy a brief list of deals I found for those looking to expand their setups this holiday season:</p><ul><li><a href="https://old.reddit.com/r/DataHoarder/comments/1gz7twn/official_black_friday_2024_sales_thread/?ref=selfh.st">r/DataHoarder's official Black Friday 2024 sales thread</a></li><li><a href="https://unraid.net/cyberweekend?ref=selfh.st">Unraid's Cyber Weekend Sales</a></li><li><a href="https://www.plex.tv/plex-pass/perks/?ref=selfh.st">25% Plex Pass Discount</a></li><li><a href="https://play.google.com/store/apps/details?id=com.kevinforeman.nzb360&ref=selfh.st">nzb360 30% Discount</a></li><li><a href="https://itsfoss.com/black-friday-linux-2024/?ref=selfh.st">Cloud Storage, VPNs, and Courses</a></li></ul><p>Happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.tomshardware.com/raspberry-pi/raspberry-pi-compute-module-5-review?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Raspberry Pi Compute Module 5 Review: More power, same form factor</div><div class="kg-bookmark-description">The Raspberry Pi 5 now in a Compute Module 4 sized package</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-13.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Tom's Hardware</span><span class="kg-bookmark-publisher">Les Pounder</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/dtuNEYPuJEHTjm4SE7P5dc-1200-80.jpg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://adriano.fyi/posts/hetzner-raises-prices-while-significantly-lowering-bandwidth-in-us/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Hetzner raises prices while significantly lowering bandwidth (US)</div><div class="kg-bookmark-description">Hetzner raises prices This morning I received an email from Hetzner stating that they are raising prices in the US while significantly reducing bandwidth.
|
|
The largest price percentage increase is 27.52% for CPX21 servers, and the smallest is 4.17% for CX3+ servers.
|
|
Bandwidth allotments are decreasing on average, across all products, 88.19% from previous allotments.
|
|
I’ve been a big fan of Hetzner. Unfortunately they’ve made a feeble attempt to dress this change up in the name of “fairness”.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/blue.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Adriano Caloiaro's personal blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/hetzner.webp" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.forbes.com/councils/forbestechcouncil/2024/11/06/the-future-of-io-domains-critical-insights-for-tech-leaders/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Council Post: The Future Of .IO Domains: Critical Insights For Tech Leaders</div><div class="kg-bookmark-description">In this article, I explore the potential scenarios for .io’s future, the risks for domain owners and why a solid domain strategy is crucial.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/48X48-F.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Forbes</span><span class="kg-bookmark-publisher">Daniel Strauss</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/0x0.jpg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.plex.tv/blog/a-new-plex-experience-is-coming-get-a-mobile-preview-now/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">A New Plex Experience is Coming</div><div class="kg-bookmark-description">Get a mobile preview, and join our testing program.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/plex-180-1.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Plex</span><span class="kg-bookmark-publisher">jerry</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/PlexBlogHeroMobilePreview-scaled.jpg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st"><strong>ByteStash</strong></a> <a href="https://github.com/jordan-dalby/ByteStash/releases/tag/v1.5.0?ref=selfh.st"><strong>v1.5.0</strong></a> | <strong>Code Snippets</strong>: SSO support for OIDC, public views for specified snippets, imports and exports, clickable description links</li><li><a href="https://github.com/Freika/dawarich?ref=selfh.st"><strong>Dawarich</strong></a> <a href="https://github.com/Freika/dawarich/releases/tag/0.17.0?ref=selfh.st"><strong>v0.17</strong></a><a href="https://github.com/Freika/dawarich/releases/tag/0.18.0?ref=selfh.st" rel="noreferrer"><strong>/8</strong></a> | <strong>Location History</strong>: Immich integration for displaying photos on map, new 'Trips' feature (create, edit, and delete)</li><li><a href="https://github.com/gristlabs/grist-core?ref=selfh.st"><strong>Grist</strong></a> <a href="https://github.com/gristlabs/grist-core/releases/tag/v1.3.0?ref=selfh.st"><strong>v1.3.0</strong></a> | <strong>No-Code Database</strong>: Docker image now built using Debian Bookworm, updated UI for setting documents as template or tutorial</li><li><a href="https://github.com/gethomepage/homepage?ref=selfh.st"><strong>Homepage</strong></a> <a href="https://github.com/gethomepage/homepage/releases/tag/v0.9.13?ref=selfh.st"><strong>v0.9.13</strong></a> | <strong>Dashboard</strong>: New widgets – Prometheus Metric, suwayomi, ArgoCD, Spoolman, and GitLab</li><li><a href="https://github.com/danielbrendel/hortusfox-web?ref=selfh.st"><strong>HortusFox</strong></a> <a href="https://github.com/danielbrendel/hortusfox-web/releases/tag/v3.8?ref=selfh.st"><strong>v3.8</strong></a> | <strong>Plant Manager</strong>: Daylight saving time for weather features, inventory quantity management, list view sorting/filtering, plant recognition updates</li><li><a href="https://github.com/Kareadita/Kavita?ref=selfh.st"><strong>Kavita</strong></a> <a href="https://github.com/Kareadita/Kavita/releases/tag/v0.8.4?ref=selfh.st"><strong>v0.8.4</strong></a> | <strong>Reading Server</strong>: Rewritten scanner, people re-architecture, special keyword removal, last read filter, bulk library actions</li><li><a href="https://github.com/LycheeOrg/Lychee?ref=selfh.st"><strong>Lychee</strong></a> <a href="https://github.com/LycheeOrg/Lychee/releases/tag/v6.1.0?ref=selfh.st"><strong>v6.1.0</strong></a> | <strong>Photos</strong>: New timeline layout for albums, LQ image placeholder, Authentik OAuth provider support</li><li><a href="https://github.com/manyfold3d/manyfold?ref=selfh.st"><strong>Manyfold</strong></a> <a href="https://github.com/manyfold3d/manyfold/releases/tag/v0.90.0?ref=selfh.st"><strong>v0.90.0</strong></a> | <strong>Asset Manager</strong>: Redesigned site settings to accommodate enhanced site and user management</li><li><a href="https://codeberg.org/mrmn/PdfDing?ref=selfh.st"><strong>PdfDing</strong></a> <a href="https://codeberg.org/mrmn/PdfDing/releases/tag/0.5.0?ref=selfh.st"><strong>v0.5.0</strong></a> | <strong>PDF Manager</strong>: Code migration from Codeberg to <a href="https://github.com/mrmn2/PdfDing?ref=selfh.st">GitHub</a>, inverted color reading mode, bulk uploads, date tooltips, upload loading spinners</li><li><a href="https://codeberg.org/readeck/readeck?ref=selfh.st"><strong>Readeck</strong></a> <a href="https://codeberg.org/readeck/readeck/releases/tag/0.16.0?ref=selfh.st"><strong>v0.16.0</strong></a> | <strong>Read Later</strong>: Filters for labels, errors, and loading state, show bookmark creation date in sidebar, alignment and hyphenation reader settings</li><li><a href="https://github.com/rommapp/romm?ref=selfh.st"><strong>RomM</strong></a> <a href="https://github.com/rommapp/romm/releases/tag/3.6.0?ref=selfh.st"><strong>v3.6.0</strong></a> | <strong>ROM Manager</strong>: Display and filter by age rating, larger file uploads, new 'Personal' tab for tracking game progress, completions, star ratings, and notes</li><li><a href="https://github.com/Stirling-Tools/Stirling-PDF?ref=selfh.st"><strong>Stirling PDF</strong></a> <a href="https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v0.34.0?ref=selfh.st"><strong>v0.34.0</strong></a> | <strong>PDF Editor</strong>: Improved PDF to CSV, multi-select drag and drop, allow same signature on multiple pages at once</li><li><a href="https://github.com/Tautulli/Tautulli?ref=selfh.st"><strong>Tautulli</strong></a> <a href="https://github.com/Tautulli/Tautulli/releases/tag/v2.15.0?ref=selfh.st"><strong>v2.15.0</strong></a> | <strong>Plex Statistics</strong>: Plex slug and watch URL notification parameters, new export fields, API metadata updates</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/immichFrame/ImmichFrame?ref=selfh.st"><strong>ImmichFrame</strong></a> <a href="https://github.com/immichFrame/ImmichFrame/releases/tag/v1.0.19.0?ref=selfh.st"><strong>v1.0.19.0</strong></a>: FontColor setting renamed to PrimaryColor</li><li><a href="https://github.com/stonith404/pocket-id?ref=selfh.st"><strong>Pocket ID</strong></a> <a href="https://github.com/stonith404/pocket-id/releases/tag/v0.17.0?ref=selfh.st"><strong>v0.17.0</strong></a>: Unbundled GeoLite2 database now requires license key for IP address lookup</li><li><a href="https://github.com/ad3m3r5/scratch-map?ref=selfh.st"><strong>Scratch Map</strong></a> <a href="https://github.com/ad3m3r5/scratch-map/releases/tag/1.2.0?ref=selfh.st"><strong>v1.2.0</strong></a>: DBLOCATION variable renamed to DATA_DIR</li><li><a href="https://github.com/Stirling-Tools/Stirling-PDF?ref=selfh.st"><strong>Stirling PDF</strong></a> <a href="https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v0.34.0?ref=selfh.st"><strong>v0.34.0</strong></a>: Users upgrading from versions older than v0.28.0 will need to upgrade to a newer version before upgrading to this release for database migrations</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://info.linuxserver.io/issues/2024-11-25-swag-porkbun/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PSA: Breaking Changes to Porkbun DNS Plugin for SWAG | Info :: LinuxServer.io</div><div class="kg-bookmark-description">If you use the Porkbun certbot plugin with SWAG for DNS validation you need to ensure that you have updated your SWAG container to at least version 3.0.1-ls337 before 2024-12-01, as Porkbun are making changes to their API endpoint that will cause older versions of the plugin to stop working. Specifically, they are updating their API domain root from porkbun.com to api.porkbun.com.
|
|
If you are unsure which version of SWAG you are running, you can use docker inspect -f ’{{ index .</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-10.ico" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Info :: LinuxServer.io</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/logo-1.png" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/HermanMartinus/bearlytics?ref=selfh.st"><strong>Bearlytics</strong></a>: Privacy-first, no-nonsense web analytics</li><li><a href="https://github.com/pcdiks/bm-manager?ref=selfh.st"><strong>Bookmark Manager</strong></a>: Multi-user web app for managing bookmarks</li><li><a href="https://github.com/markrai/consciouscravings?ref=selfh.st"><strong>Conscious Cravings</strong></a>: Self-curated kitchen dashboard</li><li><a href="https://github.com/inkplayart/eebeepeebee/?ref=selfh.st"><strong>Eebeepeebee</strong></a>: Minimal self-hosted pastebin for small user bases</li><li><a href="https://github.com/kamilkosek/jellyplist?ref=selfh.st"><strong>Jellyplist</strong></a>: Replicate and sync Spotify playlists to Jellyfin</li><li><a href="https://github.com/notificohq/notifico?ref=selfh.st"><strong>Notifico</strong></a>: Omni-channel notification server</li><li><a href="https://github.com/RoastSlav/quickdrop?ref=selfh.st"><strong>QuickDrop</strong></a>: Anonymous file sharing</li><li><a href="https://github.com/rs-anantmishra/streamsphere?ref=selfh.st"><strong>Streamsphere</strong></a>: yt-dlp frontend and media library</li><li><a href="https://github.com/vinceanalytics/vince?ref=selfh.st"><strong>Vince</strong></a>: Self-hosted alternative to Google Analytics</li><li><a href="https://github.com/SoulRaven80/wdosg?ref=selfh.st"><strong>wDOSg</strong></a>: Manage and run DOS games in the browser</li><li><a href="https://github.com/debloper/xplex?ref=selfh.st"><strong>xplex</strong></a>: Open-source multi-streaming server</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/rss-readers/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Feedly, Inoreader</div><div class="kg-bookmark-description">Self-hosted alternatives to popular online news feed readers</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-12.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/screenshot-feedly-1.png" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/survey/2024-results/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey Results</div><div class="kg-bookmark-description">Visualized results from the 2024 Self-Host User Survey</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-13.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/selfh-st-logo-banner-3-1.png" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://matduggan.com/self-hosting-isnt-a-solution-its-a-patch/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Isn’t a Solution; It’s A Patch</div><div class="kg-bookmark-description">Self-hosting is an acceptable temporary solution to a lack of privacy regulations but not a sustainable long-term one.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-12.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">matduggan.com</span><span class="kg-bookmark-publisher">Mathew Duggan</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/public" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://community.konnected.io/t/how-konnected-re-wrote-ratgdo-to-secure-the-future-of-the-open-garage-door/36571?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How Konnected re-wrote ratgdo to secure the future of the open garage door</div><div class="kg-bookmark-description">It was just over a year ago when I first heard about ratgdo. At the time we had been a few months into the launch of our first Konnected garage door opener product that used a relay to trigger the garage door. For customers who had newer Security+2.0 openers, we were referring them to these garadget adapters (really just cheap wired wall buttons with wires soldered on) so that their garage openers would work with our device. It wasn’t beautiful, but it worked. Around this time, the internet was…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/292b15c93c003a0895e60aa46364b8f263c8ab44_2_180x180.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Konnected Community</span><span class="kg-bookmark-publisher">nate</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/59cc305214bb05f725c0345ee7c850df73816548_2_1024x682.jpeg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://aaronjbecker.com/posts/umami-vs-plausible-vs-matomo-self-hosted-analytics/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Umami vs Plausible vs Matomo for Self-Hosted Analytics</div><div class="kg-bookmark-description">Comparing Umami, Plausible, and Matomo, three popular self-hosted Google Analytics alternatives, as well as brief glances at GoatCounter, Fathom, and PostHog.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-32x32-1.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">AaronJBecker.com</span><span class="kg-bookmark-publisher">Aaron Becker</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/umami-vs-plausible-vs-matomo-self-hosted-analytics.png" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://newsletter.openhomefoundation.org/local-equals-reliable/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Local = Reliable</div><div class="kg-bookmark-description">Our smart homes control important things, and we can’t have them fall on their faces because of bad internet. We need a local-first Open Home.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-11.ico" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">Building the Open Home</span><span class="kg-bookmark-publisher">Paulus Schoutsen</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Opengraph--1-.jpg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-readeck">Content Spotlight: Readeck</h2><p>Meet <a href="https://readeck.org/?ref=selfh.st" rel="noreferrer"><strong>Readeck</strong></a>, a self-hosted read later and bookmarking platform. With <strong>Readeck</strong>, users can save and archive online articles using the application's built-in webpage parsing to capture the relevant content for later reading and reference. Features include labels, collections, highlights, video transcripts, e-book exports, and a browser extension for easily capturing articles while browsing the web.</p><p><strong>Readeck</strong> can be <a href="https://readeck.org/en/docs/deploy?ref=selfh.st">installed via bare metal or Docker</a> with the option to <a href="https://readeck.org/en/docs/configuration?ref=selfh.st#database-section">replace its default SQLite with PostgreSQL</a> if desired.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-readeck.webp" alt="This Week in Self-Hosted (29 November 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://readeck.org/?ref=selfh.st"><strong>Website</strong></a>, <a href="https://codeberg.org/readeck/readeck?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a>, <a href="https://readeck.org/en/docs/?ref=selfh.st"><strong>Documentation</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=ktCtL0ncaXs&ref=selfh.st"><strong>Never Lose Another Thought: Self-Host Blinko with Docker</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=M-VOwTUqIoI&ref=selfh.st"><strong>15 Cybersecurity Terms Everyone Should Know</strong></a> | Shannon Morse</li><li><a href="https://www.youtube.com/watch?v=-9qVssXzgWM&ref=selfh.st"><strong>Pterodactyl Is The Perfect Platform For Hosting All of Your Game Servers</strong></a> | Jim's Garage</li><li><a href="https://www.youtube.com/watch?v=nHPglNBKPx8&ref=selfh.st"><strong>I Made My Smart Home Presence Sensors Even Better!</strong></a> | Everything Smart Home</li></ul><h2 id="command-line-corner-which">Command Line Corner: which</h2><p>Use the <strong>which</strong> command to easily find the location of an executable file for troubleshooting, debugging, and other use cases:</p><pre><code class="language-bash">/$ which docker
|
|
/usr/bin/docker
|
|
/$ which cat
|
|
/usr/bin/cat</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.theverge.com/2024/11/26/24306348/intel-awarded-8-billion-chips-act-funding-us-chipmaking?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Intel awarded almost $8 billion in bid to protect US chipmaking interests</div><div class="kg-bookmark-description">The race to award the remaining CHIPS Act funding is on.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple_touch_icon-3.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">The Verge</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/acastro_210430_1777_semiCon_0002.jpg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://techcrunch.com/2024/11/25/raspberry-pi-releases-the-pico-2-w-a-7-wireless-enabled-microcontroller-board/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Raspberry Pi releases the Pico 2 W, a $7 wireless-enabled microcontroller board | TechCrunch</div><div class="kg-bookmark-description">Meet the Raspberry Pi Pico 2 W, a tiny board designed around a microcontroller that lets you build hardware projects at scale. Raspberry Pi is once again</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-cropped-favicon-gradient-4.png" alt="This Week in Self-Hosted (29 November 2024)"><span class="kg-bookmark-author">TechCrunch</span><span class="kg-bookmark-publisher">Romain Dillet</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Pico-2-W.jpg" alt="This Week in Self-Hosted (29 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:6;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:43:"This Week in Self-Hosted (22 November 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:94:"Self-hosted news, updates, launches, and content for the week ending Friday, November 22, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-11-22/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"6737487de0ea5700014ccf18";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 22 Nov 2024 12:46:27 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:58:"https://selfh.st/content/images/2024/11/featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:26298:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/Mwoa76r6PwY?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1766495?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (22 November 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, an open source database with a spreadsheet UI for teams. <a href="https://docs.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=signup" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2><img src="https://selfh.st/content/images/2024/11/featured-image.png" alt="This Week in Self-Hosted (22 November 2024)"><p>Regardless of anyone's thoughts on social media or recent events, it's hard to ignore the <a href="https://www.bbc.com/news/articles/c8dm0ljg4y6o?ref=selfh.st">influx of users Bluesky has been gaining</a> over the past several weeks. If you're looking to make the jump, <a href="https://bsky.app/profile/selfh.st?ref=selfh.st">I recently took the plunge</a> and am crafting a <a href="https://go.bsky.app/F6NX38p?ref=selfh.st">self-hosting starter pack</a> to help ease the transition. Feel free to reach out if you'd like to be added!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://go.bsky.app/F6NX38p?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Starter Pack</div><div class="kg-bookmark-description">Join the conversation</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.ghost.org/v5.0.0/images/link-icon.svg" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">Bluesky Social</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/3lbc6xfhfna2b" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><p>In other news, self-hosted music streamers are undoubtedly familiar with the <a href="https://github.com/jeffvli/feishin?ref=selfh.st">Feishin</a> project – a popular desktop music player compatible with Navidrome, Jellyfin, and Subsonic audio servers. This week, the project officially went into maintenance mode after dropping its <a href="https://github.com/jeffvli/feishin/releases/tag/v0.12.0?ref=selfh.st">v0.12.0</a> release as the developer shifts their focus to <a href="https://github.com/audioling/audioling?ref=selfh.st">Audioling</a>, a complete rewrite of the project with a new backend. </p><p>The project is still in its infancy and doesn't have any official releases, but the developer is <a href="https://github.com/audioling/audioling?ref=selfh.st#what-is-the-timeline-for-the-mvp-release">tentatively planning to have something out</a> by the end of 2024.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/audioling/audioling?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - audioling/audioling</div><div class="kg-bookmark-description">Contribute to audioling/audioling development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/pinned-octocat-093da3e6fa40-5.svg" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">audioling</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/audioling" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><p>Happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://wedistribute.org/2024/11/loops-early-look/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">First Look: Loops, by Pixelfed - We Distribute</div><div class="kg-bookmark-description">Loops is a Fediverse TikTok alternative by the creator of Pixelfed. We try the app out for a spin, and give our honest thoughts.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-favicon-redone-2.png" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">We Distribute</span><span class="kg-bookmark-publisher">Sean Tilley</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/loops-thumb.png" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/11/15/roadmap-2024h2/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Roadmap 2024 Year-end Update: Full steam ahead!</div><div class="kg-bookmark-description">Update on the progress of our 2024 roadmap and a glimpse of what’s coming up next.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-192x192-3.png" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Madelena Mak</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/banner.jpg" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/karlomikus/bar-assistant?ref=selfh.st"><strong>Bar Assistant</strong></a> <a href="https://github.com/karlomikus/bar-assistant/releases/tag/v4.1.0?ref=selfh.st"><strong>v4.1.0</strong></a> | <strong>Cocktail Recipes</strong>: Added bar shelves for additional functionality, ability to add custom images (logos, etc.)</li><li><a href="https://github.com/DefGuard/defguard?ref=selfh.st"><strong>DefGuard</strong></a> <a href="https://github.com/DefGuard/defguard/releases/tag/v1.1.0?ref=selfh.st"><strong>v1.1.0</strong></a> | <strong>Access Control</strong>: Enterprise features now free, external OIDC enhancements</li><li><a href="https://github.com/documenso/documenso?ref=selfh.st"><strong>Documenso</strong></a> <a href="https://github.com/documenso/documenso/releases/tag/v1.8.0?ref=selfh.st"><strong>v1.8.0</strong></a> | <strong>Document Signing</strong>: Template page, configurable SMTP services, signing link copy, global settings for teams, signature rejection</li><li><a href="https://github.com/joaovitoriasilva/endurain?ref=selfh.st"><strong>Endurain</strong></a> <a href="https://github.com/joaovitoriasilva/endurain/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a> | <strong>Fitness Tracking</strong>: Garmin Connect integration, Strava unlink functionality, user height input, yoga activity type</li><li><a href="https://github.com/jeffvli/feishin?ref=selfh.st"><strong>Feishin</strong></a> <a href="https://github.com/jeffvli/feishin/releases/tag/v0.12.0?ref=selfh.st"><strong>v0.12.0</strong></a> | <strong>Music Streaming</strong>: Project put into maintenance mode as development focus shifts to <a href="https://github.com/audioling/audioling?ref=selfh.st">audioling</a>, a rewrite of the project</li><li><a href="https://github.com/diogovalentte/homarr-iframes?ref=selfh.st"><strong>Homarr iFrames</strong></a> <a href="https://github.com/diogovalentte/homarr-iframes/releases/tag/v1.1.0?ref=selfh.st"><strong>v1.1.0</strong></a> | <strong>Dashboard Widgets</strong>: New iFrame for media requests with support for Overseerr and Jellyseerr</li><li><a href="https://github.com/alangrainger/immich-public-proxy?ref=selfh.st"><strong>Immich Public Proxy</strong></a> <a href="https://github.com/alangrainger/immich-public-proxy/releases/tag/v1.5.0?ref=selfh.st"><strong>v1.5.0</strong></a> | <strong>Photo Sharing</strong>: Paths now begin with <em>/share/</em> to accommodate serving the platform and Immich from the same domain</li><li><a href="https://github.com/Leantime/leantime?ref=selfh.st"><strong>Leantime</strong></a> <a href="https://github.com/Leantime/leantime/releases/tag/v3.3.0?ref=selfh.st"><strong>v3.3.0</strong></a> | <strong>Project Management</strong>: Coding style enforcement, new onboarding flow for invited users, significant performance improvements</li><li><a href="https://github.com/payloadcms/payload?ref=selfh.st"><strong>Payload</strong></a> <a href="https://github.com/payloadcms/payload/releases/tag/v3.0.0?ref=selfh.st"><strong>v3.0.0</strong></a> | <strong>Headless CMS</strong>: Architecture rewrite, seamless Next.js integration, new join field, new API functionality, jobs queue, bulk upload</li><li><a href="https://github.com/Stirling-Tools/Stirling-PDF?ref=selfh.st"><strong>Stirling PDF</strong></a> <a href="https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v0.33.0?ref=selfh.st"><strong>v0.33.0</strong></a>/<a href="https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v0.33.1?ref=selfh.st" rel="noreferrer"><strong>1</strong></a> | <strong>PDF Editor</strong>: Docker image update <em>(stirlingtools/stirling-pdf)</em>, multi-tool enhancements</li><li><a href="https://github.com/7eventy7/trackly?ref=selfh.st"><strong>Trackly</strong></a> <a href="https://github.com/7eventy7/trackly/releases/tag/v1.1.0?ref=selfh.st"><strong>v1.1.0</strong></a> | <strong>Jellyfin Music</strong>: New multi-page web interface, optional Discord notifications, refreshed app icon</li><li><a href="https://github.com/umami-software/umami?ref=selfh.st"><strong>Umami</strong></a> <a href="https://github.com/umami-software/umami/releases/tag/v2.14.0?ref=selfh.st"><strong>v2.14.0</strong></a> | <strong>Web Analytics</strong>: Revenue reporting, improved dashboard, hash-based routing support</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/Leantime/leantime?ref=selfh.st"><strong>Leantime</strong></a> <a href="https://github.com/Leantime/leantime/releases/tag/v3.3.0?ref=selfh.st"><strong>v3.3.0</strong></a>: Various event name changes due to new folder structure</li><li><a href="https://github.com/Stirling-Tools/Stirling-PDF?ref=selfh.st"><strong>Stirling PDF</strong></a> <a href="https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v0.33.1?ref=selfh.st"><strong>v0.33.1</strong></a>: Docker image update – <em>froodle/s-pdf</em> --> <em>stirlingtools/stirling-pdf</em></li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/bknd-io/bknd?ref=selfh.st"><strong>bknd</strong></a>: Lightweight Firebase alternative</li><li><a href="https://github.com/Billos/Broadcastarr?ref=selfh.st"><strong>Broadcastarr</strong></a>: Stream webpage media content through Jellyfin</li><li><a href="https://github.com/Eliran-Turgeman/Collecto?ref=selfh.st"><strong>Collecto</strong></a>: Lightweight email collection service</li><li><a href="https://github.com/dribdat/dribdat?ref=selfh.st"><strong>Dribdat</strong></a>: Honeycomb challenge boards for technical projects</li><li><a href="https://github.com/psomani16k/GitNotes?ref=selfh.st"><strong>GitNotes</strong></a>: Markdown notes with git-based syncing and version control</li><li><a href="https://github.com/Cybrarist/InstantLand?ref=selfh.st"><strong>Instant Land</strong></a>: Simple marketing/website building tool for landing pages</li><li><a href="https://github.com/weak-head/m4b-maker?ref=selfh.st"><strong>m4b-maker</strong></a>: Convert audio files into M4B audiobooks</li><li><a href="https://github.com/gardiol/media_fixer?ref=selfh.st"><strong>Media Fixer</strong></a>: Single script for harmonizing media codecs and formats</li><li><a href="https://github.com/nickshanks347/monitarr?ref=selfh.st"><strong>Monitarr</strong></a>: Monitor downloads from Radarr and Sonarr</li><li><a href="https://github.com/AshkanArabim/newsbridge?ref=selfh.st"><strong>Newsbridge</strong></a>: Get news from RSS sources as an audio briefing</li><li><a href="https://github.com/btahir/next-beats?ref=selfh.st"><strong>NextBeats</strong></a>: Modern, customizable lofi music player</li><li><a href="https://github.com/Xafloc/NoteFlow?ref=selfh.st"><strong>NoteFlow</strong></a>: Lightweight Markdown-based note-taking and task app</li><li><a href="https://github.com/arkohut/pensieve?ref=selfh.st"><strong>Pensieve</strong></a>: Passive recording project for later referencing</li><li><a href="https://github.com/sudo-kraken/podcheck?ref=selfh.st"><strong>Podcheck</strong></a>: CLI tool for automating Podman image updates</li><li><a href="https://github.com/sakakun/Proxmox-Desktop-Client?ref=selfh.st"><strong>Proxmox Desktop Client</strong></a>: Windows desktop client for Proxmox</li><li><a href="https://github.com/tomleb/proxy-for-immich/?ref=selfh.st"><strong>Proxy for Immich</strong></a>: Share Immich albums without exposing the entire API</li><li><a href="https://github.com/varthe/Redirecterr?ref=selfh.st"><strong>Redirecterr</strong></a>: Filter and redirect Overseerr requests</li><li><a href="https://github.com/nlevee/simple-cloudflare-solver?ref=selfh.st"><strong>Simple Cloudflare Solver</strong></a>: Lightweight FlareSolverr alternative</li><li><a href="https://github.com/Hoverth/ssurlss?ref=selfh.st"><strong>SSURLSS</strong></a>: Super simple URL shortener service</li><li><a href="https://github.com/limmer55/streamdock?ref=selfh.st"><strong>Streamdock</strong></a>: Web IPTV player</li><li><a href="https://github.com/Cirx08/WeddingShare?ref=selfh.st"><strong>WeddingShare</strong></a>: Photo gallery with support for public uploads</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps" rel="noreferrer">Directory</a> Apps</h2><ul><li><a href="https://github.com/Cisco-Talos/clamav?ref=selfh.st"><strong>ClamAV</strong></a>: Open-source antivirus for detecting malicious threats</li><li><a href="https://github.com/GrakovNe/lissen-android?ref=selfh.st"><strong>Lissen</strong></a>: Minimal Android client app for AudioBookshelf</li><li><a href="https://github.com/nickshanks347/monitarr?ref=selfh.st"><strong>Monitarr</strong></a>: Monitor downloads from Radarr and Sonarr</li><li><a href="https://github.com/btahir/next-beats?ref=selfh.st"><strong>NextBeats</strong></a>: Modern, customizable lofi music player</li><li><a href="https://github.com/thomiceli/opengist?ref=selfh.st"><strong>Opengist</strong></a>: Self-hosted pastebin powered by Git</li><li><a href="https://github.com/varthe/Redirecterr?ref=selfh.st"><strong>Redirecterr</strong></a>: Filter and redirect Overseerr requests</li><li><a href="https://github.com/notclickable-jordan/starbase-80?ref=selfh.st"><strong>Starbase 80</strong></a>: Homepage for Docker containers, services, and links</li><li><a href="https://github.com/7eventy7/trackly?ref=selfh.st"><strong>Trackly</strong></a>: Jellyfin music library interface and release notifications</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/read-later/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Pocket, Omnivore</div><div class="kg-bookmark-description">Self-hosted alternatives to popular online read later and bookmarking services</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-11.png" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/read-later-3.png" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://stefanbohacek.com/blog/migrating-50-accounts-across-the-fediverse/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Migrating 50+ accounts across the fediverse | Stefan Bohacek</div><div class="kg-bookmark-description">Moving more than 50 creative bots to my own server is not as hard as it sounds!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-10.png" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">Stefan Bohacek</span><span class="kg-bookmark-publisher">Stefan Bohacek</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/botsinspace-migration.png" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://drwho.virtadpt.net/archive/2024-11-13/searching-bookstack-with-searxng/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Antarctica Starts Here. | Searching Bookstack with SearxNG.</div><div class="kg-bookmark-description">The personal homepage of The Doctor.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-icon-180x180.png" alt="This Week in Self-Hosted (22 November 2024)"></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/51b08697c28b215b0c80280ee3b34633.jpeg" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.smarthomebeginner.com/dozzle-docker-compose-guide-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ultimate Docker Guides: Dozzle Docker Compose | SHB</div><div class="kg-bookmark-description">Dozzle is used to monitor our Docker’s logs in real-time. In this Dozzle Docker Compose guide we’ll learn how to install/use Dozzle to simplify our troubleshooting tasks.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-11.png" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">SmartHomeBeginner</span><span class="kg-bookmark-publisher">Andrew Benton</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/admin-ajax.php" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-scratch-map">Content Spotlight: Scratch Map</h2><p>Meet <a href="https://github.com/ad3m3r5/scratch-map?ref=selfh.st"><strong>Scratch Map</strong></a>, an open-source scratch-off style map for travel tracking. With <strong>Scratch Map</strong>, users can track visited countries, territories, and states via a simple web interface for easy viewing and sharing. Features include country tracking, territory and state tracking for select countries, and the ability to add travel dates and photo album URLs to each 'scratch'.</p><p><strong>Scratch Map</strong> can be easily <a href="https://github.com/ad3m3r5/scratch-map?ref=selfh.st#running">installed via bare metal or Docker</a> and does not require any additional services to run.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-scratch-map.webp" alt="This Week in Self-Hosted (22 November 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://github.com/ad3m3r5/scratch-map?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=PdqibbRSbg4&ref=selfh.st"><strong>ByteStash - Your New Code Snippet Storage Solution</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=9M468Krlawo&ref=selfh.st"><strong>LibreOffice Podcast, Episode #1 – Marketing Free Software</strong></a> | LibreOffice</li><li><a href="https://www.youtube.com/watch?v=N-NFobtkcVo&ref=selfh.st"><strong>How to Install and Use Glance: The Ultimate Dashboard for Self-Hosting with Docker!</strong></a> | Techdox</li><li><a href="https://www.youtube.com/watch?v=vJweuU6Qrgo&ref=selfh.st"><strong>Simple HTTPs for Kubernetes // Traefik + Cert-Manager</strong></a> | Christian Lempa</li><li><a href="https://www.youtube.com/watch?v=uPYjJYQEFSg&ref=selfh.st"><strong>Rebuilding My Homelab From Scratch</strong></a> | Hardware Haven</li></ul><h2 id="command-line-corner-history">Command Line Corner: history + !</h2><p>After running <strong>history</strong>, preface a number from the provided list with <strong>!</strong> to easily rerun that command:</p><pre><code class="language-bash">/$ history
|
|
1 docker compose up
|
|
2 cat compose
|
|
3 ls
|
|
4 python3 customScript.py
|
|
/$ !3
|
|
compose.yml customScript.py</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.elenarossini.com/a-new-way-to-describe-the-fediverse-and-its-opposition-to-big-tech/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">A new way to describe the Fediverse and its opposition to Big Tech</div><div class="kg-bookmark-description">I may have finally found a compelling, accessible way to describe the Fediverse - and make it appealing to people not familiar with it.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ELE-avatar-muses-pink-1-2.jpg" alt="This Week in Self-Hosted (22 November 2024)"><span class="kg-bookmark-author">Elena Rossini</span><span class="kg-bookmark-publisher">Elena Rossini</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/COVER-Future-Federated-issue-16.jpg" alt="This Week in Self-Hosted (22 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:7;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:52:"Self-Hosting Guide to Alternatives: Pocket, Omnivore";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:78:"Self-hosted alternatives to popular online read later and bookmarking services";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:41:"https://selfh.st/alternatives/read-later/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"6727b7dc8a46cd00017e1b02";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:12:"Alternatives";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Thu, 21 Nov 2024 12:40:49 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:56:"https://selfh.st/content/images/2024/11/read-later-3.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:13686:"<img src="https://selfh.st/content/images/2024/11/read-later-3.png" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore"><p>Bookmarking and read later services are valuable tools for those who stumble across more content than they can digest or frequently need to revisit articles and webpages at a later point in time. And in light of the <a href="https://blog.omnivore.app/p/omnivore-is-joining-elevenlabs?ref=selfh.st">recent news of ElevenLab's Omnivore acquisition</a>, FOSS advocates and self-hosters alike are on the hunt for alternatives to the popular but soon-to-be-defunct project.</p><p>Fortunately, several viable alternatives exist that make switching from popular platforms like Pocket and Omnivore a breeze.</p><hr><h3 id="wallabag">Wallabag</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/wallabag.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://wallabag.org/?ref=selfh.st" data-umami-event="alternatives-read-later-wallabag"><strong>Wallabag</strong></a> is arguably the most popular self-hosted alternative in the space, and for good reason – the platform is easy to deploy and includes all of the essential functionality required for archiving, saving, and sharing content. Relative to some of the other options, Wallabag's interface is a bit simplistic and the application doesn't currently come with any AI features for things like automatic tagging and article summarization – but some users may find this to be more of a feature than a gap.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Wallabag's biggest strength shines in its integrations with third-party tools for easily archiving content without direct access to its web interface, which include browser extensions, mobile apps, eink devices, and RSS readers.</p><p><a href="https://doc.wallabag.org/en/admin/installation/installation.html?ref=selfh.st">Deployment is straightforward</a> with options for both bare metal and Docker. Its default SQLite database can also be replaced with MySQL or PostgreSQL if desired.</p><h3 id="shiori">Shiori</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/shiori.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://github.com/go-shiori/shiori?ref=selfh.st" data-umami-event="alternatives-read-later-shiori"><strong>Shiori</strong></a> is another popular bookmarking alternative that places a heavy emphasis on simplicity. The project describes itself as a 'simple clone of Pocket', which means it doesn't go above and beyond in terms of additional features and maintains a minimal interface that closely resembles the popular read later service. Notably, Shiori ships with its own page rendering feature to capture and archive webpages locally rather than relying on third-party services like the Internet Archive.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Aside from adding links directly from its web interface, Shiori supports adding links via <a href="https://github.com/go-shiori/shiori-web-ext?ref=selfh.st">Chrome and Firefox web extensions</a> that are currently in beta.</p><p>Shiori is <a href="https://github.com/go-shiori/shiori/blob/master/docs/Installation.md?ref=selfh.st">easy to deploy on both bare metal and Docker</a> and provides options for swapping out its SQLite database with PostgreSQL or MySQL.</p><h3 id="linkwarden">Linkwarden</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/linkwarden.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://linkwarden.app/?ref=selfh.st" data-umami-event="alternatives-read-later-linkwarden"><strong>Linkwarden</strong></a> is a popular bookmarking app that has received a ton of recent praise in the self-hosted community for its fast pace of development and extensive support for third-party integrations. Its user interface has evolved significantly from its early days and new functionality is added regularly on top of its already-extensive feature set – webpage screenshots, Wayback Machine archiving, organization via collections and tags, sharing, pinning, multi-user capabilities with SSO, and a ton of customization options.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>The application comes with a ton of support for adding bookmarks via third-party tools, which include <a href="https://floccus.org/?ref=selfh.st">Floccus</a> sync, desktop apps, Raycast support, and browser extensions. </p><p>Linkwarden can be <a href="https://docs.linkwarden.app/self-hosting/installation?ref=selfh.st">installed via bare metal or Docker</a> and requires a PostgreSQL database for storage.</p><h3 id="linkding">Linkding</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/linkding.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://linkding.link/?ref=selfh.st" data-umami-event="alternatives-read-later-linkding"><strong>Linkding</strong></a> is another popular bookmarking app that places an intentional focus on minimalism and simplicity. While its web interface supports article thumbnails, its default view is text-based and features a basic listing of article names and descriptions with tags for filtering off to the side. Despite this, it rivals the others in this article in functionality with support for web archiving, multiple users and SSO, metadata import and extraction, and tags for organization.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>The platform also seems to have a bit of a cult following in terms of <a href="https://linkding.link/community/?ref=selfh.st">third-party companion apps</a> with support for adding links via browser extensions and dedicated apps. </p><p>Linkding can be <a href="https://linkding.link/installation/?ref=selfh.st">easily installed via Docker</a>, supports SQLite and PostgreSQL database engines, and comes with multiple images of varying sizes for archival support as needed.</p><hr><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-text">Looking for self-hosted alternatives to other popular services? Check out other posts in the <a href="https://selfh.st/alternatives/"><b><strong style="white-space: pre-wrap;">alternatives series</strong></b></a> and <a href="https://selfh.st/apps" rel="noreferrer"><b><strong style="white-space: pre-wrap;">selfh.st/apps</strong></b></a>, a directory of self-hosted software with filters for tags and alternatives for easy browsing and discovery.</div></div><h3 id="hoarder">Hoarder</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/hoarder.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://hoarder.app/?ref=selfh.st" data-umami-event="alternatives-read-later-hoarder"><strong>Hoarder</strong></a> is – relatively speaking – one of the new kids on the block after dropping its first release earlier this year. Despite this, its strong initial support for AI-based tagging, stable first-party mobile apps, and a modern, clean interface have quickly propelled it to popularity rivaling its counterparts. Unlike some of the other alternatives, Hoarder aims to be an all-encompassing platform for data hoarders with support for features like OCR extraction, simple note-taking functionality, and video archiving via <a href="https://github.com/marado/youtube-dl?ref=selfh.st">youtube-dl</a>.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Users looking to easily add content to Hoarder can leverage its first-party iOS and Android apps and Chrome and Firefox extensions.</p><p>Given its extensive functionality, Hoarder requires a bit more overhead to deploy than the others but provides <a href="https://docs.hoarder.app/Installation/docker?ref=selfh.st">clear instructions on how to do so easily via Docker</a>. Users are also given the option to skip some of its optional containers like Meilisearch, which is leveraged for search within the application.</p><h3 id="readeck">Readeck</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/readeck.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://readeck.org/?ref=selfh.st" data-umami-event="alternatives-read-later-readeck"><strong>Readeck</strong></a> is another relative newcomer that relies on simplicity, speed, privacy, and a clean user interface to stand out among the rest. The application boasts the usual core feature set plus a few unique bells and whistles – bookmark highlights, e-book exports, and in-app archival (including video transcripts) that promises no external requests are made after a webpage is saved for the first time. And while this is just a weird personal preference, Readeck's icon is also masterfully designed.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Readeck's third-party support and integrations aren't as robust as some of the others on the list, but its first-party Chrome and Firefox extensions should get the job done for anyone who spends most of their time archiving directly from the browser.</p><p>Readeck can be <a href="https://codeberg.org/readeck/readeck?ref=selfh.st#how-to-test-or-install">easily installed via bare metal or Docker</a> and does not include any options to configure a storage backend other than the default SQLite database (per the developer's notes, bookmark data is <a href="https://codeberg.org/readeck/readeck?ref=selfh.st#the-zip-file">stored in separate ZIP files</a>).</p><h3 id="grimoire">Grimoire</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/grimoire.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://grimoire.pro/?ref=selfh.st" data-umami-event="alternatives-read-later-grimoire"><strong>Grimoire</strong></a> punctuates the toddler-aged applications on this list, but like the others, is a serious contender with a fun marketing twist on its capabilities (bookmarks for wizards, unleash your inner sorcerer...). The application sports the usual capabilities and makes up for a slightly bland interface with an integrated dark mode (for all of the dark wizards out there). Grimoire also comes with multi-user support, the ability to fetch updates for saved articles, and an integration API for adding bookmarks from other sources.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Bookmarking directly from the web can be done via the platform's <a href="https://github.com/goniszewski/grimoire-web-extension?ref=selfh.st">first-party Chrome and Firefox browser extensions</a>.</p><p>Grimoire can be easily enchanted, ahem, installed via <a href="https://github.com/goniszewski/grimoire?ref=selfh.st#installation">bare metal or Docker</a> and doesn't require any additional containers or services to run.</p><h3 id="linkace">LinkAce</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/read-later/linkace.webp" alt="Self-Hosting Guide to Alternatives: Pocket, Omnivore">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://www.linkace.org/?ref=selfh.st" data-umami-event="alternatives-read-later-linkace"><strong>LinkAce</strong></a> is a no-frills bookmarking service for users looking to save webpages without the additional overhead of nice-to-have features like AI and OCR. Its user interface is arguably the most basic on the list, but that doesn't make it a less capable platform – aside from the typical features, some of its more unique functionality includes automated link monitoring and database/application backups to S3-compatible storage.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>LinkAce has a somewhat unique take on capturing pages externally with support for a <a href="https://www.linkace.org/docs/v1/application/bookmarklet/?ref=selfh.st">bookmarklet</a> rather than traditional browser extensions. </p><p>The application can be <a href="https://www.linkace.org/docs/v1/setup/?ref=selfh.st">easily installed via bare metal or Docker</a> and allows users to replace its default MySQL database with SQLite or PostgreSQL.</p><h3 id="honorable-mentions">Honorable Mentions</h3>
|
|
<!--kg-card-begin: html-->
|
|
<li><strong><a href="https://shaarli.readthedocs.io/en/master/?ref=selfh.st" data-umami-event="alternatives-read-later-shaarli">Shaarli</a></strong></li>
|
|
<br>
|
|
<li><strong><a href="https://github.com/ckolderup/postmarks?ref=selfh.st" data-umami-event="alternatives-read-later-postmarks">Postmarks</a></strong> (Federated)</li>
|
|
<br>
|
|
<li><strong><a href="https://github.com/bouncepaw/betula?ref=selfh.st" data-umami-event="alternatives-read-later-betula">Betula</a></strong> (Federated)</li>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="what-did-i-miss">What did I miss?</h3><p>Did I miss anything? Feel free to reach out using any of the communication methods listed on the site's <a href="https://selfh.st/contact/">contact page</a> to get in touch.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:8;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:43:"This Week in Self-Hosted (15 November 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:94:"Self-hosted news, updates, launches, and content for the week ending Friday, November 15, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-11-15/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"673092325426140001086c54";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 15 Nov 2024 12:44:50 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:71:"https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:26749:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/Dbh_y5oevXs?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1755558?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (15 November 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, an open source database with a spreadsheet UI for teams. <a href="https://docs.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=signup" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2><img src="https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png" alt="This Week in Self-Hosted (15 November 2024)"><p>Happy Friday, self-hosters! It was another busy week with a ton of great content, which can be found below. In lieu of the usual recap, below are some particularly interesting threads posted to Reddit's r/selfhosted this week that I thought might be worth sharing for those who may have missed them.</p><ul><li><a href="https://old.reddit.com/r/selfhosted/comments/1gr5uhg/whats_your_favorite_selfhosted_service/?ref=selfh.st">What's your favorite self-hosted service?</a></li><li><a href="https://old.reddit.com/r/selfhosted/comments/1gni5vd/clean_minimal_and_aesthetically_pleasing_projects/?ref=selfh.st">Clean, minimal, and aesthetically pleasing projects</a></li><li><a href="https://old.reddit.com/r/selfhosted/comments/1gplrtk/ever_been_turned_off_on_an_app_because_of_the/?ref=selfh.st">Ever been turned off on an app because of the developer's behavior?</a></li><li><a href="https://old.reddit.com/r/selfhosted/comments/1grsovx/what_are_some_tools_youd_love_to_see_selfhosted/?ref=selfh.st">What are some tools you'd love to see self-hosted, but currently lack decent open-source or self-hostable alternatives?</a></li></ul><p>Happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/community-scripts/ProxmoxVE/discussions/237?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Update · community-scripts ProxmoxVE · Discussion #237</div><div class="kg-bookmark-description">Good afternoon! I am tteckster’s wife. I don’t have a clue if anyone will even see this because I’m not the computer savvy person that my husband was, but I wanted to try. I know that he posted an…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/pinned-octocat-093da3e6fa40-4.svg" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">community-scripts</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/237" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.backblaze.com/blog/backblaze-drive-stats-for-q3-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Backblaze Drive Stats for Q3 2024</div><div class="kg-bookmark-description">Read the latest annualized failure rates for the Backblaze drive fleet.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-cropped-backblaze_icon_transparent-300x300-1.png" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">Backblaze Blog | Cloud Storage & Cloud Backup</span><span class="kg-bookmark-publisher">Andy Klein</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/bb-bh-Drive-Stats-for-Q3-2024-2.png" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.tomshardware.com/software/free-open-source-photoshop-alternative-finally-enters-release-candidate-testing-after-20-years-the-transition-from-gimp-2-x-to-gimp-3-0-took-two-decades?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Free, open-source Photoshop alternative finally enters release candidate testing after 20 years — the transition from GIMP 2.x to GIMP 3.0 took two decades</div><div class="kg-bookmark-description">The slow and steady climb to 3.0 culminates in the most modernized version of GIMP yet.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-8.png" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">Tom's Hardware</span><span class="kg-bookmark-publisher">Christopher Harper</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/8speJckaVxWMo3NtH5Mj4C-1200-80.jpg" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://gitlab.com/baserow/baserow?ref=selfh.st"><strong>Baserow</strong></a> <a href="https://gitlab.com/baserow/baserow/-/releases/1.29.0?ref=selfh.st"><strong>v1.29.0</strong></a> | <strong>No-Code Database</strong>: New data sync integrations, AI field improvements, workspace imports/exports, shared data sources, additional filters</li><li><a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st"><strong>ByteStash</strong></a> <a href="https://github.com/jordan-dalby/ByteStash/releases/tag/v1.4.0?ref=selfh.st"><strong>v1.4.0</strong></a> | <strong>Code Snippets</strong>: Links and version tags, fragments for storing snippets in various languages, snippet sharing</li><li><a href="https://github.com/chartdb/chartdb?ref=selfh.st"><strong>ChartDB</strong></a> <a href="https://github.com/chartdb/chartdb/releases/tag/v1.1.0?ref=selfh.st"><strong>v1.1.0</strong></a> | <strong>Database Diagrams</strong>: New templates, snap-to-grid functionality, sharing capabilities for import/export diagrams</li><li><a href="https://github.com/formbricks/formbricks?ref=selfh.st"><strong>Formbricks</strong></a> <a href="https://github.com/formbricks/formbricks/releases/tag/v2.7.0?ref=selfh.st"><strong>v2.7.0</strong></a> | <strong>Surveys and Forms</strong>: AI-based Open-Text summary, new embed options and survey templates, granular team roles, additional language support</li><li><a href="https://github.com/hoarder-app/hoarder?ref=selfh.st"><strong>Hoarder</strong></a> <a href="https://github.com/hoarder-app/hoarder/releases/tag/v0.19.0?ref=selfh.st"><strong>v0.19.0</strong></a> | <strong>Bookmarks</strong>: Auto imports from RSS subscriptions, REST API release, AI summarization, video downloads, Omnivore imports, user management, image OCR</li><li><a href="https://github.com/damongolding/immich-kiosk?ref=selfh.st"><strong>Immich Kiosk</strong></a> <a href="https://github.com/damongolding/immich-kiosk/releases/tag/v0.13.0?ref=selfh.st"><strong>v0.13.0</strong></a> | <strong>Photo Display</strong>: Navigation controls (touch, mouse, keyboard), touch and click zones (previous, pause/play, next), additional configuration options</li><li><a href="https://github.com/linkwarden/linkwarden?ref=selfh.st"><strong>Linkwarden</strong></a> <a href="https://github.com/linkwarden/linkwarden/releases/tag/v2.8.0?ref=selfh.st"><strong>v2.8.0</strong></a> | <strong>Bookmarks</strong>: Custom preview image, custom icons for links and collections, new link details drawer, customizable views and columns</li><li><a href="https://github.com/knadh/listmonk?ref=selfh.st"><strong>Listmonk</strong></a> <a href="https://github.com/knadh/listmonk/releases/tag/v4.1.0?ref=selfh.st"><strong>v4.1.0</strong></a> | <strong>Newsletters</strong>: Multi-user support, OIDC authentication, performance and styling improvements, Markdown syntax highlighting</li><li><a href="https://github.com/lldap/lldap?ref=selfh.st"><strong>lldap</strong></a> <a href="https://github.com/lldap/lldap/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a> | <strong>LDAP Server</strong>: Sub-path support, custom attributes, object classes, custom package repository, rootless Docker container, community-developed CLI for scripting</li><li><a href="https://github.com/mealie-recipes/mealie?ref=selfh.st"><strong>Mealie</strong></a> <a href="https://github.com/mealie-recipes/mealie/releases/tag/v2.2.0?ref=selfh.st"><strong>v2.2.0</strong></a> | <strong>Recipes and Meals</strong>: Cross-household cookbooks, feature check descriptions, override requested OIDC scopes</li><li><a href="https://github.com/nocodb/nocodb?ref=selfh.st"><strong>NocoDB</strong></a> <a href="https://github.com/nocodb/nocodb/releases/tag/0.258.0?ref=selfh.st"><strong>v0.258.0</strong></a> | <strong>No-Code Database</strong>: Infinite scroll, auto row expansion for bulk paste, feature preview</li><li><a href="https://github.com/IgnisDa/ryot?ref=selfh.st"><strong>Ryot</strong></a> <a href="https://github.com/IgnisDa/ryot/releases/tag/v7.10.0?ref=selfh.st"><strong>v7.10.0</strong></a> | <strong>Tracking</strong>: New metrics for workouts and templates, new calendar page</li><li><a href="https://github.com/Swetrix/swetrix?ref=selfh.st"><strong>Swetrix</strong></a> <a href="https://github.com/Swetrix/swetrix/releases/tag/v3.3.0?ref=selfh.st"><strong>v3.3.0</strong></a> | <strong>Web Analytics</strong>: UTM, browser, and OS metrics, optimized memory usage, region and city geolocation tracking, redesigned notifications</li><li><a href="https://github.com/ToolJet/ToolJet?ref=selfh.st"><strong>ToolJet</strong></a> <a href="https://github.com/ToolJet/ToolJet/releases/tag/v3.0.0-ce-lts?ref=selfh.st"><strong>v3.0.0</strong></a> | <strong>Internal Tools</strong>: Redesigned app builder, official workflows release, improved security and access control, SQL mode for databases</li><li><a href="https://github.com/getwud/wud?ref=selfh.st"><strong>What's Up Docker?</strong></a> <a href="https://github.com/getwud/wud/releases/tag/7.1.0?ref=selfh.st"><strong>v7.1.0</strong></a> | <strong>Container Updates</strong>: Support for Gotify and Ntfy notifications, Pushover HTML templating</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/seanmorley15/AdventureLog?ref=selfh.st"><strong>AdventureLog</strong></a> <a href="https://github.com/seanmorley15/AdventureLog/releases/tag/v0.7.1?ref=selfh.st"><strong>v0.7.1</strong></a>: <a href="https://docs.adventurelog.app/docs/Guides/nginx_migration?ref=selfh.st">Recommended migration steps</a> for latest release</li><li><a href="https://github.com/lldap/lldap?ref=selfh.st"><strong>LLDAP</strong></a> <a href="https://github.com/lldap/lldap/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a>: <em>/auth/reset/step1</em> endpoint updated from GET to POST</li><li><a href="https://www.postgresql.org/?ref=selfh.st"><strong>PostgreSQL</strong></a> <strong>12</strong>: Reached end of life on Thursday, November 14</li><li><a href="https://github.com/Swetrix/swetrix?ref=selfh.st"><strong>Swetrix</strong></a> <a href="https://github.com/Swetrix/swetrix/releases/tag/v3.3.0?ref=selfh.st"><strong>v3.3.0</strong></a>: Database migration required before upgrading </li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/autokitteh/autokitteh?ref=selfh.st"><strong>AutoKitteh</strong></a>: Developer platform for workflow automation</li><li><a href="https://github.com/blinko-space/blinko?ref=selfh.st"><strong>Blinko</strong></a>: AI-enhanced note-taking app</li><li><a href="https://github.com/abishekvenkat/comicmark?ref=selfh.st"><strong>Comicmark</strong></a>: Comic-styled link manager</li><li><a href="https://github.com/ozencb/couchtube?ref=selfh.st"><strong>CouchTube</strong></a>: Live TV simulated frontend for YouTube</li><li><a href="https://github.com/Dan6erbond/mail-mark?ref=selfh.st"><strong>GoMailMark</strong></a>: Customizable e-mail signature generator</li><li><a href="https://github.com/11notes/docker-immich-share-proxy?ref=selfh.st"><strong>Immich Share Proxy</strong></a>: Expose Immich shares publicly without exposing the entire instance</li><li><a href="https://github.com/JoTec2002/InstagramToMealie?ref=selfh.st"><strong>Instagram to Mealie</strong></a>: Import Instagram URLs into Mealie</li><li><a href="https://github.com/njic/medassist?ref=selfh.st"><strong>Medication Assistant</strong></a>: Medication management software</li><li><a href="https://github.com/idio-sync/romm-comm?ref=selfh.st"><strong>RomM-ComM</strong></a>: Discord bot for relaying RomM collection info</li><li><a href="https://github.com/OpenExcept/SelfHeal/?ref=selfh.st"><strong>SelfHeal</strong></a>: Self-healing code debugger and analyzer</li><li><a href="https://github.com/robiningelbrecht/strava-activities-template?ref=selfh.st"><strong>Strava Activities Template</strong></a>: Generate personal Strava statistics pages</li><li><a href="https://github.com/7eventy7/trackly?ref=selfh.st"><strong>Trackly</strong></a>: Music release tracker for Discord</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps" rel="noreferrer">Directory</a> Apps</h2><ul><li><a href="https://github.com/ozencb/couchtube?ref=selfh.st"><strong>CouchTube</strong></a>: Live TV simulated frontend for YouTube</li><li><a href="https://github.com/espocrm/espocrm?ref=selfh.st"><strong>EspoCRM</strong></a>: Open source platform for managing customer relationships</li><li><a href="https://github.com/querylab/lazywarden?ref=selfh.st"><strong>LazyWarden</strong></a>: Automated Python backup tool for Bitwarden</li><li><a href="https://github.com/zblesk/obskurnee?ref=selfh.st"><strong>Obskurnee</strong></a>: Book club companion for voting on upcoming books</li><li><a href="https://github.com/24eme/signaturepdf?ref=selfh.st"><strong>Signature PDF Libre</strong></a>: Sign, organize, edit, and compress PDF files</li><li><a href="https://github.com/teableio/teable?ref=selfh.st"><strong>Teable</strong></a>: No-code database platform built on PostgreSQL</li><li><a href="https://github.com/YunoHost/yunohost?ref=selfh.st"><strong>YunoHost</strong></a>: App platform for easy installation and management</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/rss-readers/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Feedly, Inoreader</div><div class="kg-bookmark-description">Self-hosted alternatives to popular online news feed readers</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-10.png" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/screenshot-feedly.png" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://mmk2410.org/2024/11/13/switching-away-from-pocket?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Switching away from Pocket - Marcel Kapfer</div><div class="kg-bookmark-description">After using Pocket for many years I needed to switch.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-256.png" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">Marcel Kapfer</span><span class="kg-bookmark-publisher">Marcel Kapfer</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/favicon-256.png" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.abhishekranjan.dev/how-i-test-my-hdds-before-i-start-using-them/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Drive Bootcamp: Testing Hard Drives for NAS Duty</div><div class="kg-bookmark-description">Disclaimer: Yes, I like testing my hard drives. No, it’s not a weird hobby. Think of it like test-driving a car… that you’re going to trust with thousands of memories, dog videos, and maybe a few secrets. Besides, HDDs are a little dramatic. They either die young or</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-8.ico" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">Abhishek's Blog</span><span class="kg-bookmark-publisher">Abhishek Ranjan</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/DALL-E-2024-11-02-01.48.59---A-feature-image-representing-a-blog-post-about-testing-hard-drives-before-using-them-in-a-NAS.-The-image-shows-a-NAS-device-alongside-a-hard-drive-bei.webp" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://danthesalmon.com/windows-smb-tailscale/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Windows Kills SMB Speeds When Using Tailscale</div><div class="kg-bookmark-description">SMB speeds can be severely impacted when multiple interfaces can reach a network.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.ghost.org/v5.0.0/images/link-icon.svg" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">Windows Kills SMB Speeds When Using Tailscale</span><span class="kg-bookmark-publisher">Dan Salmon</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/slow1.png" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://workhub.so/lab/running-your-app-on-pocket-change/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The $2/Month Tech Stack: Running Your App on Pocket Change</div><div class="kg-bookmark-description">A deep dive into running WorkHub.so on a $2/month infrastructure budget using a M1 Mac Mini instead of traditional cloud services.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/logo-180.png" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-publisher">Riley Hilliard</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/post-screenshot-1.webp" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="surveys-and-feedback">Surveys and Feedback</h2><ul><li><a href="https://s.surveyplanet.com/2kcorpy0?ref=selfh.st"><strong>Cleanuperr</strong></a>: Seeking community feedback on future functionality</li></ul><h2 id="content-spotlight-bytestash">Content Spotlight: ByteStash</h2><p>Meet <a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st" rel="noreferrer"><strong>ByteStash</strong></a>, a self-hosted solution for storing and managing code snippets. With <strong>ByteStash</strong>, users can easily add and track snippets of code for future reference via an intuitive web interface that supports a number of programming languages. For larger collections, the app supports filtering by language and keywords to easily find previously stored snippets.</p><p><strong>Bytestash</strong> can be <a href="https://github.com/jordan-dalby/ByteStash?tab=readme-ov-file&ref=selfh.st#howto">installed via Docker</a> and utilizes a SQLite database for storage.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-bytestash.webp" alt="This Week in Self-Hosted (15 November 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=HJgmK8b-U1k&ref=selfh.st"><strong>Reacting to your CURSED Homelab Setups</strong></a> | Wolfgang's Channel</li><li><a href="https://www.youtube.com/watch?v=xZlocT5tKUw&ref=selfh.st"><strong>Unraid 7.0 Beta Overview: New Features & How to Upgrade Safely!</strong></a> | IBRACORP</li><li><a href="https://www.youtube.com/watch?v=UnZ4c3Uy4PM&ref=selfh.st"><strong>Amnezia: A Self-Hosted VPN to Make You Forget About Other VPNs</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=1IRBaRmFxDU&ref=selfh.st"><strong>I've Always Wanted To Automate This With Home Assistant</strong></a> | Everything Smart Home</li></ul><h2 id="command-line-corner-history">Command Line Corner: history</h2><p>Use the <strong>history</strong> command to easily view a numbered list of commands previously entered into the terminal:</p><pre><code class="language-bash">/$ history
|
|
1 docker compose up
|
|
2 cat compose
|
|
3 ls -l
|
|
4 python3 customScript.py</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://mullvad.net/en/blog/remaining-paypal-subscriptions-are-being-canceled?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Remaining Paypal subscriptions are being canceled | Mullvad VPN</div><div class="kg-bookmark-description">All remaining PayPal subscriptions are being canceled by Mullvad. If you have a PayPal subscription you will get a notification email from PayPal.&nbsp;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-9.png" alt="This Week in Self-Hosted (15 November 2024)"><span class="kg-bookmark-author">Mullvad VPN</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/MullvadVPN_logo_Round_RGB_Color_positive.png" alt="This Week in Self-Hosted (15 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:9;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:53:"Self-Hosting Guide to Alternatives: Feedly, Inoreader";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:60:"Self-hosted alternatives to popular online news feed readers";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:42:"https://selfh.st/alternatives/rss-readers/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"665f1c767d5c2a0001e33f3b";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:12:"Alternatives";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Thu, 14 Nov 2024 12:35:32 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:61:"https://selfh.st/content/images/2024/06/screenshot-feedly.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:11261:"<img src="https://selfh.st/content/images/2024/06/screenshot-feedly.png" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader"><p>It's 2024, and despite the fact that more and more people are <a href="https://www.pewresearch.org/journalism/fact-sheet/social-media-and-news-fact-sheet/?ref=selfh.st">getting their news from social media</a>, it's hard to beat the convenience and functionality of good ol' RSS feeds. But like many other hosted services, trusting your RSS aggregation with the likes of Feedly and Inoreader can be a privacy nightmare given how much information can be collected about a user based on the feeds they follow.</p><p>Fortunately, a ton of great self-hosted alternatives exist that don't compromise on privacy while remaining competitive with the functionality and features of their popular hosted counterparts.</p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Note</strong></b>: While there are a ton of great open-source RSS clients that can be used to aggregate feeds, this article is limited to self-hosted applications that include a web interface for browsing and a sync server that can be leveraged by other third-party clients across devices.</div></div><h3 id="freshrss">FreshRSS</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/rss/freshrss.webp" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://www.freshrss.org/?ref=selfh.st" data-umami-event="alternatives-rss-freshrss"><strong>FreshRSS</strong></a> is the contender-to-beat in the self-hosted RSS world, and for good reason – its look and feel is similar to its hosted counterparts (even if the default theme is a bit of an eyesore) and comes packed with a ton of functionality – search, filters, a built-in reader, themes, extensions, WebSub support, and more.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Like many others on the list, FreshRSS also ships with a few common APIs that make it <a href="https://github.com/FreshRSS/FreshRSS/blob/edge/README.md?ref=selfh.st#apis--native-apps">compatible with a number of desktop and mobile clients</a>.</p><p>FreshRSS is a fairly easy install with support for both <a href="https://freshrss.github.io/FreshRSS/en/admins/03_Installation.html?ref=selfh.st">bare metal</a> and <a href="https://hub.docker.com/r/freshrss/freshrss/?ref=selfh.st">Docker</a> (including an <a href="https://docs.linuxserver.io/images/docker-freshrss/?ref=selfh.st">image from the LSIO team</a>). By default, the application ships with a SQLite database that can be swapped with a PostgreSQL or MySQL database for better performance with larger installations.</p><h3 id="miniflux">Miniflux</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/rss/miniflux.webp" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://miniflux.app/?ref=selfh.st" data-umami-event="alternatives-rss-miniflux"><strong>Miniflux</strong></a> is a popular self-hosted RSS aggregator that markets itself as a minimal and lightweight alternative focused simply on reading feeds (I'm still not sure what <i><a href="https://miniflux.app/opinionated.html?ref=selfh.st">opinionated</a></i> means...). A quick glance at its interface confirms this as it sports a minimal feed with a short list of menu options scattered across the top. Despite this, the platform still supports a number of features beyond simply subscribing to feeds, with most of them focused on content manipulation for easy reading and ingestion.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Although Miniflux's developers lean into its minimal aesthetic and encourage users to leverage its PWA directly from their browsers, it also supports third-party clients via the Fever API for those who prefer dedicated apps on-the-go.</p><p>The application can be installed via <a href="https://miniflux.app/docs/installation.html?ref=selfh.st">bare metal</a> or <a href="https://miniflux.app/docs/docker.html?ref=selfh.st">Docker</a> and supports only PostgreSQL for data storage.</p><h3 id="tiny-tiny-rss">Tiny Tiny RSS</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/rss/tinytinyrss.webp" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://tt-rss.org/?ref=selfh.st" data-umami-event="alternatives-rss-tinytinyrss"><strong>Tiny Tiny RSS</strong></a> is another full-fledged replacement for hosted RSS aggregators most akin to FreshRSS in terms of features, functionality, and popularity. The software shines most with its extensive plugin catalogue, themes, article filtering/scoring methods, and various ways of sharing content with others. Often abbreviated as TTRSS, Tiny Tiny RSS is also infamous for having a development team that can be <a href="https://selfh.st/20230223-prickly-developer-built-self-hosted-gem/">a bit abrasive to newcomers and self-hosting amateurs</a>.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Tiny Tiny RSS has its own internally developed mobile app for Android devices and also supports additional APIs via plugins (Fever, FreshRSS, Google Reader) for increased support across third-party clients.</p><p>The platform can be easily <a href="https://tt-rss.org/wiki/InstallationNotes/?ref=selfh.st">installed via Docker with its provided docker-compose.yml and .env files</a>, which requires four containers (five, if you're making backups) to get up-and-running.</p><hr><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-text">Looking for self-hosted alternatives to other popular services? Check out other posts in the <a href="https://selfh.st/alternatives/"><b><strong style="white-space: pre-wrap;">alternatives series</strong></b></a> and <a href="https://selfh.st/apps" rel="noreferrer"><b><strong style="white-space: pre-wrap;">selfh.st/apps</strong></b></a>, a directory of self-hosted software with filters for tags and alternatives for easy browsing and discovery.</div></div><h3 id="rss">RSS</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/rss/rss-danbrown.webp" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://codeberg.org/danb/rss?ref=selfh.st" data-umami-event="alternatives-rss-rss-danbrown"><strong>RSS</strong></a> is a minimal feed aggregator with a unique approach – its configuration is managed entirely via a plaintext file. Within the file, users can add RSS feed links followed by tags that can be used for filtering within the application's interface. The interface itself sports only a few customizations, including the ability to view feeds by tags and various display modes (cards, list, compact).</p>
|
|
<!--kg-card-end: html-->
|
|
<p>Created by <a href="https://www.bookstackapp.com/?ref=selfh.st">BookStack</a> developer Dan Brown, the project is relatively small in scope and tagged as low maintenance for future viability. As a result, it doesn't ship with support for external clients – although its minimal interface makes it easy to view and interact with from most browsers.</p><p>RSS can be <a href="https://codeberg.org/danb/rss?ref=selfh.st#docker-compose-example">installed via Docker</a> and doesn't require any special configuration aside from the aforementioned plaintext file for feed tracking.</p><h3 id="commafeed">CommaFeed</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/rss/commafeed.webp" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://www.commafeed.com/?ref=selfh.st" data-umami-event="alternatives-rss-commafeed"><strong>CommaFeed</strong></a> is a Google Reader-inspired platform that packs most of the features needed to replace the popular hosted aggregators without some of the frills of the others (community plugins, custom themes, etc.). However, where it may lack in bells and whistles it makes up for in performance – the software is developed to be lightweight, easy to spin-up, and have a low memory footprint. The web interface also lacks some of the clutter found in other interfaces, which makes it easy to discern unread feeds and categories at a glance.</p>
|
|
<!--kg-card-end: html-->
|
|
<p>CommaFeed leverages the Fever API to make it compatible with a wide range of clients across devices.</p><p>The software can be <a href="https://github.com/Athou/commafeed?tab=readme-ov-file&ref=selfh.st#docker">installed via Docker</a> and comes with its own embedded database, although users can opt into bringing their own PostgreSQL or MySQL database if desired.</p><h3 id="nextcloud-news">Nextcloud News</h3>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/alternatives/rss/nextcloud-news.webp" alt="Self-Hosting Guide to Alternatives: Feedly, Inoreader">
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<p><a href="https://apps.nextcloud.com/apps/news?ref=selfh.st" data-umami-event="alternatives-rss-nextcloud-news"><strong>Nextcloud News</strong></a> is a common alternative for users already deploying the cloud storage platform given its ability to be installed and managed as an add-on to an existing installation. The add-on's feature set is fairly basic and missing some of the bells and whistles that make the others stand out, but it's still a great option for Nextcloud users looking for the ability to easily follow feeds and read articles. </p>
|
|
<!--kg-card-end: html-->
|
|
<p>For users looking to read their news on-the-go, <a href="https://nextcloud.github.io/news/clients/?ref=selfh.st">several third-party clients exist</a> that leverage Nextcloud's REST API for synchronization.</p><h3 id="honorable-mentions">Honorable Mentions</h3>
|
|
<!--kg-card-begin: html-->
|
|
<li><strong><a href="https://github.com/nkanaev/yarr?ref=selfh.st" data-umami-event="alternatives-rss-yarr">yarr</a></strong>: Yet Another RSS Reader</li>
|
|
<br>
|
|
<li><strong><a href="https://github.com/LeedRSS/Leed?ref=selfh.st" data-umami-event="alternatives-rss-leed">Leed</a></strong>: Minimal RSS aggregator</li>
|
|
<br>
|
|
<li><strong><a href="https://feedbin.com/?ref=selfh.st" data-umami-event="alternatives-rss-feedbin">Feedbin</a></strong>: Simple, fast RSS reader (see developer's note about self-hosting)</li>
|
|
<br>
|
|
<li><strong><a href="https://refeedreader.com/?ref=selfh.st" data-umami-event="alternatives-rss-refeed">Refeed</a></strong>: Modern open-source RSS reader</li>
|
|
<!--kg-card-end: html-->
|
|
<h3 id="what-did-i-miss">What did I miss?</h3><p>Did I miss anything? Feel free to reach out using any of the communication methods listed on the site's <a href="https://selfh.st/contact/">contact page</a> to get in touch.</p>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:10;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:42:"This Week in Self-Hosted (8 November 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:93:"Self-hosted news, updates, launches, and content for the week ending Friday, November 8, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-11-08/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"6724d1438a46cd00017de655";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 08 Nov 2024 12:47:04 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:71:"https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:23004:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/wopHJOXxLs8?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1742880?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (8 November 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, an open source database with a spreadsheet UI for teams. <a href="https://docs.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=signup" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.blog/news-insights/octoverse/octoverse-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Octoverse: AI leads Python to top language as the number of global developers surges</div><div class="kg-bookmark-description">In this year’s Octoverse report, we study how public and open source activity on GitHub shows how AI is expanding as the global developer community surges in size.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-github-favicon-512.png" alt="This Week in Self-Hosted (8 November 2024)"><span class="kg-bookmark-author">The GitHub Blog</span><span class="kg-bookmark-publisher">GitHub Staff</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/image7.png" alt="This Week in Self-Hosted (8 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/community-scripts/ProxmoxVE?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - community-scripts/ProxmoxVE: Proxmox VE Helper-Scripts (Community Edition)</div><div class="kg-bookmark-description">Proxmox VE Helper-Scripts (Community Edition) . Contribute to community-scripts/ProxmoxVE development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" alt="This Week in Self-Hosted (8 November 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">community-scripts</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/590bfae77e4a78da7a48eafeb247f34e20f0a39c464c039b5d39c7f9fc8fd7ed/community-scripts/ProxmoxVE" alt="This Week in Self-Hosted (8 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://learnhub.top/celebrating-21-years-of-notepad-the-legendary-journey-of-our-favorite-text-editor/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Celebrating 21 Years of Notepad++: The Legendary Journey of Our Favorite Text Editor - learnhub</div><div class="kg-bookmark-description">Alright, folks, gather around because it’s story time about one of the most underrated yet indispensable tools in the digital world—Notepad++. This month</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">learnhub</span><span class="kg-bookmark-publisher">michael</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://learnhub.top/wp-content/uploads/2024/11/Notepad_logo.png" alt="This Week in Self-Hosted (8 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/actualbudget/actual?ref=selfh.st"><strong>Actual Budget</strong></a> <a href="https://github.com/actualbudget/actual/releases/tag/v24.11.0?ref=selfh.st"><strong>v24.11.0</strong></a> | <strong>Budgeting</strong>: Experimental support for upcoming schedule duration and templating in rules, dashboard improvements</li><li><a href="https://github.com/johanohly/AirTrail?ref=selfh.st"><strong>AirTrail</strong></a> <a href="https://github.com/johanohly/AirTrail/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <strong>Flight Tracking</strong>: Improved time zone handling, flight list toolbar, improved import flow, delete all flights</li><li><a href="https://github.com/crocodilestick/Calibre-Web-Automated?ref=selfh.st"><strong>Calibre-Web Automated</strong></a> <a href="https://github.com/crocodilestick/Calibre-Web-Automated/releases/tag/V2.1.0?ref=selfh.st"><strong>v2.1.0</strong></a>-<a href="https://github.com/crocodilestick/Calibre-Web-Automated/releases/tag/V2.1.2?ref=selfh.st" rel="noreferrer"><strong>2</strong></a> | <strong>eBook Management</strong>: Fix for Synology and Unraid users, multi-platform support, settings panel, new auto-compression feature, monitoring service status check in web UI</li><li><a href="https://github.com/Sathvik-Rao/ClipCascade?ref=selfh.st"><strong>ClipCascade</strong></a> <a href="https://github.com/Sathvik-Rao/ClipCascade/releases/tag/1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <strong>Clipboard Sync</strong>: Server heartbeats, full macOS integration</li><li><a href="https://github.com/DefGuard/defguard?ref=selfh.st"><strong>DefGuard</strong></a> <a href="https://github.com/DefGuard/defguard/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <strong>VPN</strong>: External OIDC support (enterprise only), real-time client configuration sync, disable manage devices and client config for users</li><li><a href="https://github.com/joaovitoriasilva/endurain?ref=selfh.st"><strong>Endurain</strong></a> <a href="https://github.com/joaovitoriasilva/endurain/releases/tag/v0.5.0?ref=selfh.st"><strong>v0.5.0</strong></a> | <strong>Fitness Tracker</strong>: Support for .fit files, new health zone with support for logging weight</li><li><a href="https://github.com/diogovalentte/homarr-iframes?ref=selfh.st"><strong>Homarr iFrames</strong></a> <a href="https://github.com/diogovalentte/homarr-iframes/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <strong>Dashboards</strong>: New iframe for alarms, removed Netdata iframe</li><li><a href="https://github.com/home-assistant/core?ref=selfh.st"><strong>Home Assistant</strong></a> <a href="https://github.com/home-assistant/core/releases/tag/2024.11.0?ref=selfh.st"><strong>2024.11</strong></a> | <strong>Home Automation</strong>: Sections dashboard no longer experimental, low latency cameras via WebRTC, new integrations</li><li><a href="https://github.com/danielbrendel/hortusfox-web?ref=selfh.st"><strong>HortusFox</strong></a> <a href="https://github.com/danielbrendel/hortusfox-web/releases/tag/v3.7?ref=selfh.st"><strong>v3.7</strong></a> | <strong>Plant Management</strong>: Plant recognition via Pl@ntNet API, toggle features, embed custom code in HTML header, increased memory limits</li><li><a href="https://github.com/immich-app/immich?ref=selfh.st"><strong>Immich</strong></a> <a href="https://github.com/immich-app/immich/releases/tag/v1.120.0?ref=selfh.st"><strong>v1.120.0</strong></a> | <strong>Photos and Videos</strong>: Built-in automated database backups, timeline location indicator when scrolling, faster CPU transcoding for HDR videos</li><li><a href="https://github.com/mbecker20/komodo?ref=selfh.st"><strong>Komodo</strong></a> <a href="https://github.com/mbecker20/komodo/releases/tag/v1.16.9?ref=selfh.st"><strong>v1.16.9</strong></a> | <strong>Container Management</strong>: Container image update functionality (manual, polling, or auto-updates)</li><li><a href="https://github.com/OliveTin/OliveTin?ref=selfh.st"><strong>OliveTin</strong></a> <a href="https://github.com/OliveTin/OliveTin/releases/tag/2024.11.02?ref=selfh.st"><strong>v2024.11.02</strong></a> | <strong>Remote Commands</strong>: Action and execution IDs on hover, less visually offensive log search box, rerun button on execution dialog for easy rerunning</li><li><a href="https://github.com/penpot/penpot?ref=selfh.st"><strong>Penpot</strong></a> <a href="https://github.com/penpot/penpot/releases/tag/2.3.0?ref=selfh.st"><strong>v2.3.0</strong></a> | <strong>Design</strong>: New plugin system, replaced Draft.js with custom editor</li><li><a href="https://github.com/community-scripts/ProxmoxVE?ref=selfh.st"><strong>Proxmox VE Helper Scripts</strong></a>: Transitioned to <a href="https://github.com/community-scripts/ProxmoxVE?ref=selfh.st">community-driven project</a></li><li><a href="https://github.com/wallabag/wallabag?ref=selfh.st"><strong>Wallabag</strong></a> <a href="https://github.com/wallabag/wallabag/releases/tag/2.6.10?ref=selfh.st"><strong>v2.6.10</strong></a> | <strong>Bookmarks</strong>: Added Omnivore import functionality</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/johanohly/AirTrail?ref=selfh.st"><strong>AirTrail</strong></a> <a href="https://github.com/johanohly/AirTrail/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a>: Improved time zone handling may impact recorded times and time zones with DST – users should reimport data to correct</li><li><a href="https://github.com/joaovitoriasilva/endurain?ref=selfh.st"><strong>Endurain</strong></a> <a href="https://github.com/joaovitoriasilva/endurain/releases/tag/v0.5.0?ref=selfh.st"><strong>v5.0.0</strong></a>: Database schema changes (backup before upgrading), new volume required</li><li><a href="https://github.com/home-assistant/core?ref=selfh.st"><strong>Home Assistant</strong></a> <a href="https://github.com/home-assistant/core/releases/tag/2024.11.0?ref=selfh.st"><strong>2024.11</strong></a>: Retired integrations – Bloomsky, Google Domains, and Spider</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/tylerjwoodfin/tools/tree/main/amazon_price_tracker?ref=selfh.st"><strong>Amazon Price Tracker</strong></a>: Simple Amazon price tracker</li><li><a href="https://github.com/aureum-cloud/cloudflare-ddns?ref=selfh.st"><strong>Cloudflare DDNS</strong></a>: Go application for updating Cloudflare DNS records</li><li><a href="https://github.com/markrai/fontcompare?ref=selfh.st"><strong>Font Compare</strong></a>: Easy way to compare local fonts</li><li><a href="https://github.com/vigneshrajj/gofind?ref=selfh.st"><strong>GoFind</strong></a>: Address bar commands for browsers</li><li><a href="https://github.com/ikoyhn/go-podcast-sponsor-block?ref=selfh.st"><strong>GO Podcast Sponsorblock</strong></a>: Generate podcast RSS feeds of YouTube video audio with sponsored sections removed</li><li><a href="https://github.com/TBosak/mkfd?ref=selfh.st"><strong>mkfd</strong></a>: RSS feed builder API</li><li><a href="https://github.com/TannerNelson16/playlistdl?ref=selfh.st"><strong>playlistdl</strong></a>: Web interface for music downloads</li><li><a href="https://github.com/markrai/postbaby?ref=selfh.st"><strong>Postbaby</strong></a>: Sticky-note app with multi-device support</li><li><a href="https://github.com/ImSkully/rtttl-web-composer?ref=selfh.st"><strong>RTTTL Composer</strong></a>: Rich web-based editor for creating RTTTL</li><li><a href="https://github.com/freetonik/textpod?ref=selfh.st"><strong>Textpod</strong></a>: Simple note-taking app inspired by "One Big Text File"</li><li><a href="https://github.com/thevops/youtube-summarizer?ref=selfh.st"><strong>YouTube Summarizer</strong></a>: AI-generated YouTube video summaries to Raindrop.io</li><li><a href="https://github.com/thevops/youtube-tracker?ref=selfh.st"><strong>YouTube Tracker</strong></a>: Monitor channels via RSS and add new videos to Raindrop.io collections</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps" rel="noreferrer">Directory</a> Apps</h2><ul><li><a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st"><strong>ByteStash</strong></a>: Code snippet storage solution</li><li><a href="https://github.com/chartdb/chartdb?ref=selfh.st"><strong>ChartDB</strong></a>: Database diagrams editor and visualizer</li><li><a href="https://github.com/GladysAssistant/Gladys?ref=selfh.st"><strong>Gladys Assistant</strong></a>: Privacy-first, open source home assistant</li><li><a href="https://github.com/bilde2910/Hauk?ref=selfh.st"><strong>Hauk</strong></a>: Realtime location sharing</li><li><a href="https://github.com/hudikhq/hoodik?ref=selfh.st"><strong>Hoodik</strong></a>: Lightweight and secure cloud storage solution</li><li><a href="https://github.com/dsgnr/portchecker.io?ref=selfh.st"><strong>PortChecker</strong></a>: Port status queries for specified hostnames or IP addresses</li></ul>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://adele.pages.casa/md/blog/xmpp-the-forgotten-gem-of-instant-messaging.md?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">XMPP: the forgotten gem of Instant Messaging | Adële’s smolweb site</div><div class="kg-bookmark-description">Posts about SmolWeb, Gemini protocol and LowTech</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-7.ico" alt="This Week in Self-Hosted (8 November 2024)"><span class="kg-bookmark-author">Adële's smolweb site</span></div></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.getgrist.com/grist-paris-summit-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Grist Paris Summit 2024</div><div class="kg-bookmark-description">Join us in Paris, France for the first-ever Grist Summit. See real-world examples, become a power user, and explore the La Suite project.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-Grist-Favicon-270x270.png" alt="This Week in Self-Hosted (8 November 2024)"><span class="kg-bookmark-author">Grist</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/venue-768x512.png" alt="This Week in Self-Hosted (8 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ghost.org/changelog/internationalization/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Internationalization 🌏</div><div class="kg-bookmark-description">Automatic translations for Ghost portal, newsletters, search, and comments.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ghost-orb-orange-squircle-04.png" alt="This Week in Self-Hosted (8 November 2024)"><span class="kg-bookmark-author">Changelog</span><span class="kg-bookmark-publisher">John O’Nolan</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/i18n-feature-img-2.png" alt="This Week in Self-Hosted (8 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-koillection">Content Spotlight: Koillection</h2><img src="https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png" alt="This Week in Self-Hosted (8 November 2024)"><p>Meet <a href="https://github.com/benjaminjonard/koillection?ref=selfh.st"><strong>Koillection</strong></a>, a self-hosted platform for physical collection tracking (books, DVDs, stamps, games). Developed for those looking to catalogue their collections somewhere more robust than a spreadsheet, <strong>Koillection</strong> comes packed with a number of features – metadata editing, multi-user support, wishlists, basic sharing, item tags for grouping across collections, loan tracking, dark mode, and an API. Note that while the development team is currently working on scraping capabilities, the software does not support automatic metadata downloads at this time.</p><p><strong>Koillection</strong> can be installed via <a href="https://github.com/koillection/koillection/wiki/docker-installation?ref=selfh.st"><strong>Docker</strong></a> or <a href="https://github.com/koillection/koillection/wiki/manual-installation?ref=selfh.st"><strong>bare metal</strong></a> and requires a separate database (MySQL or PostgreSQL) for data storage.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-koillection.webp" alt="This Week in Self-Hosted (8 November 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://github.com/benjaminjonard/koillection?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a>, <a href="https://github.com/benjaminjonard/koillection/wiki?ref=selfh.st" rel="noreferrer"><strong>Docs</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=ImvOmI9El2k&ref=selfh.st"><strong>Share Password and Secrets Securely! Self-Destructing Messages with PassED</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=1zHDS6vQbVo&ref=selfh.st"><strong>Everything New In Home Assistant 2024.11!</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=MPopLASicSc&ref=selfh.st"><strong>Protecting Homelab Apps with BunkerWeb</strong></a> | Jim's Garage</li><li><a href="https://www.youtube.com/watch?v=JJnUpbhp-GI&ref=selfh.st"><strong>Best Docker Update Image Tools for Automating Container Updates</strong></a> | VirtualizationHowTo</li></ul><h2 id="command-line-corner-ctrl-u">Command Line Corner: Ctrl + U</h2><p>Use <strong>Ctrl + U</strong> to easily delete any text in the current prompt, which can be especially useful when clearing password prompts where the cursor isn't tracked:</p><pre><code class="language-bash">/$ docker compose up ghost_
|
|
/$ _</code></pre><p>(Thanks to <strong>This Week in Self-Hosted </strong>reader Konrad for this tip!)</p>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arstechnica.com/gadgets/2024/10/raspberry-pi-oss-years-long-switch-from-x-window-to-wayland-is-now-official/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Raspberry Pi OS’s yearslong switch from X Window to Wayland is now official</div><div class="kg-bookmark-description">Having fixed up performance for its older boards, Raspberry Pi is ready to ship its Wayland-focused desktop.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-ars-logo-512_480-300x300-1.png" alt="This Week in Self-Hosted (8 November 2024)"><span class="kg-bookmark-author">Ars Technica</span><span class="kg-bookmark-publisher">Kevin Purdy</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/raspberry_pi_wayland-1152x648.jpg" alt="This Week in Self-Hosted (8 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:11;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:42:"This Week in Self-Hosted (1 November 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:93:"Self-hosted news, updates, launches, and content for the week ending Friday, November 1, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-11-01/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"671d05c95c6c1f0001569d87";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 01 Nov 2024 11:38:36 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:71:"https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:31008:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/qgHWATezevk?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1731614?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.pikapods.com/?utm_source=selfh.st&utm_campaign=newsletter" data-umami-event="newsletter-sponsor-headline-logo-pikapods" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">PikaPods</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/pikapods.png" style="width: 40px; height: auto;" alt="This Week in Self-Hosted (1 November 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.pikapods.com/?utm_source=selfh.st&utm_campaign=newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-pikapods"><b><strong style="white-space: pre-wrap;">PikaPods</strong></b></a>, the instant open source hosting service. Run a large selection of open source apps within seconds from just $1/month. Server administration, updates, and backups are all taken care of, leaving you in control of your data. <a href="https://www.pikapods.com/?utm_source=selfh.st&utm_campaign=newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-pikapods"><b><strong style="white-space: pre-wrap;">Try it today</strong></b></a> with $5 free welcome credit!</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted-10000-subscribers">This Week in Self-Hosted: 10,000 Subscribers!</h2><img src="https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png" alt="This Week in Self-Hosted (1 November 2024)"><p>If you <a href="https://fosstodon.org/@shollyethan?ref=selfh.st">follow me on the fediverse</a>, you're probably already aware that <strong>This Week in Self-Hosted</strong> reached 10,000 subscribers this week! The year-and-a-half journey I've been on to build this brand and content has been incredibly rewarding and I'm extremely grateful to all of the readers and contributors that have been so supportive throughout. </p><p>Looking forward, I have some new and exciting content lined up for 2025 that I'll share in the coming weeks and hope to continue finding new and innovative ways to give back to the self-hosted community. </p><p>Thanks for the support, and happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://matrix.org/blog/2024/10/29/matrix-2.0-is-here/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Matrix 2.0 Is Here!</div><div class="kg-bookmark-description">Matrix, the open protocol for secure decentralised communications</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://matrix.org/assets/favicon.svg" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">Matrix 2.0 Is Here!</span><span class="kg-bookmark-publisher">Matthew Hodgson</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://matrix.org/blog/img/matrix-2.0.jpg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.omnivore.app/p/omnivore-is-joining-elevenlabs?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Omnivore is joining ElevenLabs</div><div class="kg-bookmark-description">a note from our founders</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8f6c575c-355b-44a6-a8e6-67a1c3745b59%2Fapple-touch-icon-180x180.png" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">Omnivore Blog</span><span class="kg-bookmark-publisher">Omnivore</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e577f89-d7d9-4fa3-abf0-2c749fe6010f_2560x1440.jpeg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/tteck/Proxmox/discussions/4025?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Moving forward · tteck Proxmox · Discussion #4025</div><div class="kg-bookmark-description">The community needs to unite and make some important decisions about the path forward. Has a new fork become the go-to choice? Is there a new frontend that we’re rallying behind? This site will soo…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">tteck</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/ca555e56a478620369b7d47959ae0e882ea38f59db44f05ded7713c9d50a2e2c/tteck/Proxmox/discussions/4025" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.theregister.com/2024/10/25/opinion_open_washing/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The open secret of open washing</div><div class="kg-bookmark-description">Allowing pretenders to co-opt the term is bad for everyone</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.theregister.com/design_picker/13249a2e80709c7ff2e57dd3d49801cd534f2094/graphics/favicons/favicon.svg" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">The Register</span><span class="kg-bookmark-publisher">Steven J. Vaughan-Nichols</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://regmedia.co.uk/2024/10/24/shutterstock_2534986967.jpg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/docmost/docmost?ref=selfh.st"><strong>Docmost</strong></a> <a href="https://github.com/docmost/docmost/releases/tag/v0.5.0?ref=selfh.st"><strong>v0.5.0</strong></a> | <strong>Collaborative Docs</strong>: Support for various third-party embeds, dark mode for Draw.io diagram editor, improved sidebar page-tree for real-time sync</li><li><a href="https://github.com/yusing/go-proxy?ref=selfh.st"><strong>go-proxy</strong></a> <a href="https://github.com/yusing/go-proxy/releases/tag/0.7.0?ref=selfh.st"><strong>v0.7</strong></a> | <strong>Reverse Proxy</strong>: Health status monitoring feature, Gotify notification support when health status changes</li><li><a href="https://github.com/immich-app/immich?ref=selfh.st"><strong>Immich</strong></a> <a href="https://github.com/immich-app/immich/releases/tag/v1.119.0?ref=selfh.st"><strong>v1.119.0</strong></a> | <strong>Photos and Videos</strong>: Improved mobile app layout, VAAPI hardware decoding, create new OAuth users without passwords</li><li><a href="https://github.com/jellyfin/jellyfin?ref=selfh.st"><strong>Jellyfin</strong></a> <a href="https://github.com/jellyfin/jellyfin/releases/tag/v10.10.0?ref=selfh.st"><strong>v10.10.0</strong></a> | <strong>Media Streaming</strong>: Media segment support, improved Trickplay implementation, transcoding/playback enhancements, user-defined lyric plugins for music libraries</li><li><a href="https://github.com/epoupon/lms?ref=selfh.st"><strong>Lightweight Music Server</strong></a> <a href="https://github.com/epoupon/lms/releases/tag/v3.60.0?ref=selfh.st"><strong>v3.60.0</strong></a> | <strong>Music Streaming</strong>: Added lyrics support (embedded, external, and OpenSubsonic Song Lyrics extension), better artist image picking</li><li><a href="https://github.com/knadh/listmonk?ref=selfh.st"><strong>Listmonk</strong></a> <a href="https://github.com/knadh/listmonk/releases/tag/v4.0.1?ref=selfh.st"><strong>v4.0.1</strong></a> | <strong>Newsletters</strong>: Multi-user and OIDC support, performance and styling improvements, Markdown syntax highlighting, support for CC and BCC in custom email headers</li><li><a href="https://github.com/LycheeOrg/Lychee?ref=selfh.st"><strong>Lychee</strong></a> <a href="https://github.com/LycheeOrg/Lychee/releases/tag/v6.0.0?ref=selfh.st"><strong>v6.0.0</strong></a> | <strong>Photos</strong>: Improved user interface, slideshow mode, dark and light themes, upload by chunk</li><li><a href="https://github.com/mealie-recipes/mealie?ref=selfh.st"><strong>Mealie</strong></a> <a href="https://github.com/mealie-recipes/mealie/releases/tag/v2.1.0?ref=selfh.st"><strong>v2.1.0</strong></a> | <strong>Recipes and Meals</strong>: Custom names for recipe instruction steps, recipe instruction summaries, shopping list UI overhaul, collapsible labels</li><li><a href="https://github.com/FoxxMD/multi-scrobbler?ref=selfh.st"><strong>Multi-Scrobbler</strong></a> <a href="https://github.com/FoxxMD/multi-scrobbler/releases/tag/0.8.7?ref=selfh.st"><strong>v0.8.7</strong></a> | <strong>Listening Statistics</strong>: New Plex implementation leveraging API instead of webhooks, player improvements</li><li><a href="https://github.com/music-assistant/server?ref=selfh.st"><strong>Music Assistant</strong></a> <a href="https://github.com/music-assistant/server/releases/tag/2.3.0?ref=selfh.st"><strong>v2.3.0</strong></a> | <strong>Music Streaming</strong>: Added Bluesound Player and SiriusXM providers, new 'Don't stop the music' feature</li><li><a href="https://github.com/vrtmrz/obsidian-livesync?ref=selfh.st"><strong>Obsidian LiveSync</strong></a> <a href="https://github.com/vrtmrz/obsidian-livesync/releases/tag/0.24.0?ref=selfh.st"><strong>v0.24.0</strong></a> | <strong>File Syncing</strong>: Improved onboarding and setup, refined messaging, hidden file verification and resolution</li><li><a href="https://github.com/paperless-ngx/paperless-ngx?ref=selfh.st"><strong>Paperless-ngx</strong></a> <a href="https://github.com/paperless-ngx/paperless-ngx/releases/tag/v2.13.0?ref=selfh.st"><strong>v2.13.0</strong></a> | <strong>Document Management</strong>: OAuth2 Gmail and Outlook email support, enhanced templating for filename format, custom fields queries</li><li><a href="https://github.com/SmilyOrg/photofield?ref=selfh.st"><strong>Photofield</strong></a> <a href="https://github.com/SmilyOrg/photofield/releases/tag/v0.17.0?ref=selfh.st"><strong>v0.17.0</strong></a> | <strong>Photos</strong>: Photo details view, dark mode, custom scrollbar, open image in album'</li><li><a href="https://codeberg.org/readeck/readeck?ref=selfh.st"><strong>Readeck</strong></a> <a href="https://codeberg.org/readeck/readeck/releases/tag/0.15.4?ref=selfh.st"><strong>v0.15.4</strong></a> | <strong>Bookmarks</strong>: Import from Omnivore, improved YouTube video descriptions</li><li><a href="https://github.com/IgnisDa/ryot?ref=selfh.st"><strong>Ryot</strong></a> <a href="https://github.com/IgnisDa/ryot/releases/tag/v7.8.0?ref=selfh.st"><strong>v7.8.0</strong></a> | <strong>Tracking</strong>: New Jellyfin integration with automatic sync</li><li><a href="https://github.com/clidey/whodb?ref=selfh.st"><strong>WhoDB</strong></a> <a href="https://github.com/clidey/whodb/releases/tag/0.39.0?ref=selfh.st"><strong>v0.39</strong></a>/<a href="https://github.com/clidey/whodb/releases/tag/0.40.0?ref=selfh.st" rel="noreferrer"><strong>40</strong></a> | <strong>Database Explorer</strong>: Support for multiple Redis databases, support for extending database config for MySQL and Postgres, support for MySQL host path</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/yusing/go-proxy?ref=selfh.st"><strong>go-proxy</strong></a> <a href="https://github.com/yusing/go-proxy/releases/tag/0.7.0?ref=selfh.st"><strong>v0.7</strong></a>: Web UI and API now require authentication, new required environment variables</li><li><a href="https://github.com/immich-app/immich?ref=selfh.st"><strong>Immich</strong></a> <a href="https://github.com/immich-app/immich/releases/tag/v1.119.0?ref=selfh.st"><strong>v1.119.0</strong></a>: HOST variable renamed to IMMICH_HOST, replaced several metrics variables with new telemetry variables</li><li><a href="https://github.com/jellyfin/jellyfin?ref=selfh.st"><strong>Jellyfin</strong></a> <a href="https://github.com/jellyfin/jellyfin/releases/tag/v10.10.0?ref=selfh.st"><strong>v10.10.0</strong></a>: Minor breaking changes as noted in the <a href="https://jellyfin.org/posts/jellyfin-release-10.10.0/?ref=selfh.st#breaking-changes">release notes</a></li><li><a href="https://github.com/music-assistant/server?ref=selfh.st"><strong>Music Assistant</strong></a> <a href="https://github.com/music-assistant/server/releases/tag/2.3.0?ref=selfh.st"><strong>v2.3.0</strong></a>: Rewritten Sonos provider for S2 firmware – S1 users should install new S1 provider</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/alangrainger/immich-public-proxy?ref=selfh.st"><strong>Immich Public Proxy</strong></a>: Share Immich photos without publicly exposing the entire instance</li><li><a href="https://github.com/investbrainapp/investbrain?ref=selfh.st"><strong>Investbrain</strong></a>: Portfolio performance tracker</li><li><a href="https://github.com/rtuszik/KoalaKeys?ref=selfh.st"><strong>KoalaKeys</strong></a>: Generate portable keyboard shortcut cheat sheets</li><li><a href="https://github.com/Dark-Alex-17/managarr?ref=selfh.st"><strong>Managarr</strong></a>: TUI and CLI to manage Servarr instances</li><li><a href="https://github.com/brufdev/many-notes?ref=selfh.st"><strong>Many Notes</strong></a>: Simple Markdown note-taking app</li><li><a href="https://github.com/getmaxun/maxun?ref=selfh.st"><strong>Maxun</strong></a>: No-code web data extraction platform</li><li><a href="https://github.com/sv1sjp/NextCloudTalkAutomationBot?ref=selfh.st"><strong>Nextcloud Talk Automation Bot</strong></a>: Cronjob and system monitoring and notifications via Nextcloud Talk</li><li><a href="https://github.com/jaypyles/open-spots?ref=selfh.st"><strong>Open Spots</strong></a>: Real-time building availability data</li><li><a href="https://git.1e99.eu/1e99/passed?ref=selfh.st"><strong>PassED</strong></a>: Encrypted password sharing</li><li><a href="https://plikshare.com/?ref=selfh.st"><strong>PlikShare</strong></a>: Self-hosted file sharing solution</li><li><a href="https://github.com/neonwatty/todo_timers?ref=selfh.st"><strong>To-Do Timers</strong></a>: Simple app for creating and managing to-do timers</li><li><a href="https://github.com/trailbaseio/trailbase?ref=selfh.st"><strong>TrailBase</strong></a>: Single-file application base</li><li><a href="https://github.com/FrigadeHQ/trench?ref=selfh.st"><strong>Trench</strong></a>: Open-source analytics infrastructure</li><li><a href="https://github.com/nerijusdu/vesa?ref=selfh.st"><strong>Vesa</strong></a>: Easily deploy projects to a VPS</li></ul><h2 id="latest-directory-apps">Latest <a href="https://selfh.st/apps" rel="noreferrer">Directory</a> Apps</h2><ul><li><a href="https://github.com/ether/etherpad-lite?ref=selfh.st"><strong>Etherpad</strong></a>: Real-time collaborative document editor</li><li><a href="https://github.com/AndrewPaglusch/FlashPaper?ref=selfh.st"><strong>FlashPaper</strong></a>: One-time encrypted secret and password sharing</li><li><a href="https://github.com/mkucej/i-librarian-free?ref=selfh.st"><strong>I, Librarian</strong></a>: PDF and office document organization and management</li><li><a href="https://github.com/investbrainapp/investbrain?ref=selfh.st"><strong>Investbrain</strong></a>: Portfolio performance tracker</li><li><a href="https://github.com/NRicode/NortixMail?ref=selfh.st"><strong>Nortix Mail</strong></a>: Disposable e-mail server with an easy setup</li><li><a href="https://github.com/novuhq/novu?ref=selfh.st"><strong>Novu</strong></a>: Open source notifications framework</li><li><a href="https://plikshare.com/?ref=selfh.st"><strong>PlikShare</strong></a>: Self-hosted file sharing solution</li><li><a href="https://github.com/ad3m3r5/scratch-map?ref=selfh.st"><strong>Scratch Map</strong></a>: Scratch-off style map for tracking travels</li><li><a href="https://github.com/chkpwd/sofe?ref=selfh.st"><strong>SoFE</strong></a>: Monitor non-filler Sonarr episodes and generate Plex collections</li><li><a href="https://github.com/windmill-labs/windmill?ref=selfh.st"><strong>Windmill</strong></a>: Development infrastructure for internal tools</li></ul><p></p>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="surveys-and-feedback">Surveys and Feedback</h2><ul><li><a href="https://s.surveyplanet.com/00x4a2o0?ref=selfh.st"><strong>Mealie</strong></a>: Software usage survey</li><li><a href="https://github.com/FoxxMD/multi-scrobbler/issues/217?ref=selfh.st"><strong>Multi-Scrobbler</strong></a>: Developer seeking feedback regarding potential Tautulli deprecation</li></ul><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://john.onolan.org/democratising-publishing/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Democratising publishing</div><div class="kg-bookmark-description">Thoughts on open source governance and how to create trust within technology, communities, and media.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://john.onolan.org/content/images/size/w256h256/format/jpeg/2024/03/gravatar-j10-square.jpg" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">John O'Nolan</span><span class="kg-bookmark-publisher">John O’Nolan</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://john.onolan.org/content/images/size/w1200/2024/10/e4b60d8a-582b-4fb8-9342-106a73886a7a.webp" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://fanyangmeng.blog/build-a-selfhosted-digital-frame/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Build a Self-hosted Digital Frame</div><div class="kg-bookmark-description">Build a unique digital photo frame as a gift using Raspberry Pi and Immich. This step-by-step guide offers three implementations for beginners and advanced users, helping you create a personalized present that showcases your creativity.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://fanyangmeng.blog/content/images/size/w256h256/format/jpeg/2024/10/profile-picture-2.jpg" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">Fanyang Meng's Blog</span><span class="kg-bookmark-publisher">Fanyang Meng</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://fanyangmeng.blog/content/images/2024/10/selfhosted-digitalframe-feature.png" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.elenarossini.com/the-fediverse-has-empowered-me-to-take-back-control-from-big-tech-now-i-want-to-help-others-do-the-same/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Fediverse has empowered me to take back control from Big Tech. Now I want to help others do the same.</div><div class="kg-bookmark-description">The Fediverse has helped me regain control from the behavior modification empires of Big Tech. Now I want to help other people do the same.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.elenarossini.com/content/images/size/w256h256/format/jpeg/2024/03/ELE-avatar-muses-pink-1.jpg" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">Elena Rossini</span><span class="kg-bookmark-publisher">Elena Rossini</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.elenarossini.com/content/images/2024/10/issue-13-future-federated.jpg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.blog.techraj156.com/post/setting-up-your-own-private-chat-app-with-matrix?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Setting up your own private chat app with Matrix</div><div class="kg-bookmark-description">In this post, I’ll guide you through setting up a self-hosted private messaging application similar to Discord, using Matrix. With Matrix, you can create and manage a secure chat platform for private conversations with friends, family, and more—putting control over privacy and customization in your hands.Matrix.org is an open-source project providing a decentralized communication protocol for secure, real-time communication. Built on a federated architecture, Matrix allows users to communicate a</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.parastorage.com/client/pfavico.ico" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">Tech Raj Blog</span><span class="kg-bookmark-publisher">Teja Swaroop</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.wixstatic.com/media/b94a49_5ad538412b6a4570bc21aa297fe3b570~mv2.png/v1/fill/w_1000,h_563,al_c,q_90,usm_0.66_1.00_0.01/b94a49_5ad538412b6a4570bc21aa297fe3b570~mv2.png" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://neilzone.co.uk/2024/10/wallabag-a-foss-self-hosted-read-it-later-application/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">wallabag: a FOSS, self-hosted, read-it-later application</div><div class="kg-bookmark-description">wallabag is a web application allowing you to save web pages for later reading.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://neilzone.co.uk/favicon.ico" alt="This Week in Self-Hosted (1 November 2024)"></div></div><div class="kg-bookmark-thumbnail"><img src="https://neilzone.co.uk/content/images/2024-10-17_neil.jpg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-etherpad">Content Spotlight: Etherpad</h2><p>Meet <a href="https://github.com/ether/etherpad-lite?ref=selfh.st"><strong>Etherpad</strong></a>, a real-time collaborative document editor. Built for teams looking to avoid the hassle of sharing documents back and forth, <strong>Etherpad</strong> provides in-browser editing (via 'pads') that function similarly to Google Docs and allow users to make their own contributions while viewing others in real-time. Features include live chat, extensibility via a robust plugin system, external authentication and permissions, and customizable themes. </p><p><strong>Etherpad</strong> can be <a href="https://docs.etherpad.org/docker.html?ref=selfh.st">installed via Docker</a> and requires a separate PostgreSQL database for storage.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-etherpad.webp" alt="This Week in Self-Hosted (1 November 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://github.com/ether/etherpad-lite?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a>, <a href="https://etherpad.org/?ref=selfh.st" rel="noreferrer"><strong>Website</strong></a>, <a href="https://docs.etherpad.org/?ref=selfh.st" rel="noreferrer"><strong>Docs</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://2024.matrix.org/watch/?ref=selfh.st"><strong>2024 Matrix Conference Talks</strong></a><strong> </strong>| [matrix]</li><li><a href="https://www.youtube.com/watch?v=U47nvwXrAOo&ref=selfh.st"><strong>Effortless Nextcloud AIO Setup on Unraid</strong></a> | Spaceinvader One</li><li><a href="https://www.youtube.com/watch?v=LrDR-x3jgXk&ref=selfh.st"><strong>Ultimate Unraid 2024</strong></a> | IBRACORP</li><li><a href="https://www.youtube.com/watch?v=-hfejNXqOzA&ref=selfh.st"><strong>Simple HTTPs for Docker! // Traefik Tutorial</strong></a> | Christian Lempa</li><li><a href="https://www.youtube.com/watch?v=pczcNjIr5WQ&ref=selfh.st"><strong>Ente - Google Photos with Privacy!</strong></a> | Techlore</li><li><a href="https://www.youtube.com/watch?v=EfXgCkIAaVg&ref=selfh.st"><strong>Docker Container Monitoring Dashboards both Open Source and Netdata!</strong></a> | VirtualizationHowto</li><li><a href="https://www.youtube.com/watch?v=obZOgp_jSFc&ref=selfh.st"><strong>How Does TrueNAS High Availability Work?</strong></a> | Lawrence Systems</li></ul><h2 id="command-line-corner-ctrl-o">Command Line Corner: Ctrl + O</h2><p>When paired with last week's <strong>Ctrl + P</strong> command, <strong>Ctrl + O</strong> can be used as a shortcut to execute the command queued by <strong>Ctrl + P </strong>while also automatically queuing the next command from the shell's history.</p>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arstechnica.com/information-technology/2024/10/a-year-after-broadcoms-vmware-buy-customers-eye-exit-strategies/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Disgruntled customers discuss quitting VMware</div><div class="kg-bookmark-description">Ars Technica speaks with users and channel partners disgruntled by Broadcom’s changes.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480-300x300.png" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">Ars Technica</span><span class="kg-bookmark-publisher">Scharon Harding</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.arstechnica.net/wp-content/uploads/2024/10/broadcom-vmware-eject-1152x648.jpg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.thunderbird.net/2024/10/thunderbird-for-android-8-0-takes-flight/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Thunderbird for Android 8.0 Takes Flight - The Thunderbird Blog</div><div class="kg-bookmark-description">Thunderbird for Android takes flight today! Find out what’s new in the first stable release, where to download it, and how to get started!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.thunderbird.net/wp-content/themes/thunderblog/assets/ios-icon-180.png" alt="This Week in Self-Hosted (1 November 2024)"><span class="kg-bookmark-author">The Thunderbird Blog</span><span class="kg-bookmark-publisher">Philipp Kewisch, Monica Ayhens-Madon</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.thunderbird.net/files/2024/10/blog-banner-TBfA.jpg" alt="This Week in Self-Hosted (1 November 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:12;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:42:"This Week in Self-Hosted (25 October 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:93:"Self-hosted news, updates, launches, and content for the week ending Friday, October 25, 2024";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-10-25/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"67124e5f29e8a90001be4c86";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 25 Oct 2024 11:24:04 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:71:"https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:32476:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/aBcjPA_1M1c?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1719578?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" data-umami-event="newsletter-sponsor-headline-logo-grist" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Grist</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/icons/sponsor/grist.png" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (25 October 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=home" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-grist"><b><strong style="white-space: pre-wrap;">Grist</strong></b></a>, an open source database with a spreadsheet UI for teams. <a href="https://docs.getgrist.com/?utm_source=this-week-in-self-hosted&utm_medium=newsletter&utm_campaign=selfhst&utm_content=signup" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-grist"><b><strong style="white-space: pre-wrap;">Check it out.</strong></b></a></div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2><img src="https://selfh.st/content/images/2024/10/newsletter-featured-image-1.png" alt="This Week in Self-Hosted (25 October 2024)"><p>The results of my 2024 annual self-host user survey were <a href="https://selfh.st/survey/2024-results/">published earlier this week</a> – thanks to all who participated! I also continued the annual tradition of <a href="https://www.youtube.com/live/AYqFrrG2ajM?ref=selfh.st" rel="noreferrer">discussing them with DB Tech via a YouTube livestream</a> if you're looking for something to listen to as you hang your Halloween decorations this weekend.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/survey/2024-results/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey Results</div><div class="kg-bookmark-description">Visualized results from the 2024 Self-Host User Survey</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/size/w256h256/2023/09/favicon-1.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/2024/07/selfh-st-logo-banner-3.png" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><p>If you're itching for more, a few additional surveys being facilitated by the community popped up on my radar this week. I'd strongly encourage everyone to consider completing them as an easy way to give back to the developers who make self-hosting possible:</p><ul><li>The <a href="https://github.com/mealie-recipes/mealie?ref=selfh.st">Mealie</a> team recently dropped a new major version and is <a href="https://s.surveyplanet.com/00x4a2o0?ref=selfh.st">looking for additional feedback to gauge how users are using the platform</a></li><li>Redditor <a href="https://old.reddit.com/user/aintathrowaway26?ref=selfh.st">u/aintathrowaway26</a> is developing a new uptime monitoring platform and is <a href="https://tally.so/r/3yqPj8?ref=selfh.st">collecting feedback on desired features from the community</a> (2-3 minutes)</li><li>A newsletter reader currently studying computer science is developing a server administration toolkit and is <a href="https://forms.gle/ExWX25NnaMDpi4jKA?ref=selfh.st">looking for feedback</a> to accompany their project submission</li></ul><p>And lastly, a reminder that I launched <strong>This Week in Self-Hosted</strong> as a YouTube series a few weeks ago. This week, I had the opportunity to chat through this week's content with Adam Monsen, author of <a href="https://selfhostbook.com/?ref=selfh.st">Steadfast Self-Hosting</a> and co-founder of <a href="https://seagl.org/?ref=selfh.st">SeaGL</a>.</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/aBcjPA_1M1c?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="This Week in Self-Hosted (October 25, 2024)"></iframe></figure><p>Happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://forum.syncthing.net/t/discontinuing-syncthing-android/23002?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Discontinuing syncthing-android</div><div class="kg-bookmark-description">Unfortunately I don’t have good news on the state of the android app: I am retiring it. The last release on Github and F-Droid will happen with the December 2024 Syncthing version. Reason is a combination of Google making Play publishing something between hard and impossible and no active maintenance. The app saw no significant development for a long time and without Play releases I do no longer see enough benefit and/or have enough motivation to keep up the ongoing maintenance an app requires…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://forum.syncthing.net/uploads/default/optimized/2X/a/a3a9752094de8952f44fd4ede9f17b46b18c52c6_2_180x180.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Syncthing Community Forum</span><span class="kg-bookmark-publisher">imsodin</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://forum.syncthing.net/uploads/default/original/2X/2/25050fcb8ad640e67fb74a67b17b77b3648fb295.png" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.phoronix.com/news/Bitwarden-Open-Source-Concerns?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Concerns Raised Over Bitwarden Moving Further Away From Open-Source</div><div class="kg-bookmark-description">Several Phoronix readers have written in this Sunday over concerns of Bitwarden further moving away from open-source</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.phoronix.com/apple-touch-icon-180x180.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Phoronix</span><span class="kg-bookmark-publisher">Michael Larabel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.phoronix.net/image.php?id=2024&image=bitwarden" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thestreamingwars.tv/entertainment/plex-ventures-into-original-content-plexclusives-with-ghost-show-premiering-october-8th/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Plex Launches Its First “Plexclusive” with Ghost Show, Premiering October 8th – The Streaming Wars</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://thestreamingwars.tv/wp-content/uploads/2024/04/cropped-fav-270x270.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-publisher">The Streaming Wars Staff</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://thestreamingwars.tv/wp-content/themes/jnews/assets/img/jeg-empty.png" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://andypiper.co.uk/2024/10/22/mqtt-turns-25-heres-how-it-has-endured/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">MQTT turns 25 – here’s how it has endured</div><div class="kg-bookmark-description">October 2024 marks the 25th anniversary of MQTT, a crucial protocol for connecting devices in diverse environments. With origins in lightweight networks, MQTT has flourished, empowering countless a…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://i0.wp.com/andypiper.co.uk/wp-content/uploads/2022/01/33866ab9-4958-4228-8bf8-76b09898f8a4.jpeg?fit=192%2C192&ssl=1" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">The lost outpost</span><span class="kg-bookmark-publisher">andysc</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://i0.wp.com/andypiper.co.uk/wp-content/uploads/2024/10/IMG_4454.jpg?resize=1200%2C1200&ssl=1" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/chevereto/chevereto?ref=selfh.st"><strong>Chevereto</strong></a> <a href="https://github.com/chevereto/chevereto/releases/tag/4.2.0?ref=selfh.st"><strong>v4.2.0</strong></a> | <strong>Photos and Videos</strong>: Added support for various tags and tag-related functionality, external storage enhancements, UI improvements</li><li><a href="https://github.com/LumePart/Explo?ref=selfh.st"><strong>Explo</strong></a> <a href="https://github.com/LumePart/Explo/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a> | <strong>Music Discovery</strong>: Added support for Jellyfin</li><li><a href="https://github.com/Phalcode/gamevault-app?ref=selfh.st"><strong>GameVault</strong></a> <a href="https://github.com/Phalcode/gamevault-app/releases/tag/1.12.5.0?ref=selfh.st"><strong>v1.12.5</strong></a> | <strong>Gaming Frontend</strong>: New server API, news button for latest updates, layout changes, improved downloads, overhauled layout, age ratings, notes</li><li><a href="https://github.com/immichFrame/ImmichFrame?ref=selfh.st"><strong>Immich Frame</strong></a> <a href="https://github.com/immichFrame/ImmichFrame/releases/tag/v1.0.15.0?ref=selfh.st"><strong>v1.0.15</strong></a> | <strong>Photo Display</strong>: Weather UI, hide UI, zoom in and out of faces</li><li><a href="https://github.com/mbecker20/komodo?ref=selfh.st"><strong>Komodo</strong></a> <a href="https://github.com/mbecker20/komodo/releases/tag/v1.16.0?ref=selfh.st"><strong>v1.16.0</strong></a> | <strong>Software Deployment</strong>: New resource – actions, specify additional .env files, auto YAML formatting for compose file editors, locally cached unsaved changes</li><li><a href="https://github.com/mealie-recipes/mealie?ref=selfh.st"><strong>Mealie</strong></a> <a href="https://github.com/mealie-recipes/mealie/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Recipes and Meals</strong>: Support for households, query filter builder, shopping list UI improvements, OpenID Connect improvements</li><li><a href="https://github.com/medusajs/medusa?ref=selfh.st"><strong>Medusa</strong></a> <a href="https://github.com/medusajs/medusa/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Commerce</strong>: Architecture rewrite, new promotions engine, advanced inventory management, flexible authentication, custom modules, admin redesign</li><li><a href="https://codeberg.org/mrmn/PdfDing?ref=selfh.st"><strong>PdfDing</strong></a> <a href="https://codeberg.org/mrmn/PdfDing/releases/tag/0.4.0?ref=selfh.st"><strong>v0.4.0</strong></a> | <strong>PDF Manager</strong>: Support for sharing PDFs externally with links and QR codes, password protected shares</li><li><a href="https://github.com/Piwigo/Piwigo?ref=selfh.st"><strong>Piwigo</strong></a> <a href="https://github.com/Piwigo/Piwigo/releases/tag/15.0.0?ref=selfh.st"><strong>v15.0.0</strong></a> | <strong>Photos and Videos</strong>: Major user management improvements, system activities, batch manager redesign, embedded PDF reader</li><li><a href="https://github.com/plankanban/planka?ref=selfh.st"><strong>Planka</strong></a> <a href="https://github.com/plankanban/planka/releases/tag/v1.23.3?ref=selfh.st"><strong>v1.23.3</strong></a> | <strong>Kanban Boards</strong>: Description and attachment icons for cards</li><li><a href="https://github.com/MDeLuise/plant-it?ref=selfh.st"><strong>Plant-It</strong></a> <a href="https://github.com/MDeLuise/plant-it/releases/tag/0.9.0?ref=selfh.st"><strong>v0.9.0</strong></a> | <strong>Plant Manager</strong>: New calendar view, reorganized detail view for better navigation, enhanced look-and-feel of plant and species cards</li><li><a href="https://github.com/Stirling-Tools/Stirling-PDF?ref=selfh.st"><strong>Stirling PDF</strong></a> <a href="https://github.com/Stirling-Tools/Stirling-PDF/releases/tag/v0.30.0?ref=selfh.st"><strong>v0.30.0</strong></a> | <strong>PDF Editor</strong>: Home page improvements, opt-in user analytics, added page counts to merge PDF tool, authentication enhancements</li><li><a href="https://github.com/giuseppe99barchetta/SuggestArr?ref=selfh.st"><strong>SuggestArr</strong></a> <a href="https://github.com/giuseppe99barchetta/SuggestArr/releases/tag/v1.0.7?ref=selfh.st"><strong>v1.0.7</strong></a> | <strong>Recommendations</strong>: Support for Plex, realtime log panel with filters, unified requests management, UI enhancements</li><li><a href="https://github.com/TriliumNext/Notes?ref=selfh.st"><strong>TriliumNext</strong></a> <a href="https://github.com/TriliumNext/Notes/releases/tag/v0.90.8?ref=selfh.st"><strong>v0.90.8</strong></a> | <strong>Note-Taking</strong>: New note type – Mind Map, <em>stable</em> tag for containers, internationalization updates</li><li><a href="https://github.com/getwud/wud?ref=selfh.st"><strong>What's Up Docker?</strong></a> <a href="https://github.com/getwud/wud/releases/tag/7.0.0?ref=selfh.st"><strong>v7.0.0</strong></a> | <strong>Update Notifications</strong>: New GitHub project and Docker container locations (<em>getwud/wud</em>), added support for <a href="https://selfh.st/icons" rel="noreferrer">selfh.st/icons</a> (♥), new variable to disable automatic watch during startup</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/blog2pod/blog2pod?ref=selfh.st"><strong>blog2pod</strong></a>: Convert written web content into a podcast feed</li><li><a href="https://github.com/jordan-dalby/ByteStash?ref=selfh.st"><strong>ByteStash</strong></a>: Store, organize, and manage code snippets</li><li><a href="https://github.com/ddries/d2c.sh?ref=selfh.st"><strong>d2c.sh</strong></a>: Bash script for auto-updating Cloudflare DNS records</li><li><a href="https://github.com/JesusMiramontes/Heartbeatrr?ref=selfh.st"><strong>Heartbeatrr</strong></a>: Service monitoring tool with Discord alerts (<a href="https://old.reddit.com/r/selfhosted/comments/1g9axdm/introducing_heartbeatrr_a_simple_service/?ref=selfh.st">Archived</a>)</li><li><a href="https://github.com/KostaD02/monotor?ref=selfh.st"><strong>MonoTor</strong></a>: Self-hosted application for data monitoring</li><li><a href="https://github.com/NRicode/NortixMail?ref=selfh.st"><strong>Nortix Mail</strong></a>: Private disposable e-mail server</li><li><a href="https://github.com/jlar0che/Pi-hole-Automated-Backup-Solution?ref=selfh.st"><strong>Pi-hole Automated Backup Solution</strong></a>: Automated backups to any device</li><li><a href="https://github.com/Stehos/stehos-reddit-markdown-with-fabric?ref=selfh.st"><strong>Reddit Markdown:</strong></a> Simple tool to extract text from Reddit post and convert to Markdown</li><li><a href="https://github.com/sekai-soft/rss-lambda?ref=selfh.st"><strong>RSS-lambda</strong></a>: RSS feed transformer application</li><li><a href="https://github.com/scribble-rs/scribble.rs?ref=selfh.st"><strong>Scribble.rs</strong></a>: Web-based alternative to skribbl.io</li><li><a href="https://codeberg.org/albertcardona/streaming-jukebox?ref=selfh.st"><strong>streaming-jukebox</strong></a>: Minimalist web server for streaming music</li><li><a href="https://github.com/markrai/squadcast?ref=selfh.st"><strong>SquadCast</strong></a>: Household bulletin board</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/mealie-recipes/mealie?ref=selfh.st"><strong>Mealie</strong></a> <a href="https://github.com/mealie-recipes/mealie/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Recipes and Meals</strong>: Potential breaking changes regarding new features for users leveraging the API</li><li><a href="https://github.com/medusajs/medusa?ref=selfh.st"><strong>Medusa</strong></a> <a href="https://github.com/medusajs/medusa/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Commerce</strong>: Upgrade guide with full list of breaking changes to be published in coming weeks</li><li><a href="https://github.com/ZoeyVid/NPMplus?ref=selfh.st"><strong>NPMPlus</strong></a> <a href="https://github.com/ZoeyVid/NPMplus/releases/tag/2024-10-21-r1?ref=selfh.st"><strong>v2024.10.21</strong></a> | <strong>Proxy Server</strong>: Breaking changes across host names and custom ACME servers</li><li><a href="https://github.com/Brandawg93/PeaNUT?ref=selfh.st"><strong>PeaNUT</strong></a> <a href="https://github.com/Brandawg93/PeaNUT/releases/tag/v3.0.0?ref=selfh.st"><strong>v3.0.0</strong></a> | <strong>Network Dashboard</strong>: Environment variables only populate settings on first run – all settings now managed via UI or settings.yml</li><li><a href="https://github.com/giuseppe99barchetta/SuggestArr?ref=selfh.st"><strong>SuggestArr</strong></a> <a href="https://github.com/giuseppe99barchetta/SuggestArr/releases/tag/v1.0.7?ref=selfh.st"><strong>v1.0.7</strong></a> | <strong>Recommendations</strong>: Updated environment variable names</li></ul><h2 id="latest-directory-apps">Latest Directory Apps</h2><ul><li><a href="https://github.com/LumePart/Explo?ref=selfh.st"><strong>Explo</strong></a>: Music discovery for self-hosted music platforms</li><li><a href="https://codeberg.org/pods-blitz/pods-blitz?ref=selfh.st"><strong>Pods-Blitz</strong></a>: Fast and reliable podcast publishing</li><li><a href="https://github.com/chaitin/SafeLine?ref=selfh.st"><strong>SafeLine</strong></a>: Web application firewall and proxy</li><li><a href="https://github.com/rishikanthc/Scriberr?ref=selfh.st"><strong>Scriberr</strong></a>: AI audio transcription</li><li><a href="https://github.com/semaphoreui/semaphore?ref=selfh.st"><strong>Semaphore UI</strong></a>: Modern UI and API for Ansible and other DevOps tools</li><li><a href="https://github.com/lollipopkit/flutter_server_box?ref=selfh.st"><strong>ServerBox</strong></a>: Linux server status and toolbox app</li><li><a href="https://github.com/TasmoAdmin/TasmoAdmin?ref=selfh.st"><strong>TasmoAdmin</strong></a>: Administration platform for devices flashed with Tasmota</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosted Applications and Alternatives</div><div class="kg-bookmark-description">A directory of self-hosted software and applications for easy browsing and discovery</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/size/w256h256/2023/09/favicon-1.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/2024/04/selfhst-apps-2.png" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><hr>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://danb.me/blog/poisoned-source/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beware of Poison in the Source · Danb Blog</div><div class="kg-bookmark-description">Bitwarden found itself caught in a spot of drama last week introducing non-free and non-open code into their desktop client. I don’t use Bitwarden myself, but in a similar vein I remember they launched their “Passwordless” project as open source while under non-open terms.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://danb.me/favicon.ico" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Danb Blog</span></div></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/10/24/wake-word-collective/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Help us make voice better in under a minute</div><div class="kg-bookmark-description">We’ve built a tool to allow you to help us make local and private voice better for all languages.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.home-assistant.io/images/favicon-192x192.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Mike Hansen</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.home-assistant.io/images/blog/2024-10-wake-word-collective/art.jpg" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://klein.ruhr/i-switched-from-wordpress-to-ghost/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">I switched from WordPress to Ghost</div><div class="kg-bookmark-description">1. Reasons for Switching from WordPress to Ghost Recently, a controversy surrounding WordPress founder Matt Mullenweg has caused unrest within the community. At the center of the conflict is the hosting provider WP Engine, which Mullenweg accused of benefiting from the open-source nature of WordPress without contributing enough back to</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://klein.ruhr/content/images/size/w256h256/2024/10/favicon-1.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Mattthias Klein | homelab, self hosting, open source software</span><span class="kg-bookmark-publisher">Matthias Klein</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://images.unsplash.com/photo-1499244571948-7ccddb3583f1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGNoYW5nZXxlbnwwfHx8fDE3Mjk1MjM2OTh8MA&ixlib=rb-4.0.3&q=80&w=2000" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://medium.com/@dispatchtvdev/dispatch-launcher-for-android-tv-google-tv-v1-stability-release-trial-reset-a796d256f79b?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Dispatch Launcher for Android TV & Google TV: V1 Stability Release + Trial Reset</div><div class="kg-bookmark-description">Hi everyone! I’m the developer of Dispatch, a recently released launcher for Android TV & Google TV devices.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://miro.medium.com/v2/resize:fill:304:304/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Medium</span><span class="kg-bookmark-publisher">Paul</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://miro.medium.com/v2/resize:fit:1200/1*5V-DJ-tIXOPt1bzucwpgMg.png" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-multi-scrobbler">Content Spotlight: Multi-Scrobbler</h2><p>Meet <a href="https://github.com/foxxmd/multi-scrobbler?ref=selfh.st"><strong>Multi-Scrobbler</strong></a>, a centralized platform for scrobbling music listens from a variety of sources to a select number of supported clients. Developed for users who digest audio content from multiple platforms (self-hosted or hosted), <strong>Multi-Scrobbler</strong> aims to be a one-stop-shop for tracking and capturing listening statistics to a central location while also providing a web interface for basic stats and controls. <a href="https://foxxmd.github.io/multi-scrobbler/docs/configuration/?ref=selfh.st#source-configurations">Sources</a> include Plex, Tautulli, Spotify, Jellyfin, Subsonic, YouTube Music, Kodi, and VLC, while <a href="https://foxxmd.github.io/multi-scrobbler/docs/configuration/?ref=selfh.st#client-configurations">clients</a> include Maloja, Last.fm, and Listenbrainz.</p><p><strong>Multi-Scrobbler</strong> can be <a href="https://foxxmd.github.io/multi-scrobbler/docs/installation/?ref=selfh.st">installed</a> via bare metal or Docker and supports both environment variables and a local file for service configuration.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-multi-scrobbler.webp" alt="This Week in Self-Hosted (25 October 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://github.com/foxxmd/multi-scrobbler?ref=selfh.st" rel="noreferrer"><strong>Source Code</strong></a>, <a href="https://foxxmd.github.io/multi-scrobbler/?ref=selfh.st" rel="noreferrer"><strong>Docs</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=UBLypfM9U-g&ref=selfh.st"><strong>SearXNG: Your Private Search Engine - Docker Tutorial</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=1vFl4YBy_oE&ref=selfh.st"><strong>Secure Your CCTV Footage Before It's Stolen!</strong></a> | Jim's Garage</li><li><a href="https://www.youtube.com/watch?v=BmpzgcslQRQ&ref=selfh.st"><strong>NAS OS Showdown! // TrueNAS vs Unraid</strong></a> | Christian Lempa</li></ul><h2 id="what-im-listening-to">What I'm Listening To</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nextcloud.com/blog/nextcloud-in-government-insights-from-sven-thomsen-schleswig-holsteins-cio/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Open source and Nextcloud in government: Insights from Sven Thomsen, Schleswig-Holstein’s CIO - Nextcloud</div><div class="kg-bookmark-description">In this episode, we explore how open source solutions are revolutionizing the way governments work, from collaboration and knowledge sharing to digital sovereignty and artificial intelligence. Sven shares the factors that influenced their decision to adopt open source solutions, their implementation strategies along the way, and lessons learned from the adoption of open source in Munich.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://nextcloud.com/c/uploads/2022/03/favicon.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">Nextcloud</span><span class="kg-bookmark-publisher">Brent Gervais</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nextcloud.com/c/uploads/2024/10/Nextcloud-podcast-Open-source-government-Schleswig-Holstein.png" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="command-line-corner-ctrl-p">Command Line Corner: Ctrl + P</h2><p>Use <strong>Ctrl + P</strong> to cycle through the command line history without having to move your fingers from the default typing position.</p>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.theverge.com/2024/10/18/24273448/wp-engine-injunction-matt-mullenweg-wordpress-resources?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">WP Engine asks court to stop Matt Mullenweg from blocking access to WordPress resources</div><div class="kg-bookmark-description">The WordPress fight is heating up.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.theverge.com/icons/apple_touch_icon.png" alt="This Week in Self-Hosted (25 October 2024)"><span class="kg-bookmark-author">The Verge</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.vox-cdn.com/thumbor/tWjQQaylQ8nk9vYTD8VvoVPM1qk=/0x0:2040x1360/1200x628/filters:focal(1020x680:1021x681)/cdn.vox-cdn.com/uploads/chorus_asset/file/25654311/STK302_WORDPRESS_A.jpg" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:13;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:3:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:34:"2024 Self-Host User Survey Results";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:54:"Visualized results from the 2024 Self-Host User Survey";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:37:"https://selfh.st/survey/2024-results/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"670a5859ca4b6f000199d153";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:7:"Surveys";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Sun, 20 Oct 2024 17:46:40 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:95495:"
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://heyform.net/?utm_source=selfh.st&utm_medium=referral&utm_campaign=survey" data-umami-event="survey-sponsor-post-heyform" style="text-decoration: none !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 20px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">HeyForm</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/icons/png/heyform.png" style="width: 40px; height: auto;">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Thanks to all who participated in the <a href="https://selfh.st/survey/2024/" rel="noreferrer"><strong>2024 Self-Host User Survey</strong></a>! In total, the survey received ~3,700 responses, which is almost double last year's participation. </p><p>Throughout the duration of the survey, I was also able to collect a lot of great feedback from participants regarding enhancements and improvements for next year's survey. If you have any further feedback, feel free to <a href="https://selfh.st/contact" rel="noreferrer"><strong>reach out</strong></a>!</p><p>The final results have been aggregated and visualized below using <a href="https://www.chartjs.org/?ref=selfh.st">Chart.js</a>. </p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">🚀</div><div class="kg-callout-text">If you missed it, I discussed the results of this survey via livestream with DB Tech on YouTube. <a href="https://www.youtube.com/live/AYqFrrG2ajM?ref=selfh.st"><b><strong style="white-space: pre-wrap;">Check it out</strong></b></a> if you'd like to hear us chat about them with the community!</div></div><hr><h2 id="environment">Environment</h2>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<div class="survey-question">Do you self-host for personal or enterprise purposes?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 275px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="personal-enterprise"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataPersonalEnterprise = {
|
|
labels: [
|
|
'Personal',
|
|
'Enterprise',
|
|
'Both'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3036,13,606],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartPersonalEnterprise = new Chart("personal-enterprise", {
|
|
type: 'bar',
|
|
data: dataPersonalEnterprise,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Approximately how many unique users are registered across your applications?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="unique-users"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataUniqueUsers = {
|
|
labels: [
|
|
'1 user',
|
|
'2 users',
|
|
'3 users',
|
|
'4 users',
|
|
'5 users',
|
|
'6 users',
|
|
'7 users',
|
|
'8 users',
|
|
'9 users',
|
|
'10 users',
|
|
'11-20 users',
|
|
'21+ users',
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [764,933,501,367,378,158,65,83,21,104,179,102],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartUniqueUsers = new Chart("unique-users", {
|
|
type: 'bar',
|
|
data: dataUniqueUsers,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Why do you self-host?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="why-self-host"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataWhySelfHost = {
|
|
labels: [
|
|
'Hobby',
|
|
'Privacy',
|
|
'Education',
|
|
'Flexibility',
|
|
'Cost',
|
|
'Convenience',
|
|
'Business',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3466,3072,2334,2186,2073,2009,319,81],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartWhySelfHost = new Chart("why-self-host", {
|
|
type: 'bar',
|
|
data: dataWhySelfHost,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Select the hardware option(s) used to deploy your self-hosted software.</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="hardware"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataHardware = {
|
|
labels: [
|
|
'Low-powered device',
|
|
'Consumer hardware',
|
|
'Desktop PC',
|
|
'Custom build',
|
|
'Enterprise hardware',
|
|
'Server cluster',
|
|
'Laptop',
|
|
'Cloud VPS',
|
|
'Mobile device',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1998,1675,1311,1296,822,539,439,97,91,48],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartHardware = new Chart("hardware", {
|
|
type: 'bar',
|
|
data: dataHardware,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you deploy a network-attached storage device (NAS)?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="deploy-nas"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDeployNAS = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2303,1352],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDeployNAS = new Chart("deploy-nas", {
|
|
type: 'bar',
|
|
data: dataDeployNAS,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you avoid self-hosting sensitive or important data? (Passwords, photos, etc.)</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="sensitive-data"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataSensitiveData = {
|
|
labels: [
|
|
'No',
|
|
'Yes'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3025,630],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartSensitiveData = new Chart("sensitive-data", {
|
|
type: 'bar',
|
|
data: dataSensitiveData,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which operating system(s) are installed on your server(s)?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 360px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="operating-system"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataOperatingSystem = {
|
|
labels: [
|
|
'Linux',
|
|
'Proxmox',
|
|
'Raspberry Pi OS',
|
|
'TrueNAS',
|
|
'Unraid',
|
|
'Windows Desktop',
|
|
'Windows Server',
|
|
'BSD',
|
|
'macOS',
|
|
'ESXi',
|
|
'DiskStation Manager',
|
|
'Open Media Vault',
|
|
'XCP-ng',
|
|
'Home Assistant OS',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3170,1579,990,529,392,340,231,225,127,112,106,42,20,16,72],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartOperatingSystem = new Chart("operating-system", {
|
|
type: 'bar',
|
|
data: dataOperatingSystem,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which backup strategies have you deployed for your self-hosted data?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 300px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="backup-strategy"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataBackupStrategy = {
|
|
labels: [
|
|
'Onsite',
|
|
'Cloud',
|
|
'Offsite',
|
|
'None'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2895,1925,862,225],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartBackupStrategy = new Chart("backup-strategy", {
|
|
type: 'bar',
|
|
data: dataBackupStrategy,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which cloud storage service(s) are you subscribed to for backups?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 385px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="backup-cloud"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataBackupCloud = {
|
|
labels: [
|
|
'Backblaze',
|
|
'Google Drive',
|
|
'Microsoft OneDrive',
|
|
'Hetzner',
|
|
'iCloud',
|
|
'Dropbox',
|
|
'BorgBase',
|
|
'Mega',
|
|
'Proton Drive',
|
|
'iDrive',
|
|
'pCloud',
|
|
'Storj',
|
|
'Veeam',
|
|
'Cloudflare R2',
|
|
'Box',
|
|
'CrashPlan',
|
|
'Wasabi',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [593,500,309,185,176,108,75,71,49,34,30,26,25,21,20,20,20,232],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartBackupCloud = new Chart("backup-cloud", {
|
|
type: 'bar',
|
|
data: dataBackupCloud,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<hr><h2 id="containers">Containers</h2>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<div class="survey-question">Do you use containers to deploy self-hosted software?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="deploy-containers"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDeployContainers = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3501,154],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDeployContainers = new Chart("deploy-containers", {
|
|
type: 'bar',
|
|
data: dataDeployContainers,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you prefer container installations to bare metal?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="prefer-containers"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataPreferContainers = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3085,416],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartPreferContainers = new Chart("prefer-containers", {
|
|
type: 'bar',
|
|
data: dataPreferContainers,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you use an orchestration platform to deploy containers?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="orchestration-platform"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataOrchestrationPlatform = {
|
|
labels: [
|
|
'No',
|
|
'Yes'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2315,770],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartOrchestrationPlatform = new Chart("orchestration-platform", {
|
|
type: 'bar',
|
|
data: dataOrchestrationPlatform,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which container platform(s) do you use for deployment?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 300px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="container-platform"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataContainerPlatform = {
|
|
labels: [
|
|
'Docker',
|
|
'LXC',
|
|
'Podman',
|
|
'Other',
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3272,1063,369,94],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartContainerPlatform = new Chart("container-platform", {
|
|
type: 'bar',
|
|
data: dataContainerPlatform,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you deploy management software to administer your containers? (Portainer, Yacht, etc.)</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="container-manager"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataContainerManager = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1265,1050],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartContainerManager = new Chart("container-manager", {
|
|
type: 'bar',
|
|
data: dataContainerManager,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">How do you manage container updates?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 275px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="container-updates"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataContainerUpdates = {
|
|
labels: [
|
|
'Manual',
|
|
'Both',
|
|
'Automatic'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1253,676,386],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartContainerUpdates = new Chart("container-updates", {
|
|
type: 'bar',
|
|
data: dataContainerUpdates,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><hr><h2 id="networking">Networking</h2>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<div class="survey-question">If self-hosting for personal use, do you deploy a firewall aside from the router provided by your ISP? (OPNsense, pfSense, etc.)</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="deploy-firewall"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDeployFirewall = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1889,1766],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDeployFirewall = new Chart("deploy-firewall", {
|
|
type: 'bar',
|
|
data: dataDeployFirewall,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">How do you access your self-hosted software remotely?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 275px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="remote-access"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataRemoteAccess = {
|
|
labels: [
|
|
'VPN',
|
|
'Reverse Proxy',
|
|
'Forwarded Ports',
|
|
'Only via LAN',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2815,2298,840,519,19],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartRemoteAccess = new Chart("remote-access", {
|
|
type: 'bar',
|
|
data: dataRemoteAccess,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which web server(s) do you deploy for proxied services?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="web-server"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataWebServer = {
|
|
labels: [
|
|
'NGINX Proxy Manager',
|
|
'NGINX',
|
|
'Traefik',
|
|
'Cloudflare Tunnels',
|
|
'Caddy',
|
|
'Apache',
|
|
'HAProxy',
|
|
'SWAG',
|
|
'Zoraxy',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1138,1033,881,705,661,310,181,152,24,57],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartWebServer = new Chart("web-server", {
|
|
type: 'bar',
|
|
data: dataWebServer,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you utilize a custom domain for your self-hosted applications?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="custom-domain"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataCustomDomain = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3246,409],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartCustomDomain = new Chart("custom-domain", {
|
|
type: 'bar',
|
|
data: dataCustomDomain,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which registrar(s) do you purchase or lease your custom domains from?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 375px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="domain-registrar"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDomainRegistrar = {
|
|
labels: [
|
|
'Cloudflare',
|
|
'Namecheap',
|
|
'Porkbun',
|
|
'DuckDNS',
|
|
'OVH',
|
|
'GoDaddy',
|
|
'Google Domains',
|
|
'Gandi',
|
|
'IONOS',
|
|
'Hetzner',
|
|
'Netcup',
|
|
'Strato',
|
|
'Hover',
|
|
'INWX',
|
|
'NameSilo',
|
|
'DreamHost',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1109,677,471,192,178,130,119,93,74,73,65,52,45,42,37,26,650],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDomainRegistrar = new Chart("domain-registrar", {
|
|
type: 'bar',
|
|
data: dataDomainRegistrar,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: Overall, there were 253 individual domain providers submitted as responses to this question. The chart above categorizes any with fewer than 25 as 'Other', which in total consists of 237 providers across 650 responses.</div></div><p></p><hr><h2 id="software">Software</h2>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<div class="survey-question">Are you self-hosting any components of an e-mail server?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="email-server"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataEmailServer = {
|
|
labels: [
|
|
'No',
|
|
'Yes'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3062,593],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartEmailServer = new Chart("email-server", {
|
|
type: 'bar',
|
|
data: dataEmailServer,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which e-mail server components are you self-hosting?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 300px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="email-components"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataEmailComponents = {
|
|
labels: [
|
|
'Sending',
|
|
'Receiving',
|
|
'Client'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [534,489,355],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartEmailComponents = new Chart("email-components", {
|
|
type: 'bar',
|
|
data: dataEmailComponents,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which (if any) of the platforms below do you deploy to stream media content?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="media-server"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataMediaServer = {
|
|
labels: [
|
|
'Jellyfin',
|
|
'Plex',
|
|
'AudioBookshelf',
|
|
'Navidrome',
|
|
'Kodi',
|
|
'Emby',
|
|
'Subsonic',
|
|
'PeerTube',
|
|
'Lightweight Music Server',
|
|
'Ampache',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1969,1281,672,497,278,133,98,76,28,21,218],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartMediaServer = new Chart("media-server", {
|
|
type: 'bar',
|
|
data: dataMediaServer,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: The chart above omits platforms with fewer than 20 responses.</div></div>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which (if any) of the platforms below do you deploy for remote file storage, access, or syncing?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="file-sync"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataFileSync = {
|
|
labels: [
|
|
'Nextcloud',
|
|
'Syncthing',
|
|
'FileBrowser',
|
|
'Seafile',
|
|
'Synology',
|
|
'ownCloud',
|
|
'FileStash',
|
|
'SFTPGo',
|
|
'FileRun',
|
|
'Resilio',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1309,1077,492,118,102,83,28,21,20,20,193],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartFileSync = new Chart("file-sync", {
|
|
type: 'bar',
|
|
data: dataFileSync,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: The chart above omits platforms with fewer than 15 responses.</div></div>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which (if any) of the platforms below do you deploy for documentation or note-taking?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 500px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="documentation-notes"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDocumentationNotes = {
|
|
labels: [
|
|
'Obsidian',
|
|
'BookStack',
|
|
'Nextcloud Notes',
|
|
'Joplin',
|
|
'Wiki.js',
|
|
'Trilium',
|
|
'Memos',
|
|
'DokuWiki',
|
|
'Logseq',
|
|
'Outline',
|
|
'Docmost',
|
|
'HedgeDoc',
|
|
'SilverBullet',
|
|
'AFFiNE',
|
|
'StandardNotes',
|
|
'AppFlowy',
|
|
'AnyType',
|
|
'Docusaurus',
|
|
'TiddlyWiki',
|
|
'MediaWiki',
|
|
'MkDocs',
|
|
'SiYuan',
|
|
'FlatNotes',
|
|
'XWiki',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [686,407,381,301,211,186,179,127,114,113,76,70,63,54,38,34,32,32,30,22,20,19,16,11,124],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDocumentationNotes = new Chart("documentation-notes", {
|
|
type: 'bar',
|
|
data: dataDocumentationNotes,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: The chart above omits platforms with fewer than 10 responses.</div></div>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you deploy any self-hosted software for smart home or home automation purposes?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="smart-home"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataSmartHome = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2184,1471],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartSmartHome = new Chart("smart-home", {
|
|
type: 'bar',
|
|
data: dataSmartHome,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which smart home communication standards and protocols are you utilizing in your self-hosted ecosystem?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="home-protocols"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataHomeProtocols = {
|
|
labels: [
|
|
'WiFi',
|
|
'Zigbee',
|
|
'MQTT',
|
|
'Bluetooth',
|
|
'ESP',
|
|
'Z-Wave',
|
|
'Matter',
|
|
'NFC',
|
|
'Thread',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1906,1407,1194,831,714,440,362,271,227,22],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartHomeProtocols = new Chart("home-protocols", {
|
|
type: 'bar',
|
|
data: dataHomeProtocols,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Do you deploy any self-hosted ActivityPub platforms?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="host-activitypub"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataHostActivityPub = {
|
|
labels: [
|
|
'No',
|
|
'Yes'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1970,214],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartHostActivityPub = new Chart("host-activitypub", {
|
|
type: 'bar',
|
|
data: dataHostActivityPub,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Which ActivityPub platform(s) do you deploy?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="activitypub-platform"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataActivityPubPlatform = {
|
|
labels: [
|
|
'Mastodon',
|
|
'PeerTube',
|
|
'Lemmy',
|
|
'GoToSocial',
|
|
'Pixelfed',
|
|
'Akkoma',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [116,39,35,26,20,8,48],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartActivityPubPlatform = new Chart("activitypub-platform", {
|
|
type: 'bar',
|
|
data: dataActivityPubPlatform,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: The chart above omits platforms with fewer than 5 responses.</div></div>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Are you self-hosting any game servers?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="deploy-game"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDeployGame = {
|
|
labels: [
|
|
'No',
|
|
'Yes'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2471,1184],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDeployGame = new Chart("deploy-game", {
|
|
type: 'bar',
|
|
data: dataDeployGame,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">List the games you're deploying a game server for.</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 450px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="game-server"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataGameServer = {
|
|
labels: [
|
|
'Minecraft',
|
|
'Satisfactory',
|
|
'Valheim',
|
|
'Factorio',
|
|
'Palworld',
|
|
'Terraria',
|
|
'7 Days to Die',
|
|
'Project Zomboid',
|
|
'ARK',
|
|
'Counter-Strike',
|
|
'Arma',
|
|
'V Rising',
|
|
'Minetest',
|
|
'Enshrouded',
|
|
'Assetto Corsa',
|
|
'Space Engineers',
|
|
'Foundry VTT',
|
|
'Vintage Story',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [911,157,122,117,78,78,40,39,32,32,32,31,23,20,18,18,13,10,287],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartGameServer = new Chart("game-server", {
|
|
type: 'bar',
|
|
data: dataGameServer,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: The chart above omits platforms with fewer than 10 responses.</div></div>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">How do you deploy databases for self-hosted applications?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 300px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="deploy-database"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDeployDatabase = {
|
|
labels: [
|
|
'Docker - Individual',
|
|
'Docker - Shared',
|
|
'Bare Metal - Shared',
|
|
'Bare Metal - Individual'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2587,553,277,238],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDeployDatabase = new Chart("deploy-database", {
|
|
type: 'bar',
|
|
data: dataDeployDatabase,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">What is your favorite self-hosted application?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 625px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="favorite-app"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataFavoriteApp = {
|
|
labels: [
|
|
'Jellyfin',
|
|
'Home Assistant',
|
|
'Plex',
|
|
'Immich',
|
|
'Vaultwarden',
|
|
'Nextcloud',
|
|
'*arr Stack',
|
|
'Paperless-ngx',
|
|
'AudioBookshelf',
|
|
'Gitea',
|
|
'Pi-Hole',
|
|
'Navidrome',
|
|
'Proxmox',
|
|
'Miniflux',
|
|
'Syncthing',
|
|
'FreshRSS',
|
|
'Homepage',
|
|
'Forgejo',
|
|
'Actual Budget',
|
|
'Emby',
|
|
'AdGuard Home',
|
|
'Mealie',
|
|
'Authentik',
|
|
'GitLab',
|
|
'Matrix',
|
|
'Firefly III',
|
|
'n8n',
|
|
'Uptime Kuma',
|
|
'Frigate NVR',
|
|
'Tiny Tiny RSS',
|
|
'Trilum'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [493,461,323,273,213,169,111,93,86,53,44,36,36,35,35,34,34,32,28,25,23,23,19,18,18,17,16,16,15,15,15],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartFavoriteApp = new Chart("favorite-app", {
|
|
type: 'bar',
|
|
data: dataFavoriteApp,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Additional Commentary</strong></b>: Overall, there were ~320 individual pieces of software submitted as responses to this question. The chart above omits any applications that received fewer than 15. I've decided to omit an 'Other' category for visualization purposes, as it consists of a staggering 288 applications across 681 responses.</div></div><p></p><hr><h2 id="demographics">Demographics</h2>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<div class="survey-question">What is your age range?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="age-range"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataAgeRange = {
|
|
labels: [
|
|
'10-19 years-old',
|
|
'20-29 years-old',
|
|
'30-39 years-old',
|
|
'40-49 years-old',
|
|
'50-59 years-old',
|
|
'60-69 years-old',
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [117,1093,1328,676,223,32,2],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartAgeRange = new Chart("age-range", {
|
|
type: 'bar',
|
|
data: dataAgeRange,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">What is your gender?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 275px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="gender"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataGender = {
|
|
labels: [
|
|
'Man',
|
|
'Woman',
|
|
'Non-Binary',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [3305,82,62,7],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartGender = new Chart("gender", {
|
|
type: 'bar',
|
|
data: dataGender,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
<p></p>
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">What country do you currently reside in?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
<th style="text-align:left"></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th style="text-align:left"></th>
|
|
<th></th>
|
|
<th></th>
|
|
<th style="text-align:left"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>United States</td>
|
|
<td style="text-align:left">964</td>
|
|
<td></td>
|
|
<td>Croatia</td>
|
|
<td style="text-align:left">11</td>
|
|
<td></td>
|
|
<td>Kazakhstan</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Germany</td>
|
|
<td style="text-align:left">430</td>
|
|
<td></td>
|
|
<td>Bulgaria</td>
|
|
<td style="text-align:left">10</td>
|
|
<td></td>
|
|
<td>Sri Lanka</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>UK</td>
|
|
<td style="text-align:left">208</td>
|
|
<td></td>
|
|
<td>China</td>
|
|
<td style="text-align:left">10</td>
|
|
<td></td>
|
|
<td>Luxembourg</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Canada</td>
|
|
<td style="text-align:left">187</td>
|
|
<td></td>
|
|
<td>Singapore</td>
|
|
<td style="text-align:left">10</td>
|
|
<td></td>
|
|
<td>Nepal</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>France</td>
|
|
<td style="text-align:left">171</td>
|
|
<td></td>
|
|
<td>Slovenia</td>
|
|
<td style="text-align:left">10</td>
|
|
<td></td>
|
|
<td>Panama</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Australia</td>
|
|
<td style="text-align:left">111</td>
|
|
<td></td>
|
|
<td>Turkey</td>
|
|
<td style="text-align:left">10</td>
|
|
<td></td>
|
|
<td>Puerto Rico</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Netherlands</td>
|
|
<td style="text-align:left">106</td>
|
|
<td></td>
|
|
<td>Greece</td>
|
|
<td style="text-align:left">9</td>
|
|
<td></td>
|
|
<td>Paraguay</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Spain</td>
|
|
<td style="text-align:left">77</td>
|
|
<td></td>
|
|
<td>Mexico</td>
|
|
<td style="text-align:left">9</td>
|
|
<td></td>
|
|
<td>Serbia</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Poland</td>
|
|
<td style="text-align:left">76</td>
|
|
<td></td>
|
|
<td>Estonia</td>
|
|
<td style="text-align:left">8</td>
|
|
<td></td>
|
|
<td>Taiwan</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Italy</td>
|
|
<td style="text-align:left">55</td>
|
|
<td></td>
|
|
<td>Slovakia</td>
|
|
<td style="text-align:left">8</td>
|
|
<td></td>
|
|
<td>Uruguay</td>
|
|
<td style="text-align:left">2</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Switzerland</td>
|
|
<td style="text-align:left">54</td>
|
|
<td></td>
|
|
<td>Chile</td>
|
|
<td style="text-align:left">7</td>
|
|
<td></td>
|
|
<td>Andorra</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Belgium</td>
|
|
<td style="text-align:left">53</td>
|
|
<td></td>
|
|
<td>Indonesia</td>
|
|
<td style="text-align:left">7</td>
|
|
<td></td>
|
|
<td>Bangladesh</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Sweden</td>
|
|
<td style="text-align:left">47</td>
|
|
<td></td>
|
|
<td>Lithuania</td>
|
|
<td style="text-align:left">7</td>
|
|
<td></td>
|
|
<td>Bolivia</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Brazil</td>
|
|
<td style="text-align:left">41</td>
|
|
<td></td>
|
|
<td>Vietnam</td>
|
|
<td style="text-align:left">7</td>
|
|
<td></td>
|
|
<td>Costa Rica</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>India</td>
|
|
<td style="text-align:left">41</td>
|
|
<td></td>
|
|
<td>Colombia</td>
|
|
<td style="text-align:left">4</td>
|
|
<td></td>
|
|
<td>Cuba</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Czechia</td>
|
|
<td style="text-align:left">35</td>
|
|
<td></td>
|
|
<td>Hong Kong</td>
|
|
<td style="text-align:left">4</td>
|
|
<td></td>
|
|
<td>Algeria</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Austria</td>
|
|
<td style="text-align:left">33</td>
|
|
<td></td>
|
|
<td>Israel</td>
|
|
<td style="text-align:left">4</td>
|
|
<td></td>
|
|
<td>Egypt</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>New Zealand</td>
|
|
<td style="text-align:left">33</td>
|
|
<td></td>
|
|
<td>Korea</td>
|
|
<td style="text-align:left">4</td>
|
|
<td></td>
|
|
<td>Georgia</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Portugal</td>
|
|
<td style="text-align:left">31</td>
|
|
<td></td>
|
|
<td>Malaysia</td>
|
|
<td style="text-align:left">4</td>
|
|
<td></td>
|
|
<td>Iceland</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Norway</td>
|
|
<td style="text-align:left">30</td>
|
|
<td></td>
|
|
<td>Cyprus</td>
|
|
<td style="text-align:left">3</td>
|
|
<td></td>
|
|
<td>Latvia</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Denmark</td>
|
|
<td style="text-align:left">29</td>
|
|
<td></td>
|
|
<td>Malta</td>
|
|
<td style="text-align:left">3</td>
|
|
<td></td>
|
|
<td>Montenegro</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Ireland</td>
|
|
<td style="text-align:left">25</td>
|
|
<td></td>
|
|
<td>Philippines</td>
|
|
<td style="text-align:left">3</td>
|
|
<td></td>
|
|
<td>North Macedonia</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Russia</td>
|
|
<td style="text-align:left">24</td>
|
|
<td></td>
|
|
<td>Thailand</td>
|
|
<td style="text-align:left">3</td>
|
|
<td></td>
|
|
<td>Macao</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Hungary</td>
|
|
<td style="text-align:left">19</td>
|
|
<td></td>
|
|
<td>Venezuela</td>
|
|
<td style="text-align:left">3</td>
|
|
<td></td>
|
|
<td>Maldives</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Romania</td>
|
|
<td style="text-align:left">19</td>
|
|
<td></td>
|
|
<td>UAE</td>
|
|
<td style="text-align:left">2</td>
|
|
<td></td>
|
|
<td>Peru</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Japan</td>
|
|
<td style="text-align:left">16</td>
|
|
<td></td>
|
|
<td>Bosnia</td>
|
|
<td style="text-align:left">2</td>
|
|
<td></td>
|
|
<td>Qatar</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>South Africa</td>
|
|
<td style="text-align:left">15</td>
|
|
<td></td>
|
|
<td>Belarus</td>
|
|
<td style="text-align:left">2</td>
|
|
<td></td>
|
|
<td>Saudi Arabia</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Argentina</td>
|
|
<td style="text-align:left">13</td>
|
|
<td></td>
|
|
<td>Dominican Republic</td>
|
|
<td style="text-align:left">2</td>
|
|
<td></td>
|
|
<td>San Marino</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Finland</td>
|
|
<td style="text-align:left">12</td>
|
|
<td></td>
|
|
<td>Ecuador</td>
|
|
<td style="text-align:left">2</td>
|
|
<td></td>
|
|
<td>Senegal</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Ukraine</td>
|
|
<td style="text-align:left">12</td>
|
|
<td></td>
|
|
<td>Guatemala</td>
|
|
<td style="text-align:left">2</td>
|
|
<td></td>
|
|
<td>El Salvador</td>
|
|
<td style="text-align:left">1</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">If employed, do you work in a technical field?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="employment-field"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataEmploymentField = {
|
|
labels: [
|
|
'Yes',
|
|
'No'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2780,620],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartEmploymentField = new Chart("employment-field", {
|
|
type: 'bar',
|
|
data: dataEmploymentField,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">What is your primary mobile device's operating system?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 295px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="mobile-os"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataMobileOS = {
|
|
labels: [
|
|
'Android',
|
|
'iOS',
|
|
'GrapheneOS',
|
|
'Other'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2394,1129,25,24],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartMobileOS = new Chart("mobile-os", {
|
|
type: 'bar',
|
|
data: dataMobileOS,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">Have you donated to a self-hosted project in the last year?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 250px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="donate-project"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataDonateProject = {
|
|
labels: [
|
|
'No',
|
|
'Yes'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [2141,1426],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartDonateProject = new Chart("donate-project", {
|
|
type: 'bar',
|
|
data: dataDonateProject,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 10,
|
|
right: 20,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<div class="survey-question">What is the highest level of education you have completed?</div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div style="height: 350px; border-radius: 10px 10px 10px 10px; margin: auto; width: 90%; background-color: #383f49; padding: 0px 0px 0px 0px">
|
|
<canvas id="education-level"></canvas>
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Chart.defaults.font.family = "Inter";
|
|
Chart.defaults.font.weight = "500";
|
|
|
|
const dataEducationLevel = {
|
|
labels: [
|
|
'Bachelor\'s Degree',
|
|
'Master\'s Degree',
|
|
'Some college, no degree',
|
|
'HS Diploma / GED',
|
|
'Associate\'s Degree',
|
|
'Doctorate',
|
|
'No formal schooling',
|
|
'VoTech Program'
|
|
],
|
|
datasets: [{
|
|
label: ['Number of Responses'],
|
|
data: [1294,718,527,388,180,107,60,44],
|
|
backgroundColor: [
|
|
'#4297A0',
|
|
'#D5CFE1',
|
|
'#CE6474',
|
|
'#7583b0',
|
|
],
|
|
}],
|
|
};
|
|
|
|
const chartEducationLevel = new Chart("education-level", {
|
|
type: 'bar',
|
|
data: dataEducationLevel,
|
|
options: {
|
|
maintainAspectRatio: false,
|
|
indexAxis: 'y',
|
|
barPercentage: 0.8,
|
|
layout: {
|
|
padding: {
|
|
left: 19,
|
|
right: 40,
|
|
top: 25,
|
|
bottom: 10,
|
|
},
|
|
},
|
|
scales: {
|
|
y: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
},
|
|
x: {
|
|
ticks: {
|
|
autoSkip: false,
|
|
color: '#fafafa',
|
|
font: {
|
|
size: 12,
|
|
weight: 300,
|
|
},
|
|
},
|
|
grid: {
|
|
color: '#4d4d4d',
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Number of Responses',
|
|
color: '#fafafa',
|
|
padding: 12,
|
|
font: {
|
|
size: 13,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
scaleShowValues: false,
|
|
plugins: {
|
|
title: {
|
|
display: false,
|
|
},
|
|
legend: {
|
|
display: false,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
</script>
|
|
<!--kg-card-end: html-->
|
|
";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}i:14;a:6:{s:4:"data";s:0:"";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";s:5:"child";a:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:42:"This Week in Self-Hosted (18 October 2024)";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:11:"description";a:1:{i:0;a:5:{s:4:"data";s:97:"Self-hosted news, updates, launches, and a spotlight on Formbricks, a self-hosted survey platform";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:39:"https://selfh.st/newsletter/2024-10-18/";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:4:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"670b07cfca4b6f000199d7d7";s:7:"attribs";a:1:{s:0:"";a:1:{s:11:"isPermaLink";s:5:"false";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:8:"category";a:1:{i:0;a:5:{s:4:"data";s:24:"This Week in Self-Hosted";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}s:7:"pubDate";a:1:{i:0;a:5:{s:4:"data";s:29:"Fri, 18 Oct 2024 11:43:41 GMT";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:32:"http://purl.org/dc/elements/1.1/";a:1:{s:7:"creator";a:1:{i:0;a:5:{s:4:"data";s:12:"Ethan Sholly";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:29:"http://search.yahoo.com/mrss/";a:1:{s:7:"content";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:2:{s:3:"url";s:69:"https://selfh.st/content/images/2024/07/newsletter-featured-image.png";s:6:"medium";s:5:"image";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}s:40:"http://purl.org/rss/1.0/modules/content/";a:1:{s:7:"encoded";a:1:{i:0;a:5:{s:4:"data";s:31396:"
|
|
<!--kg-card-begin: html-->
|
|
<div class="info-links" style="margin-top: 15px; margin-bottom: 17px; font-size: 15px; text-align: center"><a href="https://youtu.be/RdiUeISZG6Q?ref=selfh.st" data-umami-event="newsletter-watch-on-youtube">Watch on YouTube</a> | <a href="https://rss.com/podcasts/theselfhostcast/1709264?ref=selfh.st" data-umami-event="newsletter-listen-via-podcast">Listen via Podcast</a></div>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<a href="https://tailscale.com/?utm_source=selfhst&utm_medium=paid-referral&utm_campaign=devrel-newsletter" data-umami-event="newsletter-sponsor-headline-logo-tailscale" style="text-decoration: none !important; color: var(--color-main) !important">
|
|
<div style="display: flex; justify-content: center; align-items: center; text-align: center; font-size: 22px">
|
|
<span style="margin-right: 5px; font-weight: 300">Sponsored by </span>
|
|
<span style="margin-right: 5px; font-weight: 700">Tailscale</span>
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/icons/svg/tailscale.svg" class="newsletter-sponsor-logo" style="width: 30px; margin-left: 5px; height: auto;" alt="This Week in Self-Hosted (18 October 2024)">
|
|
</div>
|
|
</a>
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted</strong></b> is sponsored by <a href="https://tailscale.com/?utm_source=selfhst&utm_medium=paid-referral&utm_campaign=devrel-newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-name-tailscale"><b><strong style="white-space: pre-wrap;">Tailscale</strong></b></a>, which takes the headache out of configuring WireGuard tunnels between every device and service on your network. Simple, secure, and <a href="https://tailscale.com/?utm_source=selfhst&utm_medium=paid-referral&utm_campaign=devrel-newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-tailscale"><b><strong style="white-space: pre-wrap;">free for personal use</strong></b></a>.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2><img src="https://selfh.st/content/images/2024/07/newsletter-featured-image.png" alt="This Week in Self-Hosted (18 October 2024)"><p>Thanks to everyone who participated in this year's <strong>self-host user survey</strong>, which ended last Friday. I've spent the better part of this week compiling the results and will be reviewing them via <a href="https://www.youtube.com/live/AYqFrrG2ajM?ref=selfh.st">live stream on YouTube</a> this <strong>Sunday (10/20)</strong> at <strong>2pm EST </strong>with David from <a href="https://www.youtube.com/channel/UCVy16RS5eEDh8anP8j94G2A?ref=selfh.st"><strong>DB Tech</strong></a>. Feel free to stop in if you'd like to add your input (and help us ponder some of the more unusual responses) during the stream!</p><p>In other news – after having launched <a href="https://youtu.be/RdiUeISZG6Q?ref=selfh.st"><strong>This Week in Self-Hosted</strong> as a YouTube series last week</a>, I'm kicking off another new series this weekend that I'm calling <strong>Let's Deploy</strong>. Every week, I'll be livestreaming as a I deploy a self-hosted application recently featured in the newsletter while also interacting with anyone who'd like to follow along via chat.</p><p>This <strong>Saturday (10/19)</strong> at <strong>9pm EST</strong> I'll be deploying the self-hosted documentation software <a href="https://github.com/docmost/docmost?ref=selfh.st" rel="noreferrer"><strong>Docmost</strong></a>, which recently added some new features that have me itching to switch over from the platform I'm currently deploying.</p><figure class="kg-card kg-image-card"><a href="https://www.youtube.com/@selfhst?ref=selfh.st"><img src="https://selfh.st/content/images/2024/10/2024-10-19-docmost-1.png" class="kg-image" alt="This Week in Self-Hosted (18 October 2024)" loading="lazy" width="1280" height="720" srcset="https://selfh.st/content/images/size/w600/2024/10/2024-10-19-docmost-1.png 600w, https://selfh.st/content/images/size/w1000/2024/10/2024-10-19-docmost-1.png 1000w, https://selfh.st/content/images/2024/10/2024-10-19-docmost-1.png 1280w" sizes="(min-width: 720px) 720px"></a></figure><p>Happy <strong>selfh.st</strong>/ing!</p><h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ubuntu.com/blog/canonical-releases-ubuntu-24-10-oracular-oriole?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Canonical Releases Ubuntu 24.10 Oracular Oriole | Ubuntu</div><div class="kg-bookmark-description">The latest release of Ubuntu delivers a cutting edge kernel and enhanced desktop security. 10 October 2024 Today Canonical announced the release of Ubuntu 24.10, codenamed “Oracular Oriole,” available to download and install from ubuntu.com/download. Ubuntu 24.10 delivers the latest kernel, toolchains and GNOME 47 desktop environment alon […]</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://assets.ubuntu.com/v1/f38b9c7e-COF%20apple-touch-icon.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">Ubuntu</span><span class="kg-bookmark-publisher">Canonical</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://ubuntu.com/wp-content/uploads/6481/wallapaper_Oriole_colour_1920x1080-min.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.sweeting.me/s/archivebox-plugin-ecosystem-announcement?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Future of ArchiveBox - HedgeDoc</div><div class="kg-bookmark-description"><center> <img src=“https://docs.monadical.com/uploads/213b6618-e133-4b6b-a74a-267de68606aa.png” s</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://docs.monadical.com/icons/apple-touch-icon.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">HedgeDoc - Ideas grow better together</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://docs.monadical.com/icons/android-chrome-512x512.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://unraid.net/tailscale?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tailscale</div><div class="kg-bookmark-description">Unraid is an operating system that brings enterprise-class features for personal and small business applications. Configure your computer systems to maximize performance and capacity using any combination of OS, storage devices, and hardware.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://craftassets.unraid.net/static/favicon/safari-pinned-tab.svg?v=1.0" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">Unraid</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://craftassets.unraid.net/uploads/_1200x630_crop_center-center_82_none/Uncast-1400-x-800-px-1.png?mtime=1728513941" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://darnell.day/why-world-war-wordpress-will-end-with-a-zombie-fork?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Why World War WordPress Will End With A Zombie Fork</div><div class="kg-bookmark-description">Image Credit: Night of the Living Dead With WP Engine & Automattic officially waging a legal war against each other, I do not expect a…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/JFK65Lx9.jpeg" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">Darnell (Seize The Day)</span><span class="kg-bookmark-publisher">Darnell (Seize The Day)</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/XlBIseFK.jpeg" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/seanmorley15/AdventureLog?ref=selfh.st"><strong>AdventureLog</strong></a> <a href="https://github.com/seanmorley15/AdventureLog/releases/tag/v0.7.0?ref=selfh.st"><strong>v0.7.0</strong></a> | <strong>Travel Tracker</strong>: Multiple visits, categories for organization, simplified edit/creation process and experience, sharable collections, public profiles</li><li><a href="https://github.com/henrygd/beszel?ref=selfh.st"><strong>Beszel</strong></a> <a href="https://github.com/henrygd/beszel/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a> | <strong>Server Monitoring</strong>: Time-based alerts, homepage alert display, temperature and bandwidth alerts, disk usage alerts across all disks</li><li><a href="https://github.com/mag37/dockcheck?ref=selfh.st"><strong>Dockcheck</strong></a> <a href="https://github.com/mag37/dockcheck/releases/tag/v0.5.0?ref=selfh.st"><strong>v0.5.0</strong></a> | <strong>Container Updates</strong>: Added template for Discord notifications</li><li><a href="https://github.com/loganmarchione/docker-php-startpage?ref=selfh.st"><strong>docker-php-startpage</strong></a> <a href="https://github.com/loganmarchione/docker-php-startpage/releases/tag/0.8.0?ref=selfh.st"><strong>v0.8.0</strong></a> | <strong>Dashboard</strong>: Web UI improvements (including dark mode), search support</li><li><a href="https://codeberg.org/forgejo/forgejo?ref=selfh.st"><strong>Forgejo</strong></a> <a href="https://codeberg.org/forgejo/forgejo/releases/tag/v9.0.0?ref=selfh.st"><strong>v9.0.0</strong></a> | <strong>Software Forge</strong>: First release under copyleft license, go-git support removed, new foundations for quota system, SSH key authentication for push mirrors</li><li><a href="https://github.com/formbricks/formbricks?ref=selfh.st"><strong>Formbricks</strong></a> <a href="https://github.com/formbricks/formbricks/releases/tag/v2.6.0?ref=selfh.st"><strong>v2.6.0</strong></a> | <strong>Surveys and Forms</strong>: Advanced logic jumps, data table for persons, scalable app surveys, contact info question type</li><li><a href="https://github.com/superseriousbusiness/gotosocial?ref=selfh.st"><strong>GoToSocial</strong></a> <a href="https://github.com/superseriousbusiness/gotosocial/releases/tag/v0.17.0?ref=selfh.st"><strong>v0.17.0</strong></a> | <strong>ActivityPub Server</strong>: Interaction policies, support for additional media types, audio player, header/avatar alt text, conversations view, import/export CSV files, exclusive lists, show/hide posts</li><li><a href="https://github.com/hoarder-app/hoarder?ref=selfh.st"><strong>Hoarder</strong></a> <a href="https://github.com/hoarder-app/hoarder/releases/tag/v0.18.0?ref=selfh.st"><strong>v0.18.0</strong></a> | <strong>Bookmarks</strong>: Customizable tagging rules, updated UI, selective full-page archives, infinite scrolling, additional bulk actions</li><li><a href="https://github.com/gethomepage/homepage?ref=selfh.st"><strong>Homepage</strong></a> <a href="https://github.com/gethomepage/homepage/releases/tag/v0.9.11?ref=selfh.st"><strong>v0.9.11</strong></a> | <strong>Dashboard</strong>: Vikunja service widget, fix for Immich v1.118.0 breaking changes</li><li><a href="https://github.com/immich-app/immich?ref=selfh.st"><strong>Immich</strong></a> <a href="https://github.com/immich-app/immich/releases/tag/v1.118.0?ref=selfh.st"><strong>v1.118.0</strong></a> | <strong>Photos and Videos</strong>: New port, removed API endpoints, mobile UI improvements, refresh face detection, edit photos color filters, time zone improvements</li><li><a href="https://github.com/Fallenbagel/jellyseerr?ref=selfh.st"><strong>Jellyseerr</strong></a> <a href="https://github.com/Fallenbagel/jellyseerr/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Media Requests</strong>: Environment variable for API key, status filter for TV shows, delete from Sonarr/Radarr, blacklist media, new setup page</li><li><a href="https://github.com/manyfold3d/manyfold?ref=selfh.st"><strong>Manyfold</strong></a> <a href="https://github.com/manyfold3d/manyfold/releases/tag/v0.83.0?ref=selfh.st"><strong>v0.83.0</strong></a> | <strong>3D Assets</strong>: Experimental OIDC support, site customization (name, tagline, logo), file indexing</li><li><a href="https://github.com/maybe-finance/maybe?ref=selfh.st"><strong>Maybe</strong></a> <a href="https://github.com/maybe-finance/maybe/releases/tag/v0.1.0?ref=selfh.st"><strong>v0.1.0</strong></a> | <strong>Personal Finances</strong>: First production-ready release</li><li><a href="https://github.com/OliveTin/OliveTin?ref=selfh.st"><strong>OliveTin</strong></a> <a href="https://github.com/OliveTin/OliveTin/releases/tag/2024.10.14?ref=selfh.st"><strong>v2024.10.14</strong></a>/<a href="https://github.com/OliveTin/OliveTin/releases/tag/2024.10.17?ref=selfh.st" rel="noreferrer"><strong>17</strong></a> | <strong>Command Interface</strong>: Oauth2, local user login, local auth, login screen, email argument type, custom navigation links</li><li><a href="https://github.com/IgnisDa/ryot?ref=selfh.st"><strong>Ryot</strong></a> <a href="https://github.com/IgnisDa/ryot/releases/tag/v7.6.0?ref=selfh.st"><strong>v7.6.0</strong></a> | <strong>Tracking</strong>: New generic JSON integration, decrease Docker image size and memory footprint, configurable watch providers for media types</li><li><a href="https://github.com/SquirrelCorporation/SquirrelServersManager?ref=selfh.st"><strong>Squirrel Servers Manager</strong></a> <a href="https://github.com/SquirrelCorporation/SquirrelServersManager/releases/tag/v0.1.20?ref=selfh.st"><strong>v0.1.20</strong></a> | <strong>Container Management</strong>: Docker Compose WYSIWYG editor, password-less SSH authentication, container UI and feature improvements</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/jl94x4/ColleXions?ref=selfh.st"><strong>ColleXions</strong></a>: Automated collection pinning in Plex</li><li><a href="https://github.com/ImPot8o/e2ee-chat-room?ref=selfh.st"><strong>e2ee-chat-room</strong></a>: Simple end-to-end encrypted chat room</li><li><a href="https://github.com/Fladder-App/Fladder?ref=selfh.st"><strong>Fladder</strong></a>: Simple Jellyfin frontend</li><li><a href="https://github.com/rare-magma/guitos?ref=selfh.st"><strong>Guitos</strong></a>: Personal budgeting app</li><li><a href="https://github.com/dendianugerah/hooknhold?ref=selfh.st"><strong>HooknHold</strong></a>: Simple visual bookmark manager</li><li><a href="https://github.com/homebrewltd/ichigo?ref=selfh.st"><strong>Ichigo</strong></a>: Local real-time voice AI</li><li><a href="https://github.com/josephdc96/ProxTag?ref=selfh.st"><strong>ProxTag</strong></a>: Proxmox manager for price tag-sized displays</li><li><a href="https://github.com/hamzasaleem2/s3oosh?ref=selfh.st"><strong>S3oosh</strong></a>: S3 drag-and-drop uploader</li><li><a href="https://github.com/shun-liang/yt2doc?ref=selfh.st"><strong>yt2doc</strong></a>: Transcribe online video and audio to readable Markdown documents</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://codeberg.org/forgejo/forgejo?ref=selfh.st"><strong>Forgejo</strong></a> <a href="https://codeberg.org/forgejo/forgejo/releases/tag/v9.0.0?ref=selfh.st"><strong>v9.0.0</strong></a>: OIDC integration updates, token scope changes, removal of go-git backend for manual builds</li><li><a href="https://github.com/immich-app/immich?ref=selfh.st"><strong>Immich</strong></a> <a href="https://github.com/immich-app/immich/releases/tag/v1.118.0?ref=selfh.st"><strong>v1.118.0</strong></a>: New internal port, deprecated API endpoints, removed deprecated <em>start.sh</em> arguments</li><li><a href="https://github.com/Fallenbagel/jellyseerr?ref=selfh.st"><strong>Jellyseerr</strong></a> <a href="https://github.com/Fallenbagel/jellyseerr/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a>: Deprecated JELLYFIN_TYPE variable, authentication updates, dropped support for armv7</li><li><a href="https://github.com/stumpapp/stump?ref=selfh.st"><strong>Stump</strong></a> <a href="https://github.com/stumpapp/stump/releases/tag/v0.0.7?ref=selfh.st"><strong>v0.0.7</strong></a>: Upgrade requires database migration actions</li></ul><h2 id="latest-directory-apps">Latest Directory Apps</h2><ul><li><a href="https://github.com/seanmorley15/AdventureLog?ref=selfh.st"><strong>AdventureLog</strong></a>: Travel tracker and trip planner</li><li><a href="https://github.com/ArchiveBox/ArchiveBox?ref=selfh.st"><strong>ArchiveBox</strong></a>: Open-soure web archiving</li><li><a href="https://github.com/nesaku/BiblioReads?ref=selfh.st"><strong>BiblioReads</strong></a>: Privacy frontend to Goodreads</li><li><a href="https://github.com/MauriceNino/dashdot?ref=selfh.st"><strong>dash.</strong></a>: Modern server dashboard</li><li><a href="https://github.com/loganmarchione/docker-php-startpage?ref=selfh.st"><strong>docker-php-startpage</strong></a>: PHP-based startpage in Docker</li><li><a href="https://github.com/evcc-io/evcc?ref=selfh.st"><strong>evcc</strong></a>: Extensible EV charge controller and management system</li><li><a href="https://github.com/Fladder-App/Fladder?ref=selfh.st"><strong>Fladder</strong></a>: Simple Jellyfin frontend</li><li><a href="https://github.com/searxng/searxng?ref=selfh.st"><strong>SearXNG</strong></a>: Privacy-respecting metasearch engine</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/apps/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosted Applications and Alternatives</div><div class="kg-bookmark-description">A directory of self-hosted software and applications for easy browsing and discovery</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/size/w256h256/2023/09/favicon-1.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/2024/04/selfhst-apps-2.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><hr>
|
|
<!--kg-card-begin: html-->
|
|
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Help keep the newsletter (and me) running ☕</strong></b><br><br><b><strong style="white-space: pre-wrap;">This Week in Self-Hosted </strong></b>is an independent publication supported by the self-hosted community. Consider making a <a href="https://selfh.st/#/portal/support" rel="noreferrer" data-umami-event="support-request-tip"><b><strong style="white-space: pre-wrap;">one-time donation</strong></b></a> (no account required), <a href="https://www.buymeacoffee.com/selfhst?ref=selfh.st" rel="noreferrer" data-umami-event="support-request-coffee"><b><strong style="white-space: pre-wrap;">buying me a coffee</strong></b></a>, signing up for a monthly donation <a href="https://selfh.st/#/portal/signup" rel="noreferrer" data-umami-event="support-request-selfhst"><b><strong style="white-space: pre-wrap;">on the site</strong></b></a>, or <a href="https://selfh.st/sponsor/" data-umami-event="support-request-sponsor"><b><strong style="white-space: pre-wrap;">sponsoring</strong></b></a> the newsletter to help offset the costs associated with running the publication.</div></div>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="more-from-selfhst">More from selfh.st</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/cast/episode-6/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Self-Host Cast, Episode 6: Paulus Schoutsen (Home Assistant)</div><div class="kg-bookmark-description">Join me as I sit down for a casual discussion with Paulus Schoutsen, the founder of Home Assistant and The Open Home Foundation</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-9.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/selfh-st-logo-banner-3.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/alternatives/google-analytics/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Google Analytics</div><div class="kg-bookmark-description">Self-hosted alternatives for the popular web analytics platform</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/size/w256h256/2023/09/favicon-1.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">selfh.st</span><span class="kg-bookmark-publisher">Ethan Sholly</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/2024/05/google-analytics.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="community-content">Community Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://akashrajpurohit.com/blog/pairdrop-transfer-files-between-devices-seamlessly/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PairDrop — Transfer files between devices seamlessly</div><div class="kg-bookmark-description">PairDrop is a self-hosted file transfer service that allows you to transfer files between devices seamlessly. It is a great alternative to services like Airdrop, Snapdrop, and ShareDrop.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/safari-pinned-tab-1.svg" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">Akash Rajpurohit</span><span class="kg-bookmark-publisher">Akash Rajpurohit</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/pairdrop-transfer-files-between-devices-seamlessly.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/meonkeys/docker-isolator?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - meonkeys/docker-isolator</div><div class="kg-bookmark-description">Contribute to meonkeys/docker-isolator development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/pinned-octocat-093da3e6fa40-3.svg" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">meonkeys</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/docker-isolator" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/standard-notes-to-notesnook/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">I Switched from Standard Notes to Notesnook: My Thoughts!</div><div class="kg-bookmark-description">It was time for me to try a new note-taking app that suits my requirements. Let’s give Notesnook a try!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">It's FOSS News</span><span class="kg-bookmark-publisher">Sourav Rudra</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2024/10/notesnook-standardnotes-switch.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://bitwarden.com/blog/security-vendors-join-forces-to-make-passkeys-more-portable-for-everyone/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Security vendors join forces to make passkeys more portable for everyone | Bitwarden Blog</div><div class="kg-bookmark-description">FIDO Alliance publishes industry standards for consumers to easily and securely transfer passkeys across platforms and password managers.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/icon-192x192-2.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">Bitwarden</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/CXP_announcement.png" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="content-spotlight-formbricks">Content Spotlight: Formbricks</h2><p>Meet <a href="https://github.com/formbricks/formbricks?ref=selfh.st"><strong>Formbricks</strong></a>, a self-hosted survey platform for gathering feedback across apps, websites, links, and e-mail. An alternative to hosted services like SurveyMonkey, <strong>Formbricks</strong> features a no-code editor that makes it easy to build and customize surveys from scratch or via templates while maintaining user privacy and compliance. Additional features include advanced logic for routing based on responses, targeted surveys, shareable links, multi-user collaboration, integrations, and more.</p><p><strong>Formbricks</strong> can be installed via <a href="https://formbricks.com/docs/self-hosting/one-click?ref=selfh.st">bare metal</a> or <a href="https://formbricks.com/docs/self-hosting/docker?ref=selfh.st">Docker</a> and requires a separate PostgreSQL database for storage.</p>
|
|
<!--kg-card-begin: html-->
|
|
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-formbricks.webp" alt="This Week in Self-Hosted (18 October 2024)">
|
|
<br>
|
|
<!--kg-card-end: html-->
|
|
<p>Links: <a href="https://formbricks.com/?ref=selfh.st"><strong>Website</strong></a>, <a href="https://github.com/formbricks/formbricks?ref=selfh.st"><strong>Source Code</strong></a>, <a href="https://formbricks.com/docs/introduction/what-is-formbricks?ref=selfh.st"><strong>Docs</strong></a></p><h2 id="what-im-watching">What I'm Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=YoMWRix3w_Q&ref=selfh.st"><strong>Testing My Own Private Cloud! It's FAST!</strong></a> | Jim's Garage</li><li><a href="https://www.youtube.com/watch?v=jNeybjyxtMM&ref=selfh.st"><strong>Archive Your Digital Life with ArchiveBox</strong></a> | DB Tech</li></ul><h2 id="command-line-corner-ctrl-y">Command Line Corner: Ctrl + Y</h2><p>Use <strong>Ctrl + Y </strong>to paste the string previously added to the buffer via <strong>Ctrl + W</strong>:</p><pre><code class="language-bash">/$ docker compose up ghost_
|
|
|
|
# Ctrl + W
|
|
/$ docker compose up_
|
|
|
|
# Ctrl + Y
|
|
/$ docker compose up ghost_</code></pre>
|
|
<!--kg-card-begin: html-->
|
|
<p><em>Click </em><a href="https://selfh.st/command-line-corner/" rel="noreferrer" data-umami-event="command-line-archive"><strong><em>here</em></strong></a><em> to view an archive of commands shared in previous newsletters.</em></p>
|
|
<!--kg-card-end: html-->
|
|
<h2 id="related-news-and-content">Related News and Content</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.androidauthority.com/android-linux-terminal-app-3489887/?ref=news.itsfoss.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Google is preparing to let you run Linux apps on Android, just like Chrome OS</div><div class="kg-bookmark-description">Google is developing a Terminal app for Android that’ll let you run Linux apps. It’ll download and run Debian in a VM for you.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-7.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">Android Authority</span><span class="kg-bookmark-publisher">Mishaal Rahman</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Terminal_app_on_Android_phone.jpg" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.theverge.com/2024/10/16/24271854/discord-nexon-dmca-subpoena-copyright-piracy?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Discord says piracy subpoena would violate users’ First Amendment rights</div><div class="kg-bookmark-description">Discord says it shouldn’t have to comply with the order.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.theverge.com/icons/apple_touch_icon.png" alt="This Week in Self-Hosted (18 October 2024)"><span class="kg-bookmark-author">The Verge</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.vox-cdn.com/thumbor/3sGtZKoUYO1ws3wQzEHG6-evqBs=/0x0:2040x1360/1200x628/filters:focal(1020x680:1021x681)/cdn.vox-cdn.com/uploads/chorus_asset/file/25531732/_STK062_DISCORD_CVIRGINIA_A.jpg" alt="This Week in Self-Hosted (18 October 2024)" onerror="this.style.display = 'none'"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I'm always looking for new and existing self-hosted content to share in <strong>This Week in Self-Hosted</strong>. Reach out using the button below if you'd like to have your own content featured or have a suggestion for content types you'd like to see featured in future newsletters.</p><div class="kg-card kg-button-card kg-align-center"><a href="mailto:hello@selfh.st" class="kg-btn kg-btn-accent">Let's Talk 💌</a></div>";s:7:"attribs";a:0:{}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}s:27:"http://www.w3.org/2005/Atom";a:1:{s:4:"link";a:1:{i:0;a:5:{s:4:"data";s:0:"";s:7:"attribs";a:1:{s:0:"";a:3:{s:4:"href";s:21:"https://selfh.st/rss/";s:3:"rel";s:4:"self";s:4:"type";s:19:"application/rss+xml";}}s:8:"xml_base";s:0:"";s:17:"xml_base_explicit";b:0;s:8:"xml_lang";s:0:"";}}}}}}}}}}}}s:4:"type";i:128;s:7:"headers";a:16:{s:4:"date";s:29:"Wed, 01 Jan 2025 12:42:56 GMT";s:12:"content-type";s:34:"application/rss+xml; charset=utf-8";s:13:"cache-control";s:17:"public, max-age=0";s:16:"content-encoding";s:4:"gzip";s:4:"etag";s:37:"W/"70881-eBfNpC02iSha+YsgM+o/k1XLvbQ"";s:4:"vary";s:15:"Accept-Encoding";s:12:"x-powered-by";s:7:"Express";s:15:"cf-cache-status";s:7:"DYNAMIC";s:9:"report-to";s:225:"{endpoints:[{url:https:\/\/a.nel.cloudflare.com\/report\/v4?s=uXUDma1RjGMDT0dLnXOpavt9VPvZvWfYZcT20wWMCs7U4XmCmGo3AwU7NTuO6qu%2F8i9Xo%2FCGm94iwPtl2nIGUGnxDEAehgvOjMAhTsAP4vNVaDV7hJJ1Id1PhA%3D%3D}],group:cf-nel,max_age:604800}";s:3:"nel";s:52:"{success_fraction:0,report_to:cf-nel,max_age:604800}";s:25:"strict-transport-security";s:37:"max-age=0; includeSubDomains; preload";s:22:"x-content-type-options";s:7:"nosniff";s:6:"server";s:10:"cloudflare";s:6:"cf-ray";s:20:"8fb297943ef1e204-MRS";s:7:"alt-svc";s:17:"h3=:443; ma=86400";s:13:"server-timing";s:198:"cfL4;desc=?proto=TCP&rtt=24358&min_rtt=18153&rtt_var=14952&sent=6&recv=10&lost=0&retrans=0&sent_bytes=3400&recv_bytes=961&delivery_rate=159532&cwnd=188&unsent_bytes=0&cid=9dde1d3af61d72e1&ts=472&x=0";}s:5:"build";i:1734952776;s:13:"cache_version";i:1;s:4:"hash";s:40:"850c4e3a6acfd57cb968bdaf80b202097d36924b";s:21:"cache_expiration_time";i:1735736176;s:23:"__cache_expiration_time";i:1735736176;} |