<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: awsmfoss</title>
    <description>The latest articles on DEV Community by awsmfoss (@awsmfoss).</description>
    <link>https://dev.to/awsmfoss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1002717%2Ff98bb1e0-b591-489d-a8d0-2099628ecf3a.jpg</url>
      <title>DEV Community: awsmfoss</title>
      <link>https://dev.to/awsmfoss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/awsmfoss"/>
    <language>en</language>
    <item>
      <title>🐎 Raider: the self-hostable affiliates dashboard</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Thu, 25 Jan 2024 13:25:39 +0000</pubDate>
      <link>https://dev.to/awsmfoss/raider-the-self-hostable-affiliates-dashboard-2aj9</link>
      <guid>https://dev.to/awsmfoss/raider-the-self-hostable-affiliates-dashboard-2aj9</guid>
      <description>&lt;p&gt;Self-hosted software is awesome. If you're running a business and have to manage an Affiliate program, you'd probably love to know about &lt;a href="https://github.com/valeriansaliou/raider"&gt;&lt;code&gt;raider&lt;/code&gt;&lt;/a&gt;. It's a self-hosted piece of Rust code that helps you do just that.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k0xJHfXM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://awsmfoss.com/content/images/size/w1000/2024/01/image.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k0xJHfXM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://awsmfoss.com/content/images/size/w1000/2024/01/image.png" alt="Raider in use @ Crisp" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a pretty niche piece of software (how many people do you know run Affiliate programs), but if you need just this, this is a pretty awesome F/OSS project to do it with.&lt;/p&gt;

&lt;p&gt;The project is written in &lt;a href="https://rust-lang.org"&gt;Rust&lt;/a&gt; so it's easy to deploy and has some of the most obviously correct code you can find (granted you can get over the hurdle of learning Rust).&lt;/p&gt;

&lt;p&gt;If you've go time to kick the tires, check it out!&lt;/p&gt;

&lt;p&gt;This post was &lt;a href="https://awsmfoss.com/raider/"&gt;originally posted on Awesome F/OSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>devops</category>
      <category>rust</category>
      <category>programming</category>
    </item>
    <item>
      <title>🔪 Blades: the static site generator</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Sun, 30 Jul 2023 09:11:07 +0000</pubDate>
      <link>https://dev.to/awsmfoss/blades-the-static-site-generator-54c3</link>
      <guid>https://dev.to/awsmfoss/blades-the-static-site-generator-54c3</guid>
      <description>&lt;p&gt;If you're looking for a new static site generator (done with Hugo/Jekyll/etc?), check out &lt;a href="https://getblades.org/"&gt;Blades&lt;/a&gt; is an ultra-simple static site generator that creates HTML files from provided content utilizing specified templates. &lt;/p&gt;

&lt;p&gt;It uses &lt;a href="https://mustache.github.io/"&gt;mustache&lt;/a&gt; templates, which are super simple/minimal (even if a little old).&lt;/p&gt;

&lt;p&gt;And of course, there's the &lt;em&gt;speed&lt;/em&gt; -- Blades prides itself on its faster rendering speeds compared Hugo/Jekyll,  thanks to its use of zero-copy deserialization and the &lt;a href="https://github.com/maciejhirsz/ramhorns"&gt;&lt;code&gt;ramhorns&lt;/code&gt;&lt;/a&gt; template engine (pure Rust 🦀).&lt;/p&gt;

&lt;p&gt;Blades provides a robust plugin system, supporting input, output, transform, and content plugin types. It's super easy to find other plugins since blades maintains &lt;a href="https://getblades.org/plugins/"&gt;a list&lt;/a&gt; you can just look through. Also, Blades has a repository of &lt;a href="https://getblades.org/themes/"&gt;curated Blades themes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Blades supports some pretty advanced features like image gallery generation and CommonMark markdown with tables and footnotes for content. When a page contains pictures, Blades automatically generates a gallery for them, assigning certain variables to each photo's page. With pagination functionality, it allows users to navigate through the content with ease, and users can use the available variables in the pagination section.&lt;/p&gt;

&lt;p&gt;Blades also has the capacity to generate breadcrumbs based on the page path, which helps in creating navigational aids for the users. Alongside, it has the capability to automatically generate sitemap, Atom, and RSS feeds, contributing to a more organized and accessible user interface. Despite its focus on simplicity, Blades manages to deliver a streamlined and efficient solution for static site generation, balancing speed and usability.&lt;/p&gt;

