a:6:{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:10:"Ghost 5.97";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:"Fri, 25 Oct 2024 17:12:28 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: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&amp;utm_medium=newsletter&amp;utm_campaign=selfhst&amp;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&#xA0;<a href="https://www.getgrist.com/?utm_source=this-week-in-self-hosted&amp;utm_medium=newsletter&amp;utm_campaign=selfhst&amp;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&amp;utm_medium=newsletter&amp;utm_campaign=selfhst&amp;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> &#x2013; 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&apos;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 = &apos;none&apos;"></div></a></figure><p>If you&apos;re itching for more, a few additional surveys being facilitated by the community popped up on my radar this week. I&apos;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&apos;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&#x2019;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&#x2026;</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 = &apos;none&apos;"></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&amp;image=bitwarden" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = &apos;none&apos;"></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 &#x201C;Plexclusive&#x201D; with Ghost Show, Premiering October 8th &#x2013; 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 = &apos;none&apos;"></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 &#x2013; here&#x2019;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&#x2026;</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&amp;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&amp;ssl=1" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = &apos;none&apos;"></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 &#x2013;  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 &#x2013; Mind Map, <em>stable</em> tag for containers, internationalization updates</li><li><a href="https://github.com/getwud/wud?ref=selfh.st"><strong>What&apos;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> (&#x2665;), 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 &#x2013; 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 = &apos;none&apos;"></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 &#x2615;</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 &#xB7; 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&#x2019;t use Bitwarden myself, but in a similar vein I remember they launched their &#x201C;Passwordless&#x201D; 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&#x2019;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 = &apos;none&apos;"></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&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGNoYW5nZXxlbnwwfHx8fDE3Mjk1MjM2OTh8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="This Week in Self-Hosted (25 October 2024)" onerror="this.style.display = &apos;none&apos;"></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 &amp; Google TV: V1 Stability Release + Trial Reset</div><div class="kg-bookmark-description">Hi everyone! I&#x2019;m the developer of Dispatch, a recently released launcher for Android TV &amp; 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 = &apos;none&apos;"></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&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=UBLypfM9U-g&amp;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&amp;ref=selfh.st"><strong>Secure Your CCTV Footage Before It&apos;s Stolen!</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=BmpzgcslQRQ&amp;ref=selfh.st"><strong>NAS OS Showdown! // TrueNAS vs Unraid</strong></a> | Christian Lempa</li></ul><h2 id="what-im-listening-to">What I&apos;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&#x2019;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 = &apos;none&apos;"></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 = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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: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: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&amp;utm_medium=referral&amp;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&apos;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&apos;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">&#x1F680;</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&apos;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 &apos;Other&apos;, 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&apos;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&apos;ve decided to omit an &apos;Other&apos; 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&apos;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: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: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&amp;utm_medium=paid-referral&amp;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&#xA0;<a href="https://tailscale.com/?utm_source=selfhst&amp;utm_medium=paid-referral&amp;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&#xA0;<a href="https://tailscale.com/?utm_source=selfhst&amp;utm_medium=paid-referral&amp;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&apos;s <strong>self-host user survey</strong>, which ended last Friday. I&apos;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&apos;d like to add your input (and help us ponder some of the more unusual responses) during the stream!</p><p>In other news &#x2013; 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&apos;m kicking off another new series this weekend that I&apos;m calling <strong>Let&apos;s Deploy</strong>. Every week, I&apos;ll be livestreaming as a I deploy a self-hosted application recently featured in the newsletter while also interacting with anyone who&apos;d like to follow along via chat.</p><p>This <strong>Saturday (10/19)</strong> at <strong>9pm EST</strong> I&apos;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&apos;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 &#x201C;Oracular Oriole,&#x201D; available to download and install from ubuntu.com/download. Ubuntu 24.10 delivers the latest kernel, toolchains and GNOME 47 desktop environment alon [&#x2026;]</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 = &apos;none&apos;"></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">&lt;center&gt; &lt;img src=&#x201C;https://docs.monadical.com/uploads/213b6618-e133-4b6b-a74a-267de68606aa.png&#x201D; 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 = &apos;none&apos;"></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 = &apos;none&apos;"></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 &amp; Automattic officially waging a legal war against each other, I do not expect a&#x2026;</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 = &apos;none&apos;"></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 = &apos;none&apos;"></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 &#x2615;</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 = &apos;none&apos;"></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 = &apos;none&apos;"></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 &#x2014; 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 = &apos;none&apos;"></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 = &apos;none&apos;"></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&#x2019;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&apos;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 = &apos;none&apos;"></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 = &apos;none&apos;"></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&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=YoMWRix3w_Q&amp;ref=selfh.st"><strong>Testing My Own Private Cloud! It&apos;s FAST!</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=jNeybjyxtMM&amp;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&#x2019;ll let you run Linux apps. It&#x2019;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 = &apos;none&apos;"></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&#x2019; First Amendment rights</div><div class="kg-bookmark-description">Discord says it shouldn&#x2019;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 = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:3:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:64:"The Self-Host Cast, Episode 6: Paulus Schoutsen (Home Assistant)";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:127:"Join me as I sit down for a casual discussion with Paulus Schoutsen, the founder of Home Assistant and The Open Home Foundation";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:32:"https://selfh.st/cast/episode-6/";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:"670cf397ca4b6f000199e1ca";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:18:"The Self-Host Cast";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:"Tue, 15 Oct 2024 09:05:33 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:1255:"<p>Join me as I sit down for a casual discussion about home automation, self-hosting, non-profit foundations, and other topics with Paulus Schoutsen &#x2013; the founder of Home Assistant and The Open Home Foundation.</p>
<!--kg-card-begin: html-->
<div style="align-items: center">
<iframe src="https://player.rss.com/theselfhostcast/1702443?theme=dark" style="width: 100%; height: 150px;" title="Paulus Schoutsen (Home Assistant)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"><a href="https://rss.com/podcasts/theselfhostcast/1702443/?ref=selfh.st">Paulus Schoutsen (Home Assistant) | RSS.com</a></iframe>
</div>
<!--kg-card-end: html-->
<p></p><p><strong>Episode Guest</strong>: Paulus Schoutsen</p><p><strong>Links</strong>:</p><ul><li><a href="https://www.home-assistant.io/?ref=selfh.st">Home Assistant</a></li><li><a href="https://www.openhomefoundation.org/?ref=selfh.st">Open Home Foundation</a></li><li><a href="https://www.nabucasa.com/?ref=selfh.st">Nabu Casa</a></li><li><a href="https://selfh.st/" rel="noopener noreferrer nofollow">selfh.st</a></li><li><a href="https://selfh.st/newsletter-signup/" rel="noopener noreferrer nofollow">This Week in Self-Hosted</a></li></ul>";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 (11 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:116:"Self-hosted news, updates, launches, and a spotlight on Beaver Habit Tracker - a self-hosted habit tracking 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-11/";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:"670262d994244a0001437865";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, 11 Oct 2024 11:40:39 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:27481:"
<!--kg-card-begin: html-->
<a href="https://tailscale.com/?utm_source=selfhst&amp;utm_medium=paid-referral&amp;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 (11 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&#xA0;<a href="https://tailscale.com/?utm_source=selfhst&amp;utm_medium=paid-referral&amp;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>, the zero-config solution for securely accessing your remote resources&#x2014;whether they&apos;re in the cloud or in your basement.&#xA0;<a href="https://tailscale.com/?utm_source=selfhst&amp;utm_medium=paid-referral&amp;utm_campaign=devrel-newsletter" target="_blank" rel="noreferrer" data-umami-event="newsletter-sponsor-headline-text-tailscale"><b><strong style="white-space: pre-wrap;">Get started</strong></b></a>&#xA0;and connect up to 100 devices free!</div></div>
<!--kg-card-end: html-->
<h2 id="this-week-in-self-hosted-now-on-youtube">This Week in Self-Hosted: Now on YouTube</h2><img src="https://selfh.st/content/images/2024/07/newsletter-featured-image.png" alt="This Week in Self-Hosted (11 October 2024)"><p>I&apos;m excited to publish today&apos;s newsletter as it marks the launch of a project that&apos;s been in the works for some time now &#x2013;  <strong>This Week in Self-Hosted</strong> is officially making its YouTube and podcasting debut. Starting next week, I&apos;ll be sitting down with various guests to discuss content from the newsletter and while adding color and context from our own perspectives.</p><p>The show will be published every Friday morning around 10am EST. If you&apos;re interested in checking it out, bookmark the link below or subscribe to <strong>selfh.st&apos;s</strong> channel to be notified when it&apos;s posted. </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.youtube.com/@selfhst?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">selfhst</div><div class="kg-bookmark-description">The latest in self-hosted content, news, releases, updates, events, and more</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon_144x144-3.png" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">YouTube</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/efMU_i54AF75RWlQ-L8ah-DZWc6r7Cpv3XRmBGqYJuioFAcIu_hGi7g17l11hf1NInnEOs3M-s900-c-k-c0x00ffffff-no-rj-1" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>In other news, today is the last day for responses to this year&apos;s self-host user survey. The survey officially closes at 9pm EST &#x2013; please consider completing it if you haven&apos;t already!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/survey/2024/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey</div><div class="kg-bookmark-description">An annual survey for measuring self-hosting behaviors and preferences across various topics</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-2.png" alt="This Week in Self-Hosted (11 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/2024-survey-featured-image.png" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>Happy <a href="https://selfh.st/" rel="noreferrer"><strong>selfh.st</strong></a>/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://techcrunch.com/2024/10/10/wordpress-vs-wp-engine-drama-explained/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The WordPress vs. WP Engine drama, explained | TechCrunch</div><div class="kg-bookmark-description">This story has been updated throughout with more details as the story has developed. We will continue to do so as the case and dispute are ongoing. The</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-cropped-favicon-gradient-2.png" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">TechCrunch</span><span class="kg-bookmark-publisher">Ivan Mehta</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/wordpress-v1.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.theverge.com/2024/10/9/24266419/internet-archive-ddos-attack-pop-up-message?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Internet Archive is under attack, with a breach revealing info for 31 million accounts</div><div class="kg-bookmark-description">A DDoS attack isn&#x2019;t the only problem.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple_touch_icon-1.png" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">The Verge</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/akrales_220309_4977_0014.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.theregister.com/2024/10/03/patent_shakedown_fails_as_troll/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Cloudflare beats patent troll so badly it basically gives up</div><div class="kg-bookmark-description">Networking giant pockets $225K, foe promises to stop suing and abandons IP</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1.svg" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">The Register</span><span class="kg-bookmark-publisher">Thomas Claburn</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/leonardo_ai_patent_troll_2.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="software-updates">Software Updates</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/v0.3.0?ref=selfh.st"><strong>v0.3.0</strong></a> | <strong>Flight Tracking</strong>: New map for viewing visited countries, flight info lookups, new version announcements</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.10?ref=selfh.st"><strong>v24.10</strong></a> | <strong>Documentation</strong>: New WYSIWYG editor option (alpha), advanced search term negation, browser search support via OpenSearch, R and SAS code block support, PDF timeout option</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.4.0?ref=selfh.st"><strong>v0.4.0</strong></a> | <strong>Documentation</strong>: Space deletion, space slug customization, password resets, space switching from the sidebar</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.5?ref=selfh.st"><strong>v3.5</strong></a> | <strong>Plant Management</strong>: Proxy authentication, location-specific logs, e-mail styling, additional API endpoints</li><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.13.0?ref=selfh.st"><strong>v1.0.13</strong></a> | <strong>Photo Display</strong>: Web app beta release</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.11.0?ref=selfh.st"><strong>v0.11.0</strong></a> | <strong>Image Slideshow</strong>: UI themes, new layouts, sleep mode, support for custom CSS</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.15.0?ref=selfh.st"><strong>v1.15.0</strong></a> | <strong>Container Management</strong>: Support for OIDC, UX improvements, Discord alerts, super admins, reduced image sizes</li><li><a href="https://github.com/lingarr-translate/lingarr?ref=selfh.st"><strong>Lingarr</strong></a> <a href="https://github.com/lingarr-translate/lingarr/releases/tag/0.9.0?ref=selfh.st"><strong>v0.9.0</strong></a> | <strong>Subtitles</strong>: Automated subtitle translation, improved logging, database enhancements</li><li><a href="https://github.com/mastodon/mastodon?ref=selfh.st"><strong>Mastodon</strong></a> <a href="https://github.com/mastodon/mastodon/releases/tag/v4.3.0?ref=selfh.st"><strong>v4.3.0</strong></a> | <strong>Social Network</strong>: Notification updates (moderation actions, grouping, filtering), new design for composing posts, iconography, and color palette</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.30.0?ref=selfh.st"><strong>v0.30.0</strong></a> | <strong>VPN</strong>: Access controls for network routes</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.257.0?ref=selfh.st"><strong>v0.257.0</strong></a> | <strong>No-Code Database</strong>: True Data Reflection (bases display database data without middle layers), conditional fields in form views</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.5.0?ref=selfh.st"><strong>v7.5.0</strong></a> | <strong>Tracking</strong>: Add items to collections in bulk, workout rest timer notifications, edit workouts, compact list pages</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.2.0?ref=selfh.st"><strong>v1.2.0</strong></a> | <strong>Image Sharing</strong>: New &apos;username&apos; field for login, minor UI layout updates, improved mobile UI</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.17.0?ref=selfh.st"><strong>v0.17.0</strong></a> | <strong>Jellyfin Mobile</strong>: New logo, initial support for live TV, optional sidecar for background downloads, next episode selection</li><li><a href="https://github.com/xpipe-io/xpipe?ref=selfh.st"><strong>XPipe</strong></a> <a href="https://github.com/xpipe-io/xpipe/releases/tag/12.0?ref=selfh.st"><strong>v12.0</strong></a>/<a href="https://github.com/xpipe-io/xpipe/releases/tag/12.1?ref=selfh.st" rel="noreferrer"><strong>1</strong></a> | <strong>Server Hub</strong>: Support for selfh.st/icons, sudo popups for saving files, terminal shortcuts, compress/uncompress actions, support for Windows Credential Manager as password manager</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/schech1/AppLinkr?ref=selfh.st"><strong>AppLinkr</strong></a>: Generate app store links that redirect based on device type</li><li><a href="https://github.com/aksiksi/compose2nix?ref=selfh.st"><strong>compose2nix</strong></a>: Auto-generate a NixOS config from a Docker Compose project</li><li><a href="https://github.com/varthe/Defaulterr?ref=selfh.st"><strong>Defaulterr</strong></a>: Configure default audio streams in Plex</li><li><a href="https://github.com/d3witt/dockboy?ref=selfh.st"><strong>Dock-Boy</strong></a>: Tiny deployment tool built on Docker Swarm and Caddy</li><li><a href="https://github.com/Felitendo/jellyfin-lyrics-plugin?ref=selfh.st"><strong>Jellyfin Lyrics Plugin</strong></a>: Automatically download lyrics for Jellyfin libraries</li><li><a href="https://github.com/Low-Stack-Technologies/lowstack-certify?ref=selfh.st"><strong>Low-Stack Certify</strong></a>: Automated SSL/TLS certificates</li><li><a href="https://github.com/frectonz/octopod?ref=selfh.st"><strong>Octopod</strong></a>: Web UI for Docker registries</li><li><a href="https://github.com/C-Loftus/QuickPiperAudiobook?ref=selfh.st"><strong>QuickPiperAudiobook</strong></a>: Generate audiobooks from a number of e-book formats</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/hamzasaleem2/sticky?ref=selfh.st"><strong>Sticky</strong></a>: Real-time collaborative sticky notes</li><li><a href="https://github.com/ajnart/subs?ref=selfh.st"><strong>Subs</strong></a>: Simplistic subscription cost tracker</li><li><a href="https://github.com/irnutsmurt/super_simple_ca?ref=selfh.st"><strong>Super Simple CA</strong></a>: Python script for managing certificate authorities</li><li><a href="https://github.com/Gibus21250/Wakupator/?ref=selfh.st"><strong>Wakeupator</strong></a>: Minimal machine awakener via IP spoofing</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><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.11.0?ref=selfh.st"><strong>v0.11.0</strong></a>: Requires Immich v1.117.0 or higher</li><li><a href="https://github.com/mastodon/mastodon?ref=selfh.st"><strong>Mastodon</strong></a> <a href="https://github.com/mastodon/mastodon/releases/tag/v4.3.0?ref=selfh.st"><strong>v4.3.0</strong></a>: New environment variables and updated minimum dependencies</li></ul><h2 id="latest-directory-apps">Latest Directory Apps</h2><ul><li><a href="https://github.com/ccbikai/BroadcastChannel?ref=selfh.st"><strong>BroadcastChannel</strong></a>: Convert a Telegram channel into a microblog</li><li><a href="https://github.com/Sathvik-Rao/ClipCascade?ref=selfh.st"><strong>ClipCascade</strong></a>: Lightweight utility for clipboard sync across devices</li><li><a href="https://github.com/coollabsio/coolify?ref=selfh.st"><strong>Coolify</strong></a>: Software deployment and management platform</li><li><a href="https://github.com/jhuckaby/Cronicle?ref=selfh.st"><strong>Cronicle</strong></a>: Multi-server task schedule and runner with a web interface</li><li><a href="https://github.com/formbricks/formbricks?ref=selfh.st"><strong>Formbricks</strong></a>: Open-source survey platform</li><li><a href="https://codeberg.org/Hyperpipe/Hyperpipe?ref=selfh.st"><strong>Hyperpipe</strong></a>: Privacy-respecting frontend for YouTube Music</li><li><a href="https://github.com/inventree/InvenTree?ref=selfh.st"><strong>InvenTree</strong></a>: Open-source inventory management software</li><li><a href="https://github.com/kimai/kimai?ref=selfh.st"><strong>Kimai</strong></a>: Web-based time-tracking application</li><li><a href="https://github.com/JhumanJ/OpnForm?ref=selfh.st"><strong>OpnForm</strong></a>: Beautiful open-source form builder</li><li><a href="https://github.com/TeamPiped/Piped?ref=selfh.st"><strong>Piped</strong></a>: Privacy-friendly YouTube frontend</li><li><a href="https://github.com/xpipe-io/xpipe?ref=selfh.st"><strong>XPipe</strong></a>: Access and manage server infrastructure from a local machine</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 (11 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 (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></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 &#x2615;</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.linuxserver.io/blog/better-practices-for-docker-networking?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Better Practices For Docker Networking</div><div class="kg-bookmark-description">Better Practices For Docker Networking</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/Asset-202.svg" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">linuxserver.io</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/patch.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://forums.plex.tv/t/introducing-reviews-for-movies-shows/891373?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing Reviews for Movies &amp; Shows!</div><div class="kg-bookmark-description">Today we&#x2019;re excited to launch Reviews! Any registered Plex account can now review any Movie, Show, Season, or Episode. You can also optionally flag your reviews as containing spoilers to avoid losing any friends in the process. Some important details: Reviews can be created from our Web and Mobile apps but visible on all clients. In order to review from a Personal Media library you&#x2019;ll need to enable the Sync Watch State &amp; Ratings feature. Reviews will always be accessible from the details pa&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/833e5cd753c8645af15fef9118673a310d7e286d_2_180x180.png" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">Plex Forum</span><span class="kg-bookmark-publisher">PlexInfo</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/bf4da7e4a0c1ed2fd6faf0decc0f3846e352c6fa.png" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.joinmastodon.org/2024/10/trunk-tidbits-september-2024/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Trunk &amp; Tidbits, September 2024</div><div class="kg-bookmark-description">Engineering updates from the Mastodon team for September 2024. Behind-the-scenes of the 4.3 release.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-6.ico" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">Mastodon Blog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/andy-piper.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="content-spotlight-beaver-habit-tracker">Content Spotlight: Beaver Habit Tracker</h2><p>Meet <a href="https://github.com/daya0576/beaverhabits?ref=selfh.st"><strong>Beaver Habit Tracker</strong></a>, a self-hosted habit tracking platform. Developed for tracking habits on-the-go, <strong>Beaver Habit Tracker</strong> features an intuitive and simple web interface for creating, tracking, and viewing habits. Other functionality includes data imports, exports, multiple users, calendar views, and a GitHub-styled streak view. According to the repository, a native mobile app is also planned for future development.</p><p><strong>Beaver Habit Tracker</strong> can be <a href="https://github.com/daya0576/beaverhabits?ref=selfh.st#ship-with-docker">installed via Docker</a> and comes with configuration options for storing data in a SQLite database or JSON file.</p>
<!--kg-card-begin: html-->
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-beaver-habit-tracker.webp" alt="This Week in Self-Hosted (11 October 2024)" style="width: 275px;">
<br>
<!--kg-card-end: html-->
<p>Links: <a href="https://github.com/daya0576/beaverhabits?ref=selfh.st"><strong>GitHub</strong></a>, <a href="https://beaverhabits.com/demo?ref=selfh.st"><strong>Demo</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=LuLzStcvia0&amp;ref=selfh.st"><strong>Private Video Calls with MiroTalk</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=1hFpU8CEjVE&amp;ref=selfh.st"><strong>Web Check - An OSINT Tool to Reveal Potential Website Threats</strong></a> | DB Tech</li></ul><h2 id="command-line-corner-ctrl-w">Command Line Corner: Ctrl  + W</h2><p>Use <strong>Ctrl + W</strong> to quickly remove the last word from the command line. (If you&apos;ve spent any amount of time online, you&apos;ll recognize the shorthand for this command, ^W, as a playful reference when people correct or delete something they had previously written.)</p><pre><code class="language-bash">/$ docker compose up ghost_
/$ docker compose up_</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://arstechnica.com/tech-policy/2024/10/neo-nazis-head-to-encrypted-simplex-chat-app-bail-on-telegram/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Neo-Nazis head to encrypted SimpleX Chat app, bail on Telegram</div><div class="kg-bookmark-description">App swears there&#x2019;s no way for law enforcement to track users&#x2019; identities.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-ars-logo-512_480-300x300.png" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">Ars Technica</span><span class="kg-bookmark-publisher">WIRED</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/hate-speech-1.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://techcrunch.com/2024/10/10/bluesky-joins-threads-to-court-users-frustrated-by-metas-moderation-issues/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Bluesky joins Threads to court users frustrated by Meta&#x2019;s moderation issues | TechCrunch</div><div class="kg-bookmark-description">Social networking startup Bluesky is seizing the moment. Amid ongoing moderation issues affecting X rival Instagram Threads, the decentralized X</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-cropped-favicon-gradient-3.png" alt="This Week in Self-Hosted (11 October 2024)"><span class="kg-bookmark-author">TechCrunch</span><span class="kg-bookmark-publisher">Sarah Perez</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/bluesky_media_kit_banner_4.jpg" alt="This Week in Self-Hosted (11 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:41:"This Week in Self-Hosted (4 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:118:"Self-hosted news, updates, launches, and a spotlight on Streamyfin - a simple and user-friendly Jellyfin mobile client";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-04/";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:"66fa6ac794244a00014304d9";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, 04 Oct 2024 11:50:46 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:33403:"
<!--kg-card-begin: html-->
<a href="https://www.pikapods.com/?utm_source=selfh.st&amp;utm_campaign=newsletter" data-umami-event="newsletter-sponsor-headline-logo-pikapods" style="text-decoration: none !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 (4 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&#xA0;<a href="https://www.pikapods.com/?utm_source=selfh.st&amp;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&amp;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">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 (4 October 2024)"><p>It was a busy week in self-hosted adjacent software as Borg, the popular backup platform, <a href="https://borgbackup.readthedocs.io/en/2.0.0b11/changes.html?ref=selfh.st#version-2-0-0b11-2024-09-26">added support for rclone in a recent beta release</a>. The change enables 70+ cloud storage providers for users looking for an easy way to back up their data and upload it to the cloud. </p><p>On the mobile front, Mozilla released the <a href="https://blog.thunderbird.net/2024/09/help-us-test-the-thunderbird-for-android-beta/?ref=selfh.st">first beta of their Thunderbird client for Android</a> this week. Built on the popular K-9 Mail app the company acquired in 2022, the beta is the first step in transitioning the platform to the Thunderbird branding while bringing some design and functionality improvements along the way.</p><p>If you missed it, I opened <strong>selfh.st</strong>&apos;s <a href="https://selfh.st/survey/2024/">annual self-hosted user survey</a> for responses last week. The survey consists of 35-40 questions and shouldn&apos;t take long to complete. Responses will be open until next Friday.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/survey/2024/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey</div><div class="kg-bookmark-description">An annual survey for measuring self-hosting behaviors and preferences across various topics</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-2.png" alt="This Week in Self-Hosted (4 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/2024-survey-featured-image.png" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>Happy <a href="https://selfh.st/" rel="noreferrer"><strong>selfh.st</strong></a>/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.home-assistant.io/blog/2024/10/02/connect-zbt1-issue-and-replacement/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Home Assistant Connect ZBT-1 issue and replacement</div><div class="kg-bookmark-description">Through extensive testing, we&#x2019;ve found a fault, but we&#x2019;re setting up a replacement program.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-192x192-2.png" alt="This Week in Self-Hosted (4 October 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Andy Gill</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/art-1.jpg" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.cloudflare.com/cloudflares-commitment-to-free/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Reaffirming our commitment to free</div><div class="kg-bookmark-description">Today Cloudflare reaffirms its commitment to offering a robust Free service tier that continues to improve. We share why Free is a cornerstone of our business strategy, and how it contributes to building a better Internet.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-32x32.png" alt="This Week in Self-Hosted (4 October 2024)"><span class="kg-bookmark-author">The Cloudflare Blog</span><span class="kg-bookmark-publisher">Nitin Rao</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/nitin-rao.jpg" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.thunderbird.net/2024/09/help-us-test-the-thunderbird-for-android-beta/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Help Us Test the Thunderbird for Android Beta! - The Thunderbird Blog</div><div class="kg-bookmark-description">The wait is over! Download and learn how to help us test the Thunderbird for Android beta for the upcoming regular release.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ios-icon-180.png" alt="This Week in Self-Hosted (4 October 2024)"><span class="kg-bookmark-author">The Thunderbird Blog</span><span class="kg-bookmark-publisher">Monica Ayhens-Madon</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/help-us-test.png" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://wedistribute.org/2024/09/fediverse-discovery-providers/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Mastodon Announces Fediverse Discovery Providers - We Distribute</div><div class="kg-bookmark-description">Mastodon Engineering has announced a new network-wide effort to create a framework for service providers offering a variety of capabilities.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-favicon-redone-1.png" alt="This Week in Self-Hosted (4 October 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/IMG_0029.jpeg" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/Bubka/2FAuth?ref=selfh.st"><strong>2FAuth</strong></a> <a href="https://github.com/Bubka/2FAuth/releases/tag/v5.3.0?ref=selfh.st"><strong>v5.3.0</strong></a> | <strong>2FA Management</strong>: New preferences for on-screen delays and automatic registrations, assign 2FA accounts to groups, new <em>Auth</em> tab in admin panel, proxy support for OpenID connector</li><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.10.0?ref=selfh.st"><strong>v24.10.0</strong></a> | <strong>Budgeting</strong>: SimpleFIN support (now a first-party feature), default color theme, unintelligible font in privacy mode</li><li><a href="https://gitlab.com/baserow/baserow?ref=selfh.st"><strong>Baserow</strong></a> <a href="https://gitlab.com/baserow/baserow/-/releases/1.28.0?ref=selfh.st"><strong>v1.28.0</strong></a> | <strong>No-Code Database</strong>: Timeline view, filtered calendar view, data sync backend, sync with local Baserow table, new field states, manually trigger sync</li><li><a href="https://github.com/coder/coder?ref=selfh.st"><strong>Coder</strong></a> <a href="https://github.com/coder/coder/releases/tag/v2.16.0?ref=selfh.st"><strong>v2.16.0</strong></a> | <strong>Dev Environments</strong>: Introduction of <a href="https://coder.com/docs/admin/organizations?ref=selfh.st">organizations</a>, <a href="https://coder.com/docs/admin/users?ref=selfh.st">custom roles</a>, and <a href="https://coder.com/docs/admin/notifications?ref=selfh.st">notifications</a></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.15.0?ref=selfh.st"><strong>v0.15.0</strong></a> | <strong>Location History</strong>: New watch directory for automated imports</li><li><a href="https://github.com/fastenhealth/fasten-onprem?ref=selfh.st"><strong>FastenHealth</strong></a> <a href="https://github.com/fastenhealth/fasten-onprem/releases/tag/v1.1.3?ref=selfh.st"><strong>v1.1.3</strong></a> | <strong>Health Records</strong>: Basic user management, support for additional providers, new logos</li><li><a href="https://github.com/floccusaddon/floccus?ref=selfh.st"><strong>Floccus</strong></a> <a href="https://github.com/floccusaddon/floccus/releases/tag/v5.3.0?ref=selfh.st"><strong>v5.3.0</strong></a> | <strong>Bookmark Sync</strong>: Added support for Linkwarden</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.10.0?ref=selfh.st"><strong>v0.10</strong></a><strong>/</strong><a href="https://github.com/AkashRajpurohit/git-sync/releases/tag/v0.11.0?ref=selfh.st" rel="noreferrer"><strong>11</strong></a> | <strong>Git Backup</strong>: Added support for Forgejo, new clone types (bare, shallow, mirror, and full)</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.2.0?ref=selfh.st"><strong>v1.2.0</strong></a> | <strong>No-Code Database</strong>: Two-way references, new cards on the home page (welcome, tutorial, webinars, help center), default LLM provider updated to gpt-4o</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.10.0?ref=selfh.st"><strong>2024.10.0</strong></a> | <strong>Home Automation</strong>: Section titles replaced with heading cards, repairs for long-term statistics, improved YAML syntax for automations, new integrations</li><li><a href="https://github.com/keycloak/keycloak?ref=selfh.st"><strong>Keycloak</strong></a> <a href="https://github.com/keycloak/keycloak/releases/tag/26.0.0?ref=selfh.st"><strong>v26.0.0</strong></a> | <strong>Identity Management</strong>: Full support for organizations, persistent user sessions by default, new default login theme</li><li><a href="https://github.com/Kometa-Team/Kometa?ref=selfh.st"><strong>Kometa</strong></a> <a href="https://github.com/Kometa-Team/Kometa/releases/tag/v2.1.0?ref=selfh.st"><strong>v2.1.0</strong></a> | <strong>Plex Metadata</strong>: Dynamic collections via letterboxd user lists, support for new studios, <a href="https://blog.kometa.wiki/?ref=selfh.st">blog launch</a></li><li><a href="https://github.com/rishikanthc/markopolis?ref=selfh.st"><strong>Markopolis</strong></a> <a href="https://github.com/rishikanthc/markopolis/releases/tag/v3.0.0?ref=selfh.st"><strong>v3.0.0</strong></a> | <strong>Markdown Notes</strong>: Backend rewrite, transitioned from file-based management to PocketBase, relative paths, tag management</li><li><a href="https://github.com/mediacms-io/mediacms?ref=selfh.st"><strong>MediaCMS</strong></a> <a href="https://github.com/mediacms-io/mediacms/releases/tag/v4.0.0?ref=selfh.st"><strong>v4.0.0</strong></a> | <strong>Content Management</strong>: Translations support</li><li><a href="https://github.com/OpenSignLabs/OpenSign?ref=selfh.st"><strong>OpenSign</strong></a> <a href="https://github.com/OpenSignLabs/OpenSign/releases/tag/v2.4.0?ref=selfh.st"><strong>v2.4.0</strong></a> | <strong>Document Signing</strong>: Embedding feature for templates, add elements in transparent PNG format, upload option for initials</li><li><a href="https://github.com/qbittorrent/qBittorrent/?ref=selfh.st"><strong>qBittorrent</strong></a> <a href="https://www.qbittorrent.org/news?ref=selfh.st#sun-sep-29th-2024---qbittorrent-v5.0.0-release"><strong>v5.0.0</strong></a> | <strong>Torrents</strong>: Systemd power management on Linux, larger piece sizes, separate filter for tracker errors, Mark-of-the-Web support</li><li><a href="https://github.com/Receipt-Wrangler/receipt-wrangler-api?ref=selfh.st"><strong>Receipt Wrangler</strong></a> <a href="https://github.com/Receipt-Wrangler/receipt-wrangler-api/releases/tag/v5.3.0?ref=selfh.st"><strong>v5.3.0</strong></a> | <strong>Receipt Manager</strong>: Configurable shortcuts, within current month and between filters, capture before/after updates for history</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.4.0?ref=selfh.st"><strong>v7.4.0</strong></a> | <strong>Tracker</strong>: Ryot Pro released as open-source</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.25.0?ref=selfh.st"><strong>v2.25.0</strong></a> | <strong>Subscriptions</strong>: Added 2FA support</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/TheDonSaysNah/checkhomeIP?ref=selfh.st"><strong>CheckHomeIP</strong></a>: Email notifications for IP address updates</li><li><a href="https://github.com/OpenSourceWebstar/EasyDocker/?ref=selfh.st"><strong>EasyDocker</strong></a>: Script for easier container management</li><li><a href="https://github.com/optiprism-io/optiprism?ref=selfh.st"><strong>Optiprism</strong></a>: Product and web analytics platform</li><li><a href="https://github.com/remvze/pswd?ref=selfh.st"><strong>PSWD</strong></a>: Secure password generator</li><li><a href="https://apps.apple.com/us/app/sable/id6630387095?ref=selfh.st"><strong>Sable</strong></a>: SABnzbd iOS companion app</li><li><a href="https://github.com/dh1011/subscription-manager?ref=selfh.st"><strong>Subscription Manager</strong></a>: Track and manage subscriptions</li><li><a href="https://github.com/jamesread/uncomplicated-alert-receiver?ref=selfh.st"><strong>Uncomplicated Alert Receiver</strong></a>: Prometheus alerts to a webpage</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><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.117.0?ref=selfh.st"><strong>v1.117.0</strong></a>: Config file &apos;image&apos; section structure changes</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.7.0?ref=selfh.st"><strong>v0.7.0</strong></a>: Custom application logos require update after upgrading</li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://github.com/daya0576/beaverhabits?ref=selfh.st"><strong>Beaver Habit Tracker</strong></a>: Self-hosted habit tracking app</li><li><a href="https://github.com/dagu-org/dagu?ref=selfh.st"><strong>Dagu</strong></a>: Cron alternative with a web UI</li><li><a href="https://github.com/dbgate/dbgate?ref=selfh.st"><strong>DbGate</strong></a>: Cross-platform database manager</li><li><a href="https://github.com/Aadityajoshi151/Elysian?ref=selfh.st"><strong>Elysian</strong></a>: Sync and backup for browser bookmarks</li><li><a href="https://github.com/Dacid99/LinkDroid-for-Linkwarden?ref=selfh.st"><strong>LinkDroid for Linkwarden</strong></a>: Native mobile companion app for Linkwarden</li><li><a href="https://github.com/GameServerManagers/LinuxGSM?ref=selfh.st"><strong>LinuxGSM</strong></a>: Simple command-line deployment for 100+ game servers</li><li><a href="https://gitlab.com/mayan-edms/mayan-edms?ref=selfh.st"><strong>Mayan EDMS</strong></a>: Enterprise documentation management system</li><li><a href="https://github.com/FoxxMD/multi-scrobbler?ref=selfh.st"><strong>Multi-Scrobbler</strong></a>: Scrobble music from multiple platforms to multiple clients</li><li><a href="https://we.phorge.it/source/phorge/?ref=selfh.st"><strong>Phorge</strong></a>: Community-driven development platform</li><li><a href="https://github.com/rapidforge-io/release?ref=selfh.st"><strong>RapidForge</strong></a>: Self-hosted endpoints for forms and tasks</li><li><a href="https://apps.apple.com/us/app/sable/id6630387095?ref=selfh.st"><strong>Sable</strong></a>: SABnzbd iOS companion app</li><li><a href="https://github.com/slskd/slskd?ref=selfh.st"><strong>slskd</strong></a>: Client-server application for the Soulseek file-sharing network</li><li><a href="https://github.com/dh1011/subscription-manager?ref=selfh.st"><strong>Subscription Manager</strong></a>: Track and manage subscriptions</li><li><a href="https://github.com/typemill/typemill?ref=selfh.st"><strong>Typemill</strong></a>: Lightweight, flat-file CMS for publishers</li><li><a href="https://github.com/muety/wakapi?ref=selfh.st"><strong>Wakapi</strong></a>: Coding statistics and time tracking</li></ul><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 &#x2615;</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/common-agpl-misconceptions/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Common Misconceptions of the AGPL &#xB7; Danb Blog</div><div class="kg-bookmark-description">Before getting into this post i want to make it clear I&#x2019;m not a legal expert in any way and the following post is based upon my interpretations from spending a lot of time looking at software licenses.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-4.ico" alt="This Week in Self-Hosted (4 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://ericthomas.ca/posts/jellyfin-quadlet/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Installing Jellyfin as a Podman Quadlet</div><div class="kg-bookmark-description">Jellyfin is everyone&#x2019;s favourite open-source multimedia player. This guide goes over how to install it as a Podman Quadlet. This assumes you already have Podman setup for Quadlets. Follow this guide to setup Podman for Quadlets.
Create the container First, create and edit sudo nvim ~/containers/jellyfin.container, if you don&#x2019;t use Neovim, replace nvim with whichever text editor you prefer.
Paste the follwing. Replace {USER} with your user, {PUID} with the value of id {USER} -u, {PGID} with the value of id {USER} -g, and change your time zone accordingly.</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 (4 October 2024)"><span class="kg-bookmark-author">Eric Thomas</span><span class="kg-bookmark-publisher">Eric Thomas</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/cover.webp" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://newsletter.openhomefoundation.org/home-assistant-turns-11-years-old/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Home Assistant turns 11 years old</div><div class="kg-bookmark-description">The Open Home is maturing like fine wine, with Home Assistant reaching 11 years old and showing no signs of slowing.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-2.ico" alt="This Week in Self-Hosted (4 October 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/OPEN-GRAPH_1200X630--1-.jpg" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey</div><div class="kg-bookmark-description">An annual survey for measuring self-hosting behaviors and preferences across various topics</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-6.png" alt="This Week in Self-Hosted (4 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/2024-survey-featured-image-1.png" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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 (4 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 (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="content-spotlight-streamyfin">Content Spotlight: Streamyfin</h2><p>Meet <a href="https://github.com/fredrikburmester/streamyfin?ref=selfh.st"><strong>Streamyfin</strong></a>, a simple and user-friendly open-source <a href="https://jellyfin.org/?ref=selfh.st">Jellyfin</a> client for mobile devices. <strong>Streamyfin</strong> sets itself apart from <a href="https://selfh.st/apps/?directory=Companion&amp;companion=Jellyfin">other Jellyfin clients</a> with a modern interface and robust feature set that includes skipping intros/credits, Trickplay images, transcoded downloads, picture-in-picture, background audio streaming, experimental Chromecast support, and <a href="https://github.com/users/fredrikburmester/projects/5?ref=selfh.st">more on the way</a>. The developers also collaborated with the <a href="https://gitlab.com/DomiStyle/jellysearch?ref=selfh.st">JellySearch</a> team to leverage its capabilities for improved and optimized search within the app.</p><p><strong>Streamyfin</strong> can be installed from the <a href="https://apps.apple.com/se/app/streamyfin/id6593660679?l=en-GB&amp;ref=selfh.st">App Store</a> on iOS and <a href="https://play.google.com/store/apps/details?id=com.fredrikburmester.streamyfin&amp;ref=selfh.st">Google Play</a> or manually via the <a href="https://github.com/fredrikburmester/streamyfin/releases?ref=selfh.st">repository&apos;s releases</a> on Android. The team is also currently facilitating a <a href="https://discord.gg/ktgfTCbe?ref=selfh.st">new app icon contest on the project&apos;s Discord server</a> for anyone looking to get in on the action.</p>
<!--kg-card-begin: html-->
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-streamyfin.webp" alt="This Week in Self-Hosted (4 October 2024)">
<br>
<!--kg-card-end: html-->
<p>Links: <a href="https://github.com/fredrikburmester/streamyfin?ref=selfh.st"><strong>GitHub</strong></a>, <a href="https://play.google.com/store/apps/details?id=com.fredrikburmester.streamyfin&amp;ref=selfh.st"><strong>Google Play</strong></a>, <a href="https://apps.apple.com/se/app/streamyfin/id6593660679?l=en-GB&amp;ref=selfh.st"><strong>App Store</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=dklvlJ4YDtM&amp;ref=selfh.st"><strong>Organize Your Digital Life with Hoarder: Images, Notes, and Bookmarks</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=Gu-zAxAOn1E&amp;ref=selfh.st"><strong>Ente - End to End Encrypted Photo Storage For FREE!</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=nbISMURRNc0&amp;ref=selfh.st"><strong>Everything New In Home Assistant 2024.10!</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=uPde1aulGYY&amp;ref=selfh.st"><strong>Install Home Assistant VM on Unraid in Minutes!</strong></a> | Spaceinvader One</li><li><a href="https://www.youtube.com/watch?v=KxPl8SHREcE&amp;ref=selfh.st"><strong>You should be using Proxmox Backup Server</strong></a> | Techno Tim</li><li><a href="https://www.youtube.com/watch?v=Y2VkyZiPaM8&amp;ref=selfh.st"><strong>Setup a personal NAS OS // Unraid Tutorial</strong></a> | Christian Lempa</li></ul><h2 id="what-im-listening-to">What I&apos;m Listening To</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfhosted.show/133?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">No Google October</div><div class="kg-bookmark-description">Ditching Google Search for an entire month! We reveal the tool that&#x2019;s helping us break free. Plus, a special guest shares his home lab to data center journey. And, Chris raves about the ultimate Jellyfin client (and confesses to an accidental network camera purchase).</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/touch_icon_ipad-1.png" alt="This Week in Self-Hosted (4 October 2024)"><span class="kg-bookmark-author">Self-Hosted</span><span class="kg-bookmark-publisher">Jupiter Broadcasting</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/cover_medium-1.jpg" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://linuxmatters.sh/39/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Rock Around the Underclock</div><div class="kg-bookmark-description">Martin introduces tools for overclocking and underclocking GPUs, Alan has been discovering new music with the joy of Python, and Mark has a new audiobook server.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-6.png" alt="This Week in Self-Hosted (4 October 2024)"><span class="kg-bookmark-author">Linux Matters</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/linuxmatters-3000x3000.png" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="command-line-corner-ctrl-t">Command Line Corner: Ctrl + T</h2><p>Use <strong>Ctrl + T</strong> to quickly swap the last two characters before the cursor (most helpful for quickly correcting accidental <em>suod</em> or <em>sl</em> occurrences):</p><pre><code class="language-bash">/$ suod_
/$ sudo_</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/godot-engine-fiasco/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Go Woke, Get Forked? Godot Engine Fiasco Leads To Many New Forks!</div><div class="kg-bookmark-description">The Godot engine project could be in trouble with the community divided.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/android-chrome-192x192-2.png" alt="This Week in Self-Hosted (4 October 2024)"><span class="kg-bookmark-author">It&apos;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/godot-outrage-1-.png" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.elenarossini.com/the-values-of-the-fediverse-ethical-social-media/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beyond technical features: why we need to talk about the values of the Fediverse (part 1)</div><div class="kg-bookmark-description">The Fediverse has a different value system than commercial social media: striving for genuine connections, protecting privacy and championing accessibility</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ELE-avatar-muses-pink-1-1.jpg" alt="This Week in Self-Hosted (4 October 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-11.jpg" alt="This Week in Self-Hosted (4 October 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:44:"This Week in Self-Hosted (27 September 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:118:"Self-hosted news, updates, launches, and a spotlight on FerretDB - a lightweight MongoDB proxy for SQL-based databases";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-09-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:"66ed7ed2f824f8000183e299";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 Sep 2024 11:46: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: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:25718:"<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 (27 September 2024)"><p>If you missed it, I launched my annual self-host user survey yesterday. It consists of 30-35 questions measuring self-hosted preferences across a variety of topics (more info in the link below). The deadline for entries is <strong>9pm EST, Friday, October 11th</strong>. Please consider completing it if you have a few free minutes!</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/survey/2024/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey</div><div class="kg-bookmark-description">An annual survey for measuring self-hosting behaviors and preferences across various topics</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1-2.png" alt="This Week in Self-Hosted (27 September 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-survey-featured-image.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>In other exciting site-related news, the <a href="https://github.com/gethomepage/homepage?ref=selfh.st">Homepage dashboard project</a> dropped a new release with <a href="https://gethomepage.dev/configs/services/?ref=selfh.st#icons">built-in support</a> for the <a href="https://selfh.st/icons" rel="noreferrer">icon collection I launched just a few weeks ago</a>. To easily add them to your dashboard, prefix the software/service name  with <em>sh-</em>. (If an icon isn&apos;t working, doublecheck its name via the link below.)</p><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-3.png" alt="This Week in Self-Hosted (27 September 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-1.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>Happy <a href="https://selfh.st/" rel="noreferrer"><strong>selfh.st</strong></a>/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://ente.io/blog/mozilla-builders/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Mozilla grants Ente $100k</div><div class="kg-bookmark-description">Ente has received a non-dilutive grant of $100,000 from Mozilla</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/icon-192x192.png" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">ente</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/preview-2e06d5d36a9aa252531fca4a306cdbca.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/09/24/we-are-joining-the-z-wave-alliance-board/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">We are joining the Z-Wave Alliance Board</div><div class="kg-bookmark-description">We will help represent Home Assistant users and the Open Home Foundation values on this board, defining the future of Z-Wave.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-192x192-1.png" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Paulus Schoutsen</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/art.jpg" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://proton.me/blog/drive-open-source?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">All Proton Drive apps are now open source | Proton</div><div class="kg-bookmark-description">Proton Drive&#x2019;s desktop apps are open source, meaning you can review the code of any Proton Drive app for yourself.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-4.png" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">Proton</span><span class="kg-bookmark-publisher">Richie Koch</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/image-transformation" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://wedistribute.org/2024/09/social-web-foundation-launch/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Evan Prodromou Launches The Social Web Foundation - We Distribute</div><div class="kg-bookmark-description">A new organization emerges to help tackle some of the challenges the Fediverse faces, from advocacy and policy to training and tooling.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-favicon-redone.png" alt="This Week in Self-Hosted (27 September 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/Thumb-Container2.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="software-updates">Software Updates</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/v0.2.0?ref=selfh.st"><strong>v0.2.0</strong></a> | <a href="https://github.com/johanohly/AirTrail?ref=selfh.st"><strong>Flight Tracking</strong></a>: OIDC authentication support, flight exports</li><li><a href="https://github.com/apache/incubator-answer?ref=selfh.st"><strong>Apache Answer</strong></a> <a href="https://github.com/apache/incubator-answer/releases/tag/v1.4.0?ref=selfh.st"><strong>v1.4.0</strong></a> | <strong>Q&amp;A</strong>: Awards and badges, question list for personalized recommendations, code highlighting plugin</li><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.0.0?ref=selfh.st"><strong>v4.0.0</strong></a> | <strong>Cocktail Recipes</strong>: Docker image now runs as unprivileged user, improved API endpoint for naming and structure, data export in multiple formats</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.10.0?ref=selfh.st"><strong>v0.10.0</strong></a> | <strong>Music Player</strong>: Subsonic server support, lyric translations</li><li><a href="https://github.com/cioraneanu/firefly-pico?ref=selfh.st"><strong>Firefly-Pico</strong></a> <a href="https://github.com/cioraneanu/firefly-pico/releases/tag/1.4.0?ref=selfh.st"><strong>v1.4.0</strong></a> | <strong>Mobile Firefly III</strong>: New pages (budget list, create, edit), transaction search by budget, new summary dashboard cards, ability to hide cards and fields, transaction cloning</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.17.0?ref=selfh.st"><strong>v0.17.0</strong></a> | <strong>Bookmarks</strong>: SSO (OIDC) support, improved importing experience, bulk tag/list actions, banner customization, mobile app improvements</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.10?ref=selfh.st"><strong>v0.9.10</strong></a> | <strong>Dashboard</strong>: New Mailcow and LubeLogger widgets, built-in support for <a href="https://selfh.st/icons" rel="noreferrer">selfh.st/icons</a></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.116.0?ref=selfh.st"><strong>v1.116.0</strong></a> | <strong>Photos and Videos</strong>: Improved external library scanning, time zone improvements, tag clean-up job, improved person merge workflow</li><li><a href="https://github.com/diogovalentte/mantium?ref=selfh.st"><strong>Mantium</strong></a> <a href="https://github.com/diogovalentte/mantium/releases/tag/v2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Manga Tracker</strong>: Support for custom and multi manga, notification updates</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.80.0?ref=selfh.st"><strong>v0.80.0</strong></a> | <strong>3D Assets</strong>: Markdown support for note fields, field renames, raise problems for missing metadata</li><li><a href="https://github.com/jokob-sk/NetAlertX?ref=selfh.st"><strong>NetAlertX</strong></a> <a href="https://github.com/jokob-sk/NetAlertX/releases/tag/v24.9.26?ref=selfh.st"><strong>v24.9.26</strong></a> | <strong>Network Monitor</strong>: New flag for automatically unflagging devices as new after period of time, sync plugin for pulling data from nodes, improved support for proxies</li><li><a href="https://github.com/plausible/analytics?ref=selfh.st"><strong>Plausible</strong></a> <a href="https://github.com/plausible/analytics/releases/tag/v2.1.2?ref=selfh.st"><strong>v2.1.2</strong></a> | <strong>Web Analytics</strong>: Automatic IPv6 support for outgoing connections, opt-in HTTPS support, simplified Docker Compose configuration</li><li><a href="https://github.com/stalwartlabs/mail-server?ref=selfh.st"><strong>Stalwart</strong></a> <a href="https://github.com/stalwartlabs/mail-server/releases/tag/v0.10.0?ref=selfh.st"><strong>v0.10.0</strong></a> | <strong>Mail Server</strong>: Multi-tenancy and branding (enterprise only), roles and permissions, full-text search re-indexing, partial database backups</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.15.0?ref=selfh.st"><strong>v0.15.0</strong></a> |<strong> Jellyfin Client</strong>: New full screen player, skip intros and credits, trickplay images, show cached progress in progress slider, genres, additional actor details, video skip and rewind time settings</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/Sathvik-Rao/ClipCascade?ref=selfh.st"><strong>ClipCascade</strong></a>: Clipboard sync across devices</li><li><a href="https://github.com/giga-controller/controller?ref=selfh.st"><strong>Controller</strong></a>: Open-source platform for interacting with multiple apps</li><li><a href="https://github.com/NRicode/GigaPaste?ref=selfh.st"><strong>GigaPaste</strong></a>: File sharing, URL shortening, and pastebin all-in-one</li><li><a href="https://github.com/woahai321/imdb-to-overseerr?ref=selfh.st"><strong>IMDB to Overseerr</strong></a>: IMDB lists sync in Overseerr</li><li><a href="https://github.com/querylab/lazywarden?ref=selfh.st"><strong>Lazywarden</strong></a>: Automatic Bitwarden backups</li><li><a href="https://www.linuxserver.io/?ref=selfh.st"><strong>LinuxServer.io</strong></a>: New container &#x2013; <a href="https://info.linuxserver.io/issues/2024-09-24-rawtherapee/?ref=selfh.st"><strong>RawTherapee</strong></a></li><li><a href="https://github.com/danvergara/morphos?ref=selfh.st"><strong>Morphos</strong></a>: File converting server</li><li><a href="https://github.com/ajb3932/simple-wishlist?ref=selfh.st"><strong>Simple Wishlist</strong></a>: Simple self-hosted wishlist</li><li><a href="https://github.com/skateco/skate?ref=selfh.st"><strong>Skate</strong></a>: Minimal multi-host container orchestrator</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/stalwartlabs/mail-server?ref=selfh.st"><strong>Stalwart</strong></a> <a href="https://github.com/stalwartlabs/mail-server/releases/tag/v0.10.0?ref=selfh.st"><strong>v0.10.0</strong></a>: Account storage changes (see <a href="https://github.com/stalwartlabs/mail-server/blob/v0.10.0/UPGRADING.md?ref=selfh.st">upgrade instructions</a>)</li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://github.com/NRicode/GigaPaste?ref=selfh.st"><strong>GigaPaste</strong></a>: File sharing, URL shortening, and pastebin all-in-one</li><li><a href="https://github.com/msgbyte/tianji?ref=selfh.st"><strong>Tianji</strong></a>: Web analytics, server status, and uptime monitoring</li></ul><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 &#x2615;</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://blog.muffn.io/posts/de-googling/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">De-Googling - Email, Storage, Photos &amp; Location Without Google Services</div><div class="kg-bookmark-description">&#x1F3AC; Intro # As I age throughout this life, my priorities are changing. Some might dismiss this as paranoia, but it&#x2019;s undeniable that our privacy is at greater risk than ever before.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/apple-touch-icon-5.png" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">Email, Storage, Photos &amp; Location Without Google Services &#xB7;</span><span class="kg-bookmark-publisher">muffn_</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/feature.webp" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.postgresql.org/about/news/postgresql-17-released-2936/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PostgreSQL 17 Released!</div><div class="kg-bookmark-description">The [PostgreSQL Global Development Group](https://www.postgresql.org) today announced the release of [PostgreSQL 17](https://www.postgresql.org/docs/17/release-17.html), the latest version of the world&#x2019;s most advanced &#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1.ico" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">PostgreSQL News</span><span class="kg-bookmark-publisher">PostgreSQL Global Development Group</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/elephant.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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/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/icon/favicon-1-1.png" alt="This Week in Self-Hosted (27 September 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/google-analytics.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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 (27 September 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 (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="content-spotlight-ferretdb">Content Spotlight: FerretDB</h2><p>Meet <a href="https://www.ferretdb.com/?ref=selfh.st"><strong>FerretDB</strong></a>, a lightweight MongoDB proxy for users who prefer or are limited to SQL-based databases for storage. <a href="https://github.com/FerretDB/FerretDB?ref=selfh.st#why-do-we-need-ferretdb">Initially developed in response to MongoDB&apos;s transition away from open-source licensing</a>, <strong>FerretDB</strong> can be configured to sit between an application and a SQL database to provide the necessary query conversions that allow the software to continue operating as if it were storing its data in a MongoDB database.</p><p><strong>FerretDB</strong> can be installed via <a href="https://docs.ferretdb.io/quickstart-guide/?ref=selfh.st">bare metal or Docker</a> and does not include a PostgreSQL database in the container image (users will need to maintain their own separately).</p>
<!--kg-card-begin: html-->
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-ferretdb-flowchart.webp" alt="This Week in Self-Hosted (27 September 2024)">
<br>
<!--kg-card-end: html-->
<p>Links: <a href="https://www.ferretdb.com/?ref=selfh.st"><strong>Website</strong></a>, <a href="https://github.com/FerretDB/FerretDB?ref=selfh.st"><strong>GitHub</strong></a>,<strong> </strong><a href="https://docs.ferretdb.io/?ref=selfh.st"><strong>Docs</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=-WXTU0BSXqM&amp;ref=selfh.st"><strong>Tududi - Task / Project Management Made Simple</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=Tk12gOkOdb4&amp;ref=selfh.st"><strong>11 Essential Tips For Home Assistant Beginners!</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=he3ENpMLMsc&amp;ref=selfh.st"><strong>pfSense Configuration Guide - Zero to Hero!</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=oZeRlcrVSXM&amp;ref=selfh.st"><strong>A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense</strong></a> | KTZ Systems</li></ul><h2 id="what-im-listening-to">What I&apos;m Listening To</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfhosted.show/132?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Uploading at the Speed of Light</div><div class="kg-bookmark-description">Alex has been playing around at the speed of light while solving Proxmox problems, and Chris has solved a Jellyfin issue. Plus, our thoughts on the new Plex features.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/touch_icon_ipad.png" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">Self-Hosted</span><span class="kg-bookmark-publisher">Jupiter Broadcasting</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/cover_medium.jpg" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="command-line-corner2">Command Line Corner: !-2</h2><p>Use <strong>!-2</strong> to quickly re-run the second most recent command:</p><pre><code class="language-bash">/$ ls
  example.txt
/$ cat example.txt
  This Week in Self-Hosted
/$ !-2
  ls
  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://www.theregister.com/2024/09/11/civo_vmware_research/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">More than half of VMware customers looking for alternatives</div><div class="kg-bookmark-description">Price rises, uncertainty after Broadcom takeover forcing users to look elsewhere for virtualization needs</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.svg" alt="This Week in Self-Hosted (27 September 2024)"><span class="kg-bookmark-author">The Register</span><span class="kg-bookmark-publisher">Richard Speed</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/shutterstock_stop_exit.jpg" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.tomshardware.com/software/winamp-releases-its-source-code-on-github-but-the-legacy-media-player-doesnt-go-full-open-source?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Winamp releases its source code on GitHub &#x2014; but the legacy media player doesn&#x2019;t go full open-source</div><div class="kg-bookmark-description">A very limited license has drawn much criticism from the open-source community.</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 (27 September 2024)"><span class="kg-bookmark-author">Tom&apos;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/XUyP9AXQypKYBRwEG48u5n-1200-80.png" alt="This Week in Self-Hosted (27 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:26:"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:11:"description";a:1:{i:0;a:5:{s:4:"data";s:91:"An annual survey for measuring self-hosting behaviors and preferences across various topics";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:29:"https://selfh.st/survey/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:"guid";a:1:{i:0;a:5:{s:4:"data";s:24:"66f2b0b89d1e440001ce79a8";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:"Thu, 26 Sep 2024 11:51:13 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:70:"https://selfh.st/content/images/2024/09/2024-survey-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:2795:"
<!--kg-card-begin: html-->
<a href="https://heyform.net/?utm_source=selfh.st&amp;utm_medium=referral&amp;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;" alt="2024 Self-Host User Survey">
  </div>
</a>
<br>
<br>
<!--kg-card-end: html-->
<div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Update</strong></b>: The survey is now closed for submissions. Check back in soon for the posted results!</div></div><hr><img src="https://selfh.st/content/images/2024/09/2024-survey-featured-image.png" alt="2024 Self-Host User Survey"><p>Building on the <a href="https://selfh.st/survey/2023-results/">tradition started last year</a>, today is the launch of <strong>selfh.st</strong>&apos;s second ever annual self-host user survey:</p>
<!--kg-card-begin: html-->
<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://survey.selfh.st/form/SlTiGQo6?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">2024 Self-Host User Survey</div><div class="kg-bookmark-description">Annual survey for measuring self-hosting behaviors and preferences across various categories</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/site/favicons/favicon.ico" alt="2024 Self-Host User Survey"><span class="kg-bookmark-author" style="text-transform: lowercase !important">survey.selfh.st</span></div></div></a></figure>
<!--kg-card-end: html-->
<p>Similar to 2023, the survey consists of 30-35 questions spanning the following question categories:</p><ul><li>Environment</li><li>Containers</li><li>Networking</li><li>Software</li><li>Demographics (Optional)</li></ul><p>From a technical perspective, the survey is being powered by <a href="https://heyform.net/?utm_source=selfh.st&amp;utm_medium=referral&amp;utm_campaign=survey"><strong>HeyForm</strong></a> &#x2013; an open-source and self-hosted form builder (the team of which is also graciously sponsoring this year&apos;s survey).</p><p>As usual, I&apos;m completely open to feedback about the contents of the survey and how it can be improved next year. <a href="mailto:hello@selfh.st" rel="noreferrer">Reach out</a> if you have any suggestions!</p><p>The survey will be live until <strong>9pm EST on Friday, October 11th</strong>.</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:44:"This Week in Self-Hosted (20 September 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:120:"Self-hosted news, updates, launches, and a spotlight on Docking Station - a web interface for managing container updates";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-09-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:"66e42954a81f7b00019676f4";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 Sep 2024 11:51:29 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:27351:"<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 (20 September 2024)"><p>Happy Friday! I&apos;ve been under the weather since last weekend, so please accept this bulleted overview of the week&apos;s events in lieu of my usual cheeky recap:</p><ul><li>Plex held its <a href="https://www.plex.tv/pro-week/?ref=selfh.st">annual Pro Week</a> featuring creators from across the community &#x2013; and I found out <a href="https://www.plex.tv/blog/plex-pro-week-24-auto-sync-subtitles-to-the-rescue/?ref=selfh.st">auto-syncing subtitles are now a thing</a></li><li>Home Assistant <a href="https://www.home-assistant.io/blog/2024/09/18/home-assistant-is-11-years-old/?ref=selfh.st">turned 11 years-old</a> and <a href="https://www.home-assistant.io/blog/2024/09/16/getting-ready-for-ios18/?ref=selfh.st">dropped some big changes</a> to its iOS companion app</li><li><a href="https://nextcloud.com/blog/nextcloud-hub9/?ref=selfh.st">Nextcloud released Hub 9</a> with a ton of changes including major design improvements, a <a href="https://apps.nextcloud.com/apps/whiteboard?ref=selfh.st">new Whiteboard app</a>, and increased federation support</li><li><a href="https://joinpeertube.org/news/release-6.3?ref=selfh.st">PeerTube v6.3 was released</a> with an exciting new feature that separates audio and video streams for audio-only streams and file size reductions</li><li>Kavita took its mission of being the &apos;Plex for reading&apos; quite literally and <a href="https://github.com/Kareadita/Kavita/releases/tag/v0.8.3?ref=selfh.st">released a major UI refresh that will have you seeing double</a></li></ul><p>And lastly, <a href="https://github.com/remvze/nothing?ref=selfh.st">the perfect software for those looking for nothing to do</a>.</p><p>Happy <a href="https://selfh.st/" rel="noreferrer"><strong>selfh.st</strong></a>/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://element.io/blog/we-have-lift-off-element-x-call-and-server-suite-are-ready/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">We have lift-off! Element X, Call and Server Suite are ready!</div><div class="kg-bookmark-description">Element is launching the world&#x2019;s first communications platform based on the upcoming Matrix 2.0 release. The result is blazing performance which outperforms the mainstream alternatives&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.png" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">Element Blog</span><span class="kg-bookmark-publisher">Archie W</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/ex-production-ready__blog.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://watch.plex.tv/on-demand/list/plex-pro-week?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Plex Pro Week</div><div class="kg-bookmark-description">Check out this free collection on Plex.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/plex-180.png" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">Plex.tv</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/watch-social-share.2578a9da.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/09/18/home-assistant-is-11-years-old/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Home Assistant is 11 years old!</div><div class="kg-bookmark-description">This year, we celebrate the community and the people who make Home Assistant what it is.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-192x192.png" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Paulus Schoutsen</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/art.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/nextcloud-hub-9/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Nextcloud Hub 9 is an Explosive Release With Full Decentralization and More Automation</div><div class="kg-bookmark-description">Nextcloud Hub 9 has arrived with improved automation and decentralization features.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/android-chrome-192x192.png" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">It&apos;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/nextcloud-9-release.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><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.4.0?ref=selfh.st"><strong>v0.4.0</strong></a> | <strong>Server Monitor</strong>: Shoutrrr integrations for notification support across various services, network interface whitelists, default chart time range configuration, specific hostname in system info</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.14.0?ref=selfh.st"><strong>v0.14.0</strong></a> | <strong>Location History</strong>: 17 new tile layers for users to select from, new API endpoints</li><li><a href="https://github.com/CorentinTh/enclosed?ref=selfh.st"><strong>Enclosed</strong></a> <a href="https://github.com/CorentinTh/enclosed/releases/tag/v1.6.3?ref=selfh.st"><strong>v1.6.3</strong></a> | <strong>Secure File Sharing</strong>: Authentication, support for additional languages</li><li><a href="https://gitlab.com/gitlab-org/gitlab-foss?ref=selfh.st"><strong>GitLab</strong></a> <a href="https://gitlab.com/gitlab-org/gitlab-foss/-/releases/v17.4.0?ref=selfh.st"><strong>v17.4.0</strong></a> | <strong>Software Forge</strong>: More context-aware code suggestions, auto-merging, web IDE extension marketplace, simplified Pages setup</li><li><a href="https://github.com/goniszewski/grimoire?ref=selfh.st"><strong>Grimoire</strong></a> <a href="https://github.com/goniszewski/grimoire/releases/tag/v0.4.0?ref=selfh.st"><strong>v0.4.0</strong></a> | <strong>Bookmarks</strong>: Refactored code base for maintainability, swifter UI, faster metadata processing, and more secure backend</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.3?ref=selfh.st"><strong>v0.8.3</strong></a> | <strong>Book Server</strong>: Complete UI overhaul inspired by Plex, individual pages, settings overhaul, publisher images</li><li><a href="https://github.com/mfts/papermark?ref=selfh.st"><strong>Papermark</strong></a> <a href="https://github.com/mfts/papermark/releases/tag/v0.16.0?ref=selfh.st"><strong>v0.16.0</strong></a> | <strong>Document Sending</strong>: File-level granular permissions, document watermarks, new supported file types, link presets</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/v6.3.0?ref=selfh.st"><strong>v6.3.0</strong></a> | <strong>Video Streaming</strong>: Separate HLS audio and video streams, transcription widget, UI improvements, max FPS configuration</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?ref=selfh.st"><strong>v1.3.0</strong></a> | <strong>Social Media Scheduling</strong>: Stable Docker release, Helm Charts, daily and weekly views</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.29.0?ref=selfh.st"><strong>v0.29.0</strong></a> | <strong>PDF Editor</strong>: Multi-tool page updates &#x2013; image and document splitting, split PDFs by chapters and bookmarks, set font size and type, legal document support</li><li><a href="https://github.com/fmartinou/whats-up-docker?ref=selfh.st"><strong>What&apos;s Up Docker</strong></a> <a href="https://github.com/fmartinou/whats-up-docker/releases/tag/6.5.0?ref=selfh.st"><strong>v6.5.0</strong></a> | <strong>Container Updates</strong>: Allow/disallow delete operations, filter dropdown for update types, bookmarkable filter values</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/remvze/calmness?ref=selfh.st"><strong>Calmness</strong></a>: Online breathing exercise tool</li><li><a href="https://github.com/orf/docker-repack?ref=selfh.st"><strong>docker-repack</strong></a>: Speed up Docker image pulls</li><li><a href="https://github.com/FlavorMate?ref=selfh.st"><strong>FlavorMate</strong></a>: Recipe management app</li><li><a href="https://github.com/FormBee/FormBee?ref=selfh.st"><strong>FormBee</strong></a>: Open-source form solution</li><li><a href="https://github.com/eric-pierce/freshapi?ref=selfh.st"><strong>FreshAPI</strong></a>: FreshRSS/Google Reader API plugin for Tiny Tiny RSS</li><li><a href="https://github.com/4rtemis-4rrow/Odin?ref=selfh.st"><strong>Odin</strong></a>: Decentralized and federated file hosting platform</li><li><a href="https://github.com/gnardini/analytics?ref=selfh.st"><strong>Phinxer</strong></a>: Open-source web analytics</li><li><a href="https://github.com/selfhostil/PulsarGo?ref=selfh.st"><strong>PulsarGo</strong></a>: Lightweight server monitoring tool</li><li><a href="https://github.com/lufinkey/pseuplex?ref=selfh.st"><strong>Pseuplex</strong></a>: Letterboxd feeds to hubs in Plex</li><li><a href="https://github.com/jmberesford/retrom?ref=selfh.st"><strong>Retrom</strong></a>: Game library management service with focus on emulation</li><li><a href="https://github.com/MightyMoud/sidekick?ref=selfh.st"><strong>Sidekick</strong></a>: Single-command VPS setup for easily deploying containers</li><li><a href="https://github.com/need4swede/SideQuests?ref=selfh.st"><strong>SideQuests</strong></a>: Mobile friendly web interface for managing tasks and objectives</li><li><a href="https://github.com/rtuszik/starwarden?ref=selfh.st"><strong>StarWarden</strong></a>: Export starred GitHub repositories to Linkwarden</li><li><a href="https://github.com/unsearchapp/unsearch?ref=selfh.st"><strong>Unsearch</strong></a>: Cross-browser activity, bookmark, and history sync</li><li><a href="https://github.com/RobertOlechowski/WebGPU-Monitor?ref=selfh.st"><strong>WebGPU Monitor</strong></a>: Realtime monitoring of GPU cards via web UI</li><li><a href="https://github.com/mikeage/whatsrunning?ref=selfh.st"><strong>What&apos;s Running</strong></a>: Barebone webpage listing containers with exposed ports</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/juanfont/headscale?ref=selfh.st"><strong>Headscale</strong></a> <a href="https://github.com/juanfont/headscale/releases/tag/v0.23.0?ref=selfh.st"><strong>v0.23.0</strong></a>: Number of breaking changes resulting from code refactoring and reorganization</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/v6.3.0?ref=selfh.st"><strong>v6.3.0</strong></a>: Manual migration required after upgrade</li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://github.com/astuto/astuto?ref=selfh.st"><strong>Astuto</strong></a>: Customer feedback tool</li><li><a href="https://github.com/henrygd/beszel?ref=selfh.st"><strong>Beszel</strong></a>: Lightweight server monitoring hub</li><li><a href="https://github.com/balzack/databag?ref=selfh.st"><strong>Databag</strong></a>: Fast and lightweight messenger</li><li><a href="https://github.com/LooLzzz/docking-station?ref=selfh.st"><strong>Docking Station</strong></a>: Web app for managing and updating containers</li><li><a href="https://github.com/documenso/documenso?ref=selfh.st"><strong>Documenso</strong></a>: Open-source document signing</li><li><a href="https://github.com/CorentinTh/enclosed?ref=selfh.st"><strong>Enclosed</strong></a>: Send private and secure notes</li><li><a href="https://fider.io/?ref=selfh.st"><strong>Fider</strong></a>: Simple and elegant feature voting tool</li><li><a href="https://github.com/Zibbp/ganymede?ref=selfh.st"><strong>Ganymede</strong></a>: Twitch VOD and live streaming archive platform</li><li><a href="https://github.com/plankanban/planka/?ref=selfh.st"><strong>Planka</strong></a>: Realtime Kanban board for workgroups</li><li><a href="https://forums.plex.tv/t/photos-beta-feedback/885116?ref=selfh.st"><strong>Plex Photos</strong></a>: Official mobile apps for Plex photo libraries (beta)</li><li><a href="https://github.com/need4swede/Portall?ref=selfh.st"><strong>Portall</strong></a>: Container port management and organization</li><li><a href="https://github.com/gitroomhq/postiz-app?ref=selfh.st"><strong>Postiz</strong></a>: Social media post scheduling and measurement</li><li><a href="https://github.com/lufinkey/pseuplex?ref=selfh.st"><strong>Pseuplex</strong></a>: Letterboxd feeds to hubs in Plex</li><li><a href="https://github.com/Donkie/Spoolman?ref=selfh.st"><strong>Spoolman</strong></a>: 3D printer filament spool inventory tracker</li><li><a href="https://github.com/rtuszik/starwarden?ref=selfh.st"><strong>StarWarden</strong></a>: Export starred GitHub repositories to Linkwarden</li><li><a href="https://github.com/teslamate-org/teslamate?ref=selfh.st"><strong>TeslaMate</strong></a>: Self-hosted data logging for Tesla vehicles</li><li><a href="https://github.com/themepark-dev/theme.park?ref=selfh.st"><strong>theme.park</strong></a>: Custom themes for 50 self-hosted apps</li><li><a href="https://github.com/chrisvel/tududi?ref=selfh.st"><strong>tududi</strong></a>: Task and project management web app</li><li><a href="https://github.com/l4rm4nd/VoucherVault?ref=selfh.st"><strong>VoucherVault</strong></a>: Store and manage gift cards, loyalty cards, and coupons</li><li><a href="https://github.com/VueTorrent/VueTorrent?ref=selfh.st"><strong>VueTorrent</strong></a>: Sleek web UI for qBittorrent</li></ul><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 &#x2615;</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://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Visual guide to SSH tunneling and port forwarding - ITTAVERN.COM</div><div class="kg-bookmark-description">SysAdmin Stuff | Linux | Network | Security</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.ico" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">ITTAVERN.COM</span><span class="kg-bookmark-publisher">CaffeineFueled</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/logo.webp" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://decoded.legal/blog/2024/09/running-a-law-firm-on-free-software-2024-edition/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Running a law firm on Free software (2024 edition)</div><div class="kg-bookmark-description">Two years ago, I wrote about running decoded.legal - an English law firm - on Free software.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.ico" alt="This Week in Self-Hosted (20 September 2024)"></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/decoded.legal_logo.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://unraid.net/blog/unraids-london-adventure?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Unraid Team&#x2019;s London Adventure</div><div class="kg-bookmark-description">The Unraid Team&#x2019;s London Adventure</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/safari-pinned-tab.svg" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">Unraid</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/charles-postiaux-Q6UehpkBSnQ-unsplash.jpg" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.tommy-johnston.com/blog/stripe-support-disaster?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Why I&#x2019;ll Never Use Stripe Again</div><div class="kg-bookmark-description">A complete disaster with Stripe&#x2019;s support, with persistent automation and no meaningful assistance.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.png" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">Tommy Johnston</span><span class="kg-bookmark-publisher">Tommy Johnston</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/opengraph-image" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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.png" alt="This Week in Self-Hosted (20 September 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.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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 (20 September 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 (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="content-spotlight-docking-station">Content Spotlight: Docking Station</h2><p>Meet <a href="https://github.com/LooLzzz/docking-station/?ref=selfh.st"><strong>Docking Station</strong></a>, a platform for managing Docker container updates. <strong>Docking Station</strong> comes with a lightweight and intuitive web interface that provides an overview of running containers and their images, latest versions, uptime, and an indicator for available updates. Features include compose stack discovery, options for release maturity periods, auto-updates (untested), and <a href="https://github.com/LooLzzz/docking-station/?ref=selfh.st#homepage-widget">Homepage widget support</a> via a custom API for easy update monitoring from a dashboard.</p><p><strong>Docking Station</strong> can be <a href="https://github.com/LooLzzz/docking-station/?ref=selfh.st#using-docker-compose-recommended">installed via Docker</a> and does not require any additional containers to be deployed.</p>
<!--kg-card-begin: html-->
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-docking-station.webp" alt="This Week in Self-Hosted (20 September 2024)">
<br>
<!--kg-card-end: html-->
<p>Links: <a href="https://github.com/LooLzzz/docking-station/?ref=selfh.st"><strong>GitHub</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=qKS8nYk5Jqs&amp;ref=selfh.st"><strong>Enclosed: The Simplest Way to Share Sensitive Information Online</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=iE8yFUvQ2e4&amp;ref=selfh.st"><strong>Home Assistant 11th Anniversary Celebration</strong></a> | Home Assistant</li><li><a href="https://www.youtube.com/watch?v=Y1ojp5EMWEI&amp;ref=selfh.st"><strong>All You Need Is An Old Device...</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=VLSWyTmM2ro&amp;ref=selfh.st"><strong>Building a Low-Power, Fully Loaded Plex Server</strong></a> | Techno Tim</li><li><a href="https://www.youtube.com/watch?v=DVNs6yNAIag&amp;ref=selfh.st"><strong>UniFi Network Controller Setup &amp; Migration</strong></a> | Spaceinvader One</li></ul><h2 id="command-line-corner-time-read">Command Line Corner: time read</h2><p>Use <strong>time read </strong>as a handy stopwatch that can be used directly from the terminal (press any key to stop):</p><pre><code class="language-bash">/$ time read
  real 0m4.588s</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.theregister.com/2024/09/11/civo_vmware_research/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">More than half of VMware customers looking for alternatives</div><div class="kg-bookmark-description">Price rises, uncertainty after Broadcom takeover forcing users to look elsewhere for virtualization needs</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.svg" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">The Register</span><span class="kg-bookmark-publisher">Richard Speed</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/shutterstock_stop_exit.jpg" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.backblaze.com/blog/announcing-support-for-ipv6/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Announcing Support for IPv6</div><div class="kg-bookmark-description">You can now connect to Backblaze B2 Cloud Storage via IPv6. Here&#x2019;s the story of how we deployed it and why that matters for you.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/cropped-cropped-backblaze_icon_transparent-300x300.png" alt="This Week in Self-Hosted (20 September 2024)"><span class="kg-bookmark-author">Backblaze Blog | Cloud Storage &amp; Cloud Backup</span><span class="kg-bookmark-publisher">Anthony Hoppe</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/bb-bh-IPv6-Story-1024x583.png" alt="This Week in Self-Hosted (20 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:44:"This Week in Self-Hosted (13 September 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:112:"Self-hosted news, updates, launches, and a spotlight on Haptic - a lightweight, minimal Markdown note-taking app";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-09-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:"66daed2e1d04bc00016c2c87";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 Sep 2024 11:49:58 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:25154:"<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 (13 September 2024)"><p>If you missed it, I launched a new project this week that makes the icon collection built to populate <a href="https://selfh.st/apps" rel="noreferrer"><strong>selfh.st/apps</strong></a> publicly available for anyone to use for dashboards, documentation, etc. The icons are stored in a <a href="https://github.com/selfhst/icons?ref=selfh.st">git repo</a> and can be easily browsed using the link below. Integrations with select dashboard projects are also in the works!</p><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.png" alt="This Week in Self-Hosted (13 September 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.png" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>In other news, a new (yet not-so-new) player entered the photos arena this week after <a href="https://www.plex.tv/blog/the-future-of-plex-focused-streamlined-and-ready-for-feedback/?ref=selfh.st">Plex launched a public beta for dedicated Android and iOS photo apps</a>. </p><p>While long-time users might remember the camera upload functionality removed from the existing app several years ago, the team has made it clear that this is part of an ongoing effort to keep their library of apps focused and targeted to specific media types (if you weren&apos;t aware, <a href="https://www.plex.tv/plexamp/?ref=selfh.st">Plexamp already exists for music</a>).</p><p>Audiobooks next?</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.plex.tv/blog/the-future-of-plex-focused-streamlined-and-ready-for-feedback/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Future of Plex: Focused, Streamlined, and Ready for Feedback</div><div class="kg-bookmark-description">Are you ready for some ch-ch-ch-ch-changes? We are excited to announce some significant updates that will enhance how you experience&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/plex-180.png" alt="This Week in Self-Hosted (13 September 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/Hero-Blog-Post-Plex-Media-4-scaled.jpg" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.prnewswire.com/news-releases/k1-acquires-mariadb-a-leading-database-software-company-and-appoints-new-ceo-302243508.html?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">K1 Acquires MariaDB, a Leading Database Software Company, and Appoints New CEO</div><div class="kg-bookmark-description">/PRNewswire/ -- K1 Investment Management, LLC (&#x201C;K1&#x201D;), one of the largest investors in small-cap enterprise software companies, today announced the completion&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/2019-Q4-PRN-Icon-32-32.png" alt="This Week in Self-Hosted (13 September 2024)"><span class="kg-bookmark-author">PR Newswire</span><span class="kg-bookmark-publisher">K1 Investment Management</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/K1_Logo.jpg" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://mailman.nginx.org/pipermail/nginx-announce/2024/ITL3AOQSAJANFJXMM3VOVOIGOUADWFFK.html?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">[nginx-announce] NGINX has moved to Github!</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.ico" alt="This Week in Self-Hosted (13 September 2024)"></div></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.servethehome.com/docker-raises-prices-up-to-80-percent-and-more/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Docker Raises Prices Up to 80 Percent and More</div><div class="kg-bookmark-description">Docker Pro annual pricing is increaseing by 80 percent while some of the benefits are being adjusted to the subscription level</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon.ico" alt="This Week in Self-Hosted (13 September 2024)"><span class="kg-bookmark-author">ServeTheHome</span><span class="kg-bookmark-publisher">Cliff Robinson</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/Docker-Pricing-2024-11-Annual.jpg" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/glanceapp/glance?ref=selfh.st"><strong>Glance</strong></a> <a href="https://github.com/glanceapp/glance/releases/tag/v0.6.0?ref=selfh.st"><strong>v0.6.0</strong></a> | <strong>Dashboard</strong>: Preconfigured pages, widget groups, DNS stats widget, branding customizations</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.115.0?ref=selfh.st"><strong>v1.115.0</strong></a> | <strong>Photos</strong>: Administration button, default exclusion patterns, start-up folder checks, upload trash indicator, manual Live motion photo links/unlinks</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.14.0?ref=selfh.st"><strong>v1.14.0</strong></a> | <strong>Software Deployment</strong>: Manager Docker networks, volumes, and images, bulk start/restart/pause actions, secret mode for variables</li><li><a href="https://github.com/sissbruecker/linkding?ref=selfh.st"><strong>Linkding</strong></a> <a href="https://github.com/sissbruecker/linkding/releases/tag/v1.32.0?ref=selfh.st"><strong>v1.32.0</strong></a> | <strong>Bookmarks</strong>: Landing page for unauthenticated users, guest user profiles, bookmark tags and filter parameters in RSS feeds</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/v1.6?ref=selfh.st"><strong>v1.6</strong></a> | <strong>Random Movies</strong>: Ratings filter updates, Plex caching system, updated icons, added PWA splash screen, minor UI tweaks</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.29.0?ref=selfh.st"><strong>v0.29.0</strong></a> | <strong>Remote Access</strong>: New relay feature integration for connections, automatic updates for Geolite data</li><li><a href="https://github.com/eduardolat/pgbackweb?ref=selfh.st"><strong>PG Back Web</strong></a> <a href="https://github.com/eduardolat/pgbackweb/releases/tag/0.3.0?ref=selfh.st"><strong>v0.3.0</strong></a> | <strong>Database Backups</strong>: File size for backup executions, automatic health checks for databases and destinations, webhooks for notifications, duplicate backup button, charts on dashboard</li><li><a href="https://github.com/seriousm4x/UpSnap?ref=selfh.st"><strong>UpSnap</strong></a> <a href="https://github.com/seriousm4x/UpSnap/releases/tag/4.3.0?ref=selfh.st"><strong>v4.3.0</strong></a> | <strong>Wake on LAN</strong>: Docker images now published on Docker Hub, PWA support, human-readable cron expressions</li><li><a href="https://github.com/wg-easy/wg-easy?ref=selfh.st"><strong>wg-easy</strong></a> <a href="https://github.com/wg-easy/wg-easy/releases/tag/v14.0.0?ref=selfh.st"><strong>v14.0.0</strong></a> | <strong>Remote Access</strong>: Home Assistant support, replaced <em>PASSWORD</em> with <em>PASSWORD_HASH</em></li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://johanohly.github.io/AirTrail/?ref=selfh.st"><strong>AirTrail</strong></a>: Personal flight tracking system</li><li><a href="https://github.com/daya0576/beaverhabits/?ref=selfh.st"><strong>Beaver Habit Tracker</strong></a>: Self-hosted habit tracking</li><li><a href="https://github.com/miroslavpejic85/call-me?ref=selfh.st"><strong>Call-Me</strong></a>: One-to-one video calls via WebRTC</li><li><a href="https://github.com/sdabhi23/frontporch?ref=selfh.st"><strong>FrontPorch</strong></a>: Configurable dashboard designed for homelabs</li><li><a href="https://www.linuxserver.io/?ref=selfh.st"><strong>LinuxServer.io</strong></a>: New containers for <a href="https://info.linuxserver.io/issues/2024-09-12-yaak/?ref=selfh.st">Yaak</a> and <a href="https://info.linuxserver.io/issues/2024-09-12-planka/?ref=selfh.st">Planka</a></li><li><a href="https://github.com/ValueMelody/melody-auth?ref=selfh.st"><strong>Melody Auth</strong></a>: Turnkey OAuth and authentication system</li><li><a href="https://github.com/dh1011/semantic-bookmark-manager?ref=selfh.st"><strong>Semantic Bookmark Manager</strong></a>: Web app for managing bookmarks with semantic search capabilities</li><li><a href="https://github.com/chicco-carone/Snapcast-Gui?ref=selfh.st"><strong>Snapcast GUI</strong></a>: Snapcast management interface</li><li><a href="https://github.com/blastbeng/subtify?ref=selfh.st"><strong>Subtify</strong></a>: Spotify-to-Subsonic playlist generator and importer</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/activepieces/activepieces?ref=selfh.st"><strong>Activepieces</strong></a> <a href="https://github.com/activepieces/activepieces/releases/tag/0.30.0?ref=selfh.st"><strong>v0.30.0</strong></a>: New and deprecated <a href="https://www.activepieces.com/docs/about/breaking-changes?ref=selfh.st#0-30-0">environment variables</a></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.14.0?ref=selfh.st"><strong>v1.14.0</strong></a>: Replaced &apos;MONITOR_&apos; environment variable prefixes with &apos;KOMODO_&apos;</li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://johanohly.github.io/AirTrail/?ref=selfh.st"><strong>AirTrail</strong></a>: Personal flight tracking system</li><li><a href="https://github.com/gchq/CyberChef?ref=selfh.st"><strong>CyberChef</strong></a>: Cyber Swiss Army knife</li><li><a href="https://github.com/joemccann/dillinger?ref=selfh.st"><strong>Dillinger</strong></a>: Cloud-enabled Markdown editor</li><li><a href="https://foundryvtt.com/?ref=selfh.st"><strong>Foundry Virtual Tabletop</strong></a>: Modern role-playing platform</li><li><a href="https://github.com/healthchecks/healthchecks?ref=selfh.st"><strong>Healthchecks</strong></a>: Cron job monitoring</li><li><a href="https://github.com/pbogre/jetlog?ref=selfh.st"><strong>Jetlog</strong></a>: Personal flight tracker and viewer</li><li><a href="https://github.com/meilisearch/meilisearch?ref=selfh.st"><strong>Meilisearch</strong></a>: Lightning-fast search API</li><li><a href="https://codeberg.org/silverpill/mitra?ref=selfh.st"><strong>Mitra</strong></a>: Federated micro-blogging platform</li><li><a href="https://github.com/netdata/netdata?ref=selfh.st"><strong>Netdata</strong></a>: Monitor servers, containers, and applications in real-time</li><li><a href="https://github.com/gnmyt/Nexterm?ref=selfh.st"><strong>Nexterm</strong></a>: Open-source server management software</li><li><a href="https://github.com/stefanpejcic/OpenPanel?ref=selfh.st"><strong>OpenPanel</strong></a>: Powerful and flexible control panel for Linux Systems</li><li><a href="https://gitlab.com/imn1/richy?ref=selfh.st"><strong>Richy</strong></a>: Investment portfolio management</li><li><a href="https://github.com/alexjustesen/speedtest-tracker?ref=selfh.st"><strong>Speedtest Tracker</strong></a>: Internet performance tracking app</li><li><a href="https://github.com/nandyalu/trailarr?ref=selfh.st"><strong>Trailarr</strong></a>: Download and manager trailers for media libraries</li><li><a href="https://github.com/meeb/tubesync?ref=selfh.st"><strong>TubeSync</strong></a>: Sync YouTube channels and playlists to a local server</li><li><a href="https://github.com/glenndehaan/unifi-voucher-site?ref=selfh.st"><strong>UniFi Voucher Site</strong></a>: Generate guest vouchers for UniFi networks</li></ul><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 &#x2615;</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://esc.sh/blog/plex-cross-continent-4k-streaming/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Plex 4K Streaming and Cross-Continent Playback: Making It Work</div><div class="kg-bookmark-description">Background Link to heading I have a Plex server, I want to share that with my friends and family
1st attempt : Simply host the Plex server and expose it directly + reverse proxy Link to heading This is the simplest solution. I have the Plex server running on an old Mini PC in my home network. I have a Digital Ocean VPS acting as a reverse proxy so that I don&#x2019;t have to expose my home IP directly to the internet.</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 (13 September 2024)"><span class="kg-bookmark-author">Esc.sh</span><span class="kg-bookmark-publisher">Mansoor</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/fastly-pricing.png" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/DartSteven/MacOS-Rsync-iCloud-To-Linux?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - DartSteven/MacOS-Rsync-iCloud-To-Linux</div><div class="kg-bookmark-description">Contribute to DartSteven/MacOS-Rsync-iCloud-To-Linux 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.svg" alt="This Week in Self-Hosted (13 September 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">DartSteven</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/MacOS-Rsync-iCloud-To-Linux" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.elenarossini.com/fediverse-summer-3-lessons/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">My Fediverse summer &amp; the top 3 lessons I learned</div><div class="kg-bookmark-description">The 3 biggest lessons I learned this summer about the Fediverse as I went from 1 account to 9!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ELE-avatar-muses-pink-1.jpg" alt="This Week in Self-Hosted (13 September 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-10.jpg" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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/introducing-selfh-st-icons/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Introducing selfh.st/icons, a Collection of Self-Hosted Dashboard Icons</div><div class="kg-bookmark-description">A collection of icons and logos for dashboards and other homelab-related activities</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/favicon-1.png" alt="This Week in Self-Hosted (13 September 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-2.png" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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 (13 September 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 (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="content-spotlight-haptic">Content Spotlight: Haptic</h2><p>Meet <a href="https://github.com/chroxify/haptic?ref=selfh.st"><strong>Haptic</strong></a>, a privacy-focused home for Markdown-flavored notes. <strong>Haptic</strong> touts itself as a minimal and lightweight application that &#x2013; while it may look very similar to Obsidian &#x2013; was intentionally designed without the bells and whistles to keep the focus on its core functionality. All notes are currently stored on-device (although the team is <a href="https://github.com/chroxify/haptic?ref=selfh.st#roadmap">working on a sync server</a>) and its features are refreshingly basic for those looking for something that&apos;s ready-to-use and accessible from most devices via web app.</p><p><strong>Haptic</strong> can be <a href="https://github.com/chroxify/haptic?ref=selfh.st#docker">installed via Docker</a> and doesn&apos;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-haptic.webp" alt="This Week in Self-Hosted (13 September 2024)">
<br>
<!--kg-card-end: html-->
<p>Links: <a href="https://github.com/chroxify/haptic?ref=selfh.st"><strong>GitHub</strong></a>, <a href="https://www.haptic.md/?ref=selfh.st"><strong>Website</strong></a>, <a href="https://app.haptic.md/notes?ref=selfh.st"><strong>Web App</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=rmRl7d31DPM&amp;ref=selfh.st"><strong>Zipline: The Secure File Sharing Solution to Boost Your Productivity</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=iYKZhNklFbo&amp;ref=selfh.st"><strong>Beat Carrier Grade NAT with Tailscale, Swag, and a VPS</strong></a> | Spaceinvader One</li></ul><h2 id="command-line-corner-ctrl-k">Command Line Corner: Ctrl + k</h2><p>Use <strong>Ctrl + k</strong> to delete everything from the current cursor position to the end of the line:</p><pre><code class="language-bash">/$ docker compose_ up ghost 
/$ docker compose_</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://arstechnica.com/gadgets/2024/09/music-industrys-1990s-hard-drives-like-all-hdds-are-dying/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Music industry&#x2019;s 1990s hard drives, like all HDDs, are dying</div><div class="kg-bookmark-description">The music industry traded tape for hard drives and got a hard-earned lesson.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ars-ios-icon-d9a45f558c.png" alt="This Week in Self-Hosted (13 September 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/GettyImages-1007580166-760x380.jpg" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.archive.org/2024/09/11/new-feature-alert-access-archived-webpages-directly-through-google-search/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">New Feature Alert: Access Archived Webpages Directly Through Google Search | Internet Archive Blogs</div><div class="kg-bookmark-description">&lt;p&gt;For our fifth monthly public domain night, Internet Archive will host a screening of WINGS (1927), starring Clara Bow, Buddy Rogers, and Richard Arlen. Join us for a timeless story [&#x2026;]&lt;/p&gt;\n</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://selfh.st/content/images/icon/ia-logo-sq-300x300.png" alt="This Week in Self-Hosted (13 September 2024)"><span class="kg-bookmark-author">Internet Archive Blogs</span><span class="kg-bookmark-publisher">Chris Freeland</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://selfh.st/content/images/thumbnail/IA-Blog.png" alt="This Week in Self-Hosted (13 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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: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:71:"Introducing selfh.st/icons, a Collection of Self-Hosted Dashboard Icons";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:83:"A collection of icons and logos for dashboards and other homelab-related activities";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:44:"https://selfh.st/introducing-selfh-st-icons/";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:"66e0b275a81f7b0001964809";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:"Wed, 11 Sep 2024 11:35: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:70:"https://selfh.st/content/images/2024/09/screenshot-selfhst-icons-2.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:2480:"<img src="https://selfh.st/content/images/2024/09/screenshot-selfhst-icons-2.png" alt="Introducing selfh.st/icons, a Collection of Self-Hosted Dashboard Icons"><p>When I developed <a href="https://selfh.st/apps" rel="noreferrer"><strong>selfh.st/apps</strong></a> earlier this year, I promised myself I wouldn&apos;t waste time curating the icons and logos that would accompany each project featured in the directory. As is usual, it was a complete lie.</p><p>As the directory grew, I found myself in need of more icons to display along new software than the projects I was leveraging could keep up with (to no fault of their own).</p><p>And so about two months ago, I began building my own collection of icons from scratch and slowly transitioned away from relying on the work of others. The end result is a <a href="https://selfh.st/icons" rel="noreferrer"><strong>collection of 600+ standardized icons and logos</strong></a> in multiple formats (SVG, PNG, and WebP) that are officially available for public use:</p><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.png" alt="Introducing selfh.st/icons, a Collection of Self-Hosted Dashboard Icons"><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.png" alt="Introducing selfh.st/icons, a Collection of Self-Hosted Dashboard Icons" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>If you&apos;re interested in the finer details of the collection, feel free to browse the <a href="https://github.com/selfhst/icons?ref=selfh.st">project&apos;s GitHub repository</a> &#x2013; where I&apos;ve provided more info about the project and how the icons can be leveraged across services.</p><p>If I&apos;m missing an icon, feel free to head over to the project&apos;s <a href="https://github.com/selfhst/icons/discussions?ref=selfh.st">GitHub discussions</a> to let me know and I&apos;ll get to it as soon as I can.</p><p>Thanks, and happy <strong>selfh.st</strong>/ing!</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: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:43:"This Week in Self-Hosted (6 September 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:135:"Self-hosted news, updates, launches, and a spotlight on BookLogr - a web app for managing and tracking reading libraries and statistics";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-09-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:"66d1892af7f9da00017a9edc";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 Sep 2024 11:49:33 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:33521:"
<!--kg-card-begin: html-->
<a href="https://www.pikapods.com/?utm_source=selfh.st&amp;utm_campaign=newsletter" data-umami-event="newsletter-sponsor-headline-logo-pikapods" style="text-decoration: none !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 September 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&#xA0;<a href="https://www.pikapods.com/?utm_source=selfh.st&amp;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&amp;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">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 (6 September 2024)"><p>Looking for something to do this weekend? Good &#x2013; it was a record-breaking week with a whopping <em>26</em> new software launches catalogued below. Additionally, two <a href="https://github.com/Casvt/Kapowarr/releases/tag/V1.0.0?ref=selfh.st">existing</a> <a href="https://github.com/diogovalentte/mantium/releases/tag/v1.0.0?ref=selfh.st">projects</a> released milestone v1.0 releases and <a href="https://github.com/immich-app/immich/releases/tag/v1.113.0?ref=selfh.st">Immich (finally) added support for tags</a>.</p><p>If you need me, I&apos;ll be off in the corner envying all the <a href="https://www.fractal-design.com/app/uploads/2024/07/North_Pi_Instructions.pdf?ref=selfh.st">Fractal North Raspberry Pi cases</a> <a href="https://www.reddit.com/gallery/1f86r03?ref=selfh.st">people</a> <a href="https://www.reddit.com/gallery/1f54dzy?ref=selfh.st">keep</a> <a href="https://www.pcgamer.com/hardware/pc-cases/people-are-making-mini-fractal-design-cases-for-their-raspberry-pi-and-its-making-me-wish-i-owned-a-3d-printer-so-i-could-do-the-same/?ref=selfh.st">printing</a>.</p><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://news.itsfoss.com/vishnu-ente-founder-interview/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">&#x201C;I believe privacy is worth paying for&#x201D;: Vishnu Mohandas, Creator of &#x2018;Ente&#x2019;, an Open-Source Rival to Google Photos</div><div class="kg-bookmark-description">Meet the founder of Ente, building a privacy alternative to Google Photos.</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 (6 September 2024)"><span class="kg-bookmark-author">It&apos;s FOSS News</span><span class="kg-bookmark-publisher">Ankush Das</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.itsfoss.com/content/images/2024/09/ente-founder-interview-feat.png" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.home-assistant.io/blog/2024/09/03/aqara-joins-works-with-home-assistant/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Aqara joins Works with Home Assistant</div><div class="kg-bookmark-description">We have certified 4 Aqara devices, all of which are the first to use our Works via Matter with Home Assistant badge.</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 (6 September 2024)"><span class="kg-bookmark-author">Home Assistant</span><span class="kg-bookmark-publisher">Guy Sie</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.home-assistant.io/images/blog/2024-09-aqara-wwha/art.jpg" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/pinkary-open-source/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">This Strange Twitter-like Platform With Social Links is Now Open-Source!</div><div class="kg-bookmark-description">The dawn of an interesting open-source social media network?</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 (6 September 2024)"><span class="kg-bookmark-author">It&apos;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/09/pinkary-opensource.png" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/caronc/apprise?ref=selfh.st"><strong>Apprise</strong></a> <a href="https://github.com/caronc/apprise/releases/tag/v1.9.0?ref=selfh.st"><strong>v1.9.0</strong></a> | <a href="https://selfh.st/apps/?tag=Notifications"><strong>Notifications</strong></a>: <a href="https://github.com/caronc/apprise/wiki/persistent_storage?ref=selfh.st">Persistent storage</a>, WxPusher support, SendGrid attachment support</li><li><a href="https://gitlab.com/baserow/baserow?ref=selfh.st"><strong>Baserow</strong></a> <a href="https://gitlab.com/baserow/baserow/-/releases?ref=selfh.st#released-1270"><strong>v1.27.0</strong></a> | <a href="https://selfh.st/apps/?tag=No-Code+%2F+Low-Code"><strong>No-Code Database</strong></a>: Faster formulas, new theme settings, external calendar sync, official Helm chart, join data via API</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.3.0?ref=selfh.st"><strong>v0.3.0</strong></a> | <a href="https://selfh.st/apps/?tag=Wiki"><strong>Documentation</strong></a>: Built-in support for Draw.io, Mermaid, and Excalidraw, code block language selection, editor file attachments</li><li><a href="https://github.com/TryGhost/Ghost?ref=selfh.st"><strong>Ghost</strong></a> <a href="https://github.com/TryGhost/Ghost/releases/tag/v5.92.0?ref=selfh.st"><strong>v5.92.0</strong></a> | <a href="https://selfh.st/apps/?tag=Content+Management"><strong>Content Management</strong></a>: Support for <a href="https://ghost.org/changelog/tips-donations/?ref=selfh.st">tips and one-off payments</a></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.16.0?ref=selfh.st"><strong>v0.16.0</strong></a> | <a href="https://selfh.st/apps/?tag=Bookmarks"><strong>Bookmarks</strong></a>: Consolidated containers, dropped Redis from dependencies, new datatypes (checklists, tables, and auto-links in Markdown), mobile app updates</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.9.0?ref=selfh.st"><strong>v2024.9.0</strong></a> | <a href="https://selfh.st/apps/?tag=Smart+Home"><strong>Home Automation</strong></a>: Wider sections, full span cards, untracked energy, <a href="https://www.home-assistant.io/blog/2024/09/04/release-20249/?ref=selfh.st#new-integrations">new integrations</a> and <a href="https://www.home-assistant.io/blog/2024/09/04/release-20249/?ref=selfh.st#noteworthy-improvements-to-existing-integrations">improvements to existing integrations</a></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.113.0?ref=selfh.st"><strong>v1.113.0</strong></a> | <a href="https://selfh.st/apps/?tag=Photos"><strong>Photos</strong></a><strong> </strong>: Folder view, tags, timeline improvements, library refresh stability, mobile album sync</li><li><a href="https://github.com/Casvt/Kapowarr?ref=selfh.st"><strong>Kapowarr</strong></a> <a href="https://github.com/Casvt/Kapowarr/releases/tag/V1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <a href="https://selfh.st/apps/?tag=Books"><strong>Comic Server</strong></a>: Various updates across the UI, volumes, libraries, volumes, file handling, downloading, and system settings</li><li><a href="https://github.com/zoriya/Kyoo?ref=selfh.st"><strong>Kyoo</strong></a> <a href="https://github.com/zoriya/Kyoo/releases/tag/v4.7.0?ref=selfh.st"><strong>v4.7.0</strong></a> | <a href="https://selfh.st/apps/?tag=Media+Streaming" rel="noreferrer"><strong>Media Server</strong></a>: External subtitle support, migrated transcoder storage from JSON to PostgreSQL, browse media type filter</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.57.0?ref=selfh.st"><strong>v3.57.0</strong></a> | <a href="https://selfh.st/apps/?tag=Music+Streaming"><strong>Music Streaming</strong></a>: Subsonic API support for 5-star ratings, &apos;comment&apos; tag support, embedded cover handling in AIFF and WAV files</li><li><a href="https://github.com/diogovalentte/mantium?ref=selfh.st"><strong>Mantium</strong></a> <a href="https://github.com/diogovalentte/mantium/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <a href="https://selfh.st/apps/?tag=Books"><strong>Manga Tracker</strong></a>: Search form, new pop-up forms, support for MangaUpdates as a source, Tranga integration</li><li><a href="https://github.com/medama-io/medama?ref=selfh.st"><strong>Medama</strong></a> <a href="https://github.com/medama-io/medama/releases/tag/v0.5.0?ref=selfh.st"><strong>v0.5.0</strong></a> |<strong> </strong><a href="https://selfh.st/apps/?tag=Web+Analytics"><strong>Web Analytics</strong></a>: Support for custom properties an additional metadata</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.1.0?ref=selfh.st"><strong>v7.1.0</strong></a> | <a href="https://selfh.st/apps/?tag=Tracking"><strong>Tracking</strong></a>: Exercise charts, button to remove media from list, sort by provider rating</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.23.0?ref=selfh.st"><strong>v2.23.0</strong></a> | <a href="https://selfh.st/apps/?tag=Tracking"><strong>Subscriptions</strong></a>: Support for multiple email recipients, show original price on dashboard, open edit form after cloning, select multiple filters</li><li><a href="https://github.com/aceberg/WatchYourLAN?ref=selfh.st"><strong>WatchYourLAN</strong></a> <a href="https://github.com/aceberg/WatchYourLAN/releases/tag/2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <a href="https://selfh.st/apps/?tag=Monitoring"><strong>Network Monitoring</strong></a>: API support, InfluxDB exports, PostgreSQL and SQLite database support, arguments for &apos;arp-scan&apos; option</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/dan-online/autopulse?ref=selfh.st"><strong>autopulse</strong></a>: Automated media update triggers</li><li><a href="https://github.com/RishiBakshii/mern-chat-end-to-end-encrypted?ref=selfh.st"><strong>Baatchit</strong></a>: Real-time chat application</li><li><a href="https://github.com/3urobeat/git-anon?ref=selfh.st"><strong>git-anon</strong></a>: Track personal commit stats without sharing code</li><li><a href="https://github.com/TimWitzdam/GitSave?ref=selfh.st"><strong>GitSave</strong></a>: Git repository backups on a schedule</li><li><a href="https://github.com/chroxify/haptic?ref=selfh.st"><strong>Haptic</strong></a>: Local-first home for Markdown notes</li><li><a href="https://github.com/HiEventsDev/Hi.Events?ref=selfh.st"><strong>Hi.Events</strong></a>: Event management and ticketing platform</li><li><a href="https://github.com/muchdogesec/history4feed?ref=selfh.st"><strong>history4feed</strong></a>: Full-text historical archives for RSS and ATOM feeds</li><li><a href="https://github.com/DifuseHQ/Kalmia?ref=selfh.st"><strong>Kalmia</strong></a>: Documentation CMS written in Go</li><li><a href="https://github.com/yevbar/lusid?ref=selfh.st"><strong>Lusid</strong></a>: Automate iMessage with Python (MacBook required)</li><li><a href="https://github.com/gnmyt/Nexterm?ref=selfh.st"><strong>Nexterm</strong></a>: Server management software for SSH, VNC, and RDP</li><li><a href="https://github.com/streetwriters/notesnook-sync-server?ref=selfh.st"><strong>Notesnook</strong></a>: End-to-end encrypted notes with desktop and mobile clients (sync server currently in alpha)</li><li><a href="https://github.com/pifi-org/pifi-openwrt-raspberry-pi?ref=selfh.st"><strong>PiFi</strong></a>: Raspberry Pi router firmware</li><li><a href="https://github.com/ziadhorat/Plex-Spot?ref=selfh.st"><strong>Plex Spot</strong></a>: Plex library media listing and statistics</li><li><a href="https://github.com/gitroomhq/postiz-app?ref=selfh.st"><strong>Postiz</strong></a>: AI social media scheduling tool</li><li><a href="https://github.com/slashback100/presence_simulation?ref=selfh.st"><strong>Presence Simulation</strong></a>: Home Assistant presence simulation while away</li><li><a href="https://github.com/jacob-shuman/readl8r?ref=selfh.st"><strong>readl8r</strong></a>: Really simple FOSS read later service</li><li><a href="https://github.com/seadfeng/redirect-checker?ref=selfh.st"><strong>Redirect Checker</strong></a>: Analyze and verify URL redirects</li><li><a href="https://github.com/SDashS/SDash?ref=selfh.st"><strong>SDash</strong></a>: Simple server dashboard</li><li><a href="https://github.com/galvao-eti/shelly?ref=selfh.st"><strong>Shelly</strong></a>: SSH web interface</li><li><a href="https://github.com/harsxv/tinystatus?ref=selfh.st"><strong>TinyStatus</strong></a>: Status page generated by a Python script</li><li><a href="https://github.com/thekampany/tripproject?ref=selfh.st"><strong>Trippanion</strong></a>: Trip planning companion app</li><li><a href="https://github.com/MattBlackOnly/TubeTube?ref=selfh.st"><strong>TubeTube</strong></a>: YouTube downloader</li><li><a href="https://github.com/govigilant/vigilant?ref=selfh.st"><strong>Vigilant</strong></a>: Technical website monitoring</li><li><a href="https://github.com/wheresfrank/voterr?ref=selfh.st"><strong>Voterr</strong></a>: Vote on movies to watch from a shared Plex library</li><li><a href="https://github.com/RemyFV/WoLi-webgui?ref=selfh.st"><strong>WoLi WebGUI</strong></a>: Lightweight container for sending WoL magic packets</li><li><a href="https://github.com/anirudhvsp/xboxBackup?ref=selfh.st"><strong>Xbox Media Downloader</strong></a>: Automatic backups for Xbox media clips and screenshots via Xbox Live API</li></ul><h2 id="container-updates">Container Updates</h2><ul><li><em>Monitor</em> project renamed to <strong>Komodo</strong> in <a href="https://github.com/mbecker20/komodo/releases/tag/v1.14.0-rc1?ref=selfh.st"><strong>v1.14.0-rc1</strong></a></li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><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.113.0?ref=selfh.st"><strong>v1.113.0</strong></a>: Update required for OAuth provider settings</li><li><a href="https://github.com/diogovalentte/mantium?ref=selfh.st"><strong>Mantium</strong></a> <a href="https://github.com/diogovalentte/mantium/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a>: Dropped support for non-root container users</li><li><a href="https://github.com/aceberg/WatchYourLAN?ref=selfh.st"><strong>WatchYourLAN</strong></a> <a href="https://github.com/aceberg/WatchYourLAN/releases/tag/2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a>: v2.0 not compatible with v1.0</li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://github.com/chroxify/haptic?ref=selfh.st"><strong>Haptic</strong></a>: Local-first home for Markdown notes</li><li><a href="https://github.com/3rob3/ImmichFrame?ref=selfh.st"><strong>Immich-Frame</strong></a>: Digital photo frame for Immich servers</li><li><a href="https://github.com/streetwriters/notesnook-sync-server?ref=selfh.st"><strong>Notesnook</strong></a>: End-to-end encrypted notes with desktop and mobile clients</li><li><a href="https://github.com/pinkary-project/pinkary.com?ref=selfh.st"><strong>Pinkary</strong></a>: Federated landing page for links and connecting with others</li><li><a href="https://github.com/xwiki/xwiki-platform?ref=selfh.st"><strong>XWiki</strong></a>: Powerful collaboration and documentation platform</li></ul><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 &#x2615;</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://chollinger.com/blog/2024/08/why-i-still-self-host-my-servers-and-what-ive-recently-learned/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Why I still self host my servers (and what I&#x2019;ve recently learned)</div><div class="kg-bookmark-description">A short story on why I still go through the effort of self hosting servers and some things it taught me recently.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://chollinger.com/favicon.ico" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">Christian Hollinger</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://chollinger.com/blog/2024/08/why-i-still-self-host-my-servers-and-what-ive-recently-learned/assets/image-20240825124525084.png" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://nevodavid.hashnode.dev/how-i-built-my-open-source-social-media-scheduling-tool?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How I built my Open-source social media scheduling Tool</div><div class="kg-bookmark-description">I published Postiz, my open-source social media scheduling tool, on Reddit, and received much attention.
I guess it was super needed in open-source.I have received multiple questions from developers on how I built it.
So today, I will take you throug&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1611242155728/W3_BYVVVh.png" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">Nevos.io</span><span class="kg-bookmark-publisher">Nevo David</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://nevodavid.hashnode.dev/api/og/post?og=eyJ0aXRsZSI6IkhvdyUyMEklMjBidWlsdCUyMG15JTIwT3Blbi1zb3VyY2UlMjBzb2NpYWwlMjBtZWRpYSUyMHNjaGVkdWxpbmclMjBUb29sIiwiYXV0aG9yIjoiTmV2byUyMERhdmlkIiwiZG9tYWluIjoibmV2b2RhdmlkLmhhc2hub2RlLmRldiIsInBob3RvIjoiaHR0cHM6Ly9jZG4uaGFzaG5vZGUuY29tL3Jlcy9oYXNobm9kZS9pbWFnZS91cGxvYWQvdjE2NTE2NjA1MDM0NzkvNFJxSEI0YkZpay5wbmciLCJiZ2NvbG9yIjoiIzcxMWQwMCIsInJlYWRUaW1lIjo0fQ==" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/dougiteixeira/proxmoxve?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - dougiteixeira/proxmoxve: Proxmox VE Custom Integration Home Assistant</div><div class="kg-bookmark-description">Proxmox VE Custom Integration Home Assistant. Contribute to dougiteixeira/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 (6 September 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">dougiteixeira</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/bc2acd94fb65cb192bf8dc9d73c86d721a36e019b9dfe5353a6a45b6e7bc8495/dougiteixeira/proxmoxve" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://kittenlabs.de/blog/2024/09/01/extreme-pi-boot-optimization/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Extreme Pi Boot Optimization</div><div class="kg-bookmark-description">&#x1F680; 3.5 sec to Linux userspace code</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://kittenlabs.de/favicons/apple-touch-icon-180x180.png" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">KittenLabs</span><span class="kg-bookmark-publisher">KittenLabs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://kittenlabs.de/blog/2024/09/01/extreme-pi-boot-optimization/featured-DSC01414.jpg" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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/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 (6 September 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 (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><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 (6 September 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 (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="content-spotlight-booklogr">Content Spotlight: BookLogr</h2><p>Meet <a href="https://github.com/Mozzo1000/booklogr?ref=selfh.st"><strong>BookLogr</strong></a>, a self-hosted web app for tracking and managing personal reading libraries. With <strong>BookLogr</strong>, readers can easily catalogue books into three categories: <em>Currently Reading</em>, <em>To be read</em>, and <em>Read</em>. Other functionality includes ratings, notes for later reference, and general statistics about a user&apos;s library.</p><p><a href="https://github.com/Mozzo1000/booklogr?ref=selfh.st#about-the-project">Per the project&apos;s repository</a>, <strong>BookLogr</strong> is fairly young and still under active development &#x2013; and thus prone to potential breaking changes. Regardless, the app can be <a href="https://github.com/Mozzo1000/booklogr?ref=selfh.st#about-the-project">installed via Docker or bare metal</a> and requires separate database and API containers.</p>
<!--kg-card-begin: html-->
<img src="https://cdn.jsdelivr.net/gh/selfhst/cdn/assets/images/content-spotlight/screenshot-booklogr.webp" alt="This Week in Self-Hosted (6 September 2024)">
<br>
<!--kg-card-end: html-->
<p>Links: <a href="https://github.com/Mozzo1000/booklogr?ref=selfh.st" rel="noreferrer"><strong>GitHub</strong></a><strong>, </strong><a href="https://github.com/Mozzo1000/booklogr/wiki?ref=selfh.st"><strong>Docs</strong></a><strong>, </strong><a href="https://demo.booklogr.app/login?ref=selfh.st"><strong>Demo</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=AgQSFJ-ExqY&amp;ref=selfh.st"><strong>Dynamic DNS: pfSense, OPNSense, Docker, Bash</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=0M6IbwtLsdE&amp;ref=selfh.st"><strong>Getting Started with Nexterm: The Future of Server Management!</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=o0VqnCPTbXQ&amp;ref=selfh.st"><strong>Everything New In Home Assistant 2024.9!</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=HriJkdgNlKs&amp;ref=selfh.st"><strong>My NEW HomeLab storage server!</strong></a> | Christian Lempa</li></ul><h2 id="what-im-listening-to">What I&apos;m Listening To</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfhosted.show/131?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Value of Community</div><div class="kg-bookmark-description">We celebrate five years of the show, chat about self-hosted Lightning, and why Alex loves his NanoKVM. Plus, it is a self-hosted replacement for Amazon Wishlists and more.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7296e34a-2697-479a-adfb-ad32329dd0b0/touch_icon_ipad.png?v=2" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">Self-Hosted</span><span class="kg-bookmark-publisher">Jupiter Broadcasting</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7296e34a-2697-479a-adfb-ad32329dd0b0/cover_medium.jpg?v=0" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="command-line-corner-ctrl-u">Command Line Corner: Ctrl + u</h2><p>Use <strong>Ctrl + u </strong>to easily delete all text from the current line preceding the location of the cursor:</p><pre><code class="language-bash">/$ docker compose up_  
/$ _
/$ docker compose up -d _ghost
/$ 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://arstechnica.com/gadgets/2024/08/anandtech-mainstay-of-computer-hardware-reviews-closes-after-27-years/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AnandTech, mainstay of computer hardware reviews, closes after 27 years</div><div class="kg-bookmark-description">Site was founded by a 14-year-old Anand Lal Shimpi in 1997.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.arstechnica.net/wp-content/themes/ars/assets/img/ars-ios-icon-d9a45f558c.png" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">Ars Technica</span><span class="kg-bookmark-publisher">Andrew Cunningham</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.arstechnica.net/wp-content/uploads/2024/08/Screenshot-2024-08-30-at-12.23.07%E2%80%AFPM-760x380.jpeg" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.wired.com/story/internet-archive-loses-hachette-books-case-appeal/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Internet Archive Loses Its Appeal of a Major Copyright Case</div><div class="kg-bookmark-description">Hachette v. Internet Archive was brought by book publishers objecting to the archive&#x2019;s digital lending library.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.wired.com/verso/static/wired/assets/favicon.ico" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">WIRED</span><span class="kg-bookmark-publisher">Cond&#xE9; Nast</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://media.wired.com/photos/66d88cf630b2a3c16022bac4/191:100/w_1280,c_limit/Internet-Archive-Hachette-Copyright-Case-Business-78494709.jpg" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://techcrunch.com/2024/08/29/sub-club-aims-to-fund-the-fediverse-via-premium-feeds/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Sub.club aims to fund the fediverse via premium feeds | TechCrunch</div><div class="kg-bookmark-description">Sub.club thinks premium feeds could also serve other use cases, like supporting helpful bots or generating funds to help maintain a community&#x2019;s Mastodon server, for instance.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://techcrunch.com/wp-content/uploads/2015/02/cropped-cropped-favicon-gradient.png?w=192" alt="This Week in Self-Hosted (6 September 2024)"><span class="kg-bookmark-author">TechCrunch</span><span class="kg-bookmark-publisher">Sarah Perez</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://techcrunch.com/wp-content/uploads/2024/07/YouTube-Thumb-Text-4.png?resize=1200,675" alt="This Week in Self-Hosted (6 September 2024)" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:41:"This Week in Self-Hosted (30 August 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:130:"Self-hosted news, updates, launches, and a spotlight on Calibre-Web Automated - a consolidated web app for Calibre and Calibre-Web";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-08-30/";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:"66c887bc07f1d10001411096";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, 30 Aug 2024 11:45:29 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:25317:"<h2 id="this-week-in-self-hosted">This Week in Self-Hosted</h2>
<!--kg-card-begin: html-->
<img src="https://selfh.st/content/images/2024/07/newsletter-featured-image.png" alt="This Week in Self-Hosted (30 August 2024)"><p style="margin-bottom: 3px; font-size: 21px !important"><strong>Tides of Change</strong></p>
<!--kg-card-end: html-->
<p>Plex announced they&apos;ll be <a href="https://www.digitaltrends.com/home-theater/plex-tidal-integration-dead/?ref=selfh.st">dropping Tidal integration in late October</a> this week. Their third-party offerings/integrations have personally never come off as incredibly appealing &#x2013; but some of the <a href="https://old.reddit.com/r/PleX/comments/1f2l3me/tidal_is_leaving_plex/?ref=selfh.st">Reddit reactions to this news</a> lead me to believe more will be impacted than previously thought.</p>
<!--kg-card-begin: html-->
<p style="margin-bottom: 3px; font-size: 21px !important"><strong>I Think I&apos;m Having an Asterism</strong></p>
<!--kg-card-end: html-->
<p>Meet the asterism (&#x2042;) &#x2013; the <a href="https://symbol.fediverse.info/?ref=selfh.st">proposed new symbol for the fediverse</a> that has been <a href="https://news.ycombinator.com/item?id=41327567&amp;ref=selfh.st">gaining</a> <a href="https://www.theverge.com/2024/8/23/24226755/til-what-an-asterism-is?ref=selfh.st">traction</a> this past week. It&apos;s supposed to represent the various networks that come together to create the decentralized web, but the jury is still out on whether the community will be willing to accept it with open arms. Regardless, it isn&apos;t the <a href="https://www.wsj.com/tech/twitter-rebrand-x-elon-musk-d55c0c2d?ref=selfh.st">worst social rebrand</a> we&apos;ve witnessed in the recent past.</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.thunderbird.net/2024/08/plan-less-do-more-introducing-appointment-by-thunderbird/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Plan Less, Do More: Introducing Appointment By Thunderbird - The Thunderbird Blog</div><div class="kg-bookmark-description">Thunderbird has a new project under its wing: Appointment. Learn all about our approach to appointment scheduling, and try it yourself.</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 (30 August 2024)"><span class="kg-bookmark-author">The Thunderbird Blog</span><span class="kg-bookmark-publisher">Ryan Sipes</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.thunderbird.net/files/2024/08/thunderbird-appointment-1.png" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.jeffgeerling.com/blog/2024/new-2gb-pi-5-has-33-smaller-die-30-idle-power-savings?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">New 2GB Pi 5 has 33% smaller die, 30% idle power savings | Jeff Geerling</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.jeffgeerling.com/apple-touch-icon.png" alt="This Week in Self-Hosted (30 August 2024)"><span class="kg-bookmark-author">Jeff Geerling</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.jeffgeerling.com/sites/default/files/images/pi-5-C1-vs-D0-Stepping.jpg" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.elastic.co/blog/elasticsearch-is-open-source-again?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Elasticsearch is Open Source, Again</div><div class="kg-bookmark-description">Elastic is adding AGPL as an open source license option to Elasticsearch alongside ELv2 and SSPL.&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.elastic.co/apple-icon-180x180.png" alt="This Week in Self-Hosted (30 August 2024)"><span class="kg-bookmark-author">Elastic</span><span class="kg-bookmark-publisher">Shay Banon</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt12045d30d68469e7/66d0d948e6fe738e272e800b/old-logos-opengraph.png" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><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.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>eBook Library</strong>: Library creation for new users, dark/light mode toggle, internal update notification system, manual library refresh, batch editing and deletion</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.24.2?ref=selfh.st"><strong>v1.24.2</strong></a> | <strong>RSS Aggregator</strong>: Global option for tagging favorites, share articles from article text line, new core extensions, force log out of disabled users</li><li><a href="https://github.com/avdept/JellyBoxPlayer?ref=selfh.st"><strong>Jellybox</strong></a> <a href="https://github.com/avdept/JellyBoxPlayer/releases/tag/v1.8.4?ref=selfh.st"><strong>v1.8.4</strong></a> | <strong>Jellyfin Client</strong>: Playlist support, dynamic progress bar color, sorting, new &apos;Random&apos; sort option</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.12.0?ref=selfh.st"><strong>v1.12.0</strong></a> | <strong>Comic Server</strong>: Initial support for Kobo Sync, support for API keys</li><li><a href="https://nzb360.com/?ref=selfh.st"><strong>nzb360</strong></a> <a href="https://old.reddit.com/r/nzb360/comments/1f1azbc/new_release_v192/?ref=selfh.st"><strong>v19.2</strong></a> | <strong>Media Manager</strong>: Overseerr notification support, season pack filtering in searches, sort shows by rating</li><li><a href="https://github.com/mfts/papermark?ref=selfh.st"><strong>Papermark</strong></a> <a href="https://github.com/mfts/papermark/releases/tag/v0.15.0?ref=selfh.st"><strong>v0.15.0</strong></a> | <strong>Document Management</strong>: Drag and drop documents, bulk actions, sort document index, GIFs in presentations, additional visitor analytics</li><li><a href="https://github.com/stonith404/pingvin-share?ref=selfh.st"><strong>Pingvin Share</strong></a> <a href="https://github.com/stonith404/pingvin-share/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <strong>File Sharing</strong>: LDAP authentication support</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.8.0?ref=selfh.st"><strong>v0.8.0</strong></a> | <strong>Gardening Companion</strong>: Performance and notification improvements, rebase image from Ubuntu to Alpine, Gotify notification support</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.0.0?ref=selfh.st"><strong>v7.0.0</strong></a> | <strong>Tracking</strong>: New dashboard feature with consolidated activities over chosen timespan, Komga integration support</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.10.0?ref=selfh.st"><strong>v0.10.0</strong></a> | <strong>Jellyfin Mobile</strong>: Quick connect login, select media source, actor pages, search for collections, display options for library list view</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.13.0?ref=selfh.st"><strong>v2.13.0</strong></a> | <strong>Web Analytics</strong>: Sessions data add views, new events screen, visitor profiles</li><li><a href="https://github.com/sbondCo/Watcharr?ref=selfh.st"><strong>Watcharr</strong></a> <a href="https://github.com/sbondCo/Watcharr/releases/tag/v1.42.0?ref=selfh.st"><strong>v1.42.0</strong></a> | <a href="https://github.com/sbondCo/Watcharr?ref=selfh.st"><strong>Watch List</strong></a>: Trakt import support, tags</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/goshops-com/clipshare?ref=selfh.st"><strong>ClipShare</strong></a>: Server-less screen recording application</li><li><a href="https://github.com/CorentinTh/enclosed?ref=selfh.st"><strong>Enclosed</strong></a>: Minimal web app for sending private and secure notes</li><li><a href="https://github.com/matvp91/mixwave?ref=selfh.st"><strong>Mixwave</strong></a>: Transcode and package media for online streaming</li><li><a href="https://github.com/aziis98/mup?ref=selfh.st"><strong>mup</strong></a>: Micro uploaded for sharing files across a local network</li><li><a href="https://github.com/JonasHiltl/openchangelog?ref=selfh.st"><strong>Openchangelog</strong></a>: Easy to configure changelog website</li><li><a href="https://github.com/psyko-gh/overcrawlrr?ref=selfh.st"><strong>Overcrawlrr</strong></a>: Automated movie requests for Overseerr</li><li><a href="https://github.com/tiagorvmartins/portanexus?ref=selfh.st"><strong>PortaNexus</strong></a>: Android app for managing Portainer</li><li><a href="https://github.com/espresso-lab/simple-file-transfer?ref=selfh.st"><strong>Simple File Transfer</strong></a>: Web app for simple and secure file sharing</li><li><a href="https://github.com/thunderbird/appointment?ref=selfh.st"><strong>Thunderbird Appointment</strong></a>: Appointment scheduling and availability calendar </li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://github.com/autobrr/autobrr?ref=selfh.st"><strong>autobrr</strong></a>: Torrent and Usenet downloads automation</li><li><a href="https://github.com/crocodilestick/Calibre-Web-Automated?ref=selfh.st"><strong>Calibre-Web Automated</strong></a>: Consolidated Calibre and Calibre-Web applications</li><li><a href="https://github.com/imputnet/cobalt?ref=selfh.st"><strong>Cobalt</strong></a>: Fast, friendly media downloader</li><li><a href="https://github.com/Svedrin/meshping?ref=selfh.st"><strong>Meshping</strong></a>: Ping any number of devices and collect responses</li><li><a href="https://github.com/Notifiarr/notifiarr?ref=selfh.st"><strong>Notifiarr</strong></a>: Server monitoring and notifications via Discord</li><li><a href="https://github.com/ZoeyVid/NPMplus?ref=selfh.st"><strong>NPMplus</strong></a>: Nginx Proxy Manager with improvements</li><li><a href="https://github.com/JonasHiltl/openchangelog?ref=selfh.st"><strong>Openchangelog</strong></a>: Easy to configure changelog website</li><li><a href="https://github.com/tiagorvmartins/portanexus?ref=selfh.st"><strong>PortaNexus</strong></a>: Android app for managing Portainer</li><li><a href="https://github.com/runs-on/runs-on?ref=selfh.st"><strong>RunsOn</strong></a>: Self-hosted GitHub Actions runners via AWS</li><li><a href="https://github.com/AnalogJ/scrutiny?ref=selfh.st"><strong>Scrutiny</strong></a>: Hard drive S.M.A.R.T. monitoring interface</li><li><a href="https://github.com/vidzy-social/vidzy?ref=selfh.st"><strong>Vidzy</strong></a>: Federated TikTok alternative</li></ul><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 &#x2615;</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 <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://chollinger.com/blog/2024/08/why-i-still-self-host-my-servers-and-what-ive-recently-learned/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Why I still self host my servers (and what I&#x2019;ve recently learned)</div><div class="kg-bookmark-description">A short story on why I still go through the effort of self hosting servers and some things it taught me recently.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://chollinger.com/favicon.ico" alt="This Week in Self-Hosted (30 August 2024)"><span class="kg-bookmark-author">Christian Hollinger</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://chollinger.com/blog/2024/08/why-i-still-self-host-my-servers-and-what-ive-recently-learned/assets/image-20240825124525084.png" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://smarthomesysadmin.com/home-assistant-chore-tracker-2-0-part-1-chore-tracker-setup/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Home Assistant Chore Tracker 2.0: Part 1 Chore Tracker Setup - Smart Home Sysadmin</div><div class="kg-bookmark-description">This guide will show you how to create a Chore Tracker (with optional Points system) in Home Assistant. Some of you may remember my &#x201C;Chore Tracker with Points System&#x201D; guide I created a couple years ago. I STILL see that guide being shared in almost every Reddit post or Home Assistant Community Forum post where&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://smarthomesysadmin.com/favicon.ico" alt="This Week in Self-Hosted (30 August 2024)"><span class="kg-bookmark-author">Smart Home Sysadmin</span><span class="kg-bookmark-publisher">Danny</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://smarthomesysadmin.com/wp-content/uploads/2024/08/Home-Assistant-Chore-Tracker-2.0-Part-1-Header.png" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.elenarossini.com/the-future-of-social-is-here-a-show-and-tell-part-4-lemmy-piefed-mbin/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Future of Social is Here: a Show and Tell (part 4: Lemmy, PieFed &amp; Mbin)</div><div class="kg-bookmark-description">An exploration of Fediverse content aggregators as an alternative to Reddit, with a twist: the magic of ActivityPub, allowing communication with other Fediverse projects</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 (30 August 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/size/w1200/2024/08/COVER-Future-Federated-issue-9.jpg" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><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/airtable/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Self-Hosting Guide to Alternatives: Airtable</div><div class="kg-bookmark-description">Self-hosted alternatives for the popular relational database 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 (30 August 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/airtable.png" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><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 (30 August 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 (30 August 2024)"></div></a></figure><h2 id="content-spotlight-calibre-web-automated">Content Spotlight: Calibre-Web Automated</h2><p>Meet <a href="https://github.com/crocodilestick/Calibre-Web-Automated?ref=selfh.st"><strong>Calibre-Web Automated</strong></a>, a consolidated <a href="https://calibre-ebook.com/?ref=selfh.st">Calibre</a> and <a href="https://github.com/janeczku/calibre-web?ref=selfh.st">Calibre-Web</a> application for eBook library management. <strong>Calibre-Web Automated</strong> aims to replace the need for separate applications and <a href="https://docs.linuxserver.io/images/docker-calibre/?ref=selfh.st">clunky VNC interfaces</a> by merging all the features required for managing new and existing Calibre libraries into a single container. Functionality includes imports, conversions, metadata and cover management, CLI commands, change tracking, batch editing, and more to come as the platform is currently under very active development. </p><p><strong>Calibre-Web Automated</strong> can be <a href="https://github.com/crocodilestick/Calibre-Web-Automated?tab=readme-ov-file&amp;ref=selfh.st#how-to-install-">installed via Docker</a> and comes with some <a href="https://github.com/crocodilestick/Calibre-Web-Automated?tab=readme-ov-file&amp;ref=selfh.st#3-recommended-post-install-tasks">required</a> <a href="https://github.com/crocodilestick/Calibre-Web-Automated?tab=readme-ov-file&amp;ref=selfh.st#usage-">reading</a> to get up-and-running.</p><figure class="kg-card kg-image-card"><img src="https://selfh.st/content/images/2024/08/screenshot-calibre-web-automated.webp" class="kg-image" alt="This Week in Self-Hosted (30 August 2024)" loading="lazy" width="1024" height="375" srcset="https://selfh.st/content/images/size/w600/2024/08/screenshot-calibre-web-automated.webp 600w, https://selfh.st/content/images/size/w1000/2024/08/screenshot-calibre-web-automated.webp 1000w, https://selfh.st/content/images/2024/08/screenshot-calibre-web-automated.webp 1024w" sizes="(min-width: 720px) 720px"></figure><p>Links: <a href="https://github.com/crocodilestick/Calibre-Web-Automated?ref=selfh.st" rel="noreferrer"><strong>GitHub</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=qoqtSihN1kU&amp;ref=selfh.st"><strong>Self-host your own Git platform! // GitLab</strong></a> | Christian Lempa</li><li><a href="https://www.youtube.com/watch?v=mIVHxFrFKqQ&amp;ref=selfh.st"><strong>Gotify: My New Favorite Way To Get Notified!</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=oN_GGtHnG_o&amp;ref=selfh.st"><strong>The Best Apps To Get The Most Our of Your Synology</strong></a> | Lawrence Systems</li><li><a href="https://www.youtube.com/watch?v=XvNVYcC1HIA&amp;ref=selfh.st"><strong>The Best HomeLab Service Dashboard Yet!</strong></a> | Techno Tim</li><li><a href="https://www.youtube.com/watch?v=ZCAu0Yq6wBI&amp;ref=selfh.st"><strong>This Smart Home Trend Needs To Stop!</strong></a> | Everything Smart Home</li><li><a href="https://www.youtube.com/watch?v=OpmMe0md0tA&amp;ref=selfh.st"><strong>Host Your Own AI Code Assistant with Docker, Ollama and Continue!</strong></a> | Wolfgang&apos;s Channel</li></ul><h2 id="what-im-listening-to">What I&apos;m Listening To</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfh.st/cast/episode-5/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Self-Host Cast, Episode 5: Dan Brown (BookStack, RSS)</div><div class="kg-bookmark-description">Join me as I sit down for a casual discussion with Dan Brown, the developer of BookStack and RSS</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 (30 August 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/featured-image-full-text.png" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><h2 id="command-line-corner-ctrl-w">Command Line Corner: Ctrl + w</h2><p>Use <strong>Ctrl + w</strong> to easily delete the previous word from the command line:</p><pre><code class="language-bash">/$ locate example_
&lt;Ctrl + w&gt;
/$ locate _</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/8/28/24230796/more-of-the-fediverse-is-showing-up-on-threads?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">More of the fediverse is showing up on Threads.</div><div class="kg-bookmark-description">You&#x2019;ll now start seeing replies from other parts of the fediverse under posts that aren&#x2019;t yours, as shared by Threads&#x2019; Peter Cottle. Nice way to see more posts from other ActivityPub-based platforms.</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 (30 August 2024)"><span class="kg-bookmark-author">The Verge</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.vox-cdn.com/thumbor/-hg7NkLlrf2c9A9SogTZo5G_slQ=/0x0:1080x904/1080x904/filters:focal(540x452:541x453)/cdn.vox-cdn.com/uploads/chorus_asset/file/25593317/slack_imgs.com.jpeg" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://techcrunch.com/2024/08/28/tumblr-to-move-its-half-a-billion-blogs-to-wordpress/?guccounter=1&amp;ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tumblr to move its half a billion blogs to WordPress | TechCrunch</div><div class="kg-bookmark-description">Tumblr is making the move to WordPress. After its 2019 acquisition by WordPress.com parent company Automattic in a $3 million fire sale, the new owner has</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://techcrunch.com/wp-content/uploads/2015/02/cropped-cropped-favicon-gradient.png?w=192" alt="This Week in Self-Hosted (30 August 2024)"><span class="kg-bookmark-author">TechCrunch</span><span class="kg-bookmark-publisher">Sarah Perez</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://techcrunch.com/wp-content/uploads/2024/08/shipping-tumblr-and-wordpress-blog-header403x-copy.jpg?w=764" alt="This Week in Self-Hosted (30 August 2024)"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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:4:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:41:"This Week in Self-Hosted (23 August 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:110:"Self-hosted news, updates, launches, and a spotlight on Pocket ID - a self-hosted OIDC authentication provider";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-08-23/";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:"66c31396116146000172a2b1";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, 23 Aug 2024 11:50:09 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:25595:"<h2 id="in-the-news">In the News</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://techcrunch.com/2024/08/21/grafana-labs-is-now-valued-at-6b/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Grafana Labs raises $270M | TechCrunch</div><div class="kg-bookmark-description">Grafana Labs, the open source company that probably powers at least a few operational dashboards in your company, today announced the completion of a</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://techcrunch.com/wp-content/uploads/2015/02/cropped-cropped-favicon-gradient.png?w=192" alt="This Week in Self-Hosted (23 August 2024)"><span class="kg-bookmark-author">TechCrunch</span><span class="kg-bookmark-publisher">Frederic Lardinois</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://techcrunch.com/wp-content/uploads/2024/08/GettyImages-173966573.jpg?resize=1200,910" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arstechnica.com/tech-policy/2024/08/isp-to-supreme-court-we-shouldnt-have-to-disconnect-users-accused-of-piracy/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ISP to Supreme Court: We shouldn&#x2019;t have to disconnect users accused of piracy</div><div class="kg-bookmark-description">Cox tries to get contributory infringement ruling in Sony lawsuit overturned.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cdn.arstechnica.net/wp-content/themes/ars/assets/img/ars-ios-icon-d9a45f558c.png" alt="This Week in Self-Hosted (23 August 2024)"><span class="kg-bookmark-author">Ars Technica</span><span class="kg-bookmark-publisher">Jon Brodkin</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.arstechnica.net/wp-content/uploads/2020/06/getty-ethernet-cable-cut-760x380.jpg" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.itsfoss.com/libreoffice-24-8-release/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">LibreOffice 24.8 Release Adds a New Privacy Feature</div><div class="kg-bookmark-description">LibreOffice 24.8 is getting better with meaningful improvements.</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 (23 August 2024)"><span class="kg-bookmark-author">It&apos;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/08/libreoffice-24-8-release.png" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.phoronix.com/news/FreeBSD-Q2-2024-Improvements?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">AMD &amp; FreeBSD Begin Collaborating Over OS Improvements</div><div class="kg-bookmark-description">The FreeBSD open-source operating system project published their Q2&#x2032;2024 status report that outlines some interesting work happening to this leading BSD project.</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 (23 August 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=amd-epyc-freebsd13&amp;image=amd_freebsd_13" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><h2 id="software-updates">Software Updates</h2><ul><li><a href="https://github.com/budgetbee/budgetbee?ref=selfh.st"><strong>BudgetBee</strong></a> <a href="https://github.com/budgetbee/budgetbee/releases/tag/v0.8.0?ref=selfh.st"><strong>v0.8</strong></a>/<a href="https://github.com/budgetbee/budgetbee/releases/tag/v0.9.0?ref=selfh.st" rel="noreferrer"><strong>9</strong></a> | <strong>Budgeting</strong>: Model for learning and predicting categories and subcategories, basic rules for setting categories</li><li><a href="https://github.com/Athou/commafeed?ref=selfh.st"><strong>CommaFeed</strong></a> <a href="https://github.com/Athou/commafeed/releases/tag/5.0.0?ref=selfh.st"><strong>v5.0.0</strong></a> | <strong>RSS</strong>: Transitioned from Dropwizard to Quarkus (now compiles to native code), new/removed configuration elements, Redis cache removal</li><li><a href="https://github.com/hacs/integration?ref=selfh.st"><strong>HACS</strong></a> <a href="https://github.com/hacs/integration/releases/tag/2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a> | <strong>Community Store</strong>: New frontend, faster downloads, update notifications integrated with system updates, renamed elements</li><li><a href="https://github.com/will-moss/isaiah?ref=selfh.st"><strong>Isaiah</strong></a> <a href="https://github.com/will-moss/isaiah/releases/tag/1.23.0?ref=selfh.st"><strong>v1.23.0</strong></a> | <strong>Docker Management</strong>: Support for stacks (docker compose), edit/upload containers, show and hide tabs, syntax highlighting in compose files</li><li><a href="https://github.com/pentacent/keila?ref=selfh.st"><strong>Keila</strong></a> <a href="https://github.com/pentacent/keila/releases/tag/0.15.0?ref=selfh.st"><strong>v0.15.0</strong></a> | <strong>Newsletters</strong>: Support for MJML campaigns, redirects after form submissions, custom messages for double opt-in forms</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.7.0?ref=selfh.st"><strong>v2.7.0</strong></a> | <strong>Bookmarks</strong>: Code refactoring and optimization</li><li><a href="https://github.com/rishikanthc/markopolis?ref=selfh.st"><strong>Markopolis</strong></a> <a href="https://github.com/rishikanthc/markopolis/releases/tag/v1.0.0?ref=selfh.st"><strong>v1.0.0</strong></a> | <strong>Content Server</strong>: API overhaul, frontend redesign, increased backlink detection times, enhanced Markdown image compatibility, advanced syntax parsing</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/v1.12.0?ref=selfh.st"><strong>v1.12.0</strong></a> | <strong>Recipes and Meals</strong>: Import recipes via image using OpenAI, navigate directly to shopping list if only one exists</li><li><a href="https://github.com/miniflux/v2?ref=selfh.st"><strong>Miniflux</strong></a> <a href="https://github.com/miniflux/v2/releases/tag/2.2.0?ref=selfh.st"><strong>v2.2.0</strong></a> | <strong>RSS</strong>: <em>ntfy </em>notification support, new API routes, mark media as read at 90% playback, updated translations</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.28.2?ref=selfh.st"><strong>v0.28.2</strong></a> | <strong>PDF Editor</strong>: PDF to WebP conversion, reduced Google icon size for quicker loading</li><li><a href="https://github.com/SquirrelCorporation/SquirrelServersManager?ref=selfh.st"><strong>Squirrel</strong></a> <a href="https://github.com/SquirrelCorporation/SquirrelServersManager/releases/tag/v0.1.17?ref=selfh.st"><strong>v0.1.17</strong></a> | <strong>Server Manager</strong>: Real-time container logs, connect to device via SSH, list container info, improved UI responsiveness, performance improvements</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.13.0?ref=selfh.st"><strong>v0.13.0</strong></a> | <strong>Media Tracker</strong>: Calendar view for upcoming media, anime broadcast times, 3rd party API request limits</li></ul><h2 id="new-software">New Software</h2><ul><li><a href="https://github.com/chrivers/bifrost?ref=selfh.st"><strong>Bifrost</strong></a>: Philips Hue Bridge emulator for Zigbee2MQTT</li><li><a href="https://dispatchlauncher.com/?ref=selfh.st"><strong>Dispatch Launcher</strong></a>: Plex-focused interface for Android and Google TV</li><li><a href="https://github.com/seadfeng/favicon-downloader?ref=selfh.st"><strong>Favicon Downloader</strong></a>: Download favicons from any webpage</li><li><a href="https://github.com/vaccovecrana/frag-falcon?ref=selfh.st"><strong>Frag Falcon</strong></a>: Run Docker containers as micro VMs</li><li><a href="https://github.com/icbestCA/giftmanager?ref=selfh.st"><strong>GiftManager</strong></a>: Gift ideas management for families</li><li><a href="https://github.com/tryglow/glow?ref=selfh.st"><strong>Glow</strong></a>: Dynamic personal homepage builder</li><li><a href="https://github.com/varun-raj/immich-power-tools?ref=selfh.st"><strong>Immich Power Tools</strong></a>: Power tools for organizing Immich libraries</li><li><a href="https://github.com/terdia/mqttui?ref=selfh.st"><strong>MQTT Web Interface</strong></a>: Real-time visualization of MQTT message flows</li><li><a href="https://github.com/robbalian/pinkarrows?ref=selfh.st"><strong>Pink Arrows</strong></a>: Lightweight, web-based annotation tool</li><li><a href="https://hub.docker.com/r/julesmellot/plexis?ref=selfh.st"><strong>Plexis</strong></a>: Plex collection creation and recommendations</li><li><a href="https://github.com/MODSetter/SurfSense?ref=selfh.st"><strong>SurfSense</strong></a>: Knowledge graph for the web</li></ul><h2 id="breaking-changes">Breaking Changes</h2><ul><li><a href="https://github.com/hacs/integration?ref=selfh.st"><strong>HACS</strong></a> <a href="https://github.com/hacs/integration/releases/tag/2.0.0?ref=selfh.st"><strong>v2.0.0</strong></a>: Deprecation of YAML configuration, minimum HASS version bumped to 2024.4.1, removed <em>sensor</em> platform</li></ul><h2 id="latest-directory-apps">Latest Directory <a href="https://selfh.st/apps" rel="noreferrer">Apps</a></h2><ul><li><a href="https://github.com/Wingysam/Christmas-Community?ref=selfh.st"><strong>Christmas Community</strong></a>: Wish lists for families</li><li><a href="https://github.com/damongolding/immich-kiosk?ref=selfh.st"><strong>Immich Kiosk</strong></a>: Web slideshows for Immich</li><li><a href="https://github.com/varun-raj/immich-power-tools?ref=selfh.st"><strong>Immich Power Tools</strong></a>: Power tools for organizing Immich libraries</li><li><a href="https://github.com/mbecker20/monitor?ref=selfh.st"><strong>Monitor</strong></a>: Tool for building and deploying software on multiple servers</li><li><a href="https://github.com/terdia/mqttui?ref=selfh.st"><strong>MQTT Web Interface</strong></a>: Real-time visualization of MQTT message flows</li><li><a href="https://github.com/stonith404/pocket-id?ref=selfh.st"><strong>Pocket ID</strong></a>: Simple OIDC passkey authentication provider</li><li><a href="https://github.com/solidtime-io/solidtime?ref=selfh.st"><strong>Solidtime</strong></a>: Modern open-source time-tracking app</li><li><a href="https://github.com/SquirrelCorporation/SquirrelServersManager?ref=selfh.st"><strong>Squirrel</strong></a>: User-friendly server configuration and management interface</li></ul><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 &#x2615;</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 <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><ul><li><a href="https://blog.joshuastock.net/my-first-cve-uncovering-a-vulnerability-in-ghost?ref=selfh.st"><strong>My First CVE: Uncovering a Vulnerability in Ghost</strong></a> | Josh Stock</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/Yann39/self-hosted?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - Yann39/self-hosted: Personal self-hosted infrastructure setup for Banana Pi</div><div class="kg-bookmark-description">Personal self-hosted infrastructure setup for Banana Pi - Yann39/self-hosted</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 (23 August 2024)"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">Yann39</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/397729e1b65415b207862ba5da8396f024ee948962bab71a6c7af255322645fc/Yann39/self-hosted" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://rohanrd.xyz/posts/why-rss/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Why RSS</div><div class="kg-bookmark-description">Gone are the days when you could just find a random blog on Internet where someone wrote about tinkering with their home lab or someone shared about the obscure art they know. Today&#x2019;s web is highly curated and everything is filtered out to show you the content that would generate most revenue. Search engines are filled with optimized results that can easily be categorized as spam. And social media is filled with highly polished, attractive content that may not add any value at all to an individuals life.</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 (23 August 2024)"><span class="kg-bookmark-author">rohanrd.xyz</span><span class="kg-bookmark-publisher">Rohan D</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://rohanrd.xyz/static/ditch-feed.jpg" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://info.linuxserver.io/issues/2024-08-18-commit-signing/?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Git Commit Signing For Linuxserver CI | Info :: LinuxServer.io</div><div class="kg-bookmark-description">Effective immediately we have started signing all of the git commits created by our CI account (I know, we should have done this a while ago but there were logistical issues that made it difficult). This means you can verify that all commits to our repos were, in fact, authored by us and that any commits to other random repos, were not. Most of the individuals who commit to our repos already sign their commits, but we&#x2019;re working on getting everyone else into that position in the near future.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://info.linuxserver.io/favicon.ico" alt="This Week in Self-Hosted (23 August 2024)"><span class="kg-bookmark-author">Info :: LinuxServer.io</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://info.linuxserver.io/logo.png" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><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-5/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The Self-Host Cast, Episode 5: Dan Brown (BookStack, RSS)</div><div class="kg-bookmark-description">Join me as I sit down for a casual discussion with Dan Brown, the developer of BookStack and RSS</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 (23 August 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/featured-image-full-text.png" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><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 (23 August 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 (23 August 2024)"></div></a></figure><h2 id="content-spotlight-pocket-id">Content Spotlight: Pocket ID</h2><img src="https://selfh.st/content/images/2024/07/newsletter-featured-image.png" alt="This Week in Self-Hosted (23 August 2024)"><p>Meet <a href="https://github.com/stonith404/pocket-id?ref=selfh.st"><strong>Pocket ID</strong></a>, a self-hosted OIDC authentication provider. Meant to serve as a simple alternative to other popular platforms, <strong>Pocket ID</strong> is easy to deploy and only supports passkey authentication. Once up-and-running, <a href="https://github.com/stonith404/pocket-id?ref=selfh.st#add-pocket-id-as-an-oidc-provider">clients can be easily added</a> via an administration page, which will generate the relevant IDs and secrets required for client-side configuration.</p><p><strong>Pocket ID</strong> can be installed via <a href="https://github.com/stonith404/pocket-id?ref=selfh.st#installation-with-docker-recommended">Docker</a> or <a href="https://github.com/stonith404/pocket-id?ref=selfh.st#stand-alone-installation">bare metal</a> and utilizes a SQLite database for storage. The developer also provides a <a href="https://github.com/stonith404/pocket-id/blob/main/docs/proxy-services.md?ref=selfh.st">guide for proxying services that don&apos;t support OIDC via OAuth2</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://selfh.st/content/images/2024/08/screenshot-pocket-id.webp" class="kg-image" alt="This Week in Self-Hosted (23 August 2024)" loading="lazy" width="2000" height="1223" srcset="https://selfh.st/content/images/size/w600/2024/08/screenshot-pocket-id.webp 600w, https://selfh.st/content/images/size/w1000/2024/08/screenshot-pocket-id.webp 1000w, https://selfh.st/content/images/size/w1600/2024/08/screenshot-pocket-id.webp 1600w, https://selfh.st/content/images/2024/08/screenshot-pocket-id.webp 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Screenshot from the project&apos;s repository</span></figcaption></figure><p>Links: <a href="https://github.com/stonith404/pocket-id?ref=selfh.st" rel="noreferrer"><strong>GitHub</strong></a></p><h2 id="what-im-watching">What I&apos;m Watching</h2><ul><li><a href="https://www.youtube.com/watch?v=BfiYylxtImY&amp;ref=selfh.st"><strong>Exploring WikiDocs: Your Ultimate Documentation Solution!</strong></a> | DB Tech</li><li><a href="https://www.youtube.com/watch?v=ZnT29rP-11s&amp;ref=selfh.st"><strong>pfSense Beginner&apos;s Guide - Installation &amp; Hardware</strong></a> | Jim&apos;s Garage</li><li><a href="https://www.youtube.com/watch?v=xcL8sceUd6E&amp;ref=selfh.st"><strong>The NUC7 ...7 years later</strong></a><strong> | </strong>Hardwaren Haven</li><li><a href="https://www.youtube.com/watch?v=zv2E8JKl3_c&amp;ref=selfh.st"><strong>I have to stop leaving the garage door open by mistake</strong></a> | KTZ Systems</li></ul><h2 id="what-im-listening-to">What I&apos;m Listening To</h2><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://selfhosted.show/130?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Make it or Break it</div><div class="kg-bookmark-description">Prusa&#x2019;s Mk4S 3D printer seems to have hit the mark. Alex gets a tour of an awesome new maker space, we take a look at AdventureLog, and much more.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7296e34a-2697-479a-adfb-ad32329dd0b0/touch_icon_ipad.png?v=2" alt="This Week in Self-Hosted (23 August 2024)"><span class="kg-bookmark-author">Self-Hosted</span><span class="kg-bookmark-publisher">Jupiter Broadcasting</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7296e34a-2697-479a-adfb-ad32329dd0b0/cover_medium.jpg?v=0" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><h2 id="command-line-corner-locate">Command Line Corner: locate</h2><p>Use the <strong>locate</strong> command to search for files directly from the command line, separating terms with an asterisk if searching for multiple words. The command also supports several flags, including <strong>-i</strong> for disabling case sensitivity. </p><pre><code class="language-bash">/$ locate example
  /home/user1/example.txt
/$ locate -i example
  /home/user1/example.txt
  /home/user2/Example.txt
/$ locate test*file
  /home/user1/test-file.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://www.tomsguide.com/computing/windows-operating-systems/windows-recall-set-for-a-return-when-you-can-expect-this-controversial-feature-to-appear?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Windows Recall set for a return &#x2014; when you can expect this controversial feature to appear</div><div class="kg-bookmark-description">Windows Insiders with Copilot + PCs are set to get an updated version of the AI feature</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://vanilla.futurecdn.net/tomsguide/1039607/apple-touch-icon.png" alt="This Week in Self-Hosted (23 August 2024)"><span class="kg-bookmark-author">Tom&apos;s Guide</span><span class="kg-bookmark-publisher">Scott Younker</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.mos.cms.futurecdn.net/XauF4jHYwS7JSM2hxVUtjc-1200-80.jpg" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://abcnews.go.com/Business/wireStory/kim-dotcom-loses-12-year-fight-halt-deportation-112885175?ref=selfh.st"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Kim Dotcom loses 12-year fight to halt deportation from New Zealand to face US copyright case</div><div class="kg-bookmark-description">Kim Dotcom, founder of the once wildly popular file-sharing website Megaupload, lost a 12-year fight this week to halt his deportation from New Zealand to the U.S. on charges of copyright infringement, money laundering and racketeering</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://s.abcnews.com/assets/dtci/images/favicon.ico" alt="This Week in Self-Hosted (23 August 2024)"><span class="kg-bookmark-author">ABC News</span><span class="kg-bookmark-publisher">ABC News</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://i.abcnewsfe.com/a/83c47db8-977b-4cab-b7b5-4a81d3ea308b/wirestory_134eea926502d4965af68fd7701f33f3_16x9.jpg?w=1600" alt="This Week in Self-Hosted (23 August 2024)"></div></a></figure><h2 id="share-your-content-in-a-future-newsletter">Share Your Content in a Future Newsletter</h2><p>I&apos;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&apos;d like to have your own content featured or have a suggestion for content types you&apos;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&apos;s Talk &#x1F48C;</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: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:3:{s:0:"";a:6:{s:5:"title";a:1:{i:0;a:5:{s:4:"data";s:57:"The Self-Host Cast, Episode 5: Dan Brown (BookStack, RSS)";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:96:"Join me as I sit down for a casual discussion with Dan Brown, the developer of BookStack and RSS";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:32:"https://selfh.st/cast/episode-5/";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:"66ba27178635ce0001cda3a7";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:18:"The Self-Host Cast";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, 22 Aug 2024 09:52:54 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:1681:"<p>Join me as I sit down for a casual discussion about self-hosting, full-time development, open-source licenses, and other topics with Dan Brown &#x2013; the developer of BookStack and RSS.</p>
<!--kg-card-begin: html-->
<div style="align-items: center">
<iframe src="https://player.rss.com/theselfhostcast/1622096?theme=dark" style="width: 100%; height: 150px;" title="Dan Brown (BookStack)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"><a href="https://rss.com/podcasts/theselfhostcast/1622096/?ref=selfh.st">Dan Brown (BookStack) | RSS.com</a></iframe>
</div>
<!--kg-card-end: html-->
<p></p><p><strong>Episode Guest</strong>: Dan Brown</p><p><strong>Links</strong>:</p><ul><li><a href="https://danb.me/?ref=selfh.st">Dan Brown&apos;s Website</a></li><li><a href="https://github.com/sponsors/ssddanbrown?ref=selfh.st">Sponsor Dan&apos;s work</a></li><li><a href="https://www.bookstackapp.com/?ref=selfh.st">BookStack</a></li><li><a href="https://codeberg.org/danb/rss?ref=selfh.st">RSS</a></li><li><a href="https://github.com/ssddanbrown/Open-Source-Confusion-Cases?ref=selfh.st">Open Source Confusion Cases</a></li><li><a href="https://danb.me/blog/futo-open-source-definition/?ref=selfh.st">Futo, Please don&apos;t attempt to create your own Open Source Definition</a></li><li><a href="https://danb.me/blog/low-maintenance-project/?ref=selfh.st">&quot;This is a Low Maintenance Project&quot;</a></li><li><a href="https://selfh.st/" rel="noopener noreferrer nofollow">selfh.st</a></li><li><a href="https://selfh.st/newsletter-signup/" rel="noopener noreferrer nofollow">This Week in Self-Hosted</a></li></ul>";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:"Sun, 27 Oct 2024 11:29:42 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/"61ef3-v2l278PGeHs2YzREzIRIwP9R318"";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:235:"{endpoints:[{url:https:\/\/a.nel.cloudflare.com\/report\/v4?s=z54Mlpo%2FRT%2FsIw%2Bnjg0kWZfeCjBuyFhbwXQhKNBlZjoCLxOVvZqHB75mJShN9IJ%2F3EoT3%2FytzXYaQrc%2BL0v%2Fvr9Qb1tObPfE4TmiSaBkaG6cteGPlXlLpW7oHA%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:"8d925990cedc12a2-MRS";s:7:"alt-svc";s:17:"h3=:443; ma=86400";s:13:"server-timing";s:171:"cfL4;desc=?proto=TCP&rtt=18712&sent=6&recv=10&lost=0&retrans=0&sent_bytes=3399&recv_bytes=1011&delivery_rate=168069&cwnd=170&unsent_bytes=0&cid=4824240e7f731165&ts=527&x=0";}s:5:"build";s:14:"20240826063859";s:5:"mtime";i:1730028583;s:3:"md5";s:32:"7a51d0deb5cc36dade1891850238387d";}