<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Open Source on LNA-DEV ~ Lukas Nagel</title>
    <link>https://lna-dev.net/en/tags/open-source/</link>
    <description>Recent content in Open Source on LNA-DEV ~ Lukas Nagel</description>
    <image>
      <title>LNA-DEV ~ Lukas Nagel</title>
      <url>https://lna-dev.net/assets/Ping%C3%BCino/Ping%C3%BCino.png</url>
      <link>https://lna-dev.net/assets/Ping%C3%BCino/Ping%C3%BCino.png</link>
    </image>
    <generator>Hugo -- 0.156.0</generator>
    <language>en-US</language>
    <managingEditor>me@lna-dev.net (Lukas Nagel)</managingEditor>
    <webMaster>me@lna-dev.net (Lukas Nagel)</webMaster>
    <copyright>🄯 CC-BY-ND</copyright>
    <lastBuildDate>Wed, 24 Sep 2025 21:19:00 +0200</lastBuildDate>
    <atom:link href="https://lna-dev.net/en/tags/open-source/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>My photography workflow</title>
      <link>https://lna-dev.net/en/posts/photography/my-workflow/</link>
      <pubDate>Wed, 24 Sep 2025 21:19:00 +0200</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/photography/my-workflow/</guid>
      <description>An overview of my photography workflow, including the tools I use and how I manage my photos.</description>
      <content:encoded><![CDATA[<p>I spent the last couple of weeks going through all my photographs I took in the last two years (and more) and edited my best shots. In this post I want to share what I learned, which tools I use and describe my workflow from taking the photos, over editing them, to publishing them on my webpage and social media. I am in no way an expert photographer, but I think it might be useful to those who are hobby photographers like me, interested in open source photo editing, or just curious.</p>
<h2 id="the-camera-itself">The camera itself</h2>
<p>When I started photographing with my <code>Panasonic G91</code> I mostly used the full automatic mode. That is pretty easy but not very optimal in my opinion. After reviewing a couple of images I took during that time, I saw that a couple of images had settings that did not make very much sense. The aperture priority mode I tried with this camera made a lot of a difference. In this mode, you set the ISO and aperture and the camera automatically determines the appropriate shutter speed. This mode gives you a lot more control over how the image looks because you set the aperture consciously. I also got a pretty good feeling for which light conditions required which settings, because I chose two of the three myself and had a good look at what shutter speed the camera chose.</p>
<p>Sometime this year I got a new <code>Nikon Z8</code>, which changed a lot for me. I bought three prime lenses instead of a zoom lens, which I had with the Panasonic. Those prime lenses force me into being a bit more creative when taking the shot. Those lenses are a 20mm, a 50mm and a 100mm macro. The 50mm was quite unspectacular for me because it looks like a normal image. The tele lens felt quite natural to me, which was really nice. But I realized that macro was a lot harder than I thought. Even with image stabilizers it&rsquo;s hard to get your subject into focus and have a nice bokeh without having everything, or mostly everything, blurred out. My wide-angle lens first felt odd, but after using it for a bit, I fell in love with it. I think this is the hardest lens, but I have produced some really cool looking images with it. Overall, I am quite happy with those lenses.</p>
<p>Having no zoom lens is quite another way of photographing. It means you cannot always take the shots you want to because you cannot change your focal length quickly in the field. I often had my other lenses with me, but changing them always takes a bit. But I think maybe that&rsquo;s a good thing from time to time. So you can take the same route several times and force yourself into thinking a bit out of the box and experiment with different focal lengths.</p>
<p>On my recent trip to Sweden, I used filters for the first time. They are a game changer when photographing landscapes with a tripod. Those smooth images when using an ND filter to photograph water are just awesome. I think I created one or two good waterfall photographs. I also tried a CPL filter and the combination of ND + CPL, but do not really know when to use what. I am still trying to figure that out, so I take most of the time a shot with and without CPL.</p>
<h2 id="photomanagement">Photomanagement</h2>
<p>I am a Linux user because it is the only available option which offers a good open source experience with a lot of software. And being open source and privacy-friendly are requirements for me to protect my freedom. Therefore classical image editors like Lightroom are out of the question for me. Firstly, because they are neither open source nor do they work on my Fedora system (or any other Linux system without dirty workarounds). And secondly, because I really do not like Adobe and its very ugly subscription model.</p>
<p>But that&rsquo;s no problem at all because there is a similar and in some cases even better, alternative to Lightroom called Darktable. It is free and open source software (FOSS) and available for all of the big operating systems. It offers the capability to manage big libraries of photos and edit them in a non-destructive way.</p>
<p>I have all my images in a library folder which is synchronized to all my devices using Nextcloud (also FOSS), but other tools like Syncthing could be used. Ensuring all my photos are only in one place and synchronized assures that I do not have duplicates or lose something because it was not backed up correctly.</p>
<p>If I come back from a shoot and want to save my images, I load them into a new folder under the library folder. I give every shoot a name to know what I can expect. Those shoot folders are saved in the following format: <code>library/&lt;year&gt;/&lt;shootName&gt;</code></p>
<p>After saving all my files, which are now already safely backed up, I go through them and pick what is going to be deleted and give the rest of the images a rating to prioritize them while editing. I work with stars for the rating.</p>
<table>
  <thead>
      <tr>
          <th>Rating</th>
          <th>What it means</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>rejected</td>
          <td>To be deleted</td>
      </tr>
      <tr>
          <td>0 / 1</td>
          <td>Unrated / ToDo</td>
      </tr>
      <tr>
          <td>2</td>
          <td>Bad photo but wanna keep</td>
      </tr>
      <tr>
          <td>3</td>
          <td>Maybe worth editing</td>
      </tr>
      <tr>
          <td>4</td>
          <td>Will be edited</td>
      </tr>
      <tr>
          <td>5</td>
          <td>One of the better shots I have taken</td>
      </tr>
  </tbody>
</table>
<p>I then edit first all five-star images and then the four-star ones. I previously did only the sorting of the images right after the shoot, but this had the disadvantage that I needed to do a <strong>lot</strong> of work in the last few weeks to edit all of the photos I wanted to. For the future, my plan is to edit them right away after the shoot to have only small bits of work and not so much at once. A nice bonus is that if you edit images not long after the shoot, you still have in mind the intention you had while shooting.</p>
<p>Besides the stars, I also use colors to manage my photos. I, for example, use red for the images I have already published/exported and purple for private images I do not want to export for now — if, for example, a person I know is on them, but they do not want to be online.</p>
<h2 id="editing">Editing</h2>
<p>After editing all my photos, I seem to have built a habit about which modules I use most on my images. And what I am most happy about is that I can see that my edited photographs look much better now than in the beginning, where I struggled to be better than the JPG produced by the camera. I am sure I can learn <strong>a lot more</strong> in this area, but think that needs time and maybe some guidance. But for now, I want to share with you how I am editing my images.</p>
<h3 id="base-style">Base <em>style</em></h3>
<p>I have a style in Darktable which I apply to every image I start editing and go from there. In this style I activate color balance RGB and increase the global brilliance and global saturation. I activate denoise (profiled) and local contrast at the default settings and set the color calibration to &ldquo;as shot in camera.&rdquo;</p>
<h3 id="manual-edits">Manual edits</h3>
<p>I then edit the photo manually to fit my liking. I first try haze removal and take a look if it is improving the image. Most of the time I then increase the local contrast a bit and sometimes add a bit of contrast over the filmic RGB module. But that&rsquo;s not that often happening. After that, I check if the shadows and highlights module helps the image and play around with the settings of it a bit. In color balance RGB I try to set everything so the image feels right. Most of the time only brilliance and saturation, but sometimes also chroma. I use crop and rotate the image to make it as pleasing to my eye as possible. If there are any smudges on the camera lens, I remove them with retouch. Sometimes I also use sharpen, but I do it less and less.</p>
<h2 id="exporting">Exporting</h2>
<p>I publish all my images to my website and syndicate them from there to all social media platforms. I have changed quite a bit in the process since my last automation posts, but that is a topic for another time. For now what is important is that I publish for the web. Therefore, I do a few things before publishing, like setting some notes on the image which describe what can be seen. That information is later used to set an alt tag which is used for people with screen readers, like for example some blind people use. Besides that, I also add tags which are used later as hashtags for social media. I seldom set a description, which in my case gets displayed as a text next to the image. But in some cases, I want the viewer to have some information and then I can provide it with that. I also set publisher and rights so that all the important metadata is set.</p>
<hr>
<p>I hope you could learn something from my reflections about my photography journey or at least have found it interesting to read. I will continue to learn both getting better photographing skills and editing skills and maybe write about it in the future. I hope I can see some progress then 😄</p>
]]></content:encoded>
    </item>
    <item>
      <title>Nginx proxy manager on TrueNas Scale without True Charts</title>
      <link>https://lna-dev.net/en/posts/home-server/nginx-proxy-manager/</link>
      <pubDate>Sat, 05 Oct 2024 14:00:05 +0200</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/home-server/nginx-proxy-manager/</guid>
      <description>How to setup a reverse proxy for TrueNas Scale without True Charts using the Nginx proxy manager.</description>
      <content:encoded><![CDATA[<p>This is the third post in a <a href="../../../tags/home-server-project/">larger series</a> about self-hosting with TrueNAS Scale. In this post, I want to show you how to set up the Nginx reverse proxy without relying on TrueCharts. I explained in <a href="../truenas-scale/">the last post</a> why I am moving away from them. In short: Support will be dropped.</p>
<h2 id="nginx-proxy-manager">Nginx Proxy Manager</h2>
<p>Using the default charts in TrueNAS Scale, your application can only be exposed on a high port. Accessing your apps via such a weird port and without a proper domain isn&rsquo;t cutting it. Is it? Therefore you can run a reverse proxy that manages TLS encryption and directs traffic for each subdomain to its respective app, without needing a special port in the URL.</p>
<p>Until now, I had always used a Traefik proxy when working with Kubernetes, but I found this cool project that seemed to fit perfectly. It&rsquo;s called Nginx Proxy Manager, or NPM for short. With NPM, you can set up a reverse proxy and also manage your TLS certificates using Let&rsquo;s Encrypt.</p>
<h2 id="installation">Installation</h2>
<p>First of all, we can&rsquo;t install this app the way we would normally install an app. It is in the default app catalog, but this version can only be hosted on port 9000. Instead, we’ll use the Docker image to deploy it. This won’t make any difference, but we can use our own IP address for it, which also means we can use all ports.</p>
<p>To start, go to the app catalog and click <code>Custom APP</code> in the top right corner. There, you can configure everything. I’ll provide the required settings below.</p>
<table>
  <thead>
      <tr>
          <th>Configuration Name</th>
          <th>Value</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Image Repository</td>
          <td><code>jc21/nginx-proxy-manager</code></td>
      </tr>
      <tr>
          <td>Image Tag</td>
          <td><code>latest</code></td>
      </tr>
      <tr>
          <td>External Interface</td>
          <td>Choose your interface and use an IP address that is not used by any device, including your server <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</td>
      </tr>
      <tr>
          <td>DNS Policy</td>
          <td>Prioritize Kubernetes DNS <sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</td>
      </tr>
      <tr>
          <td>Storage</td>
          <td>Set up two storage paths one for <code>/etc/letsencrypt</code> and one for <code>/data</code>. I recommend using Host Path Volumes.</td>
      </tr>
  </tbody>
</table>
<p>After installing the app, you can access it via its IP address on port <code>81</code>. The default username is <code>admin@example.com</code>and the password is <code>changeme</code>. Change them immediately!</p>
<h2 id="setting-up-tls">Setting Up TLS</h2>
<p><img alt="Screenshot of the Nginx Proxy Manager home screen" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/npmHomeScreen.png"></p>
<p>Once everything is set up and you’ve changed your password, you’ll see something like this. First of all, I recommend setting up your TLS certificate if you have a domain. If you don’t have a domain, you can still upload a custom certificate.</p>
<p><img alt="Overview of all TLS certificates in Nginx Proxy Manager" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/npmSslOverview.png"></p>
<p>Click on the <code>SSL Certificates</code> tab to see a list of all the certificates you’ve set up. If you click the button in the top right, you can create a new certificate. Here, you can choose between the Let&rsquo;s Encrypt certificate authority or upload a custom certificate if you&rsquo;re using a local domain. But if you can get a domain, I recommend doing so. I will proceed with the setup instructions for Let&rsquo;s Encrypt.</p>
<p><img alt="The Let&rsquo;s Encrypt setup dialog in NPM" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/letsEncrypt.png"></p>
<p>If your server is reachable from the public internet, you just need to enter your domain name and agree to the Terms of Service. This will spin up a local webpage to verify that you actually own the domain you enter.</p>
<blockquote>
<p>You can also set up a TLS certificate for all subdomains by entering <code>*.example.com</code>.</p>
</blockquote>
<p>If your server is not accessible from the public or if you want to use another method, you can choose the DNS challenge. NPM has a couple of DNS providers which you can choose from. Take a look at the list and search for your DNS provider.</p>
<p><img alt="The Let&rsquo;s Encrypt setup dialog with the DNS challenge in Nginx Proxy Manager" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/letsEncryptDNS.png"></p>
<p>You just have to enter the API token or log in another way specific to your provider. NPM will then modify the DNS records to prove that you own the domain you have provided.</p>
<p>If you complete any of these methods successfully, you&rsquo;ll get your SSL certificate.</p>
<h2 id="setting-up-your-apps">Setting Up Your Apps</h2>
<p>Now we want to configure the Nginx Proxy Manager to relay traffic from specific domains to a specific TrueNAS Scale app. To do this, go to <code>Dashboard =&gt; Proxy Hosts</code>.</p>
<p><img alt="Screenshot of the proxy hosts overview page of Nginx Proxy Manager" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/npmProxyOverview.png"></p>
<p>Here, you’ll see an overview of all the hosts / apps you’ve configured. On the top right, you can add a new host.</p>
<p><img alt="New proxy hosts dialog in NPM" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/newProxyHost.png"></p>
<p>In this window, you can finally configure access to your app. You need to enter the domain where you want your app to be available, choose the scheme (http/https) your app runs on (probably http)and enter the port your application uses.</p>
<p>The hostname of your app is its internal DNS entry in the Kubernetes cluster. It usually follows this pattern: <code>&lt;app-name&gt;.ix-&lt;app-name&gt;.svc.cluster.local</code>. So, for Jellyfin, it would be: <code>jellyfin.ix-jellyfin.svc.cluster.local</code>.</p>
<p>You can find the correct port in the app&rsquo;s configuration or use the default port.</p>
<blockquote>
<p><strong>These are the values for your app running in TrueNAS Scale, not the values for accessing the app publicly!</strong></p>
</blockquote>
<p>I also recommend enabling <code>Websocket Support</code> and <code>Block Common Exploits</code>.</p>
<p>At this point, your app will be accessible via your domain, but one final step is needed to allow requests over HTTPS. You just have to go to the SSL tab and select the certificate we set up earlier.</p>
<p><img alt="SSL config for new NPM proxy host" loading="lazy" src="/en/posts/home-server/nginx-proxy-manager/npmProxySSL.png"></p>
<p>After selecting your certificate, I recommend enabling all the available options (<code>Force SSL</code>, <code>HTTP/2 Support</code>, <code>HSTS Enabled</code>, <code>HSTS Subdomains</code>).</p>
<p>Once you click save, the host is set upand your app should be accessible via your domain and the HTTPS protocol.</p>
<blockquote>
<p>If you want to point one domain to your Nginx Proxy Manager UI, you can just point it to <code>http://localhost:81</code>.</p>
</blockquote>
<h2 id="footnotes">Footnotes</h2>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>It took me a while to figure this out because my app only worked sometimes on certain devices. I had registered the IP under the server&rsquo;s networking, which caused some devices to work intermittently. Why it worked at all, I can’t say, but just don’t do it.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>This is needed if you want to use the internal Kubernetes DNS entries to refer to your apps.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>How I built my home server using TrueNAS Scale</title>
      <link>https://lna-dev.net/en/posts/home-server/truenas-scale/</link>
      <pubDate>Tue, 13 Aug 2024 22:02:10 +0200</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/home-server/truenas-scale/</guid>
      <description>Here you learn how to setup a home server using TrueNAS Scale and I show you how I did it.</description>
      <content:encoded><![CDATA[<p>This post is part two of a bigger series of blog posts about my home server and how you can make your own. In <a href="../advantages-of-a-home-server/">the first post</a> I describe why I wanted to have a home server and the next one will be about how to set up the Nginx Proxy Manager (NPM) without TrueCharts. You can find all posts under the <a href="../../../tags/home-server-project/">Home-Server Project</a> tag.</p>
<h2 id="hardware">Hardware</h2>
<p><img alt="Picture of my home server from the inside." loading="lazy" src="/en/posts/home-server/truenas-scale/server.jpg"></p>
<p>(Looks a bit messy, I know 😅 But I somehow like it 😜)</p>


<p><details >
  <summary markdown="span">Full specs</summary>
  <table>
  <thead>
      <tr>
          <th>Type</th>
          <th>Hardware</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>CPU</td>
          <td>Intel i7</td>
      </tr>
      <tr>
          <td>RAM</td>
          <td>32 GB DDR3</td>
      </tr>
      <tr>
          <td>HDD</td>
          <td>5 x 6TB Seagate Ironwolf (For storage)</td>
      </tr>
      <tr>
          <td>SSD</td>
          <td>128 GB Samsung (For the OS)</td>
      </tr>
      <tr>
          <td>GPU</td>
          <td>NVIDIA GTX 970 (Can be used in some apps)</td>
      </tr>
  </tbody>
</table>

</details></p>

<p>As you can see, I am using an old PC as my server. This has the advantage that I only needed to buy the hard drives to support my storage needs, but the downside is that electricity consumption is rather high. Last time I measured with all my apps running, it consumed about 60W. A fresh build could be optimized for electricity consumption, which can save you a lot of money if you want the server to run 24/7. <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>I chose not to do a hardware RAID because I am using the ZFS file system. I will explain this in detail in <a href="#openzfs">a dedicated part</a>.</p>
<h3 id="ecc-memory">ECC memory?</h3>
<p>I unfortunately do not have ECC RAM, but if you can get it, I would recommend it. Error Correction Code (ECC) RAM is able to correct wrong bits, which makes the system more secure against some hardware attacks and especially more reliable. It is not a complete dealbreaker not having it, (especially because it&rsquo;s kind of rare in the consumer world at the moment) but having it is a nice addon.</p>
<h3 id="uninterrupted-power-supply-ups">Uninterrupted Power Supply (UPS)</h3>
<p>I bought a UPS to support my server in case of power outages. The UPS has a battery that can keep my server alive for about 15 minutes, then it gives a signal to the server, which is configured to shut down before the UPS battery runs out. This ensures that most power outages never cause a problem, as they are shorter than the battery time and if the power is out for a while the server shuts down gracefully.</p>
<h2 id="why-i-chose-truenas-scale">Why I chose TrueNAS Scale</h2>
<p>Now to, in my opinion, the most important part: The operating system. I chose TrueNAS Scale for a couple of reasons. First of all I wanted something that is <strong>Open Source</strong>. I also wanted to run apps on the system and definitely needed some sort of RAID / software RAID. TrueNAS Scale has it all. It is based on Linux and led by the company <a href="https://www.ixsystems.com/">iXsystems</a>. <sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> For applications, it supports Docker and Kubernetes, as well as its own VMs. I am actually not really using the VMs yet, but I really like Kubernetes and also Docker. So this was great news for me. These technologies allow you to run basically any app you like on it because most apps are or can be containerized. In addition to this, the system uses OpenZFS as the file system, which is pretty cool in my opinion. We will take a look at it in the next part.</p>
<h3 id="raid">RAID</h3>
<p>As I previously mentioned, I am not using a classical RAID system. Instead the ZFS file system which is used by TrueNAS Scale, has something similar to a software RAID built into it.</p>
<p>But first of all, to bring everyone on the same level, I want to explain what RAID actually is. RAID stands for Redundant Array of Independent Disks and as the name suggests brings redundancy into data storage. There are several versions of RAID (0, 1, 5, 6 are the most important ones). RAID 0 just stripes the data across multiple disks and does not provide any redundancy. RAID 1 mirrors every disk on another one so half of the disks could fail without losing any data. The last two versions are the important ones for this blog post. They both work similarly: First the data gets striped like in RAID 0, but a parity part is also calculated, which can be used to recover the data if a drive fails. With RAID 5 you can lose one disk without losing data and with RAID 6 you can lose two disks without an issue. The disadvantage of RAID is that you need more disks because of the redundancy.</p>
<h3 id="openzfs">OpenZFS</h3>
<p>Now let&rsquo;s talk about ZFS, which is an awesome file system in my opinion. It provides a set of features that make it especially interesting for server operation and other systems where correct data storage is important. A few of its features are RAID-Z (which I&rsquo;ll discuss later), data compression, data deduplication, snapshots and self-healing. All of these features are very interesting for building a storage-focused server like the one I am building.</p>
<p>RAID-Z is the most important feature of ZFS in my opinion. It allows me to run the server without a physical RAID controller. It works a bit differently from RAID, which brings better performance and it also has the self-healing ability ZFS is known for, all while not needing a physical RAID controller anymore. This is actually only possible because there is no RAID controller and the file system can manage the disks directly. It is not recommended to use ZFS in addition to a hardware RAID because of that.</p>
<h3 id="setup-of-the-os">Setup of the OS</h3>
<p>The installation of the OS is pretty straightforward. You can follow the <a href="https://www.truenas.com/docs/scale/24.04/gettingstarted/install/installingscale/">installation guide</a> on the developer&rsquo;s website.</p>
<p><img alt="Dashboard of TrueNAS Scale" loading="lazy" src="/en/posts/home-server/truenas-scale/trueNasDashboard.png"></p>
<p>If you set everything up, this is how the web UI looks. Here you can control pretty much everything about the system graphically. In addition to the UI, I would recommend setting up an SSH connection so you can use the command line on your system. You can do that under <code>credentials =&gt; users =&gt; upload SSH key</code>.</p>
<p><img alt="Screenshot of the dataset tab" loading="lazy" src="/en/posts/home-server/truenas-scale/datasets.png"></p>
<p>Under datasets you can set up different folders with different permissions, purposes, shares and much more. You can decide if you want to encrypt your data (you want to 😉) and how you want to do it. There are two options. With the simplest option, a key gets generated and you just have to save it somewhere safe as a backup, while the server stores it securely. But if you are like me and a bit paranoid when it comes to disk encryption, you can also use a really strong password. The difference is that you have to enter this password after every restart. This provides the security that if your system is shut down, it is safe against a lot of hardware attacks.</p>
<h3 id="how-i-move-files">How I move files</h3>
<p>TrueNAS Scale provides you with a few kinds of file shares. I tried them all but did not really like any of them, which actually makes it a lot simpler for me. I am using SSH in my Gnome file explorer if I want to move files or I just do it over the command line. This works perfectly fine for me.</p>
<p>If you want to use shares, you are able to use SMB, NFS and iSCSI to do so. Just play around with it and see what you like most. For me, it&rsquo;s the good old SSH.</p>
<p><img alt="Screenshot of the shares tab of TrueNAS Scale" loading="lazy" src="/en/posts/home-server/truenas-scale/shares.png"></p>
<h2 id="what-apps-i-run">What apps I run</h2>
<p>Now to the most interesting part, in my opinion. I want to run apps that support me in my day-to-day life and provide value. This is why I do all of this.</p>
<h3 id="truecharts-and-why-i-do-not-use-them-anymore">TrueCharts and why I do not use them anymore</h3>
<p>But first of all, we need to talk about TrueCharts. They are a pretty big third-party app catalog or at least they were for a very long time. They now said that they are going to drop support for TrueNAS Scale because they claim iXsystems will remove Kubernetes from the OS in a future update. I am not really sure about that because I haven&rsquo;t read anything significant. But I think sticking with the original apps is not that bad either way. It’s a bit different to set up, but I will guide you through it here.</p>
<p>I also want to mention that I had a few problems using charts from TrueCharts. I do not want to blame them for it, but I think they are less stable than the original ones. But they have advantages like more settings and less performance overhead, so I think the guys from TrueCharts still did a really good job.</p>
<h3 id="install-an-app">Install an app</h3>
<p>I do not want to use file shares for everything. That is not very convenient. I want to use an app that works like all the other file cloud providers. This is why I host Nextcloud on my NAS. This is a really cool private cloud software that manages everything like files, contacts, calendars and the list goes on and on. I will talk a bit more about it in a future post. <sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> But for now, let&rsquo;s take a look at how to install an app like that.</p>
<p><img alt="Screenshot of the TrueNAS Scale apps window" loading="lazy" src="/en/posts/home-server/truenas-scale/apps.png"></p>
<p>The process is actually pretty simple. You can just choose your app from the catalog, which you can open with the discover button.</p>
<p><img alt="Screenshot of the TrueNAS Scale apps catalog" loading="lazy" src="/en/posts/home-server/truenas-scale/app-catalog.png"></p>
<p>Here you can choose from many different apps or provide your own if you want to create something not in the default apps. If you have found an app you want to install, you can click on it and configure the app with everything the app allows you to change. Here the TrueCharts apps are a lot better because you can configure way more. But the default apps have a few settings as well and are much simpler. An important thing to keep in mind is that there is a limitation with the default apps, so you cannot use ports below 9000.</p>
<p><img alt="Screenshot of the TrueNAS Scale install dialog" loading="lazy" src="/en/posts/home-server/truenas-scale/install.png"></p>
<p>If you are finished with configuring, it is just as easy as pressing the install button. After a few minutes, the app is running and you can access it over the port you chose.</p>
<h2 id="the-end">The End</h2>
<p>You now know the basics of TrueNAS Scale. I hope you took a little bit of information from this post and I hope to see you in the next one of this series😄</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I thought about a couple of solutions that do not require the system to run all the time, but those are mostly hacks and not real solutions for me. For example, you could shut down the server overnight or wake it up using wake on LAN, but this is not a great fit for me.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>For those who are interested, iXsystems is a company based in the US and therefore a bit suboptimal because they are liable to US law, which is not ideal. But as I see it, they are not affected negatively at the moment.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>There are many apps I want to talk about. Examples are: Nextcloud, Jellyfin and Home Assistant. But I will do this another time in another post.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>Why I need a home server and you might too</title>
      <link>https://lna-dev.net/en/posts/home-server/advantages-of-a-home-server/</link>
      <pubDate>Mon, 29 Jul 2024 21:34:00 +0200</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/home-server/advantages-of-a-home-server/</guid>
      <description>In this post, I discuss the reasons why I decided to build a home server and talk about the advantages of having one.</description>
      <content:encoded><![CDATA[<p>First of all, this is the first post of a larger series of blog posts I will dedicate to building my home server. You can find all of them under the tag <a href="../../../tags/home-server-project/">Home-Server Project</a>.</p>
<p>There are many reasons someone would want to have a home server. In this post, I want to explain why I chose to build a home server and in the following ones, I will show you how I did it and how you can do it too.</p>
<h2 id="privacy-and-independence">Privacy and Independence</h2>
<p>For me, there are a few main reasons why I wanted to get started with self-hosting. I think my journey began about two years ago in 2022 when I first played around with a Synology NAS. This helped me a bit with some of the goals I had. Having a Synology NAS improved my independence, especially from the big tech nightmares and therefore also improved my privacy. But after a while, I felt that something wasn&rsquo;t quite right with this setup. First, the Synology software is not <strong>Open Source</strong> and therefore there are still <strong>privacy</strong> concerns. (I will cover why this is so important to me in a future post.) Also, Synology is a Taiwanese company and the situation with China was worrying me. (There would be a lot of bigger problems in tech, but it was still concerning.)</p>
<p>So the next step was building my own NAS / home server with custom <strong>Open Source</strong> software. I explain this in another post of this series. For now, let&rsquo;s just say I built my own server about a year ago in 2023 and now I have all my data at home in an environment I trust and am able to control fully. So I achieved a lot of independence from the shady big tech companies.</p>
<p><img alt="A meme about open source and closed source. Obviously always choosing open source." loading="lazy" src="/en/posts/home-server/advantages-of-a-home-server/openSourceMeme.jpg"></p>
<h2 id="cost">Cost</h2>
<p>Cost can be an advantage or disadvantage if you start to self-host. On one side, you have to pay for your hardware and the electricity your server consumes, but on the other side, you can cancel a couple of subscriptions which are also pretty expensive. For example, you are probably using some sort of cloud storage. (Or at least you should be using something like that in my opinion. <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> )</p>
<p>Having a bit of data in such storage can have high costs. For example, buying OneDrive, which is included in the Microsoft Personal subscription, costs about $6.99 a month.<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> This price only includes 1TB. But if you have large amounts of data, this can get very expensive. To look at another example, Google&rsquo;s cloud storage costs 9.99€ a month for 2TB.<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> Other cloud storages, like a hosted Nextcloud, might even be more expensive.</p>
<p><img alt="Screenshot of the Google Drive prices" loading="lazy" src="/en/posts/home-server/advantages-of-a-home-server/google-costs.png"></p>
<p>You also have to keep in mind these are only costs for one service. On your server, you can host a couple of services you need and even share those and also the costs.</p>
<p>Because of all this, you save a bug in my opinion if you start self-hosting and replacing the services you pay for with your own server. But this can vary from person to person.</p>
<blockquote>
<p>Just to mention it: OneDrive and a lot of other big tech tools scan your files for illegal content and use filters that might report you to law enforcement. These tools are known to make mistakes and so an image of your child on the beach can lead to your Microsoft account being suspended in the best case and a meeting with the local police in the worst case. Something like that will never happen if you are self-hosting. Be aware!</p>
</blockquote>
<h2 id="knowledge">Knowledge</h2>
<p>Another good point for having a home lab is all the knowledge you gain from it. You have to think about the hardware, set everything up physically, learn about RAID, about the operating systems and the software you are running, not to mention security and setting up a safe environment. There is a lot to learn on this journey!</p>
<p>And the good thing here is this is not a one-time thing. You can learn a lot as time goes on. Every now and then, if you feel motivated, you can play around with some settings or try something new.</p>
<p>This knowledge can also pay off in your job as you gain experience you maybe wouldn&rsquo;t have otherwise. Personally speaking, I learned most of the things I know about IT, especially programming and DevOps, while building my own things. It is just way more motivating building the things you want than just learning by doing exercises you do not care about.</p>
<h2 id="helping-others">Helping others</h2>
<p>Last but not least, I want to mention a small point I think is notable. If you are building all of this for yourself, it is really easy to give a few other people access to the services you are running. So you can help out your friends and family to have better privacy and generally speaking all of the benefits I was talking about. <sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Of course you should not use services that are not end-to-end encrypted or run by one of the big tech companies. But a service like that provides great value, especially if you self-host it!&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Data from <a href="https://www.microsoft.com/en-us/microsoft-365/onedrive/compare-onedrive-plans">https://www.microsoft.com/en-us/microsoft-365/onedrive/compare-onedrive-plans</a> retrieved on July 24.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>Data from <a href="https://one.google.com/about/plans?g1_landing_page=0&amp;hl=en">https://one.google.com/about/plans?g1_landing_page=0&amp;hl=en</a> retrieved on July 24.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>But be careful with that because you gain a lot of power if you do that, as you may get access to sensitive information. So keep in mind: With great power comes great responsibility^^&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    <item>
      <title>What is the Fediverse?</title>
      <link>https://lna-dev.net/en/posts/media/fediverse/</link>
      <pubDate>Sat, 27 Jan 2024 20:45:02 +0100</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/media/fediverse/</guid>
      <description>Deep dive into the really social network.</description>
      <content:encoded><![CDATA[<figure class="img-right">
    <img loading="lazy" src="./fediverse.svg"
         alt="The Fediverse-Logo"/> 
</figure>

<p>In this post, I want to explain what the Fediverse is and why you should join it. I talk very little about the technical stuff, but this post is intended to be understood by anyone.</p>
<p>Another post for the really technical topics is planned for the future.</p>
<h2 id="where-does-the-name-come-from">Where does the name come from?</h2>
<p>The name is a portmanteau of federation and universe. So the Fediverse is a federated universe.</p>
<p>This name does represent it pretty well. The Fediverse is decentralized web of social media platforms all connected to each other. Anyone can connect with anybody else, even if they are using completely different services. You can imagine it like email. Every user has an email address by a specific service, but they can write with anyone they want, not just with users of the same service.</p>
<p>For those who are familiar with the classic social networks: Imagine using Twitter and seeing Instagram or Facebook posts in your timeline, just like they would all be using Twitter. But that&rsquo;s not all. There also could be YouTube videos or anything else. You decide. That is the beauty of the Fediverse.</p>
<h2 id="why-is-the-fediverse-so-important">Why is the Fediverse so important?</h2>
<h3 id="decentralization">Decentralization</h3>
<p>The old social media platforms are owned by companies. Not so is the Fediverse. First of all, there are many services in the Fediverse, so the whole thing cannot be owned. Just like the internet. Therefore, nobody can force users into something or exploit their market dominance, as the current big players do.</p>
<p>The creators of the Fediverse platform Peertube explained it in a straightforward way. Here is their explanation. (This video is by the way hosted on Peertube)</p>
<div style="position: relative; padding-bottom: 56.25%; margin-bottom: 1rem; height: 0; overflow: hidden;">
<iframe sandbox="allow-same-origin allow-scripts allow-popups" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;"
    src="https://framatube.org/videos/embed/9dRFC6Ya11NCVeYKn8ZhiD?title=0&warningTitle=0&peertubeLink=0" title="Peertube Video" allowfullscreen>
</iframe>
</div>
<h3 id="free-and-open-source">Free and Open Source</h3>
<p>But even the producers of Fediverse software are very different. It mainly consists of FOSS (Free and Open Source Software), which means the software is genuinely free and independent developers can modify it and help to improve it. FOSS is incredibly important and I will cover its numerous advantages in a future post.</p>
<p>Because of this freedom, making money is more challenging. However, the user doesn&rsquo;t get treated like trash, as the user contributes to the Fediverse through donations. Also, there are no ads because of that.</p>
<p>So, the software producers of the Fediverse are primarily volunteers or non-profit organizations. Both aim to make the internet a better place and not just want to make a bug.</p>
<p>Moreover, it&rsquo;s not just the software producers who act fairly, the people who run the servers are mainly volunteers, organizations, or even states!</p>
<h3 id="the-force-of-the-masses">The force of the masses</h3>
<p>Because you can freely choose your service in the Fediverse, no one gets excluded from society anymore. I find this to be a significant issue with classical social media platforms. I am not using any of these because of all the bad things they do. As a result, I sometimes feel a bit excluded in specific contexts.</p>
<p>This is extremely important when it comes to messengers. Not using the specific service that is popular in your region can have a significant impact. Personally, I stopped using WhatsApp for around a year. In Germany, where I&rsquo;m from, it is used nearly without exception. A few people have <a href="https://www.signal.org/">Signal</a> or <a href="https://threema.ch/en">Threema</a>, but that&rsquo;s about it. Not having WhatsApp did affect my day-to-day life significantly. While I thought that using other services might encourage a few people to switch, it did only to some extent. Not everyone made the transition and some friends or family members remained exclusively on WhatsApp. Beyond the challenge of communicating with those you know, like and love, there are difficulties in meeting new people. I&rsquo;ve had experiences where some form negative opinions if you don&rsquo;t use the service that is common. Moreover, the barrier of contacting someone is much higher if they need to install a new app and you cannot contact them because you don&rsquo;t have the right messenger.</p>
<p>While a social media platform is not a messenger, the effects are quite similar: <strong>The people using the big service essentially force you to use it too!</strong></p>
<h2 id="current-culture-in-the-fediverse">Current culture in the Fediverse</h2>
<p>The current culture in the Fediverse is a significant positive aspect. People in this community are exceptionally friendly compared to traditional social networks. Moreover, the Fediverse is highly inclusive. For instance, if you post an image without an alt text (allowing blind people to understand what the image is about), someone will certainly remind you to add it. This inclusivity is crucial to the community, emphasizing that everyone should have the opportunity to participate.</p>
<p>There&rsquo;s also a good amount of instances for LGBTQ+ to create safe spaces for those people. I consistently see <a href="https://www.fediverse.to/search/?category=lgbt">different instances</a> with this objective.</p>
<p>Of course, this depends on which edge of the Fediverse you are at. But overall, I think there are many minorities in the Fediverse who are not as represented elsewhere. I recall a poll someone conducted with around 11,000 votes, asking how many queer people there are in the Fediverse. The result was 60% not queer and 40% queer. These are solid numbers. Of course, this result is biased in some way because of who the poll maker is and who reposts it. But with this number of votes, it definitely gives a good hint.</p>

    <iframe title="Hypothesis: queers make up roughly or more than 50% of the active people on Fedi." src="https://fosstodon.org/@writeblankspace/111744426795021145/embed" class="mastodon-embed" style="max-width: 100%; border: 0;" width="100%" allowfullscreen="allowfullscreen"></iframe><script src="https://fosstodon.org/embed.js" async="async"></script>

    <br>
    <br>

<p>If someone wants to create artistic content that goes a bit beyond the guidelines of platforms like Instagram, it is acceptable in the Fediverse. You can choose an instance where the rules align with your preferences and create your content there. While most instances may require a content warning for specific posts, you are free to express yourself as you like.</p>
<p>Also, there is no need to upload regularly or avoid using specific words to please the algorithm. There is nothing like that here. There are no ads and therefore no advertisers which do not want you to say something &ldquo;bad&rdquo;. You can handle things how you and your instance want them to be.</p>
<p>Another immensely beneficial aspect here is that the moderator count per user is relatively high. This is because each instance is responsible for its moderation. As a result, every instance manages its part, leading to an overall high count of moderators. Moreover, if an instance becomes unmoderated, other servers will block them, ensuring a clean network.</p>
<p>But, after all, the Fediverse is currently a big home for people who are interested in technology. It is relatively new tech and because of that, there are a lot of nerds. Which is great!</p>
<p>Of course, these are not all groups of people, but I hope I could provide you with a bit of an overview of the kinds of people currently in the Fediverse. This may change as new people join us, but at the moment, this is how I perceive the Fediverse. Let&rsquo;s hope we can maintain this diversity for the future.</p>
<h3 id="who-is-in-the-fediverse">Who is in the Fediverse?</h3>
<p>For example, nearly all German institutions have an account on their own <a href="https://social.bund.de/about">server of the state</a>. Additionally, the public broadcasting providers <a href="https://ard.social/about">ARD</a> and <a href="https://zdf.social/about">ZDF</a> have their own instances.</p>
<p>I just saw that the <a href="https://social.overheid.nl/about">Netherlands</a> also have a state owned Mastodon instance. I really like the idea of nations backing the network and hopefully the values, this network comes with.</p>
<p>Mozilla also created its own instance available to the public: <a href="https://mozilla.social/about">Mozilla Social</a>. However, there are another 26,000 servers waiting for you to explore them.</p>
<p>Currently there are around 10,000,000 users in the Fediverse with a total of about 1,200,000 of them being active in the last month. So you hopefully you find someone to connect with.</p>
<p>A good overview of instances and the biggest users can be found at <a href="https://fedidb.org">FediDB</a>.</p>
<h2 id="platforms">Platforms</h2>
<p>In this section, I want to showcase a few of the most important services of the Fediverse. <strong>But there are many more to be explored!</strong></p>
<p>This image provides a quick overview of the different categories and services.</p>
<figure>
    <img loading="lazy" src="./fediverse-branches.webp"
         alt="This image shows a tree with the different branches of the Fediverse. It shows a few services like Mastodon, Pleroma, Pixelfed, Peertube, Castopod, Mobilizon and even more."/> <figcaption>
            <p><a href="https://axbom.com/">🄯 CC-BY-SA 3.0 by Per Axbom</a></p>
        </figcaption>
</figure>

<h3 id="mastodon">Mastodon</h3>
<p>Mastodon is the biggest and also the most developed platform of the Fediverse. It is a microblogging service. The company behind it is a German non-profit company (gGmbH). It is comparable with Twitter and gained a lot of attraction during <a href="https://www.theguardian.com/technology/2023/oct/27/elon-musk-x-twitter-takeover-revenue-users-advertising">the catastrophic takeover of Elon Musk</a>. At that time, there was a huge mass of people moving to Mastodon from Twitter.</p>
<p>After these events, the &ldquo;freed&rdquo; platform attracted <a href="https://www.theguardian.com/world/2023/jun/03/twitter-conservative-media-elon-musk-ron-desantis">even more extreme right-wing individuals</a>. Additionally, many <a href="https://www.theguardian.com/technology/2022/dec/16/twitter-elon-musk-suspension-journalists-sets-dangerous-precedent-un-warns">journalists face occasional blocks</a>. If you truly seek a free platform, consider joining Mastodon: <a href="https://joinmastodon.org">https://joinmastodon.org</a>.
(They also have a really fancy website: Check it out!)</p>
<figure>
    <img loading="lazy" src="./twitter-x.jpg"
         alt="This image shows a dead bird which should represent the Twitter bird. This bird is crossed with a iron beam. No they represent the new logo X."/> <figcaption>
            <p><a href="https://www.davidrevoy.com/">🄯 CC-BY 4.0 by David Revoy</a></p>
        </figcaption>
</figure>

<h3 id="pixelfed">Pixelfed</h3>
<p>Instagram is a really big platform run by Meta, which is known for its <a href="https://tuta.com/blog/posts/google-facebook-free">extremely bad privacy</a> and they also had a few scandals. For example, they helped manipulate elections. See <a href="https://www.theguardian.com/news/2018/mar/17/cambridge-analytica-facebook-influence-us-election">Cambridge Analytica</a>.</p>
<p>Pixelfed is the pardon from the Fediverse for Instagram. It is developed by a Canadian software engineer and the community.</p>
<p>In my opinion, it is not as widely developed as Mastodon. But it&rsquo;s almost on a perfect level. It has many features, even some that classical Instagram does not have. But most importantly, it is part of the Fediverse and therefore, you could also consume the great photography available on Pixelfed from your Mastodon feed or whichever service you like the most.</p>
<p>And of course, Pixelfed is developed as <strong>Free and Open Source Software / FOSS!</strong></p>
<p>You can join it at: <a href="https://pixelfed.org/">https://pixelfed.org/</a></p>
<h3 id="lemmy">Lemmy</h3>
<p>Lemmy is Reddit for the Fediverse and it is also <strong>FOSS</strong>. It seems to have a really active community. I personally did not try it out that much yet but it seems pretty good.</p>
<p>After all, the decision to use Lemmy is not that difficult if Reddit is the current choice. Reddit did screw up hard this year. Same as Twitter. They <a href="https://www.pbs.org/newshour/economy/despite-widespread-user-protest-reddit-ceo-says-company-is-not-negotiating-on-3rd-party-app-charges">banned every third-party app</a> and also made a couple of other bad decisions. On the image below, you see a Reddit event where the collective of Reddit users has written &ldquo;Fuck spez!&rdquo; which is the CEO of Reddit.</p>
<figure>
    <img loading="lazy" src="./fuck-spez.png"
         alt="There is written Fuck spez! on the r/place canvas."/> 
</figure>

<p>This is a great example that the community cannot do anything against the will of a platform like Reddit, Twitter, Instagram, TikTok&hellip; They are extremely powerful companies, maybe monopolies, exploiting their power of having all the users. Let&rsquo;s break that! Let&rsquo;s make a real change and go to the Fediverse!</p>
<p>If you are interested in Lemmy: <a href="https://join-lemmy.org/">https://join-lemmy.org/</a></p>
<h3 id="peertube">Peertube</h3>
<p>Peertube is an alternative to YouTube. Because video streaming is quite expensive and in a decentralized network, there are many smaller communities with less money. Peertube decided to use <em>peer</em> to <em>peer</em>. This means if you watch a video, you help someone else watching because your computer sends bits of the video to other persons. So the server does need less bandwidth and therefore, small communities are able to operate a video streaming platform. This approach comes with downsides, but after all, it makes something possible, which would be really hard to achieve in another way. <strong>A really free video platform.</strong></p>
<p>In terms of content, this platform is still a bit niche. There are really good channels, especially in the privacy, tech and Linux community. But for more mainstream content, there is not that much to offer. This, of course, is not a problem of the platform but a problem of the creators who are not feeding the platform. I hope this will change in the future!</p>
<p>Because of the Fediverse, you can, of course, watch and subscribe to Peertube channels from Mastodon and other platforms.</p>
<p>Peertube is developed by the French non-profit association <a href="https://framasoft.org/en/">Framasoft</a> as <strong>FOSS</strong>.</p>
<p>Here you can find more information: <a href="https://joinpeertube.org/">https://joinpeertube.org/</a></p>
<h3 id="what-about-threads-meta">What about Threads (Meta)?</h3>
<figure>
    <img loading="lazy" src="./meta-red-carpet.jpg"
         alt="A little Mastodon is rolling out a red carpet for Meta represented as death / a reaper."/> <figcaption>
            <p><a href="https://www.davidrevoy.com/">🄯 CC-BY 4.0 by David Revoy</a></p>
        </figcaption>
</figure>

<p>Now, bigger companies are starting to join the Fediverse. The biggest is Threads made by Meta.</p>
<p>Currently, Threads is implementing the required  <a href="../../../tags/activitypub">ActivityPub</a> logic to join the network. You can already follow the CEO of Instagram and a few of the team. But it seems like the full connection will take a while to implement.</p>
<p>This topic is a controversy in the Fediverse. On one side stands that Meta is bringing a lot of users to the network, but on the other side, Meta is also well-known for incredibly bad privacy and being part of surveillance capitalism, hurting millions of users.</p>
<p>A few instances have even made the <a href="https://fedidb.org/current-events/anti-meta-fedi-pact">&ldquo;Fedi-Pact&rdquo;</a> and therefore will block Meta on the server side when they are joining. This has an impact of about 7% of active users on the open side of the Fediverse. (Of course, only Meta will not see them. The rest of the network can still interact with them normally.)</p>
<p>If a server does not block a specific other server, the user still has the power to do that. Here, the founder of Mastodon explains his audience how it is done.</p>

    <iframe title="Block Threads" src="https://mastodon.social/@Gargron/111587088958531028/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="100%" allowfullscreen="allowfullscreen"></iframe><script src="https://mastodon.social/embed.js" async="async"></script>

<p>And, of course, Meta will not provide a platform that is nearly as free and open as the other ones I mentioned above. They are only trying to make money and hopefully are not destroying the Fediverse while doing that. The only good they do is that they bring a lot of users with them. That&rsquo;s it. But this also may open the Fediverse to a lot of people, which would be great.</p>
<p>Meta joining is like a dance with the devil. But we may benefit from it.</p>
<h2 id="also-worth-mentioning">Also worth mentioning</h2>
<p>You are not stuck with your account on a server. Of course, you have the freedom to choose another one and take all your followers with you. No problem here. Free software doesn&rsquo;t lock you in place.</p>
<p>Another thing getting weird in the old networks is the account verification. You now need to pay in both <a href="https://www.pcmag.com/news/paid-verification-for-facebook-instagram-starts-rolling-out-in-us">Instagram</a> and <a href="https://www.businessinsider.com/twitter-verification-abuse-trolls-parody-george-bush-oj-simpson-confession-2022-11?IR=T">Twitter</a> to be verified, even if you are not a big creator or another person of interest. This is rather stupid and confusing. In the Fediverse, you do not need to pay anyone. You can just link yourself from another platform/website you own and you get a sign that this account/page is verified to be owned by you. A much better way of verification.</p>
<h2 id="the-technical-stuff">The technical stuff</h2>
<p>I decided not to put the really technical stuff in this post. This would have made this blog post even longer than it is now. I have a bit of experience in creating servers for the Fediverse because of <a href="../../projects/whathappenedtofedodo">Fedodo</a>. I want to share this experience in a future post and talk about the details of  <a href="../../../tags/activitypub">ActivityPub</a>. This is the protocol powering most of the Fediverse.</p>
<h2 id="appreciations">Appreciations</h2>
<p>Thanks to the amazing artists providing their work under Creative Commons licenses. They help me so much in illustrating this post. Links are available under each image. Go and check them out!</p>
<p>Also, thanks to you for reading this until the end. I hope I could give you a bit of an overview of the topic. And maybe I even convinced you to join us fighting for a better web. But don&rsquo;t pressure yourself. Have fun ❤️</p>
]]></content:encoded>
    </item>
    <item>
      <title>Why did I stop working on Fedodo?</title>
      <link>https://lna-dev.net/en/posts/projects/whathappenedtofedodo/</link>
      <pubDate>Sat, 25 Nov 2023 09:12:00 +0100</pubDate><author>me@lna-dev.net (Lukas Nagel)</author>
      <guid>https://lna-dev.net/en/posts/projects/whathappenedtofedodo/</guid>
      <description>I developed a social media platform called Fedodo for half a year. But why did I pause / stop the development after this time?</description>
      <content:encoded><![CDATA[<h2 id="what-is-fedodo">What is Fedodo?</h2>
<p>First of all, to get everyone on the same page, I need to explain what Fedodo is and why I started developing it.</p>
<p>With the rise of <a href="https://joinmastodon.org/">Mastodon</a>, I became more and more interested in the <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> protocol. I really like the idea of having a big decentralized platform that can compete with the walled gardens of big tech. The <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> protocol seemed to be just right to achieve that.</p>
<p>Until now, everyone developed a platform for a specific use case:</p>
<ul>
<li><a href="https://joinmastodon.org/">Mastodon</a> as an alternative to Twitter.</li>
<li><a href="https://pixelfed.org/">Pixelfed</a> as an alternative to Instagram.</li>
<li><a href="https://join-lemmy.org/">Lemmy</a> as an alternative to Reddit.</li>
<li>And the list goes on&hellip;</li>
</ul>
<p>I wanted to do this differently. I thought it would not be optimal to develop an ActivityPub server for each of these platforms. So my idea was to create an ActivityPub server which does not only implement the <a href="https://www.w3.org/TR/activitypub/#server-to-server-interactions">ActivityPub server to server</a> protocol but also the <a href="https://www.w3.org/TR/activitypub/#client-to-server-interactions">ActivityPub client to server</a> protocol. This client to server protocol was not really wide spread at this time. But it would allow anyone to use a frontend of their liking with the same server. Also every user now just needs one account. This is possible because Fedodo has a feature which allows multiple ActivityPub actors per user account.</p>
<p>As part of Fedodo, I wanted to develop not only the server but also a set of frontends. In detail, I developed a <a href="https://joinmastodon.org/">Mastodon</a>-like frontend an was starting to develop a <a href="https://pixelfed.org/">Pixelfed</a>-like UI.</p>
<h2 id="the-development">The development</h2>
<p>I started developing Fedodo in December 2022 and worked on it extensively until August 2023. Dedicating around eight months to the project.</p>
<p>During this time, I successfully developed a functional server. While it might be beneficial to give it a bit more attention, write a few tests here and there, and fix a few things, overall, it is working great. In addition to that I had a basic <a href="https://joinmastodon.org/">Mastodon</a>-like app kind of finished and made significant progress developing the <a href="https://pixelfed.org/">Pixelfed</a> alternative.</p>
<p>For me, this is significant achievement and I am also a bit pride. I even had the opportunity to participate in a podcast hosted by a significant German tech YouTuber and chat about ActivityPub. This was quite an honor for me. (<a href="https://www.youtube.com/watch?v=yP4yN1vyn5s">To the episode</a>)</p>
<h2 id="what-is-the-problem">What is the Problem?</h2>
<p>During the development period, I dedicated approximately 380 hours solely to coding. In addition to this comes the time I thought about the project and did not have an editor open (which I did not track). This makes about one and a half hours per day just coding. <strong>Every day</strong> in this eight months. Only paid with the German minimum wage, this would make up a 4715€. Clearly, a significant amount of time and effort went into the Fedodo project.</p>
<p>The problem is I did this in addition to a 40 hours work week. So my total working hours per week were about 50 hours.</p>
<p>I really enjoy coding in my free time. It is a awesome hobby for me. The problem with big projects like Fedodo is that at some point you aren&rsquo;t as hyped on it as in the beginning. And after some time, even a hobby project turns into work. And I think this is the significant problem.</p>
<p>If I am working on small projects I am hyped for it doesn&rsquo;t feel like work. But Fedodo did after four to five months. And than the 50 hours per week effect you.</p>
<p>I would not recommend to anyone working on a project of this size. I think everything which you can completely finish in under half a year is fine. But if you have the feeling you do work in your freetime it is not worth it. So keep on doing smaller projects and enjoy the process of creating.</p>
<p>Another option would be joining a comparable large community, developing an open source project. There you could do small things and have a proportionally big impact with little effort.</p>
<h2 id="how-does-the-future-of-fedodo-look-like">How does the future of Fedodo look like?</h2>
<p>This feeling of work and personal issues during this time led me to pausing the development of Fedodo and taking a break from coding in my freetime altogether.</p>
<p>Now, a few months later, I&rsquo;m slowly beginning to have this urge again to create something. So, I think it was the right decision to take a step back.</p>
<p>However, I will not work on Fedodo this hard again. Given the project&rsquo;s size, this likely means I won&rsquo;t be able to bring it to completion. Sadly.</p>
<blockquote>
<p><strong>Fedodo is just to big for me</strong></p>
</blockquote>
]]></content:encoded>
    </item>
  </channel>
</rss>