&lt;p&gt;This was originally posted on &lt;a href="https://awsmfoss.com"&gt;AWSM FOSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>💸 EthicalAds</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Wed, 10 May 2023 03:14:41 +0000</pubDate>
      <link>https://dev.to/awsmfoss/ethicalads-pmm</link>
      <guid>https://dev.to/awsmfoss/ethicalads-pmm</guid>
      <description>&lt;p&gt;&lt;a href="https://www.ethicalads.io/"&gt;EthicalAds&lt;/a&gt; (&lt;a href="https://github.com/readthedocs/ethical-ad-server"&gt;code&lt;/a&gt;) provides a way for developers and other creators of technical content to get paid for content creation, without using privacy invading advertisement tooling. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2voa-ndq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l3p2s9v4l9tndssli2p0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2voa-ndq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l3p2s9v4l9tndssli2p0.png" alt="EthicalAds website" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Except&lt;/strong&gt;, it actually protects user privacy, especially when compared to other programs like AdSense. Where traditional advertising methods track user data and browsing habits, EthicalAds serves advertisements based on the context of the website or page, ensuring a non-intrusive and privacy-respecting user experience. &lt;/p&gt;

&lt;p&gt;It really is that simple, and while you do have to get approved to be a publisher, the process is pretty painless!&lt;/p&gt;

&lt;p&gt;The platform's core ethos is to provide relevant and engaging ads without exploiting personal data, addressing the rising demand for data privacy in the digital world.&lt;/p&gt;

&lt;p&gt;EthicalAds supports the online ecosystem by sharing a portion of ad revenue with content creators and website owners. This model is particularly beneficial for open-source projects and creators who rely on such revenue streams. The platform also prides itself on its commitment to high-quality ads, avoiding any content that may be misleading, inappropriate, or excessively distracting. With its user-friendly design, easy integration, and detailed yet anonymous analytics, EthicalAds offers a fresh, ethical perspective on digital advertising.&lt;/p&gt;

&lt;p&gt;This was &lt;a href="https://awsmfoss.com/ethicalads/"&gt;originally posted on AWSM FOSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>advertising</category>
      <category>startup</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>F/OSS Spotlight: 📑 VuePress</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Mon, 06 Mar 2023 12:11:15 +0000</pubDate>
      <link>https://dev.to/awsmfoss/foss-spotlight-vuepress-3bac</link>
      <guid>https://dev.to/awsmfoss/foss-spotlight-vuepress-3bac</guid>
      <description>&lt;p&gt;Building a static site? If you like and work with Vue, you should check out &lt;a href="https://vuepress.vuejs.org/"&gt;VuePress&lt;/a&gt; (&lt;a href="https://github.com/vuepress/vuepress-next"&gt;code&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;While newer tooling like &lt;code&gt;vitepress&lt;/code&gt; may get all the "press" lately, VuePress is still a great stable choice for building good looking documentation sites:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gEmCTMwp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/juubl7fikt2rodpow2lz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gEmCTMwp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/juubl7fikt2rodpow2lz.png" alt="VuePress Homepage" width="880" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the best indicators for quality projects is a "why" page, and &lt;a href="https://v2.vuepress.vuejs.org/guide/#why-not"&gt;VuePress documentation describes exactly why you should use it versus other solutions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're impatient and want to get started away:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir vuepress-starter
cd vuepress-starter
pnpm init
pnpm add -D vuepress@next @vuepress/client@next vue
vuepress dev docs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(NOTE: definitely use &lt;a href="https://pnpm.io/"&gt;&lt;code&gt;pnpm&lt;/code&gt;&lt;/a&gt; so you can dedup packages locally!)&lt;/p&gt;

&lt;p&gt;And if you're &lt;em&gt;not&lt;/em&gt; impatient, check out the official &lt;a href="https://v2.vuepress.vuejs.org/guide/getting-started.html"&gt;Getting Started guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The ecosystem for VuePress is somewhat smaller than other site generators (for example Gatsby), but they have their own &lt;a href="https://github.com/vuepress/awesome-vuepress/blob/main/v2.md"&gt;awesome list&lt;/a&gt; which is full of goodies.&lt;/p&gt;

&lt;p&gt;Vue is worth choosing for it's power and simplicity, and VuePress is the more opinionated static site generator that's built with Vue at the core.&lt;/p&gt;

&lt;p&gt;This was &lt;a href="https://awsmfoss.com/vuepress"&gt;originally posted on AWSM FOSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vue</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>F/OSS Spotlight: 🔗 Shlink</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Mon, 13 Feb 2023 10:02:59 +0000</pubDate>
      <link>https://dev.to/awsmfoss/foss-spotlight-shlink-7ei</link>
      <guid>https://dev.to/awsmfoss/foss-spotlight-shlink-7ei</guid>
      <description>&lt;p&gt;Need to post some links in a small amount of space? You're going to want &lt;a href="https://shlink.io/" rel="noopener noreferrer"&gt;Shlink&lt;/a&gt; (&lt;a href="https://github.com/shlinkio/shlink" rel="noopener noreferrer"&gt;code&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;Shlink is a F/OSS link shortener with a great featureset, solid UI and good usability.&lt;/p&gt;

&lt;p&gt;Shlink has a ton of features:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1dm7tp3af01y7sme9eb9.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1dm7tp3af01y7sme9eb9.jpg" alt="shlink features" width="800" height="931"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;PHP warriors out there will feel right at home with Shlink, and will be able to navigate the codebase easily.&lt;/p&gt;

&lt;p&gt;If you've been looking for a link shortening service but wanted to run it yourself -- Shlink is the perfect service for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Shlink
&lt;/h2&gt;

&lt;p&gt;Running Shlink is simple since there is an &lt;a href="https://hub.docker.com/r/shlinkio/shlink" rel="noopener noreferrer"&gt;official docker image&lt;/a&gt; (with 10MM downloads!), and the docker container has been built in a way that makes it easy to run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;docker run \
    --name my_shlink \
    -p 8080:8080 \
    -e DEFAULT_DOMAIN=your.domain.tld \
    -e IS_HTTPS_ENABLED=true \
&lt;/span&gt;&lt;span class="gp"&gt;    -e GEOLITE_LICENSE_KEY=&amp;lt;license key&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="go"&gt;    shlinkio/shlink:stable
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This was &lt;a href="https://awsmfoss.com/shlink/" rel="noopener noreferrer"&gt;originally posted on AWSM FOSS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/ja/@edge2edgemedia?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Edge2Edge Media&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/t1OalCBUYRc?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
    </item>
    <item>
      <title>F/OSS Spotlight: 🧑‍💻 Zuul</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Wed, 01 Feb 2023 10:26:38 +0000</pubDate>
      <link>https://dev.to/awsmfoss/foss-spotlight-zuul-1mp9</link>
      <guid>https://dev.to/awsmfoss/foss-spotlight-zuul-1mp9</guid>
      <description>&lt;p&gt;&lt;a href="https://zuul-ci.org/"&gt;Zuul&lt;/a&gt; (&lt;a href="https://opendev.org/zuul/zuul/"&gt;code&lt;/a&gt;) helps your team stop merging broken code -- the best kind of gatekeeping.&lt;/p&gt;

&lt;p&gt;In a world where most people use GitHub Actions or GitLab CI (fantastic tools in their own right) and call it a day, there are enlightened beings out there who seek out CI systems that fully gatekeep commits alltogether. That's Zuul.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tAmHL6CX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fhml639nr9yj62fbm8bl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tAmHL6CX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fhml639nr9yj62fbm8bl.png" alt="Zuul Homepage" width="880" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Zuul is used by huge organizations like Ampere, Redhat, OVHCloud, and OpenStack, and trusted by many more. Zuul even runs on Volvos, according to &lt;a href="https://www.zdnet.com/article/10-years-of-zuul-continuous-integrationcontinuous-delivery-rises-to-new-successes/"&gt;an article from ZDNet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What's important is that Zuul gates your codebase, whereas other tools sometimes let faulty commits go through. Unfortunately there's a bit of a name collision with &lt;a href="https://github.com/Netflix/zuul"&gt;Netflix Zuul gateway service&lt;/a&gt;, but that's awesome F/OSS for another day.&lt;/p&gt;

&lt;p&gt;If you're ready to give another CI system a try, check out Zuul.&lt;/p&gt;

&lt;p&gt;This was &lt;a href="https://awsmfoss.com/zuul/"&gt;originally posted on AWSM FOSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ci</category>
      <category>devops</category>
      <category>codequality</category>
      <category>opensource</category>
    </item>
    <item>
      <title>F/OSS Spotlight: 🦆 DuckDB</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Tue, 24 Jan 2023 15:51:58 +0000</pubDate>
      <link>https://dev.to/awsmfoss/foss-spotlight-duckdb-4mpf</link>
      <guid>https://dev.to/awsmfoss/foss-spotlight-duckdb-4mpf</guid>
      <description>&lt;p&gt;&lt;a href="https://duckdb.org" rel="noopener noreferrer"&gt;DuckDB&lt;/a&gt; (&lt;a href="https://github.com/duckdb/duckdb" rel="noopener noreferrer"&gt;code&lt;/a&gt;) is the SQLite of OLAP queries. &lt;/p&gt;

&lt;p&gt;That's high praise, since &lt;a href="https://www.sqlite.org/mostdeployed.html" rel="noopener noreferrer"&gt;SQLite is the most widely deployed database on the planet&lt;/a&gt;, and is legendary for it's stability, performance (in use-cases that fit) and testing.&lt;/p&gt;

&lt;p&gt;DuckDB has lots of platform support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NodeJS&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;R&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Julia&lt;/li&gt;
&lt;li&gt;C++&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And it's only growing in popularity. Check out the &lt;a href="https://duckdb.org/docs/" rel="noopener noreferrer"&gt;DuckDB documentation&lt;/a&gt; for yourself – it's a well-organized read and should make it easy to understand how DuckDB works.&lt;/p&gt;

&lt;p&gt;Much like SQLite, DuckDB has an excellent &lt;a href="https://duckdb.org/why_duckdb" rel="noopener noreferrer"&gt;"why DuckDB" page&lt;/a&gt; that you should read.&lt;/p&gt;

&lt;p&gt;DuckDB is SQL-based so getting started with it is very familiar (if you know SQL of course), so I won't bore you with that, but jump right into the &lt;a href="https://duckdb.org/docs/guides/import/csv_import" rel="noopener noreferrer"&gt;docs on loading data&lt;/a&gt; to get a good feel for how to get started.&lt;/p&gt;

&lt;p&gt;This was &lt;a href="https://awsmfoss.com/duckdb/" rel="noopener noreferrer"&gt;originally posted on AWSM FOSS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>rest</category>
      <category>softwaredevelopment</category>
      <category>design</category>
    </item>
    <item>
      <title>FOSS Spotlight: 👻 Ghost</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Tue, 17 Jan 2023 15:51:57 +0000</pubDate>
      <link>https://dev.to/awsmfoss/foss-spotlight-ghost-j6m</link>
      <guid>https://dev.to/awsmfoss/foss-spotlight-ghost-j6m</guid>
      <description>&lt;p&gt;&lt;a href="https://ghost.org/"&gt;Ghost&lt;/a&gt; (&lt;a href="https://github.com/TryGhost/Ghost"&gt;code&lt;/a&gt;) is blogging software that rivals &lt;a href="https://wordpress.org/"&gt;Wordpress&lt;/a&gt; in it's ease of use – businesses all over the world use Ghost free of charge and also via Ghost's hosted platform &lt;a href="https://ghost.org/pricing"&gt;Ghost(Pro)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ghost makes it easy to build blogs, newsletters, landing pages, portfolio pages and more. It's extremely flexible, well known and easy to use:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sl0H0vq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://awsmfoss.com/content/images/size/w1000/2022/10/image.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sl0H0vq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://awsmfoss.com/content/images/size/w1000/2022/10/image.png" alt="Ghost screenshot" width="880" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ghost provides an alternative to paid services like &lt;a href="https://substack.com"&gt;Substack&lt;/a&gt;. In fact, this newsletter itself runs on Ghost – it's great software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Ghost
&lt;/h2&gt;

&lt;p&gt;Ghost has an &lt;a href="https://hub.docker.com/_/ghost"&gt;official docker image&lt;/a&gt; (note the "OG" &lt;code&gt;/_/&amp;lt;container&amp;gt;&lt;/code&gt; URL!), and is &lt;em&gt;really&lt;/em&gt; easy to run, as it defaults to SQLite which is a breeze.&lt;/p&gt;

&lt;p&gt;If you want to get started &lt;em&gt;really&lt;/em&gt; quickly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;docker run \
  -d \
  -p 3001:2368 \
  -v /path/to/ghost/blog:/var/lib/ghost/content \
  --name ghost \
  ghost:alpine
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure to get your content path (and &lt;code&gt;docker&lt;/code&gt; volumes) straightened out before expecting that setup to stick around!&lt;/p&gt;

&lt;p&gt;For large production sites you're probably going to want to use MySQL rather than SQLite, but for most sites SQLite will probably hold up well also!&lt;/p&gt;

&lt;p&gt;This was originally posted on &lt;a href="https://awsmfoss.com/ghost-post/"&gt;AWSM FOSS&lt;/a&gt; (the first edition!)&lt;/p&gt;

</description>
      <category>selfhosted</category>
      <category>blogging</category>
      <category>opensource</category>
      <category>node</category>
    </item>
    <item>
      <title>FOSS Spotlight: 📺 Jellyfin</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Mon, 09 Jan 2023 00:17:47 +0000</pubDate>
      <link>https://dev.to/awsmfoss/foss-spotlight-jellyfin-452g</link>
      <guid>https://dev.to/awsmfoss/foss-spotlight-jellyfin-452g</guid>
      <description>&lt;p&gt;Jellyfin is a well known self-hosted media system and server. It looks great, manages your playlists and makes your media available for watching, listening and reading on the go.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jellyfin.org" rel="noopener noreferrer"&gt;Jellyfin&lt;/a&gt; (&lt;a href="https://github.com/jellyfin/jellyfin" rel="noopener noreferrer"&gt;code&lt;/a&gt;) makes self-hosted media serving easy. It looks great and manages and serves your media playlist:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yb8lfp7xjtubkpu5ix3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3yb8lfp7xjtubkpu5ix3.jpg" alt="Screenshot of Jellyfin" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jellyfin is a favorite of self-hosters and people who people with large media libraries that they want to make available on the go.&lt;/p&gt;

&lt;p&gt;Jellyfin is available in many different languages and runs on most operating systems (especially when they're equipped with docker) quite easily. There's also &lt;a href="https://jellyfin.org/docs" rel="noopener noreferrer"&gt;extensive documentation&lt;/a&gt; to get you started using it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Jellyfin
&lt;/h2&gt;

&lt;p&gt;Jellyfin is quite docker friendly (the container documentation is where you should start), with an official image ready for use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \
   --name jellyfin \
   --user uid:gid \
   --net=host \
   --volume /path/to/config:/config \ # Alternatively --volume jellyfin-config:/config
   --volume /path/to/cache:/cache \ # Alternatively --volume jellyfin-cache:/cache
   --mount type=bind,source=/path/to/media,target=/media \
   --restart=unless-stopped \
   jellyfin/jellyfin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>docker</category>
      <category>devops</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>💻 🤯 AuthN with Authentik, keyboard training with rapid_typing, Analytics with Fugu</title>
      <dc:creator>awsmfoss</dc:creator>
      <pubDate>Fri, 06 Jan 2023 02:00:11 +0000</pubDate>
      <link>https://dev.to/awsmfoss/authn-with-authentik-keyboard-training-with-rapidtyping-analytics-with-fugu-32be</link>
      <guid>https://dev.to/awsmfoss/authn-with-authentik-keyboard-training-with-rapidtyping-analytics-with-fugu-32be</guid>
      <description>&lt;p&gt;There are a lot of awesome free and open source projects out there, and it's my mission to get them to you (and find about more). &lt;/p&gt;

&lt;p&gt;Here's a batch we &lt;a href="https://awsmfoss.com/edition-41/" rel="noopener noreferrer"&gt;mentioned recently&lt;/a&gt;:&lt;/p&gt;

&lt;h2&gt;
  
  
  🔑 Authentik
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://goauthentik.io" rel="noopener noreferrer"&gt;Authentik&lt;/a&gt; (&lt;a href="https://github.com/goauthentik/authentik" rel="noopener noreferrer"&gt;code&lt;/a&gt;) is an Authentication ("AuthN") glue library that  makes it easy to improve your security. Whether it's adding SSO in front of some applications, or acting as an OpenID provider, it's a great relatively light-weight alternative to tools like Keycloak that can be quite cumbersome.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⌨️ rapid_typing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/dprovodnikov/rapid_typing" rel="noopener noreferrer"&gt;&lt;code&gt;rapid_typing&lt;/code&gt;&lt;/a&gt; is an obscenely simple faster typing application that helps you practice typing. While the project hasn't seen any commits since 2017 and the demo is down (previously hosted on Heroku, likely on the now-removed free tier), but it's worth looking at if you want a bare-bones, minimal self-hosted tool for improving your typing.&lt;/p&gt;

&lt;h2&gt;
  
  
  🐠 Fugu
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://fugu.lol/" rel="noopener noreferrer"&gt;Fugu&lt;/a&gt; (&lt;a href="https://github.com/shafy/fugu" rel="noopener noreferrer"&gt;code&lt;/a&gt;) provides simple, privacy-friendly, open source and self-hostable product analytics. While many tools claim to be Google Analytics alternatives, one of the things Fugu really gets right is properly doing "product analytics" – Going beyond simple view tracking to help you figure out how users are using your (web) software.&lt;/p&gt;

</description>
      <category>emptystring</category>
    </item>
  </channel>
</rss>
