<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Val 🏳️‍⚧️ (En)</title>
    <link>https://val-vgms.gay/vo/</link>
    <description>Trans woman. 1994. I like to play videogames and translate webcomics... among other things.</description>
    <pubDate>Sat, 02 May 2026 02:07:22 -0600</pubDate>
    <item>
      <title>[Opinion] PumpSanity came back as XSanity</title>
      <link>https://val-vgms.gay/vo/opinion-pumpsanity-came-back-as-xsanity</link>
      <description>&lt;![CDATA[And the truth is that, by being a project on which I contributed voluntarily, I&#39;m really happy and excited. But at the same time, that&#39;s also why it makes me anxious.&#xA;&#xA;!--more--&#xA;&#xA;For those who doesn&#39;t know the whole context, a little less than six years ago I started to work on the Pump It Up Prime clone simulator, which was called StepPrime in that time. I specifically got in charge of adapting the Progressive and Gauntlet modes from the Pro and Pro 2 versions, which basically are in game playlists, called Music Train in game. Progressive uses existing charts, but in most of them they added visual effects that can change the arrow direction and/or appearance, and Gauntlet uses existing songs with charts exclusive to this mode.&#xA;&#xA;I got in charge of adapting these effects and charts - I actually remember a Gauntlet list that I couldn&#39;t find on the Pro 2 original files, and I asked a YouTuber to record it, and from there I transcribed it myself - and making almost all of the graphics.&#xA;&#xA;On subsequent motor revisions, even after it was called StepPXX, and then PumpSanity, I was working on correcting errors and notifying one of the creators. Until they received the cease and desist notification. By then I was working on previews for better integration, and I didn&#39;t know what to do. So I simply stopped doing it. But I never deleted the files because of pure nostalgia and attachment to it.&#xA;&#xA;Since then, I distanced myself from the scene and the community. And a lot of things have happened. I transitioned socially, got a job, I experimented with streaming, I translated two entire webcomics and an ongoing third, I switched jobs... several times, I started hormone replacement therapy, created this blog, started psychiatric treatment and therapy, started a small interactive guide for Kingdom Hearts Birth By Sleep, I started as a volunteer to translate the Arch Wiki to Spanish, and now I&#39;m in training for Platinum Services in American Express (all of this not necessarily in that order :P).&#xA;&#xA;As you can see, I don&#39;t really like being on stand-by a lot, but the truth is that it&#39;s not that much of a secret that both I like to delay some things, and that I tend to push myself to the burnout more often than I&#39;d like to admit. And the truth is that Platinum is going to take a lot of time that I used to take from my day to day, so even with only yhe things I&#39;m currently doing, I&#39;m already doing a lot. Without mentioning there&#39;s a post on this blog I started on mid January, and to this day it&#39;s not finished yet.&#xA;&#xA;Going back to the main topic, which is XSanity, I won&#39;t deny I&#39;m really happy it resurfaced from the ashes like a Phoenix (inner joke :P), and although I don&#39;t really have to do anything, this little squeaky voice which is my anxiety, is whispering all the time to resume what I had left for this project. And is not that I don&#39;t want to. Of course I&#39;m gonna do it. But as I mentioned in the previous paragraph, I&#39;m already taking a lot. So I think I&#39;m gonna go slowly.&#xA;&#xA;Or that&#39;s what I want to think. Because anxiety is a bitch, and it&#39;s not letting me alone. We&#39;ll see what happens. :&#39;v]]&gt;</description>
      <content:encoded><![CDATA[<p>And the truth is that, by being a project on which I contributed voluntarily, I&#39;m really happy and excited. But at the same time, that&#39;s also why it makes me anxious.</p>



<p>For those who doesn&#39;t know the whole context, a little less than six years ago I started to work on the Pump It Up Prime clone simulator, which was called StepPrime in that time. I specifically got in charge of adapting the Progressive and Gauntlet modes from the Pro and Pro 2 versions, which basically are in game playlists, called Music Train in game. Progressive uses existing charts, but in most of them they added visual effects that can change the arrow direction and/or appearance, and Gauntlet uses existing songs with charts exclusive to this mode.</p>

<p>I got in charge of adapting these effects and charts – I actually remember a Gauntlet list that I couldn&#39;t find on the Pro 2 original files, and I asked a YouTuber to record it, and from there I <em>transcribed</em> it myself – and making almost all of the graphics.</p>

<p>On subsequent motor revisions, even after it was called StepPXX, and then PumpSanity, I was working on correcting errors and notifying one of the creators. Until they received the cease and desist notification. By then I was working on previews for better integration, and I didn&#39;t know what to do. So I simply stopped doing it. But I never deleted the files because of pure nostalgia and attachment to it.</p>

<p>Since then, I distanced myself from the scene and the community. And a lot of things have happened. I transitioned socially, got a job, I experimented with streaming, I translated two entire webcomics and an ongoing third, I switched jobs... several times, I started hormone replacement therapy, created this blog, started psychiatric treatment and therapy, started a small interactive guide for Kingdom Hearts Birth By Sleep, I started as a volunteer to translate the Arch Wiki to Spanish, and now I&#39;m in training for Platinum Services in American Express (all of this not necessarily in that order :P).</p>

<p>As you can see, I don&#39;t really like being on stand-by a lot, but the truth is that it&#39;s not that much of a secret that both I like to delay some things, and that I tend to push myself to the burnout more often than I&#39;d like to admit. And the truth is that Platinum is going to take a lot of time that I used to take from my day to day, so even with only yhe things I&#39;m currently doing, I&#39;m already doing a lot. Without mentioning there&#39;s a post on this blog I started on mid January, and to this day it&#39;s not finished yet.</p>

<p>Going back to the main topic, which is XSanity, I won&#39;t deny I&#39;m really happy it resurfaced from the ashes like a Phoenix (inner joke :P), and although I don&#39;t really have to do anything, this little squeaky voice which is my anxiety, is whispering all the time to resume what I had left for this project. And is not that I don&#39;t want to. Of course I&#39;m gonna do it. But as I mentioned in the previous paragraph, I&#39;m already taking a lot. So I think I&#39;m gonna go slowly.</p>

<p>Or that&#39;s what I want to think. Because anxiety is a bitch, and it&#39;s not letting me alone. We&#39;ll see what happens. :&#39;v</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/opinion-pumpsanity-came-back-as-xsanity</guid>
      <pubDate>Thu, 19 Mar 2026 02:42:53 -0600</pubDate>
    </item>
    <item>
      <title>The end of Windows 10 is near. What should you do?</title>
      <link>https://val-vgms.gay/vo/the-end-of-windows-10-is-near</link>
      <description>&lt;![CDATA[At the time of posting this article, There’s less than a week left for the official Windows 10 support, and we have to explore options to keep using our computers that won’t be able to upgrade to the relatively new version of the operating system, or options to use it with the least issues possible, as long as Windows updates keep working correctly.&#xA;&#xA;!--more--&#xA;&#xA;Maybe I came a little too late to the party, keeping in mind the amount of articles by more professional media dedicated to the topic, and the little time remaining for the apocalypse, but still, I want to put my part, and leave my entirely personal opinion about what I think about the topic.&#xA;&#xA;Contents&#xA;&#xA;The simplest option: Do nothing&#xA;&#xA;Dropping cash: Pay for extended support&#xA;&#xA;Serious mode: Installing Windows 10 Enterprise&#xA;&#xA;Because I say so: Forcing Windows 11 installation&#xA;&#xA;Upgrading everything: Getting a new PC&#xA;&#xA;Long life recycling: Installing alternative operating systems&#xA;&#xA;   The easiest option: Chrome OS&#xA;&#xA;   If you like to tinker: Linux&#xA;&#xA;Conclusion&#xA;&#xA;The simplest option: Do nothing&#xA;&#xA;Let’s be honest. The fact that Windows 10 is ending its support on October 14th 2025 doesn’t mean your computer is gonna explode in a million pieces (although if you ask me, it should). So, on the short and possible medium term, you will be able to keep using your current PC and system. Although by stopping receiving security updates, you will eventually expose yourself to viruses and attacks if your computer keeps being connected to the internet.&#xA;&#xA;Pros&#xA;&#xA;You can keep using your computer as you have until now&#xA;By not receiving updates, your system will not break so easily&#xA;&#xA;Cons&#xA;&#xA;On the long run, some programs will not be compatible anymore&#xA;You might be exposed to vulnerabilities that won’t be fixed&#xA;&#xA;Dropping cash: Paying for extended support&#xA;&#xA;The truth is that Windows 10 support won’t end its support just like that. And by the final stages of the end of support for previous Windows versions, the option to pay for extended support was also available. Although with Windows 10 this is different, because previously, this service was only available only for enterprises. And this time, is now open for the general public. Common people like you and me.&#xA;&#xA;And there are various ways to access to the extended security updates, as detailed on its official page, which includes a free option in exchange of syncing your computer configurations. And if you chose not to sync your data, you’re given the option to pay USD$30 for a year of security updates or use your Microsoft Rewards (Do someone use those things?) to redeem it.&#xA;&#xA;Pros&#xA;&#xA;You get security updates legally, without feature modifications&#xA;If you don’t want (or can’t) pay with money, is not strictly obligatory&#xA;&#xA;Cons&#xA;&#xA;Depending the software you use, the compatibility is still not guaranteed&#xA;If you don’t pay with money, you pay with your data&#xA;&#xA;Serious mode: Installing Windows 10 Enterprise&#xA;&#xA;And besides, it’s not that the only version of Windows 10 is the commercial version for the end user. There’s also a specific version for medium enterprises and PC manufacturers. It’s not for everyone, but as I have listed with another examples, it has its advantages and disadvantages. The most important thing is that is a trimmed down version of the system that doesn’t require a Microsoft account to install it, and it will have security support until 2032. And although to use it legally you must acquire a license, these are really cheap. The only but is that Microsoft doesn’t offer the licenses directly on its website, so you’ll have to find resellers&#xA;&#xA;Pros&#xA;&#xA;System without preinstalled applications, which might improve performance and boot time&#xA;More stable updates during seven more years after the official commercial support&#xA;Includes features normally not offered to the end user, but that you might take advantage of&#xA;&#xA;Cons&#xA;&#xA;You will have to reinstall your system from scratch, which implies a possible loss of settings and customizations (data backup suggested)&#xA;Doesn’t include Microsoft Store to download apps easily&#xA;Installing features such as the mentioned store, Cortana or media apps is not as easy, and requires PowerShell commands&#xA;Finding a license for a reasonable price is not as easy, because there’s not a centralized place to find one&#xA;&#xA;Because I say so: Forcing Windows 11 installation&#xA;&#xA;The fact that you can’t upgrade to Windows 11 because Windows 10 is not allowing it from Windows Update doesn’t mean you can’t make a clean Windows 11 install. There are programs to make full installation media that avoid the system requirement verification during installation, such as Rufus, or even going further, using Tiny11 Builder  to create a trimmed down version of Windows 11 that removes almost all the bloatware.&#xA;&#xA;Pros&#xA;&#xA;You’ll have the latest features at the moment you install the system&#xA;You might be able to update your programs to the latest version, for example, Office&#xA;In the case of Tiny11, you’ll have a light but functional system&#xA;&#xA;Cons&#xA;&#xA;By not being official installation methods, you may not be eligible to automatically update to the latest biannual versions. Which forces you to do the process manually&#xA;You may encounter performance issues if your computer is not that modern.&#xA;&#xA;Upgrading everything: Getting a new PC&#xA;&#xA;If you have thought about getting a new PC (like I have), this may be the perfect time to do it, if you have the funds. That’s because almost any PC sold by any commercial retailer, and most of the refurbished PCs might come with Windows 11 preinstalled, or with the option to upgrade. So, if you have the funds, why not? There are lots of devices with varied prices and technical specs that may come with the system, which may adapt to your needs.&#xA;&#xA;Pros&#xA;&#xA;By having a new device, it can last several years with the proper care and maintenance&#xA;If it comes with Windows 11 preinstalled, you won’t even have to put any effort&#xA;&#xA;Cons&#xA;&#xA;You might contribute to technologic trash generation, which damages the environment&#xA;Speaking money-wise, this is the most damaging choice for your wallet if you don’t plan your spending&#xA;&#xA;Long life recycling: Installing alternative operating systems&#xA;&#xA;This whole article up to this point has been written as if Windows was the only alternative, but what if it isn’t? Well… actually is not. There are several operating systems really different from Windows that can be installed for free, and in the best case scenario, they can even give a second life to your old device you have stored somewhere.&#xA;&#xA;Pros&#xA;&#xA;You avoid technologic trash generation&#xA;You don’t have to get a new device&#xA;&#xA;Cons&#xA;&#xA;You might need technical knowledge to install one of these systems&#xA;Different interfaces to what you’re used to use, which may present a learning curve&#xA;Software availability may be limited or be different, so, some of your preferred software might need alternatives, or not be available at all&#xA;&#xA;There are different operating systems out there, with different purposes, sizes, colors and flavors. Like FreeBSD, Hurd, Kolibri, ReactOS, TempleOS or Haiku. But for simplicity purposes for this article (and because these are rather unknown and/or unstable), I’m going to center on two operating systems more known and relatively easy: Chrome OS and Linux.&#xA;&#xA;The easiest option: Chrome OS&#xA;&#xA;Chrome OS is a light and cloud-oriented operating system which uses Google Chrome as its main interface. I had the opportunity to work with it in one of my previous jobs, and honestly, it works pretty well, so now that Google is giving support to a variant to be installed outside of Chromebooks called Chrome OS Flex, it might be worth it to install on your current PC.&#xA;&#xA;Pros&#xA;&#xA;Lightweight system&#xA;Easy installation and setup&#xA;Compatibility with Linux apps&#xA;You don’t really need much technical knowledge to use it&#xA;&#xA;Cons&#xA;&#xA;By being cloud-oriented, many of its apps may depend on an Internet connection&#xA;Creating the installation media may be somewhat complex&#xA;Differently from the version for Chromebooks, the Flex version doesn’t allow you to install apps from the Play Store&#xA;&#xA;If you like to tinker: Linux&#xA;&#xA;It’s not a secret to anybody who either reads me here or follows me on my social media that Linux has been my preferred operating system for several years, and particularly I’ve been using it since 2011, and I fully recommend it to lots of people. And since then, the usage of this system has become more friendly than what already was in that time. But the truth is that it’s not for everyone, because it does require more technical knowledge to solve potential issues with programs or some hardware.&#xA;&#xA;One of the main advantages is that there are several variants, known as distributions, which can adapt to your liking and needs. From those oriented to beginners which even mimic the appearance of Windows or MacOS, to the minimalist ones which you can build from scratch, like Arch or Gentoo. Although to begin, I personally recommend Linux Mint XFCE to try and see if you like it, or check other distribution with other environments, like KDE Neon, Elementary or Zorin.&#xA;&#xA;Besides, with the Wine app, you can add a compatibility layer for Windows apps that can make some easy apps work. Although it may not work with every software. That said, Steam uses a Wine variant for compatibility with some of its games, called Proton.&#xA;&#xA;Pros&#xA;&#xA;Several distributions that can be adapted to you&#xA;You can give a second life for at least three more years to your PC, and even get more performance to your new PC&#xA;Highly customizable&#xA;&#xA;Cons&#xA;&#xA;The massive amount of distributions may be overwhelming&#xA;Not every windows app is compatible with Wine (particularly Microsoft Office and Adobe Creative Cloud)&#xA;It requires technical knowledge (or willingness to learn) to be able to solve issues&#xA;There may not be alternatives convincing enough to replace your usual programs&#xA;Too recent PCs may not have proper support for a few months&#xA;&#xA;Conclusion&#xA;&#xA;The end of official support of Windows 10 doesn’t necessarily mean the end of the world. There are ways to keep using your current PCs or modernize your equipment to keep having a working computer. So we’re not out of options. And now that you have this options in detail, which path are you gonna take?]]&gt;</description>
      <content:encoded><![CDATA[<p>At the time of posting this article, There’s less than a week left for the official Windows 10 support, and we have to explore options to keep using our computers that won’t be able to upgrade to the relatively new version of the operating system, or options to use it with the least issues possible, as long as Windows updates keep working correctly.</p>



<p>Maybe I came a little <em>too</em> late to the party, keeping in mind the amount of articles by more professional media dedicated to the topic, and the little time remaining for the <em>apocalypse</em>, but still, I want to put my part, and leave my <strong>entirely personal</strong> opinion about what I think about the topic.</p>

<h3 id="contents">Contents</h3>
<ol><li><p><a href="#the-simplest-option-do-nothing" rel="nofollow">The simplest option: Do nothing</a></p></li>

<li><p><a href="#dropping-cash-paying-for-extended-support" rel="nofollow">Dropping cash: Pay for extended support</a></p></li>

<li><p><a href="#serious-mode-installing-windows-10-enterprise" rel="nofollow">Serious mode: Installing Windows 10 Enterprise</a></p></li>

<li><p><a href="#because-i-say-so-forcing-windows-11-installation" rel="nofollow">Because I say so: Forcing Windows 11 installation</a></p></li>

<li><p><a href="#upgrading-everything-getting-a-new-pc" rel="nofollow">Upgrading everything: Getting a new PC</a></p></li>

<li><p><a href="#long-life-recycling-installing-alternative-operating-systems" rel="nofollow">Long life recycling: Installing alternative operating systems</a></p>
<ol><li><p><a href="#the-easiest-option-chrome-os" rel="nofollow">The easiest option: Chrome OS</a></p></li>

<li><p><a href="#if-you-like-to-tinker-linux" rel="nofollow">If you like to tinker: Linux</a></p></li></ol></li>

<li><p><a href="#conclusion" rel="nofollow">Conclusion</a></p></li></ol>

<h3 id="the-simplest-option-do-nothing">The simplest option: Do nothing</h3>

<p>Let’s be honest. The fact that Windows 10 is ending its support on October 14th 2025 doesn’t mean your computer is gonna explode in a million pieces (although if you ask me, it should). So, on the short and possible medium term, you will be able to keep using your current PC and system. Although by stopping receiving security updates, you will eventually expose yourself to viruses and attacks if your computer keeps being connected to the internet.</p>

<p><strong>Pros</strong></p>
<ul><li>You can keep using your computer as you have until now</li>
<li>By not receiving updates, your system will not break so easily</li></ul>

<p><strong>Cons</strong></p>
<ul><li>On the long run, some programs will not be compatible anymore</li>
<li>You might be exposed to vulnerabilities that won’t be fixed</li></ul>

<h3 id="dropping-cash-paying-for-extended-support">Dropping cash: Paying for extended support</h3>

<p>The truth is that Windows 10 support won’t end its support just like that. And by the final stages of the end of support for previous Windows versions, the option to pay for extended support was also available. Although with Windows 10 this is different, because previously, this service was only available only for enterprises. And this time, is now open for the general public. Common people like you and me.</p>

<p>And there are various ways to access to the extended security updates, as detailed on <a href="https://www.microsoft.com/en-us/windows/extended-security-updates" rel="nofollow">its official page</a>, which includes a free option in exchange of syncing your computer configurations. And if you chose not to sync your data, you’re given the option to pay USD$30 for a year of security updates or use your Microsoft Rewards (Do someone use those things?) to redeem it.</p>

<p><strong>Pros</strong></p>
<ul><li>You get security updates legally, without feature modifications</li>
<li>If you don’t want (or can’t) pay with money, is not strictly obligatory</li></ul>

<p><strong>Cons</strong></p>
<ul><li>Depending the software you use, the compatibility is still not guaranteed</li>
<li>If you don’t pay with money, you pay with your data</li></ul>

<h3 id="serious-mode-installing-windows-10-enterprise">Serious mode: Installing Windows 10 Enterprise</h3>

<p>And besides, it’s not that the only version of Windows 10 is the commercial version for the end user. There’s also a specific version for medium enterprises and PC manufacturers. It’s not for everyone, but as I have listed with another examples, it has its advantages and disadvantages. The most important thing is that is a trimmed down version of the system that doesn’t require a Microsoft account to install it, and it will have security support until 2032. And although to use it legally you must acquire a license, these are really cheap. The only but is that Microsoft doesn’t offer the licenses directly on its website, so you’ll have to find resellers</p>

<p><strong>Pros</strong></p>
<ul><li>System without preinstalled applications, which might improve performance and boot time</li>
<li>More stable updates during seven more years after the official commercial support</li>
<li>Includes features normally not offered to the end user, but that you might take advantage of</li></ul>

<p><strong>Cons</strong></p>
<ul><li>You will have to reinstall your system from scratch, which implies a possible loss of settings and customizations (data backup suggested)</li>
<li>Doesn’t include Microsoft Store to download apps easily</li>
<li>Installing features such as the mentioned store, Cortana or media apps is not as easy, and requires PowerShell commands</li>
<li>Finding a license for a reasonable price is not as easy, because there’s not a centralized place to find one</li></ul>

<h3 id="because-i-say-so-forcing-windows-11-installation">Because I say so: Forcing Windows 11 installation</h3>

<p>The fact that you can’t upgrade to Windows 11 because Windows 10 is not allowing it from Windows Update doesn’t mean you can’t make a clean Windows 11 install. There are programs to make full installation media that avoid the system requirement verification during installation, such as <a href="https://rufus.ie/en/" title="Rufus - Create bootable USB drives the easy way" rel="nofollow">Rufus</a>, or even going further, using <a href="https://github.com/ntdevlabs/tiny11builder" rel="nofollow">Tiny11 Builder</a>  to create a trimmed down version of Windows 11 that removes almost all the bloatware.</p>

<p><strong>Pros</strong></p>
<ul><li>You’ll have the latest features at the moment you install the system</li>
<li>You might be able to update your programs to the latest version, for example, Office</li>
<li>In the case of Tiny11, you’ll have a light but functional system</li></ul>

<p><strong>Cons</strong></p>
<ul><li>By not being official installation methods, you may not be eligible to automatically update to the latest biannual versions. Which forces you to do the process manually</li>
<li>You may encounter performance issues if your computer is not <em>that</em> modern.</li></ul>

<h3 id="upgrading-everything-getting-a-new-pc">Upgrading everything: Getting a new PC</h3>

<p>If you have thought about getting a new PC (like I have), this may be the perfect time to do it, if you have the funds. That’s because almost any PC sold by any commercial retailer, and most of the refurbished PCs might come with Windows 11 preinstalled, or with the option to upgrade. So, if you have the funds, why not? There are lots of devices with varied prices and technical specs that may come with the system, which may adapt to your needs.</p>

<p><strong>Pros</strong></p>
<ul><li>By having a new device, it can last several years with the proper care and maintenance</li>
<li>If it comes with Windows 11 preinstalled, you won’t even have to put any effort</li></ul>

<p><strong>Cons</strong></p>
<ul><li>You might contribute to technologic trash generation, which damages the environment</li>
<li>Speaking money-wise, this is the most damaging choice for your wallet if you don’t plan your spending</li></ul>

<h3 id="long-life-recycling-installing-alternative-operating-systems">Long life recycling: Installing alternative operating systems</h3>

<p>This whole article up to this point has been written as if Windows was the only alternative, but what if it isn’t? Well… actually is not. There are several operating systems really different from Windows that can be installed for free, and in the best case scenario, they can even give a second life to your old device you have stored somewhere.</p>

<p><strong>Pros</strong></p>
<ul><li>You avoid technologic trash generation</li>
<li>You don’t have to get a new device</li></ul>

<p><strong>Cons</strong></p>
<ul><li>You might need technical knowledge to install one of these systems</li>
<li>Different interfaces to what you’re used to use, which may present a learning curve</li>
<li>Software availability may be limited or be different, so, some of your preferred software might need alternatives, or not be available at all</li></ul>

<p>There are different operating systems out there, with different purposes, sizes, colors and flavors. Like FreeBSD, Hurd, Kolibri, ReactOS, TempleOS or Haiku. But for simplicity purposes for this article (and because these are rather unknown and/or unstable), I’m going to center on two operating systems more known and relatively easy: Chrome OS and Linux.</p>

<h4 id="the-easiest-option-chrome-os">The easiest option: Chrome OS</h4>

<p>Chrome OS is a light and cloud-oriented operating system which uses Google Chrome as its main interface. I had the opportunity to work with it in one of my previous jobs, and honestly, it works pretty well, so now that Google is giving support to a variant to be installed outside of Chromebooks called <a href="https://chromeos.google/intl/en-us/products/chromeos-flex/" rel="nofollow">Chrome OS Flex</a>, it might be worth it to install on your current PC.</p>

<p><strong>Pros</strong></p>
<ul><li>Lightweight system</li>
<li>Easy installation and setup</li>
<li>Compatibility with Linux apps</li>
<li>You don’t really need much technical knowledge to use it</li></ul>

<p><strong>Cons</strong></p>
<ul><li>By being cloud-oriented, many of its apps may depend on an Internet connection</li>
<li>Creating the installation media may be somewhat complex</li>
<li>Differently from the version for Chromebooks, the Flex version doesn’t allow you to install apps from the Play Store</li></ul>

<h4 id="if-you-like-to-tinker-linux">If you like to tinker: Linux</h4>

<p>It’s not a secret to anybody who either reads me here or follows me on <a href="https://val-vgms.gay/contact" rel="nofollow">my social media</a> that Linux has been my preferred operating system for several years, and particularly I’ve been using it since 2011, and I fully recommend it to lots of people. And since then, the usage of this system has become more friendly than what already was in that time. But the truth is that it’s not for everyone, because it does require more technical knowledge to solve potential issues with programs or some hardware.</p>

<p>One of the main advantages is that there are several variants, known as distributions, which can adapt to your liking and needs. From those oriented to beginners which even mimic the appearance of Windows or MacOS, to the minimalist ones which you can build from scratch, like Arch or Gentoo. Although to begin, I personally recommend Linux Mint XFCE to try and see if you like it, or check other distribution with other environments, like KDE Neon, Elementary or Zorin.</p>

<p>Besides, with the Wine app, you can add a compatibility layer for Windows apps that can make some easy apps work. Although it may not work with every software. That said, Steam uses a Wine variant for compatibility with some of its games, called Proton.</p>

<p><strong>Pros</strong></p>
<ul><li>Several distributions that can be adapted to you</li>
<li>You can give a second life for at least three more years to your PC, and even get more performance to your new PC</li>
<li>Highly customizable</li></ul>

<p><strong>Cons</strong></p>
<ul><li>The massive amount of distributions may be overwhelming</li>
<li>Not every windows app is compatible with Wine (particularly Microsoft Office and Adobe Creative Cloud)</li>
<li>It requires technical knowledge (or willingness to learn) to be able to solve issues</li>
<li>There may not be alternatives convincing enough to replace your usual programs</li>
<li>Too recent PCs may not have proper support for a few months</li></ul>

<h3 id="conclusion">Conclusion</h3>

<p>The end of official support of Windows 10 doesn’t necessarily mean the end of the world. There are ways to keep using your current PCs or modernize your equipment to keep having a working computer. So we’re not out of options. And now that you have this options in detail, which path are you gonna take?</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/the-end-of-windows-10-is-near</guid>
      <pubDate>Fri, 10 Oct 2025 15:54:50 -0600</pubDate>
    </item>
    <item>
      <title>I haven&#39;t forgotten about this space.</title>
      <link>https://val-vgms.gay/vo/i-havent-forgotten-about-this-space</link>
      <description>&lt;![CDATA[I just simply have had nothing good to write. &#xA;&#xA;🙃]]&gt;</description>
      <content:encoded><![CDATA[<p>I just simply have had nothing good to write.</p>

<p>🙃</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/i-havent-forgotten-about-this-space</guid>
      <pubDate>Mon, 30 Jun 2025 23:40:38 -0600</pubDate>
    </item>
    <item>
      <title>I&#39;m sick of this world</title>
      <link>https://val-vgms.gay/vo/im-sick-of-this-world</link>
      <description>&lt;![CDATA[Yeah, the title is not heartwarming. And I also don’t want to cover it. It will be a very difficult reading. Content warnings: US politics, transphobia, death, mental health&#xA;&#xA;!--more--&#xA;&#xA;I have several days with this on my mind, and honestly I still can’t correctly gather my thoughts, so this will come out as is. Because, honestly, I need to vent.&#xA;&#xA;Those who follow me on social media (and even those who read me over here, if they pay attention) can notice my emotional state has been, at the very least, cuestionable. And I really hate being the type of person who only posts depressive stuff. That’s why I actually haven’t posted a lot, neither here nor other social media. But, well, that’s a lot of disclosures.&#xA;&#xA;As it is, the situation on United States is horrible for everyone. The most affected, the immigrants and the trans community. Honestly this last group is the one that worries me the most, because I have friends over there, which I would have liked to be able to visit during the 2026 World Cup, which it’s supposed to be hosted in all of North America. But the current immigration policies make it impossible. But those currently living there are seeing reversed their legal name changes, and basically that government is incredibly stupid, but that’s what makes it much more dangerous, to the point I’m thankful I’m living in Latin America.&#xA;&#xA;Except I’m not, because the situation over here with trans people isn’t any better. The dumb things Wendy Guevara has said just by mere misinformation and internalized transphobia have made the trans haters come out of the sewers to comment everywhere. Practically expected in general interest pages (still shameful). But the worst is precisely seeing transphobic comments on LGBTQ+ pages. I mean, really? And I’m also thorn between my friends misgendering her and calling her ‘transvestite’ or ‘dude with tits’. I mean, I understand Wendy Guevara doesn’t represent the trans community at all. But… I dunno. It confuses me.&#xA;&#xA;This also has showcased transphobia in my friendship circle, as I have had to reduce it to not take further deceptions. The irony is that some of these ‘friendships’ I decided to cut off are people I already took out of my life before for similar reasons, and I let them back in because I stupidly thought they might have changed. Thinking is not my strongest point, it seems.&#xA;&#xA;On a more painful note, at this point is very well known the murder of Sara Mirelley (at least in Hispanic countries). And as more details about her last moments came out… well, let’s say I cannot read a complete note anymore because I immediately feel so powerless about how shitty people can be just for being different. And this is the most known case at the moment. I know much more people who have lost someone close to them in similar ways, and I feel fortunate this is not my case. But I still have a lot of fear. Both for me and my trans and non-binary siblings.&#xA;&#xA;Without forgetting the destruction the Israel government is doing in Palestine. Honestly I think every time I think we’re seeing the worst of humankind, people even take it as a challenge. I even have thought about permanently deleting all of my social media. Even the ones in the fediverse. I just can’t take seeing too many bad news all of the time. (But here I am posting a depressive note)&#xA;&#xA;On a lighter note, I have also had good times, because not everything is crying to sleep. I have been really close with my mom, we went to see a movie, I’m still thriving in my transition, and the job is now currently the least of my issues, and sometimes is even enjoyable.&#xA;&#xA;To say the truth, I see it to be very difficult, and not in a soon-ish timeframe. But I still have hope that eventually things stop being so crappy. I don’t want to lose hope.&#xA;&#xA;On a totally unrelated note, sorry. I know this isn’t cheerful at all, and I also was doubting about even posting this for its content. I promise this will be the only depressive post in a long time.]]&gt;</description>
      <content:encoded><![CDATA[<p>Yeah, the title is not heartwarming. And I also don’t want to cover it. It will be a <strong>very</strong> difficult reading. Content warnings: US politics, transphobia, death, mental health</p>



<p>I have several days with this on my mind, and honestly I still can’t correctly gather my thoughts, so this will come out as is. Because, honestly, I need to vent.</p>

<p>Those who follow me on social media (and even those who read me over here, if they pay attention) can notice my emotional state has been, at the very least, cuestionable. And I really hate being the type of person who only posts depressive stuff. That’s why I actually haven’t posted a lot, neither here nor other social media. But, well, that’s a lot of disclosures.</p>

<p>As it is, the situation on United States is horrible for everyone. The most affected, the immigrants and the trans community. Honestly this last group is the one that worries me the most, because I have friends over there, which I would have liked to be able to visit during the 2026 World Cup, which it’s <em>supposed to be</em> hosted in all of North America. But the current immigration policies make it impossible. But those currently living there are seeing reversed their legal name changes, and basically that government is incredibly stupid, but that’s what makes it much more dangerous, to the point I’m thankful I’m living in Latin America.</p>

<p>Except I’m not, because the situation over here with trans people isn’t any better. The dumb things Wendy Guevara has said just by mere misinformation and internalized transphobia have made the trans haters come out of the sewers to comment everywhere. Practically expected in general interest pages (still shameful). But the worst is precisely seeing transphobic comments on LGBTQ+ pages. I mean, really? And I’m also thorn between my friends misgendering her and calling her <em>‘transvestite’</em> or <em>‘dude with tits’</em>. I mean, I understand Wendy Guevara doesn’t represent the trans community <strong>at all</strong>. But… I dunno. It confuses me.</p>

<p>This also has showcased transphobia in my friendship circle, as I have had to reduce it to not take further deceptions. The irony is that some of these ‘friendships’ I decided to cut off are people I already took out of my life before for similar reasons, and I let them back in because I stupidly thought they might have changed. Thinking is not my strongest point, it seems.</p>

<p>On a more painful note, at this point is very well known the murder of Sara Mirelley (at least in Hispanic countries). And as more details about her last moments came out… well, let’s say I cannot read a complete note anymore because I immediately feel so powerless about how shitty people can be just for being different. And this is the most known case at the moment. I know much more people who have lost someone close to them in similar ways, and I feel fortunate this is not my case. But I still have a lot of fear. Both for me and my trans and non-binary siblings.</p>

<p>Without forgetting the destruction the Israel government is doing in Palestine. Honestly I think every time I think we’re seeing the worst of humankind, people even take it as a challenge. I even have thought about permanently deleting all of my social media. Even the ones in the fediverse. I just can’t take seeing too many bad news all of the time. (But here I am posting a depressive note)</p>

<p>On a lighter note, I have also had good times, because not everything is crying to sleep. I have been really close with my mom, we went to see a movie, I’m still thriving in my transition, and the job is now currently the least of my issues, and sometimes is even enjoyable.</p>

<p>To say the truth, I see it to be very difficult, and not in a soon-ish timeframe. But I still have hope that eventually things stop being so crappy. I don’t want to lose hope.</p>

<p>On a totally unrelated note, sorry. I know this isn’t cheerful at all, and I also was doubting about even posting this for its content. I promise this will be the only depressive post in a long time.</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/im-sick-of-this-world</guid>
      <pubDate>Wed, 16 Apr 2025 14:34:48 -0600</pubDate>
    </item>
    <item>
      <title>I&#39;m okay... but not really</title>
      <link>https://val-vgms.gay/vo/im-okay</link>
      <description>&lt;![CDATA[I wanna start this post saying this is really me opening up about myself, and it’s something I need to write to vent about some things inside me.&#xA;&#xA;With that said, I also wanna say that this will be a hard reading, because I’ll write about delicate topics, such as mental health and suicide mention. So if you don’t wanna read this little venting session, you better skip this one.&#xA;&#xA;!--more--&#xA;&#xA;When people ask how are you, you often answer “good”. Whether it’s because you really feel it, or just mere courtesy. In my case, I answer “I’m still alive, that’s something”. And yes, there have been days on which I’m okay. But generally these days I’ve been generally in zombie mode. Or flat out tired for everything and nothing. To say the truth, there have been days on which I don’t want to get out of bed, but the job makes me do it, and I’m practically burnt out. And the things I have done to relax and get distracted are really more work. For example, the comic translations, writing for this blog, or a page I’m doing with JavaScript.&#xA;&#xA;I’ve been really frustrated, and sometimes I do feel really insufficient, more particularly at work for not being able to get the metrics asked. Anyone who sees that it’s an office job might think it’s not tiring at all. And honestly, you’re right. Physically it’s not tiring at all. But it’s mentally and emotionally demanding, and that IS tiring. Ironically I have had troubles sleeping, and staying asleep. And there are days I have a really constant, intense headache. My body practically demands a rest, but the anxiety and the intrusive thoughts don’t make it easy at all.&#xA;&#xA;Speaking about intrusive thoughts, and going back on feeling insufficient, the last week of February 2025 was particularly difficult in that regard. So much that there was a day on which I was walking from the public transport stop to my job, and thoughts about jumping to the road went through my head for a car to bump me. What stopped me is that, between all that mess in my head, I thought, «but how is my family gonna do without my help?». Not even the fear of letting unfinished projects, or my fear to the non-existence, or the hopes of not being alone anymore (which is another thing to unpack). To say the truth, with it’s ups and down and whatnot, my family has supported me a lot. But even with their help and support, I have felt really alone since, well, I stopped having a best friend, and I feel like I haven’t had a closure with that, but I know that won’t happen. Both of us are really obstinate for that. Besides, there are some extended family members who have distanced themselves from me, or that the relationship is stranded, so I won’t deny I have felt really alone, and I have a hard time getting closer to people. Both out of fear of hurting people, and getting hurt. More of the latter, but still.&#xA;&#xA;Thinking a bit about everything, I think I have gone through a depressive episode since middle or late December, and I haven’t fully recovered from that. And seeing the news about what’s happening in the United States and here in Mexico just makes things worse. Although there are some days I feel really good. For example, the other day I was walking from my job to the bus stop, and the wind made the dried leaves fall from the trees, and I thought it was such a nice effect. Besides, although these situations I have described are really overwhelming for me, there are people who have it worse. My brother, for example, cannot see his daughter because her mother took her out of the country illegally, and we can’t do anything about it, and also there are some people I know who are not accepted by their families, among other things. So I try to be a little bit more flexible with myself, and making myself see that I’m not as fucked up as other people. But… yeah. The inner demons are present.&#xA;&#xA;I think I just wanted to express all of this I had inside to sort my head a bit and vent out. So I’ll simply gonna end this saying that yes, I could be better. But I’m okay.]]&gt;</description>
      <content:encoded><![CDATA[<p>I wanna start this post saying this is really me opening up about myself, and it’s something I need to write to vent about some things inside me.</p>

<p>With that said, I also wanna say that this will be a hard reading, because I’ll write about delicate topics, such as mental health and suicide mention. So if you don’t wanna read this little venting session, you better skip this one.</p>



<p>When people ask how are you, you often answer “good”. Whether it’s because you really feel it, or just mere courtesy. In my case, I answer “I’m still alive, that’s something”. And yes, there have been days on which I’m okay. But generally these days I’ve been generally in zombie mode. Or flat out tired for everything and nothing. To say the truth, there have been days on which I don’t want to get out of bed, but the job makes me do it, and I’m practically burnt out. And the things I have done to relax and get distracted are really more work. For example, the comic translations, writing for this blog, or a page I’m doing with JavaScript.</p>

<p>I’ve been really frustrated, and sometimes I do feel really insufficient, more particularly at work for not being able to get the metrics asked. Anyone who sees that it’s an office job might think it’s not tiring at all. And honestly, you’re right. Physically it’s not tiring at all. But it’s mentally and emotionally demanding, and that IS tiring. Ironically I have had troubles sleeping, and staying asleep. And there are days I have a really constant, intense headache. My body practically demands a rest, but the anxiety and the intrusive thoughts don’t make it easy at all.</p>

<p>Speaking about intrusive thoughts, and going back on feeling insufficient, the last week of February 2025 was particularly difficult in that regard. So much that there was a day on which I was walking from the public transport stop to my job, and thoughts about jumping to the road went through my head for a car to bump me. What stopped me is that, between all that mess in my head, I thought, «but how is my family gonna do without my help?». Not even the fear of letting unfinished projects, or my fear to the non-existence, or the hopes of not being alone anymore (which is another thing to unpack). To say the truth, with it’s ups and down and whatnot, my family has supported me a lot. But even with their help and support, I have felt really alone since, well, I stopped having a best friend, and I feel like I haven’t had a closure with that, but I know that won’t happen. Both of us are really obstinate for that. Besides, there are some extended family members who have distanced themselves from me, or that the relationship is stranded, so I won’t deny I have felt really alone, and I have a hard time getting closer to people. Both out of fear of hurting people, and getting hurt. More of the latter, but still.</p>

<p>Thinking a bit about everything, I think I have gone through a depressive episode since middle or late December, and I haven’t fully recovered from that. And seeing the news about what’s happening in the United States and here in Mexico just makes things worse. Although there are some days I feel really good. For example, the other day I was walking from my job to the bus stop, and the wind made the dried leaves fall from the trees, and I thought it was such a nice effect. Besides, although these situations I have described are really overwhelming for me, there are people who have it worse. My brother, for example, cannot see his daughter because her mother took her out of the country illegally, and we can’t do anything about it, and also there are some people I know who are not accepted by their families, among other things. So I try to be a little bit more flexible with myself, and making myself see that I’m not as fucked up as other people. But… yeah. The inner demons are present.</p>

<p>I think I just wanted to express all of this I had inside to sort my head a bit and vent out. So I’ll simply gonna end this saying that yes, I could be better. But I’m okay.</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/im-okay</guid>
      <pubDate>Sun, 16 Mar 2025 16:00:31 -0600</pubDate>
    </item>
    <item>
      <title>Create your WriteFreely instance without suffering (too much) in the process</title>
      <link>https://val-vgms.gay/vo/create-your-writefreely-instance-without-suffering-too-much-in-the-process</link>
      <description>&lt;![CDATA[This post, rather than being a tutorial, is more a Storytime about what I lived while wanting to mount my own blog in my own equipment instead of renting a VPS.&#xA;&#xA;That said, while I will try to do this from a general point of view, I will still focus on making this process exclusive for Linux, because, in my humble opinion, is more versatile, and more on point with the equipment I chose, besides not consuming as many resources as Windows or Mac. I mean, you could. But I don&#39;t really see the point. :P&#xA;&#xA;!--more--&#xA;&#xA;It&#39;s important to clarify that you do require a monetary spending. Assuming you already have your own equipment and a stable internet connection, you&#39;d require to pay for the domain for your server. It would really be the only extra spending required, and I will cover that in further detail in its corresponding section.&#xA;&#xA;And for the purposes of this tutorial-storytime, I&#39;ll do the process on another equipment, with an estimated timeframe of five hours. It seems like a lot of time, but it&#39;ll be ready on the same day, if you dedicate the time to it.&#xA;&#xA;Contents&#xA;&#xA;Choosing the equipment&#xA;Preparing the server&#xA;   Apache: The web server per se&#xA;   MariaDB: Server stored database&#xA;Reverse proxy vs Standalone server: What&#39;s more convenient?&#xA;Get your own address for your instance&#xA;Dynamic DNS vs Cloudflare Tunnel&#xA;   Registration on Cloudflare for Teams&#xA;   Install and configure Cloudflared&#xA;   Create and setup access tunnel&#xA;   Create the DNS records to point to your equipment&#xA;Let&#39;s create the WriteFreely blog!&#xA;   Download and install WriteFreely&#xA;   Database initialization and WriteFreely setup&#xA;   Write your first post&#xA;   Configuring your blog options&#xA;   Translating (most of) the User Interface&#xA;   Enable email subscriptions&#xA;Additional web applications&#xA;Final notes&#xA;&#xA;Choosing the equipment&#xA;&#xA;Let&#39;s start from two perspectives. The first one is that you have an old computer you don&#39;t use very often, but still works, and has a 64 bits processor. You can install a minimalist or web server-oriented operating system like Arch Linux or Ubuntu Server to your computer, that although those are command-line systems, it really is all you need to setup a web server. &#xA;&#xA;And the second one, is that you don&#39;t really have an extra equipment you can use, and the one you have is not that viable to use as a server because you use it to play games or you use it for work, or to translate webcomics (guilty of that last one :P). So, you&#39;d need to acquire a new equipment. Although there are options for cheap devices. For example, second-hand or pawn shop computers, or the option I chose, a single board computer, like the Raspberry Pi. I picked the Raspberry Pi 5 4GB of RAM, and a 64GB MicroSD card, although based on my experience, even the Raspberry Pi Zero 2 W would work really well. Besides, you can buy kits on eBay and Amazon.&#xA;&#xA;If you pick a second-hand computer, same thing. Arch or Ubuntu Server and y&#39;all good. And if you pick a Raspberry Pi, you can format the MicroSD card to boot up using Raspberry Pi Imager. Super recommended, because it allows you to install the lite version of Raspberry Pi OS (and other systems) and apply preset configurations, like username and password, WiFi network, and enable SSH access by default.&#xA;&#xA;If you use the Raspberry Pi, to know the IP address it has, you can connect a keyboard and display to your equipment, and run the ifconfig command, which will give you an output similar to this one:&#xA;&#xA;Output of the ifconfig program, highlighting the wireless adapter section&#xA;&#xA;If this is not an option, you can enter the router configuration (usually going to 192.168.100.1 on your browser, but it varies between different routers), and look up for the connected devices, either via Ethernet or WiFi, and you can also locate its address.&#xA;&#xA;Cutout screenshot of the configuration of a router, showing a device IP address&#xA;&#xA;With this info, you can connect through any SSH client (even the command line of Windows 10 and 11) using the command ssh [user]@[IP address], to be able to keep setting up your equipment from another place, and even access to the files using SFTP. I&#39;ll show Thunar (one of Linux file managers) as an example, which works directly.&#xA;&#xA;Screenshot ofSSH login via Thunar file manager&#xA;&#xA;  By entering the user and the address, we&#39;re asked the password.&#xA;&#xA;Screenshot of Thunar, showing the root of a SFTP remote computer&#xA;&#xA;  And once inside, we&#39;re shown the initial directory of the equipment.&#xA;&#xA;Although, there&#39;s not a direct access from the integrated file manager in Windows, on its time I used WinSCP, and it really worked well for me, so I fully recommend it. (No screenshots this time, because I don&#39;t use WinSCP anymore... nor Windows xd)&#xA;&#xA;Preparing the server&#xA;&#xA;Once we have the computer ready to interact with it, let&#39;s install the web server and database software.&#xA;&#xA;On Arch and derivates (Manjaro, Endeavour, Garuda):&#xA;&#xA;sudo pacman -Syu apache mariadb&#xA;&#xA;On Debian and derivates (Ubuntu, Linux Mint, Raspberry Pi OS, Pop! OS, MX Linux):&#xA;&#xA;sudo apt update&#xA;sudo apt upgrade&#xA;sudo apt install apache2 mariadb-server&#xA;&#xA;This will only install the programs, but it doesn&#39;t help us set up anything as is. Let&#39;s get into that.&#xA;&#xA;Apache: The web server per se&#xA;&#xA;Before activating the server, the ideal is that we have a basic test web page just to see if the server works. Copying and pasting this code in a text editor should be more than enough.&#xA;&#xA;!DOCTYPE html&#xA;html lang=&#34;en&#34;&#xA;head&#xA;    meta charset=&#34;UTF-8&#34;&#xA;    titleTest web page/title&#xA;/head&#xA;body&#xA;    pWebsite under construction./p&#xA;/body&#xA;/html&#xA;&#xA;Remember saving this code in a text file named index.html&#xA;&#xA;The next part is a little bit confusing depending on if we&#39;re making this process on systems based on Arch or Debian, because both the configuration files and the web page location will vary on each case. For example, on Arch, the configuration file is located on /etc/httpd/conf/httpd.conf, and you must place the web files (the index.html file, for example) on /srv/http. But in Debian, things change. Here, the configuration files are saved on /etc/apache2/apache2.conf, and the web files are saven on /var/www/html.&#xA;&#xA;Let&#39;s copy our HTML file to the web folder in our system, and enable the Apache service to check if it works.&#xA;&#xA;From Arch:&#xA;&#xA;sudo systemctl enable --now httpd&#xA;&#xA;From Debian:&#xA;&#xA;sudo systemctl enable --now apache2&#xA;&#xA;This command starts the service on demand, and also it schedules the automatic start with each system boot (for example, after a reboot for an update), and that&#39;s why you only need to introduce this command once.&#xA;&#xA;And to check if it works, let&#39;s open the web page http://localhost. It should look like this.&#xA;&#xA;If you see this, congrats! We have begun with this little project. Which is barely the beginning of this journey. Let&#39;s configure a little of the things we don&#39;t see.&#xA;&#xA;MariaDB: Server stored database&#xA;&#xA;Before enabling the database service, let&#39;s run the next command only on Arch.&#xA;&#xA;sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql&#xA;&#xA;Now, we will enable the service. The command is the same for both systems.&#xA;&#xA;sudo systemctl enable --now mariadb&#xA;&#xA;It&#39;s also convenient to improve the initial security of MariaDB. Conveniently, we have a command to do that.&#xA;&#xA;sudo mariadb-secure-installation&#xA;&#xA;This command is interactive, and it consists of seven questions. It&#39;s really pretty direct and easy to setup, but just in case, let&#39;s go in order.&#xA;&#xA;NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB&#xA;      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!&#xA;&#xA;In order to log into MariaDB to secure it, we&#39;ll need the current&#xA;password for the root user. If you&#39;ve just installed MariaDB, and&#xA;haven&#39;t set the root password yet, you should just press enter here.&#xA;&#xA;Enter current password for root (enter for none):&#xA;&#xA;We&#39;re asked the MariaDB root password. We haven&#39;t configured it yet, so we&#39;ll just press [Enter], and let&#39;s go to the next step.&#xA;&#xA;Setting the root password or using the unixsocket ensures that nobody&#xA;can log into the MariaDB root user without the proper authorisation.&#xA;&#xA;You already have your root account protected, so you can safely answer &#39;n&#39;.&#xA;&#xA;Switch to unixsocket authentication [Y/n]&#xA;&#xA;Here we&#39;re asked if we want to use Unix Socket authentication or its standard authentication. Honestly, I don&#39;t know the implications of that, and besides, the configuration suggests that, so we&#39;ll answer no by pressing [n].&#xA;&#xA;You already have your root account protected, so you can safely answer &#39;n&#39;.&#xA;&#xA;Change the root password? [Y/n]&#xA;&#xA;Here we&#39;re suggested to change MariaDB&#39;s root password. Tis time, we&#39;re gonna answer &#39;yes&#39;, by pressing [Enter].&#xA;&#xA;Immediately we&#39;re asked to enter a password we want to use, preferably a different one from any other you might use, but it&#39;s up to you. Although if I may do a suggestion, I use a password generator to not think too much about it, and still have a good password. Besides, it&#39;s so versatile.&#xA;&#xA;Once you have your password (I suggest saving it on a safe place) you must enter it twice on the window we&#39;re running the command. Let&#39;s go to the next question.&#xA;&#xA;By default, a MariaDB installation has an anonymous user, allowing anyone&#xA;to log into MariaDB without having to have a user account created for&#xA;them.  This is intended only for testing, and to make the installation&#xA;go a bit smoother.  You should remove them before moving into a&#xA;production environment.&#xA;&#xA;Remove anonymous users? [Y/n]&#xA;&#xA;here we&#39;re asked if we want to remove guest users. For security, we will say yes, by pressing [Enter].&#xA;&#xA;Normally, root should only be allowed to connect from &#39;localhost&#39;.  This&#xA;ensures that someone cannot guess at the root password from the network.&#xA;&#xA;Disallow root login remotely? [Y/n]&#xA;&#xA;Obviously we would want the databases to only be accessible from the server itself. So, we will disable remote access on this question, by pressing [Enter].&#xA;&#xA;By default, MariaDB comes with a database named &#39;test&#39; that anyone can&#xA;access.  This is also intended only for testing, and should be removed&#xA;before moving into a production environment.&#xA;&#xA;Remove test database and access to it? [Y/n]&#xA;&#xA;MariaDB has a test database that we won&#39;t need in a production environment. So we will delete it by pressing [Enter] again.&#xA;&#xA;Reloading the privilege tables will ensure that all changes made so far&#xA;will take effect immediately.&#xA;&#xA;Reload privilege tables now? [Y/n]&#xA;&#xA;Here we simply will reload the database privileges for the changes to be applied immediately, just by pressing [Enter].&#xA;&#xA;And now we have our database clean and ready to continue.&#xA;&#xA;Now, we&#39;re gonna get into the MariaDB command line by running sudo mariadb -u root -p. Once you run it, you&#39;ll be asked the password we set up a few moments ago. If you did it well, at the end of the command line should appear this indicator, which means we&#39;re in.&#xA;&#xA;MariaDB [(none)]  Once there, let&#39;s run these next commands, one by one.&#xA;&#xA;CREATE USER &#39;writefreely&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;[MariaDB password]&#39;;&#xA;&#xA;CREATE DATABASE writefreely CHARACTER SET latin1 COLLATE latin1swedishci;&#xA;&#xA;GRANT ALL PRIVILEGES on writefreely. to &#39;writefreely&#39;@&#39;localhost&#39;;&#xA;&#xA;FLUSH PRIVILEGES;&#xA;&#xA;exit&#xA;&#xA;The first command creates a specific user for writeFreely on MariaDB, to not interact with it using the root account, which can be dangerous. We also set up the password.&#xA;&#xA;The second one creates the database that WriteFreely will use.&#xA;&#xA;The third command gives permission to the WriteFreely user only to its database, so it won&#39;t be able to modify anything else.&#xA;&#xA;The fourth one applies the changes on demand.&#xA;&#xA;And the fifth one closes the MariaDB command line.&#xA;&#xA;For now, we won&#39;t cover MariaDB anymore, so let&#39;s go to the next part.&#xA;&#xA;Reverse proxy vs Standalone server: What&#39;s more convenient?&#xA;&#xA;There are two ways to setup any web server. When it&#39;s an only web server, and this one is not too complex, it&#39;s recommended to do a standalone server, where that site, and only that site can exist in that server. Which makes the requests to be processed more efficiently, but evidently limits the server scalability, in case you want to host more than one project, like a personal website or even a Mastodon instance. In such cases the reverse proxy is more convenient, where you can host several websites on the same computer, even with different domains, with the disadvantage of the requests to be processed more slowly.&#xA;&#xA;In theory, WriteFreely supports both server types, but as much as I tried, I couldn&#39;t make it work on standalone, and I don&#39;t want to think too much to make it work like that, so we will do it on reverse proxy.&#xA;&#xA;For that, let&#39;s enable the proxy functionality on Apache.&#xA;&#xA;On Arch, it&#39;s done by modifying the main configuration file.&#xA;&#xA;sudo nano /etc/httpd/conf/httpd.conf&#xA;&#xA;Search the next lines, one by one, and remove the # symbol at the beginning.&#xA;&#xA;Include conf/extra/httpd-vhosts.conf&#xA;&#xA;LoadModule proxymodule modules/modproxy.so&#xA;&#xA;LoadModule proxyconnectmodule modules/modproxyconnect.so&#xA;&#xA;LoadModule proxyhttpmodule modules/modproxyhttp.so&#xA;&#xA;LoadModule proxyfcgimodule modules/modproxyfcgi.so&#xA;&#xA;LoadModule proxywstunnelmodule modules/modproxywstunnel.so&#xA;&#xA;LoadModule proxyhttp2module modules/modproxyhttp2.so&#xA;&#xA;Save with [Control] + [S] and exit with [Control] + [X].&#xA;&#xA;And on Debian, it&#39;s done by running two commands.&#xA;&#xA;sudo a2enmod proxy&#xA;sudo a2enmod proxyhttp&#xA;&#xA;After that, let&#39;s restart the Apache service.&#xA;&#xA;On Arch: &#xA;&#xA;sudo systemctl restart httpd&#xA;&#xA;On Debian:&#xA;&#xA;sudo systemctl restart apache2&#xA;&#xA;There&#39;s one more thing we can do with the reverse prosy, but for that, we&#39;ll need the domain, or the web address we will use for our blog, and set up WriteFreely. Let&#39;s go with the first one.&#xA;&#xA;Get your own address for your instance&#xA;&#xA;The websites you visit have an address behind a domain name for you to remember it easily. And register a domain name is not always easy. The most accessible way to obtain a domain name is through a site offering the service. Although you can try to get a free domain through Freenom, I personally don&#39;t recommend it that much, because your preferred domain might not be available for registration, and you&#39;re limited to just a few Top Level Domains (TLD, the ending part of an address, usually .com or .tk). If you don&#39;t have an inconvenient on looking up for a free domain, even if it&#39;s not the one you have in mind, it might be a good option.&#xA;&#xA;So, following the recommendation someone made to me before, I now recommend Porkbun because it also offers bomains to pretty accessible prices, costing from USD$1 for first year sale, and annual renewal from $USD5, besides offering varied and funny TLD options, like .lol, .wtf, .pizza, among others.&#xA;&#xA;The registration process is going to the login page and fill the registration form on the right.&#xA;&#xA;The usual. Username, password (or physical access key), email address, personal information, and accept terms and conditions. By completing the registration, you must validate your account with a code you receive in the email, and once your account is validated, you can look up for domains to purchase. And I will purchase one I want for a personal project I plan to do later, but I still don&#39;t want to spill the beans.&#xA;&#xA;And here we can see several of the available TLDs to choose. For this domain, I chose .cc because it&#39;s not expensive, and that project will be more general. But&#39;s let not distract from the topic. Once we select our domain, and we add it to the cart, we can proceed to see it.&#xA;&#xA;From here, we can select for how many years we want to purchase the domain. For now, we will limit to choose one year, and we will click on the [Continue to Billing] button, to introduce our card information. And once the payment goes through, we can see our domain on our list.&#xA;&#xA;Now that we have our domain, let&#39;s make it to point to our equipment.&#xA;&#xA;Dynamic DNS vs Cloudflare Tunnel&#xA;&#xA;There are two ways to make the web address to point to our site. The first one is an old reliable for many people, and it&#39;s Dynamic DNS. Where we ask our router or our computer to periodically request the server to make the change automatically, and to always point to the public address of our router. And the second one is one I didn&#39;t know about until recently, but it&#39;s very interesting, and is Cloudflare Tunnel, which makes more or less the same as Dynamic DNS. The difference between them is that the Dynamic DNS works with your real IP address, which might expose you to attacks really easily, and Cloudflare Tunnel does it by routing your IP address through their infrastructure, which adds an additional protection layer.&#xA;&#xA;Actually, when I just started to mount this, I didn&#39;t know Cloudflare Tunnel at all, and I wanted to complete the process only with Dynamic DNS.&#xA;&#xA;I won&#39;t lie. I was about to give up on this part, because there are internet providers that make the routers to connect to the internet using subnetworks, which is known as NAT. Basically, an IP address is shared among several devices, which makes Dynamic DNS difficult. And with the tunnel you can skip all those network restrictions, and also the Cloudflare infrastructure can help a little.&#xA;&#xA;A very dear friend suggested me to try with Cloudflare Tunnel, and he even sent me a tutorial. And as it was really useful for me, but it&#39;s not very detailed, I&#39;ll put it here, going into greater detail.&#xA;&#xA;Registration on Cloudflare for Teams&#xA;&#xA;All you must do here is go to the registration page, put your email and password, and verify your email. Once you do all that, you&#39;ll be presented with the screen to add the domain we just purchased.&#xA;&#xA;Once we put the domain, and press the Continue button, we&#39;ll go to the configuration assistant.&#xA;&#xA;Con la primera opción seleccionada y presionando en Continuar, avanzamos a la siguiente pantalla.&#xA;&#xA;Here we are presented with several plans to select. We don&#39;t want to spend another cent, so we&#39;ll choose the free one. And by pressing the Continue button, we&#39;ll go to the next screen to set up the DNS records&#xA;&#xA;As we will do this process later, we&#39;ll click on Continue to activation, and then the Confirm button. We&#39;ll go to the Nameserver configuration guide.&#xA;&#xA;Let&#39;s follow these instructions. The first point is already covered by logging into Porkbun, so we just have to go to the domain control page on your Porkbun account.&#xA;&#xA;The second point is also covered by default, expanding our domain details, and seeing the Registry DNSSEC section at zero.&#xA;&#xA;And we&#39;re going to cover the third point by pressing the edit button located next to the Nameservers section, and at the pop-up window, we put on separated lines the servers shown on Cloudflare.&#xA;&#xA;By pressing the Continue button. it says that the servers will be ready within the next 24 hours, but refreshing the page after five minutes, it shows it&#39;s all done.&#xA;&#xA;With the servers ready, and even while they&#39;re getting ready, we can proceed with the next step.&#xA;&#xA;Install and configure Cloudflared&#xA;&#xA;Before proceeding with the Cloudflare service installation, we must know what type of architecture our system has. On any Linux system you can do that by running the uname -a command. I&#39;ll leave a screenshot with the output of this command on my daily use computer (and the one that will be the test instance), and from my Raspberry Pi (the one for this blog).&#xA;&#xA;Screenshot of two windows showing the output of the command uname. One on a 64 bits PC, and the other on an ARM device&#xA;&#xA;Depending on that last part (highlighted on my screenshot above), is the version we&#39;re going to install. If the output of uname contains x8664, and you&#39;re on Arch (or derivates), you got it easy. You can install it with the next command:&#xA;&#xA;sudo pacman -Syu cloudflared&#xA;&#xA;For other configurations, things get complicated. First, it&#39;s worth mentioning that, for some reason, the output results of uname and the software version we will download will differ a little. So I&#39;ll leave this table with the equivalencies.&#xA;&#xA;table&#xA;tr&#xA;thResults of uname/th&#xA;thArchitecture/th&#xA;/tr&#xA;tr&#xA;tdx8664/td&#xA;tdamd64/td&#xA;/tr&#xA;tr&#xA;tdx86/td&#xA;td386/td&#xA;/tr&#xA;tr&#xA;tdarm7l/td&#xA;tdarmhf/td&#xA;/tr&#xA;tr&#xA;tdaarch64/td&#xA;tdarm64/td&#xA;/tr&#xA;/table&#xA;&#xA;Based on this, to install it on Debian (and other Linux systems), we&#39;re going to run these commands:&#xA;&#xA;sudo wget -O cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-{architecture}&#xA;sudo mv cloudflared /usr/local/bin&#xA;sudo chmod +x /usr/local/bin/cloudflared&#xA;&#xA;It&#39;s worth noting that, with this, the way you update Cloudflared (by the way, updates come out at least once a month) will vary, depending on if you install on Arch x8664 or not. If yes, you just need to run the command to update the whole system.&#xA;&#xA;sudo pacman -Syu&#xA;&#xA;But for everyone else, the command changes a little, by not being tied to the system package manager&#xA;&#xA;cloudflared update&#xA;&#xA;Now that the service is installed, let&#39;s configure the tunnel to, finally, making it to pint to our equipment.&#xA;&#xA;Create and setup access tunnel&#xA;&#xA;First, let&#39;s create the tunnel, logging in from cloudflared.&#xA;&#xA;cloudflared login&#xA;&#xA;And on the command line, we should get something like this:&#xA;A browser window should have opened at the following URL:&#xA;&#xA;https://dash.cloudflare.com/argotunnel?aud=[Private access ID I won&#39;t share for security xd]&#xA;&#xA;If the browser failed to open, please visit the URL above directly in your browser.&#xA;&#xA;And it&#39;s also possible that a browser opened directly on that address. But in case it didn&#39;t open for some reason, copy and paste it on your browser. Which should open something like this.&#xA;&#xA;And once we select the domain we created a few moments ago, this window will pop up.&#xA;&#xA;Once we click the Authorize button, we can close the browser. And now we can create the tunnel to make it an automatic service. For that, we will run the next command:&#xA;&#xA;cloudflared tunnel create [Name you want to give the tunnel]&#xA;&#xA;And it should give you an output similar to this one.&#xA;&#xA;Tunnel credentials written to /home/vo/.cloudflared/[Long UUID].json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.&#xA;&#xA;Created tunnel [Tunnel name] with id [Long UUID]&#xA;&#xA;Now, let&#39;s create the configuration file for Cloudflared with the tunnel information.&#xA;&#xA;sudo nano ~/.cloudflared/config.yml&#xA;&#xA;And we&#39;re going to put this text on that file:&#xA;&#xA;tunnel: [Long UUID]&#xA;credentials-file: /home/[your user]/.cloudflared/[Long UUID].json&#xA;&#xA;ingress:&#xA;  hostname: [Porkbun domain]&#xA;    service: http://localhost:80&#xA;  service: httpstatus:404&#xA;&#xA;Once we have created this text file, now let&#39;s create the DNS records. We&#39;re almost there.&#xA;&#xA;Create the DNS records to point to your equipment&#xA;&#xA;There are two ways to create them. By hand and directly from Cloudflared. I honestly don&#39;t know how to do it by hand, so let&#39;s let Cloudflare do the job for us with the next command:&#xA;&#xA;cloudflared tunnel route dns [Long UUID] [Domain]&#xA;&#xA;And just like that, on our Cloudflare control center, the DNS records already appear for them to point to our equipment.&#xA;&#xA;Now, on the top left on the screen, next to our email address, is the &#39;back&#39; arrow. We click on it, and then, on that same side, more in the middle, the Zero Trust option is located.&#xA;&#xA;On this new screen, let&#39;s go to the Networks menu. We should see this.&#xA;&#xA;If it appears the tunnel we just created a few moments ago, we&#39;re going a good way. We click on that, and we will be starting the migration to a new control panel specific for Zero Trust. You just need to follow the presented instructions (you know, next, next, finish), taking in account you can only do this process once. And this screen must appear.&#xA;&#xA;The highlighted command is the one we&#39;re most interested in, to install the service once and for all. The full command is not shown, so you have to click it to copy it, and paste it directly on the command line. Once we run the command, the service will be installed and running. Which will allow us to access our test page. Which in my case, I modified it a little.&#xA;&#xA;Now we can forget entirely about Cloudflare and domains. Let&#39;s go to the next part of the process.&#xA;&#xA;Let&#39;s create the WriteFreely blog!&#xA;&#xA;With all things ready, finally, for everything y&#39;all came for. How to download and setup WriteFreely. Let&#39;s start with the download.&#xA;&#xA;Download and install WriteFreely&#xA;&#xA;Do you remember the uname output? Now it&#39;s going to be useful to download the appropriate WriteFreely version.&#xA;&#xA;If your architecture is amd64:&#xA;&#xA;wget &#34;https://github.com/writeas/writefreely/releases/latest/download/writefreely0.15.1linuxamd64.tar.gz&#34;&#xA;tar -xvzf writefreely0.15.1linuxamd64.tar.gz&#xA;rm writefreely0.15.1linuxamd64.tar.gz&#xA;&#xA;If your architecture is arm64:&#xA;&#xA;wget &#34;https://github.com/writeas/writefreely/releases/latest/download/writefreely0.15.1linuxarm64.tar.gz&#34;&#xA;tar -xvzf writefreely0.15.1linuxarm64.tar.gz&#xA;rm writefreely0..15.1linuxarm64.tar.gz&#xA;&#xA;If your architecture is armhf:&#xA;&#xA;wget &#34;https://github.com/writeas/writefreely/releases/latest/download/writefreely0.15.1linuxarm7.tar.gz&#34;&#xA;tar -xvzf writefreely0..15.1linuxarm7.tar.gz&#xA;rm writefreely0..15.1linuxarm7.tar.gz&#xA;&#xA;Now, let&#39;s configure permissions for the server folders, and move the WriteFreely installation files to the server folder.&#xA;&#xA;On Arch:&#xA;&#xA;sudo chmod 755 -R /srv/http/&#xA;sudo mv writefreely/ /srv/http/&#xA;cd /srv/http/writefreely/&#xA;chmod +x writefreely&#xA;&#xA;On Debian:&#xA;&#xA;sudo chmod 755 -R /var/www/html/&#xA;sudo mv writefreely/ /var/www/html/&#xA;cd /var/www/html/writefreely/&#xA;chmod +x writefreely&#xA;&#xA;Done. WriteFreely is now installed on our server. But it&#39;s not configured yet.&#xA;&#xA;Database initialization and WriteFreely setup&#xA;&#xA;First, let&#39;s fo through the WriteFreely initial setup.&#xA;&#xA;./writefreely --config&#xA;&#xA;This command is interactive, so let&#39;s go step by step through the configurations.&#xA;&#xA;On Server setup, with the [↑] and [↓] let&#39;s select Production, behind reverse Proxy, and let&#39;s press [Enter]- It will ask us for a port, and we can use whichever we want, although for purposes of this tutorial, I will use 8080.&#xA;&#xA;On Database Setup, let&#39;s select MySQL. It will immediately ask u for the database user, where we will put writefreely, and the password we chose when we created the database when se set up MariaDB. Then, we will put the database name, which is also writefreely. We&#39;ll leave Host and Port as they are.&#xA;&#xA;For App setup it&#39;s completely up to you. Whether you want a glog just for you, you want to create two or more blogs, or you want to create a small writer community. For purposes of this tutorial, I&#39;ll leave it on Single User Blog. If that&#39;s the case, you&#39;ll be asked to create the username, password and the name of the blog. In a few moments I&#39;ll also cover the configuration for multiple users.&#xA;&#xA;Next, you&#39;ll be asked the public address, which is the domain we acquiredm preceded by https://.&#xA;&#xA;The next question is important, because it ask us if we want to enable federation, for our posts to be propagated on the fediverse. I already talked about it on another post, so I think it would be worth it. I&#39;m gonna enable it for this tutorial.&#xA;&#xA;The next questions are about public usage stats. This doesn&#39;t affect the blog functionality per se, but allows services that monitor fediverse activity to access to them. I&#39;ll leave that to you.&#xA;&#xA;After finishing this step, we finished the initial setup for a single blog instance, and part of the general configuration.&#xA;&#xA;If we set up the instance for multiple users, there are a few additional steps we must follow. Let&#39;s run the next two commands:&#xA;&#xA;./writefreely --init-db&#xA;./writefreely --create-admin [Blog username]:[Blog password]&#xA;&#xA;And now, eeryone will run the next command to generate the certificate keys.&#xA;&#xA;./writefreely --gen-keys&#xA;&#xA;Before creating the WriteFreely service, let&#39;s finish the reverse proxy setup for the Apache server.&#xA;&#xA;On Arch:&#xA;&#xA;sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf &#xA;&#xA;On Debian:&#xA;&#xA;sudo nano /etc/apache2/sites-enabled/000-default.conf&#xA;&#xA;The files already there really are preview files we can modify, so let&#39;s erase all of the content on these files, and we&#39;ll paste the next content.&#xA;&#xA;On Arch:&#xA;&#xA;VirtualHost :80&#xA;        ProxyPreserveHost On&#xA;        ProxyPass / http://127.0.0.1:8080/&#xA;        ProxyPassReverse / http://127.0.0.1:8080/&#xA;        ServerName [Acquired domain]&#xA;        ServerAdmin [Personal email, opcional]&#xA;        DocumentRoot /srv/http&#xA;        ErrorLog /var/log/httpd/error.log&#xA;        CustomLog /var/log/httpd/access.log combined&#xA;/VirtualHost&#xA;&#xA;On Debian:&#xA;&#xA;VirtualHost :80&#xA;        ProxyPreserveHost On&#xA;        ProxyPass / http://127.0.0.1:8080/&#xA;        ProxyPassReverse / http://127.0.0.1:8080/&#xA;        ServerName [Acquired domain]&#xA;        ServerAdmin [Personal email, opcional]&#xA;        DocumentRoot /var/www/html&#xA;        ErrorLog ${APACHELOGDIR}/error.log&#xA;        CustomLog ${APACHELOGDIR}/access.log combined&#xA;/VirtualHost&#xA;&#xA;Let&#39;s save the file, and restart the Apache service.&#xA;&#xA;On Arch: &#xA;&#xA;sudo systemctl restart httpd&#xA;&#xA;On Debian:&#xA;&#xA;sudo systemctl restart apache2&#xA;&#xA;Now, let&#39;s create the WriteFreely service for it to run all the time. We&#39;ll do it with this command.&#xA;&#xA;sudo nano /etc/systemd/system/writefreely.service&#xA;&#xA;Now, it should show an empty file. Let&#39;s fill it out, depending on the system.&#xA;&#xA;On Debian:&#xA;&#xA;[Unit]&#xA;Description=WriteFreely Instance&#xA;After=syslog.target network.target mariadb.service&#xA;&#xA;[Service]&#xA;Type=simple&#xA;StandardOutput=syslog&#xA;StandardError=syslog&#xA;WorkingDirectory=/var/www/html/writefreely&#xA;ExecStart=/var/www/html/writefreely/writefreely&#xA;Restart=always&#xA;&#xA;[Install]&#xA;WantedBy=multi-user.target&#xA;&#xA;On Arch:&#xA;&#xA;[Unit]&#xA;Description=WriteFreely Instance&#xA;After=syslog.target network.target mariadb.service&#xA;&#xA;[Service]&#xA;Type=simple&#xA;StandardOutput=syslog&#xA;StandardError=syslog&#xA;WorkingDirectory=/srv/http/writefreely&#xA;ExecStart=/srv/http/writefreely/writefreely&#xA;Restart=always&#xA;&#xA;[Install]&#xA;WantedBy=multi-user.target&#xA;&#xA;Now, we just have to enable the WriteFreely service.&#xA;&#xA;sudo systemctl enable --now writefreely&#xA;&#xA;And if everything went perfect, we should get something like this when we go to our domain.&#xA;&#xA;Now, let&#39;s login with our blog username, which will immeditely take us to the writing screen.&#xA;&#xA;Write your first post&#xA;&#xA;The edition screen is rather simple.&#xA;&#xA;As is, there are not many edition options. So let&#39;s explain how it works.&#xA;&#xA;The first line is always the title line. So to give a name to our post, just write something, and press [Enter] twice.&#xA;&#xA;For the post body, we have several text format options. We can write using HTML and Markdown, even interchangeabily. I&#39;ll leave a comparative table for what you can do with the different available codes.&#xA;&#xA;table&#xA;tr&#xA;td/td&#xA;thHTML/th&#xA;thMarkdown/th&#xA;/tr&#xA;tr&#xA;thHeaders/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;h1&amp;#62;Header&amp;#60;/h1&amp;#62;&#xA;&amp;#60;h2&amp;#62;Header&amp;#60;/h2&amp;#62;&#xA;&amp;#60;h3&amp;#62;Header&amp;#60;/h3&amp;#62;&#xA;&amp;#60;h4&amp;#62;Header&amp;#60;/h4&amp;#62;&#xA;&amp;#60;h5&amp;#62;Header&amp;#60;/h5&amp;#62;&#xA;&amp;#60;h6&amp;#62;Header&amp;#60;/h6&amp;#62;&#xA;/code&#xA;/pre&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;&amp;#35; Header&#xA;&amp;#35;&amp;#35; Header&#xA;&amp;#35;&amp;#35;&amp;#35; Header&#xA;&amp;#35;&amp;#35;&amp;#35;&amp;#35; Header&#xA;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35; Header&#xA;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35; Header&#xA;/code&#xA;/pre&#xA;/td&#xA;/tr&#xA;tr&#xA;thText formatting/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;strong&amp;#62;Bold&amp;#60;/strong&amp;#62;&#xA;&amp;#60;b&amp;#62;Bold&amp;#60;/b&amp;#62;&#xA;&amp;#60;em&amp;#62;Italics&amp;#60;/em&amp;#62;&#xA;&amp;#60;i&amp;#62;Italics&amp;#60;/i&amp;#62;&#xA;/code&#xA;/pre&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;Bold&#xA;Bold&#xA;Italics&#xA;Italics&#xA;/code&#xA;/pre&#xA;/td&#xA;/tr&#xA;tr&#xA;thLists/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;ul&amp;#62;&#xA;&amp;#60;li&amp;#62;Simple list&amp;#60;/li&amp;#62;&#xA;&amp;#60;li&amp;#62;Simple list&amp;#60;/li&amp;#62;&#xA;&amp;#60;ul&amp;#62;&#xA;&amp;#60;li&amp;#62;Sub-element&amp;#60;/li&amp;#62;&#xA;&amp;#60;/ul&amp;#62;&#xA;&amp;#60;/ul&amp;#62;&#xA;&amp;nbsp;&#xA;&amp;#60;ol&amp;#62;&#xA;&amp;#60;li&amp;#62;Numbered list&amp;#60;/li&amp;#62;&#xA;&amp;#60;li&amp;#62;Numbered list&amp;#60;/li&amp;#62;&#xA;&amp;#60;ol&amp;#62;&#xA;&amp;#60;li&amp;#62;Numbered lit&amp;#60;/li&amp;#62;&#xA;&amp;#60;/ol&amp;#62;&#xA;&amp;#60;/ol&amp;#62;&#xA;/code&#xA;/pre&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;Simple list&#xA;Simple list&#xA;  Sub-element&#xA;&#xA;Numbered list&#xA;Numbered list&#xA;  Numbered list&#xA;/code&#xA;/pre&#xA;/td&#xA;/tr&#xA;tr&#xA;thLinks/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;a href=&#34;https://val-vgms.gay/vo&#34;&amp;#62;World&#39;s best blog&amp;#60;/a&amp;#62;&#xA;&amp;#60;a href=&#34;mailto:someone@example.com&#34;&amp;#62;Send an email&amp;#60;/a&amp;#62;&#xA;/code&#xA;/pre&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;World&#39;s best blog&#xA;Send an email&#xA;/code&#xA;/pre&#xA;/td&#xA;/tr&#xA;tr&#xA;thImages/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;img src=&#34;https://i.snap.as/T05UTpx.jpg&#34; alt=&#34;Cosmic radiation&#34; /&amp;#62;&#xA;/code&#xA;/pre&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;Cosmic radiation&#xA;/code&#xA;/pre&#xA;/td&#xA;/tr&#xA;tr&#xA;thQuoted text/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;blockquote&amp;#62;The quick brown fox&#xA;jumps over the lazy dog.&#xA;&#xA;&amp;#60;i&amp;#62;Microsoft on its font face viewer software&amp;#60;/i&amp;#62;&#xA;&amp;#60;/blockquote&amp;#62;&#xA;/code&#xA;/pre&#xA;&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;  The quick brown fox&#xA;  jumps over the lazy dog.&#xA;    Microsoft on its font face viewer software&#xA;/code&#xA;/pre&#xA;&#xA;/td&#xA;/tr&#xA;tr&#xA;thCode blocks/th&#xA;td&#xA;pre&#xA;code class=&#34;language-html hljs&#34;&#xA;&amp;#60;pre&amp;#62;&#xA;&amp;#60;code class=&#34;language-ini hljs&#34;&amp;#62;&#xA;[Section]&#xA;; Comment&#xA;Key = Value 1&#xA;Anotherkey = Value 2&#xA;&amp;#60;/code&amp;#62;&#xA;&amp;#60;/pre&amp;#62;&#xA;/code&#xA;/pre&#xA;/td&#xA;td&#xA;pre&#xA;code class=&#34;language-markdown hljs&#34;&#xA;[Section]&#xA;; Comment&#xA;Key = Value 1&#xA;Anotherkey = Value 2&#xA;/code&#xA;/pre&#xA;/td&#xA;/tr&#xA;/table&#xA;&#xA;There are also things you can&#39;t do with Markdown, but you can do with HTML. More specifically, the tags iframe, audio and video.&#xA;&#xA;And once you have entered some text, and clicked the Publish button...&#xA;&#xA;...it will appear to share it with the world.&#xA;&#xA;Once we have made our first post, let&#39;s customize our blog.&#xA;&#xA;Configuring your blog options&#xA;&#xA;We have several options for our blog. For that, let&#39;s go to the menu on the top left on the screen.&#xA;&#xA;Now, on this new screen, we&#39;re going to see several options. Let&#39;s explain them all.&#xA;&#xA;The first two text fields are the blog name and description. Completely personal, so I can&#39;t guide you on that.&#xA;&#xA;On the URL section, we can see the public address, and if we enabled federation, we will alsoo see our fediverse handle. Useful if we want to be followed on Mastodon, Friendica, Pixelfed, and other fediverse platforms.&#xA;&#xA;On the Visibility section, you can say if you want your posts to be visible for anyone, people with the link, only you when you login, or anyone with a password you define.&#xA;&#xA;For the updates, The RSS feed and federation through activityPub are active, so people can follow your blog from their favourite RSS reader, or even from their Mastodon account, to say something.&#xA;&#xA;The display format allows three options. The traditional blog format shows the most resent posts first, and also displays dates. The novel format hides dates and shows the oldest posts first, so you can read them by chronological order. And the notebook format hides the dates, but shows the most recent posts first.&#xA;&#xA;The text render allows us to enable Mathjax to parse mathematic formulas so these can be correctly visualized. Markdown is enabled by default.&#xA;&#xA;The Custom CSS section allows you to change your blog appearance. There are diverse themes on write.as so you can study how they are made, and even copy them in full. And actually, I just changed a little this blog&#39;s CSS for it to use more the screen width, without really changing the appearance (I&#39;ll do that later). I&#39;ll leave you the CSS:&#xA;&#xA;body#post article{&#xA;    max-width: 75rem;&#xA;}&#xA;&#xA;article img{&#xA;    display: block;&#xA;    margin-left: auto;&#xA;    margin-right: auto;&#xA;}&#xA;&#xA;On the Post signature section, you can enter any text you want to be added to the ending on all of your posts.&#xA;&#xA;And finally, on the Verification section, you can put the address of another website you interact with on the open web or the fediverse. Like your Mastodon profile.&#xA;&#xA;But those are not all of the options we can modify. Because if we go to the submenu on the name of our instance, we&#39;re ginna find several more links.&#xA;&#xA;For now, we&#39;re gonna focus on the Admin options.&#xA;&#xA;On this first screen we don&#39;t see much information, besides post stats. But precisely where we see the submenu for this screen, there are three tabs, and the one we&#39;re really interested in is the second one, Configurations.&#xA;&#xA;The Host tells us our WriteFreely instance address. Not editable.&#xA;&#xA;The Community mode allows you to know if the instance is set up for single user, or vaious. As we set up on the WriteFreely initialization.&#xA;&#xA;If we setup our instance for ultiple users, we have five more options.&#xA;&#xA;The first option is the landing page for not registered visitors. By hosting several blogs, there might be several pages, and even a general feed for all of the registered blogs (in fact, that&#39;s how this instance is configured, by having one user for the English blog and another one for the Spanish blog, and the landing page is that feed).&#xA;&#xA;The option for Open registrations allows you to decide if you want to allow external people to register to your instance.&#xA;&#xA;The Allow account deletion option let&#39;s you decide if you want users to delete their account (and blogs) whenever they wish, or if only the administration can delete users.&#xA;&#xA;the allow invites option is useful when the registration is closed, because it allows you to decide ig the registered users can invite people, if only the admins can invite, or if invites are locked.&#xA;&#xA;And finishing with the multiuser instance options, the Reader allows you to enable or disable the blog feed for the instance.&#xA;&#xA;Going back to the general options, the Private instance option limits access to the blogs to people who has an account within the instance. This may be useful for, let&#39;s say, private communities like reporters for a local newspaper.&#xA;&#xA;The federation option allows your blog to be searched from the fediverse. For example, I coould search the profile for the instance for this tutorial from my Mastodon profile.&#xA;&#xA;The Public stats options allows the instance stats to be monitored by services like Fediverse Observer.&#xA;&#xA;The Web monetization option allows you to receive micropayments from visitors to your blog. But I haven&#39;t explored this option in depth because I donestly don&#39;t care about receiving earnings for this blog. But if you&#39;re an independent reporter, exploring this feature may be useful for you.&#xA;&#xA;And finally, the username length allows you to configure how short can be a username. You can set username as short as one character, or as long as you wish.&#xA;&#xA;These are the basic but most importan options you can configure from your browser interface. But there are more options you can modify on the WriteFreely configuration file, located next to the executable (/srv/http/writefreely/config.ini on Arch, and /var/www/html/writefreely/config.ini on Debian). And the WriteFreely project has a page dedicated to explain the editable options in further detail.&#xA;&#xA;Translating (most of) the User Interface&#xA;&#xA;So far, we have seen the WriteFreely interface in English. But can we really change the blog interface to Spanish (or any other language)? Honestly, no. There are things that must be changes from the source code to acomplish a fully translated interface. And I don&#39;t know enough about the go language (to not say I don&#39;t know a thing) to modify the WriteFreely source code. What I do know is enough HTML to modify the template files the software uses for the interface in Spanish.&#xA;&#xA;In fact, I already modified the templates for this instance. I&#39;ll leave a comparison for how would look the Customize page for both the tutorial instance without modifications, and this instance already modified.&#xA;&#xA;And if you want to download the Spanish modified templates (for some reason lol), I conveniently have a zip file you can download a href=&#34;https://val-vgms.gay/img/media/20250217/wf-es.zip&#34; downloadby clicking here/a. Once you have this file, you just have to extract them and replace the folders in the server.&#xA;&#xA;You must take in account these files are for version 0.15.1, which at the time of this writing, is the latest version. I might update the files for every new release, but knowing myself, I&#39;m gonna forget at some point.&#xA;&#xA;Enable email subscriptions&#xA;&#xA;Really nice for people to be able to follow you on the Fediverse, and all. But what about people without an account around these parts? Well, besides the RSS feed, we have the option to enable email subscriptions and password recovery. However, it&#39;s not integrated into WriteFreely per se, but we have to rely on Mailgun, an external free service, but with additional paid features. Let&#39;s review the account setup to add it to WriteFreely.&#xA;&#xA;The registration page for Mailgun is really easy and direct, even more than the one from Porkbun.&#xA;&#xA;And once we fill the form, the account is created, but not active yet. It must be verified first, as indicated in the panel on the top.&#xA;&#xA;To validate our account, we must enter our phone number, selecting the country.&#xA;&#xA;Once you enter your number, you&#39;ll receive a text message to complete the validation. We introduce it, and our account will be verified.&#xA;&#xA;Now, we&#39;ll fo to the Get Started tab to start the configuration.&#xA;&#xA;We will even have our next step highlighted on this control center. Which will the Mailgun configuration easier for us. Let&#39;s go with the API key creation.&#xA;&#xA;We will just give a name we just created. It must not be something elaborated. And once we have our name, the key will be created.&#xA;&#xA;Copy and save it in a safe place.&#xA;&#xA;For the next step, which is sending a test email, we have two options. Via API, or with a SMTP client.&#xA;&#xA;For API, we have codes for different languages to integrate in the projects.&#xA;&#xA;And with SMTP is more on the line on what we have always used with any email app. Login and all that.&#xA;&#xA;But for now, we will ignore the test email. :P&#xA;&#xA;What interests us is the next part, which is adding a custom domain.&#xA;&#xA;On the Domain name field, we will enter the domain, and click the blue button. Which will take us to the next screen.&#xA;&#xA;This information will be useful to enter into our Cloudflare control panel into the DNS records for our domain. To enter it, let&#39;s go to the account home, let&#39;s click into our domain, and on the left panel, we click on the DNS option. We should be here.&#xA;&#xA;And to add the Mailgun records to Cloudflare, we just press the Add record button, which will open these fields.&#xA;&#xA;Now, we select the type given by Mailgun, and copy the Mailgun host and paste it on the Name on Cloudflare, and the Value in Mailgun goes into Content in cloudflare. Let&#39;s do this on each Mailgun providedentry, and in the CNAME entry, we will disable the Proxy switch.&#xA;&#xA;Optionally, we can write into the Cloudflare comment to indicate these are the Mailgun records. I did it for organization, but it&#39;s not necessary.&#xA;&#xA;Once we have finished to add every entry, on Mailgun we will press the Verify button located at the top. If we did it right, we will even receive an email indicating the setup was successful.&#xA;&#xA;Now, on Mailgun, let&#39;s generate the new email send API for our domain going to the Sending keys tab.&#xA;&#xA;By pressing the Add sending key button, we will set up a new API key, this one for profuction for our blog. We will give a new name, and we will be given a new generated key only once. It&#39;s important to copy it, because we will use it later.&#xA;&#xA;Now, let&#39;s configure the keys directly on WriteFreely. For that, let&#39;s open the configuration file.&#xA;&#xA;On Arch: &#xA;&#xA;nano /srv/http/writefreely/config.ini&#xA;&#xA;On Debian:&#xA;&#xA;nano /var/www/html/writefreely/config.ini&#xA;&#xA;And on this file, let&#39;s sear these lines.&#xA;&#xA;[email]&#xA;domain          = &#xA;mailgunprivate = &#xA;&#xA;On domain let&#39;s write our domain, and on mailgunprivate the key we just generated.&#xA;&#xA;Save the file, and restart the WriteFreely service.&#xA;&#xA;sudo systemctl restart writefreely&#xA;&#xA;And now, if we go to the Customize options on our blog, on the Updates section, we will see a new option to enable email subscription.&#xA;&#xA;Once enabled, on the main page for your blog, right at the bottom, external users will be able to enter their email to begin the subscription.&#xA;&#xA;Once they enter it, they will need to confirm their subscription from their inbox.&#xA;&#xA;The confirmation message looks something like this.&#xA;&#xA;And once our subscribers confirm their subscription, and we send a post, our subscribers will receive the posts via email 15 minutes after posting them. For example, I&#39;m going the copy the text of a Lorem Ipsum text generator just for email demonstration purposes. And after a while, we will have it available both in the Fediverse and sent via email.&#xA;&#xA;We finally have completed the WriteFreely installation and configuration, and now we can share our thoughts over the internet! However, it&#39;s not everything we can do with the server, taking advantage of the reverse proxy.&#xA;&#xA;Additional web applications&#xA;&#xA;If at some point you decide you want to make another website apart of WriteFreely, you can create another directory to point to a subdomain you can create, without the need to purchase another one. and actually, I already did a subdomain for another project I want to do. This one is less important than the one for the domain purchased for this tutorial, so for this one I can say I plan to do a dynamic guide for commands, abilities, combat styles and finish commands for Kingdom Hearts Birth by Sleep Final Mix. I&#39;m aware there&#39;s already a similar website (very good, by the way), but it&#39;s not complete with what I want to integrate, besides lacking option to visualize the commands on different languages. For example, change freely between English, Spanish, Japanese, Italian, French and German. But I&#39;m deviating from the topic.&#xA;&#xA;I will do this process from my main server, and not from the tutorial server anymore. For it to be ready from now. My server is on a Raspberry Pi OS system (based on Debian), but I will still provide instructions for Arch.&#xA;&#xA;First, I recommend creating a folder next to the main WriteFreely folder. In my case, it would be on /var/www/bbs, and place there your files for the additional site. For now, I just have the test page.&#xA;&#xA;Once created the folder and placed the files, let&#39;s enable a new port and reverse proxy host for our subdomain.&#xA;&#xA;For the first part, we&#39;re gonna modify the Apache configuration files to pass the traffic through more ports.&#xA;&#xA;On Arch we will modify the main configuration file.&#xA;&#xA;sudo nano /etc/httpd/conf/httpd.conf &#xA;&#xA;On Debian, the port file.&#xA;&#xA;sudo nano /etc/apache2/ports.conf&#xA;&#xA;Let&#39;s sear for the line Listen 80, and just below it, we will put a new line with a new port. In my case, I used the port 8084.&#xA;&#xA;Listen 80&#xA;Listen 8084&#xA;&#xA;Save the file, and now let&#39;s modify the virtual host file for the reverse proxy.&#xA;&#xA;On Arch:&#xA;&#xA;sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf &#xA;&#xA;On Debian:&#xA;&#xA;sudo nano /etc/apache2/sites-enabled/000-default.conf&#xA;&#xA;And below the content we added before, we would put the next content:&#xA;&#xA;Directory /path/to/the/created/folder&#xA;        Options Indexes FollowSymLinks&#xA;        AllowOverride All&#xA;        Require all granted&#xA;/Directory&#xA;&#xA;VirtualHost :8084&#xA;&#x9;DocumentRoot /path/to/the/created/folder&#xA;/VirtualHost&#xA;&#xA;Once the virtual host has been created, let&#39;s restart the Apache service.&#xA;&#xA;On Arch:&#xA;&#xA;sudo systemctl restart httpd&#xA;&#xA;On Debian:&#xA;&#xA;sudo systemctl restart apache2&#xA;&#xA;Now, let&#39;s go to the Cloudflare Zero Trust control panel to create the subdomain.&#xA;&#xA;Once there, let&#39;s go to the Networks link on the left panel, and once there, in the middle, we&#39;re gonna see our tunnel.&#xA;&#xA;We click on our tunnel, and on the panel on the right, click on the Edit button. On this new panel, we click on the second tab, Public host name. We should be on this panel.&#xA;&#xA;If we click on the Add a public host name button, we will advance to this screen. Which I conveniently I already filled with my subdomain data as a demonstration. It&#39;s important that on Service type, we select HTTP, and not HTTPS.&#xA;&#xA;And when we click on the Save hostname button, it will appear automatically on our tunnel.&#xA;&#xA;And we can also see our separate site as well.&#xA;&#xA;Final notes&#xA;&#xA;We have finally finished with this journey to configure our whole new server from scratch to have a WriteFreely instance to have a fully functioning blog, and potentially extend the capacities of our server to offer more services.&#xA;&#xA;It was an experience on which I learned a lot, both to configure this server and even writing this tutorial. I know it&#39;s a really extended post, but I think that, by covering every point in great detail, it can help a lot of people to not have to do this process by looking separate tutorials to be able to fulfil this task. Because, let&#39;s be honest. The tutorial found in the WriteFreely official page doesn&#39;t explain a lot of things in depth, and even this post may generate a few questions.&#xA;&#xA;That&#39;s why I make myself available to assist you in every way I can. Both on my Mastodon profile and via Signal messaging.&#xA;&#xA;See ya on the next post!]]&gt;</description>
      <content:encoded><![CDATA[<p>This post, rather than being a tutorial, is more a Storytime about what I lived while wanting to mount my own blog in my own equipment instead of renting a VPS.</p>

<p>That said, while I will try to do this from a general point of view, I will still focus on making this process exclusive for Linux, because, in my humble opinion, is more versatile, and more on point with the equipment I chose, besides not consuming as many resources as Windows or Mac. I mean, you could. But I don&#39;t really see the point. :P</p>



<p>It&#39;s important to clarify that you do require a monetary spending. Assuming you already have your own equipment and a stable internet connection, you&#39;d require to pay for the domain for your server. It would really be the only extra spending required, and I will cover that in further detail in its corresponding section.</p>

<p>And for the purposes of this tutorial-storytime, I&#39;ll do the process on another equipment, with an estimated timeframe of five hours. It seems like a lot of time, but it&#39;ll be ready on the same day, if you dedicate the time to it.</p>

<h3 id="contents">Contents</h3>
<ol><li><a href="#choosing-the-equipment" rel="nofollow">Choosing the equipment</a></li>
<li><a href="#preparing-the-server" rel="nofollow">Preparing the server</a>
<ol><li><a href="#apache-the-web-server-per-se" rel="nofollow">Apache: The web server per se</a></li>
<li><a href="#mariadb-server-stored-database" rel="nofollow">MariaDB: Server stored database</a></li></ol></li>
<li><a href="#reverse-proxy-vs-standalone-server-what-s-more-convenient" rel="nofollow">Reverse proxy vs Standalone server: What&#39;s more convenient?</a></li>
<li><a href="#get-your-own-address-for-your-instance" rel="nofollow">Get your own address for your instance</a></li>
<li><a href="#dynamic-dns-vs-cloudflare-tunnel" rel="nofollow">Dynamic DNS vs Cloudflare Tunnel</a>
<ol><li><a href="#registration-on-cloudflare-for-teams" rel="nofollow">Registration on Cloudflare for Teams</a></li>
<li><a href="#install-and-configure-cloudflared" rel="nofollow">Install and configure Cloudflared</a></li>
<li><a href="#create-and-setup-access-tunnel" rel="nofollow">Create and setup access tunnel</a></li>
<li><a href="#create-the-dns-records-to-point-to-your-equipment" rel="nofollow">Create the DNS records to point to your equipment</a></li></ol></li>
<li><a href="#let-s-create-the-writefreely-blog" rel="nofollow">Let&#39;s create the WriteFreely blog!</a>
<ol><li><a href="#download-and-install-writefreely" rel="nofollow">Download and install WriteFreely</a></li>
<li><a href="#database-initialization-and-writefreely-setup" rel="nofollow">Database initialization and WriteFreely setup</a></li>
<li><a href="#write-your-fist-post" rel="nofollow">Write your first post</a></li>
<li>Configuring your blog options</li>
<li><a href="#translating-most-of-the-user-interface" rel="nofollow">Translating (most of) the User Interface</a></li>
<li><a href="#enable-email-subscriptions" rel="nofollow">Enable email subscriptions</a></li></ol></li>
<li><a href="#additional-web-applications" rel="nofollow">Additional web applications</a></li>
<li><a href="#final-notes" rel="nofollow">Final notes</a></li></ol>

<h3 id="choosing-the-equipment">Choosing the equipment</h3>

<p>Let&#39;s start from two perspectives. The first one is that you have an old computer you don&#39;t use very often, but still works, and has a 64 bits processor. You can install a minimalist or web server-oriented operating system like <a href="#https://archlinux.org" rel="nofollow">Arch Linux</a> or <a href="#https://ubuntu.com/download/server" rel="nofollow">Ubuntu Server</a> to your computer, that although those are command-line systems, it really is all you need to setup a web server.</p>

<p>And the second one, is that you don&#39;t really have an extra equipment you can use, and the one you have is not that viable to use as a server because you use it to play games or you use it for work, or to translate webcomics (guilty of that last one :P). So, you&#39;d need to acquire a new equipment. Although there are options for cheap devices. For example, second-hand or pawn shop computers, or the option I chose, a single board computer, like the <a href="https://www.raspberrypi.com/products" rel="nofollow">Raspberry Pi</a>. I picked the Raspberry Pi 5 4GB of RAM, and a 64GB MicroSD card, although based on my experience, even the Raspberry Pi Zero 2 W would work really well. Besides, you can buy kits on eBay and Amazon.</p>

<p>If you pick a second-hand computer, same thing. Arch or Ubuntu Server and y&#39;all good. And if you pick a Raspberry Pi, you can format the MicroSD card to boot up using <a href="https://www.raspberrypi.com/software" rel="nofollow">Raspberry Pi Imager</a>. Super recommended, because it allows you to install the lite version of Raspberry Pi OS (and other systems) and apply preset configurations, like username and password, WiFi network, and enable SSH access by default.</p>

<p>If you use the Raspberry Pi, to know the IP address it has, you can connect a keyboard and display to your equipment, and run the <code>ifconfig</code> command, which will give you an output similar to this one:</p>

<p><img src="https://val-vgms.gay/img/media/20250217/1/ifconfig.png" alt="Output of the ifconfig program, highlighting the wireless adapter section"></p>

<p>If this is not an option, you can enter the router configuration (usually going to 192.168.100.1 on your browser, but it varies between different routers), and look up for the connected devices, either via Ethernet or WiFi, and you can also locate its address.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/1/router.png" alt="Cutout screenshot of the configuration of a router, showing a device IP address"></p>

<p>With this info, you can connect through any SSH client (even the command line of Windows 10 and 11) using the command <code>ssh [user]@[IP address]</code>, to be able to keep setting up your equipment from another place, and even access to the files using SFTP. I&#39;ll show Thunar (one of Linux file managers) as an example, which works directly.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/1/SSHpass.png" alt="Screenshot ofSSH login via Thunar file manager"></p>

<blockquote><p>By entering the user and the address, we&#39;re asked the password.</p></blockquote>

<p><img src="https://val-vgms.gay/img/media/20250217/1/SSHroot.png" alt="Screenshot of Thunar, showing the root of a SFTP remote computer"></p>

<blockquote><p>And once inside, we&#39;re shown the initial directory of the equipment.</p></blockquote>

<p>Although, there&#39;s not a direct access from the integrated file manager in Windows, on its time I used <a href="https://winscp.net/eng/download.php" rel="nofollow">WinSCP</a>, and it really worked well for me, so I fully recommend it. (No screenshots this time, because I don&#39;t use WinSCP anymore... nor Windows xd)</p>

<h3 id="preparing-the-server">Preparing the server</h3>

<p>Once we have the computer ready to interact with it, let&#39;s install the web server and database software.</p>

<p>On Arch and derivates (Manjaro, Endeavour, Garuda):</p>

<pre><code class="language-bash">sudo pacman -Syu apache mariadb
</code></pre>

<p>On Debian and derivates (Ubuntu, Linux Mint, Raspberry Pi OS, Pop! OS, MX Linux):</p>

<pre><code class="language-bash">sudo apt update
sudo apt upgrade
sudo apt install apache2 mariadb-server
</code></pre>

<p>This will only install the programs, but it doesn&#39;t help us set up anything as is. Let&#39;s get into that.</p>

<h4 id="apache-the-web-server-per-se">Apache: The web server per se</h4>

<p>Before activating the server, the ideal is that we have a basic test web page just to see if the server works. Copying and pasting this code in a text editor should be more than enough.</p>

<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html lang=&#34;en&#34;&gt;
&lt;head&gt;
    &lt;meta charset=&#34;UTF-8&#34;&gt;
    &lt;title&gt;Test web page&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;p&gt;Website under construction.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Remember saving this code in a text file named <code>index.html</code></p>

<p>The next part is a little bit confusing depending on if we&#39;re making this process on systems based on Arch or Debian, because both the configuration files and the web page location will vary on each case. For example, on Arch, the configuration file is located on <code>/etc/httpd/conf/httpd.conf</code>, and you must place the web files (the <code>index.html</code> file, for example) on <code>/srv/http</code>. But in Debian, things change. Here, the configuration files are saved on <code>/etc/apache2/apache2.conf</code>, and the web files are saven on <code>/var/www/html</code>.</p>

<p>Let&#39;s copy our HTML file to the web folder in our system, and enable the Apache service to check if it works.</p>

<p>From Arch:</p>

<pre><code class="language-bash">sudo systemctl enable --now httpd
</code></pre>

<p>From Debian:</p>

<pre><code class="language-bash">sudo systemctl enable --now apache2
</code></pre>

<p>This command starts the service on demand, and also it schedules the automatic start with each system boot (for example, after a reboot for an update), and that&#39;s why you only need to introduce this command once.</p>

<p>And to check if it works, let&#39;s open the web page <code>http://localhost</code>. It should look like this.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/2/1/test.png" alt=""></p>

<p>If you see this, congrats! We have begun with this little project. Which is barely the beginning of this journey. Let&#39;s configure a little of the things we don&#39;t see.</p>

<h4 id="mariadb-server-stored-database">MariaDB: Server stored database</h4>

<p>Before enabling the database service, let&#39;s run the next command <strong>only on Arch</strong>.</p>

<pre><code class="language-bash">sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
</code></pre>

<p>Now, we will enable the service. The command is the same for both systems.</p>

<pre><code class="language-bash">sudo systemctl enable --now mariadb
</code></pre>

<p>It&#39;s also convenient to improve the initial security of MariaDB. Conveniently, we have a command to do that.</p>

<pre><code class="language-bash">sudo mariadb-secure-installation
</code></pre>

<p>This command is interactive, and it consists of seven questions. It&#39;s really pretty direct and easy to setup, but just in case, let&#39;s go in order.</p>

<pre><code>NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we&#39;ll need the current
password for the root user. If you&#39;ve just installed MariaDB, and
haven&#39;t set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
</code></pre>

<p>We&#39;re asked the MariaDB <code>root</code> password. We haven&#39;t configured it yet, so we&#39;ll just press <code>[Enter]</code>, and let&#39;s go to the next step.</p>

<pre><code>Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer &#39;n&#39;.

Switch to unix_socket authentication [Y/n]
</code></pre>

<p>Here we&#39;re asked if we want to use Unix Socket authentication or its standard authentication. Honestly, I don&#39;t know the implications of that, and besides, the configuration suggests that, so we&#39;ll answer no by pressing <code>[n]</code>.</p>

<pre><code>You already have your root account protected, so you can safely answer &#39;n&#39;.

Change the root password? [Y/n]
</code></pre>

<p>Here we&#39;re suggested to change MariaDB&#39;s <code>root</code> password. Tis time, we&#39;re gonna answer &#39;yes&#39;, by pressing <code>[Enter]</code>.</p>

<p>Immediately we&#39;re asked to enter a password we want to use, preferably a different one from any other you might use, but it&#39;s up to you. Although if I may do a suggestion, I use a <a href="#https://porkbun.com/tools/password" rel="nofollow">password generator</a> to not think too much about it, and still have a good password. Besides, it&#39;s so versatile.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/2/2/generator.png" alt=""></p>

<p>Once you have your password (I suggest saving it on a safe place) you must enter it twice on the window we&#39;re running the command. Let&#39;s go to the next question.</p>

<pre><code>By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]
</code></pre>

<p>here we&#39;re asked if we want to remove guest users. For security, we will say yes, by pressing <code>[Enter]</code>.</p>

<pre><code>Normally, root should only be allowed to connect from &#39;localhost&#39;.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]
</code></pre>

<p>Obviously we would want the databases to only be accessible from the server itself. So, we will disable remote access on this question, by pressing <code>[Enter]</code>.</p>

<pre><code>By default, MariaDB comes with a database named &#39;test&#39; that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]
</code></pre>

<p>MariaDB has a test database that we won&#39;t need in a production environment. So we will delete it by pressing <code>[Enter]</code> again.</p>

<pre><code>Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]
</code></pre>

<p>Here we simply will reload the database privileges for the changes to be applied immediately, just by pressing <code>[Enter]</code>.</p>

<p>And now we have our database clean and ready to continue.</p>

<p>Now, we&#39;re gonna get into the MariaDB command line by running <code>sudo mariadb -u root -p</code>. Once you run it, you&#39;ll be asked the password we set up a few moments ago. If you did it well, at the end of the command line should appear this indicator, which means we&#39;re in.</p>

<pre><code>MariaDB [(none)]&gt;
</code></pre>

<p>Once there, let&#39;s run these next commands, one by one.</p>

<pre><code class="language-sql">CREATE USER &#39;writefreely&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;[MariaDB password]&#39;;

CREATE DATABASE writefreely CHARACTER SET latin1 COLLATE latin1_swedish_ci;

GRANT ALL PRIVILEGES on writefreely.* to &#39;writefreely&#39;@&#39;localhost&#39;;

FLUSH PRIVILEGES;

exit
</code></pre>

<p>The first command creates a specific user for writeFreely on MariaDB, to not interact with it using the <code>root</code> account, which can be dangerous. We also set up the password.</p>

<p>The second one creates the database that WriteFreely will use.</p>

<p>The third command gives permission to the WriteFreely user only to its database, so it won&#39;t be able to modify anything else.</p>

<p>The fourth one applies the changes on demand.</p>

<p>And the fifth one closes the MariaDB command line.</p>

<p>For now, we won&#39;t cover MariaDB anymore, so let&#39;s go to the next part.</p>

<h3 id="reverse-proxy-vs-standalone-server-what-s-more-convenient">Reverse proxy vs Standalone server: What&#39;s more convenient?</h3>

<p>There are two ways to setup any web server. When it&#39;s an only web server, and this one is not too complex, it&#39;s recommended to do a standalone server, where that site, and only that site can exist in that server. Which makes the requests to be processed more efficiently, but evidently limits the server scalability, in case you want to host more than one project, like a personal website or even a Mastodon instance. In such cases the reverse proxy is more convenient, where you can host several websites on the same computer, even with different domains, with the disadvantage of the requests to be processed more slowly.</p>

<p>In theory, WriteFreely supports both server types, but as much as I tried, I couldn&#39;t make it work on standalone, and I don&#39;t want to think too much to make it work like that, so we will do it on reverse proxy.</p>

<p>For that, let&#39;s enable the proxy functionality on Apache.</p>

<p>On Arch, it&#39;s done by modifying the main configuration file.</p>

<pre><code class="language-bash">sudo nano /etc/httpd/conf/httpd.conf
</code></pre>

<p>Search the next lines, one by one, and remove the <code>#</code> symbol at the beginning.</p>

<pre><code>#Include conf/extra/httpd-vhosts.conf

#LoadModule proxy_module modules/mod_proxy.so

#LoadModule proxy_connect_module modules/mod_proxy_connect.so

#LoadModule proxy_http_module modules/mod_proxy_http.so

#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

#LoadModule proxy_http2_module modules/mod_proxy_http2.so
</code></pre>

<p>Save with <code>[Control]</code> + <code>[S]</code> and exit with <code>[Control]</code> + <code>[X]</code>.</p>

<p>And on Debian, it&#39;s done by running two commands.</p>

<pre><code class="language-bash">sudo a2enmod proxy
sudo a2enmod proxy_http
</code></pre>

<p>After that, let&#39;s restart the Apache service.</p>

<p>On Arch:</p>

<pre><code class="language-bash">sudo systemctl restart httpd
</code></pre>

<p>On Debian:</p>

<pre><code class="language-bash">sudo systemctl restart apache2
</code></pre>

<p>There&#39;s one more thing we can do with the reverse prosy, but for that, we&#39;ll need the domain, or the web address we will use for our blog, and set up WriteFreely. Let&#39;s go with the first one.</p>

<h3 id="get-your-own-address-for-your-instance">Get your own address for your instance</h3>

<p>The websites you visit have an address behind a domain name for you to remember it easily. And register a domain name is not always easy. The most accessible way to obtain a domain name is through a site offering the service. Although you can try to get a free domain through <a href="https://www.freenom.com" rel="nofollow">Freenom</a>, I personally don&#39;t recommend it that much, because your preferred domain might not be available for registration, and you&#39;re limited to just a few Top Level Domains (TLD, the ending part of an address, usually <code>.com</code> or <code>.tk</code>). If you don&#39;t have an inconvenient on looking up for a free domain, even if it&#39;s not the one you have in mind, it might be a good option.</p>

<p>So, following the recommendation someone made to me before, I now recommend <a href="https://porkbun.com" rel="nofollow">Porkbun</a> because it also offers bomains to pretty accessible prices, costing from USD$1 for first year sale, and annual renewal from $USD5, besides offering varied and funny TLD options, like <code>.lol</code>, <code>.wtf</code>, <code>.pizza</code>, among others.</p>

<p>The registration process is going to the login page and fill the registration form on the right.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/4/reg.png" alt=""></p>

<p>The usual. Username, password (or physical access key), email address, personal information, and accept terms and conditions. By completing the registration, you must validate your account with a code you receive in the email, and once your account is validated, you can look up for domains to purchase. And I will purchase one I want for a personal project I plan to do later, but I still don&#39;t want to spill the beans.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/4/look.png" alt=""></p>

<p>And here we can see several of the available TLDs to choose. For this domain, I chose <code>.cc</code> because it&#39;s not expensive, and that project will be more general. But&#39;s let not distract from the topic. Once we select our domain, and we add it to the cart, we can proceed to see it.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/4/cart.png" alt=""></p>

<p>From here, we can select for how many years we want to purchase the domain. For now, we will limit to choose one year, and we will click on the <code>[Continue to Billing]</code> button, to introduce our card information. And once the payment goes through, we can see our domain on our list.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/4/list.png" alt=""></p>

<p>Now that we have our domain, let&#39;s make it to point to our equipment.</p>

<h3 id="dynamic-dns-vs-cloudflare-tunnel">Dynamic DNS vs Cloudflare Tunnel</h3>

<p>There are two ways to make the web address to point to our site. The first one is an old reliable for many people, and it&#39;s Dynamic DNS. Where we ask our router or our computer to periodically request the server to make the change automatically, and to always point to the public address of our router. And the second one is one I didn&#39;t know about until recently, but it&#39;s very interesting, and is Cloudflare Tunnel, which makes more or less the same as Dynamic DNS. The difference between them is that the Dynamic DNS works with your real IP address, which might expose you to attacks really easily, and Cloudflare Tunnel does it by routing your IP address through their infrastructure, which adds an additional protection layer.</p>

<p>Actually, when I just started to mount this, I didn&#39;t know Cloudflare Tunnel at all, and I wanted to complete the process only with Dynamic DNS.</p>

<p>I won&#39;t lie. I was about to give up on this part, because there are internet providers that make the routers to connect to the internet using subnetworks, which is known as NAT. Basically, an IP address is shared among several devices, which makes Dynamic DNS difficult. And with the tunnel you can skip all those network restrictions, and also the Cloudflare infrastructure can help a little.</p>

<p>A very dear friend suggested me to try with Cloudflare Tunnel, and he even sent me <a href="https://omar2cloud.github.io/cloudflare/cloudflared/cloudflare" rel="nofollow">a tutorial</a>. And as it was really useful for me, but it&#39;s not very detailed, I&#39;ll put it here, going into greater detail.</p>

<h4 id="registration-on-cloudflare-for-teams">Registration on Cloudflare for Teams</h4>

<p>All you must do here is go to the registration page, put your email and password, and verify your email. Once you do all that, you&#39;ll be presented with the screen to add the domain we just purchased.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/dash-en.png" alt=""></p>

<p>Once we put the domain, and press the Continue button, we&#39;ll go to the configuration assistant.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-1-en.png" alt=""></p>

<p>Con la primera opción seleccionada y presionando en Continuar, avanzamos a la siguiente pantalla.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-2-en.png" alt=""></p>

<p>Here we are presented with several plans to select. We don&#39;t want to spend another cent, so we&#39;ll choose the free one. And by pressing the Continue button, we&#39;ll go to the next screen to set up the DNS records</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-3-en.png" alt=""></p>

<p>As we will do this process later, we&#39;ll click on Continue to activation, and then the Confirm button. We&#39;ll go to the Nameserver configuration guide.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-4-en.png" alt=""></p>

<p>Let&#39;s follow these instructions. The first point is already covered by logging into Porkbun, so we just have to go to the domain control page on your Porkbun account.</p>

<p>The second point is also covered by default, expanding our domain details, and seeing the Registry DNSSEC section at zero.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-5.png" alt=""></p>

<p>And we&#39;re going to cover the third point by pressing the edit button located next to the Nameservers section, and at the pop-up window, we put on separated lines the servers shown on Cloudflare.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-6-en.png" alt=""></p>

<p>By pressing the Continue button. it says that the servers will be ready within the next 24 hours, but refreshing the page after five minutes, it shows it&#39;s all done.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/1/setup-7-en.png" alt=""></p>

<p>With the servers ready, and even while they&#39;re getting ready, we can proceed with the next step.</p>

<h4 id="install-and-configure-cloudflared">Install and configure Cloudflared</h4>

<p>Before proceeding with the Cloudflare service installation, we must know what type of architecture our system has. On any Linux system you can do that by running the <code>uname -a</code> command. I&#39;ll leave a screenshot with the output of this command on my daily use computer (and the one that will be the test instance), and from my Raspberry Pi (the one for this blog).</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/2/uname.png" alt="Screenshot of two windows showing the output of the command uname. One on a 64 bits PC, and the other on an ARM device"></p>

<p>Depending on that last part (highlighted on my screenshot above), is the version we&#39;re going to install. If the output of <code>uname</code> contains <code>x86_64</code>, and you&#39;re on Arch (or derivates), you got it easy. You can install it with the next command:</p>

<pre><code class="language-bash">sudo pacman -Syu cloudflared
</code></pre>

<p>For other configurations, things get complicated. First, it&#39;s worth mentioning that, for some reason, the output results of <code>uname</code> and the software version we will download will differ a little. So I&#39;ll leave this table with the equivalencies.</p>

<table>
<tr>
<th>Results of uname</th>
<th>Architecture</th>
</tr>
<tr>
<td>x86_64</td>
<td>amd64</td>
</tr>
<tr>
<td>x86</td>
<td>386</td>
</tr>
<tr>
<td>arm7l</td>
<td>armhf</td>
</tr>
<tr>
<td>aarch64</td>
<td>arm64</td>
</tr>
</table>

<p>Based on this, to install it on Debian (and other Linux systems), we&#39;re going to run these commands:</p>

<pre><code class="language-bash">sudo wget -O cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-{architecture}
sudo mv cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
</code></pre>

<p>It&#39;s worth noting that, with this, the way you update Cloudflared (by the way, updates come out at least once a month) will vary, depending on if you install on Arch x86_64 or not. If yes, you just need to run the command to update the whole system.</p>

<pre><code class="language-bash">sudo pacman -Syu
</code></pre>

<p>But for everyone else, the command changes a little, by not being tied to the system package manager</p>

<pre><code class="language-bash">cloudflared update
</code></pre>

<p>Now that the service is installed, let&#39;s configure the tunnel to, <strong>finally</strong>, making it to pint to our equipment.</p>

<h4 id="create-and-setup-access-tunnel">Create and setup access tunnel</h4>

<p>First, let&#39;s create the tunnel, logging in from cloudflared.</p>

<pre><code class="language-bash">cloudflared login
</code></pre>

<p>And on the command line, we should get something like this:</p>

<pre><code>A browser window should have opened at the following URL:

https://dash.cloudflare.com/argotunnel?aud=[Private access ID I won&#39;t share for security xd]

If the browser failed to open, please visit the URL above directly in your browser.
</code></pre>

<p>And it&#39;s also possible that a browser opened directly on that address. But in case it didn&#39;t open for some reason, copy and paste it on your browser. Which should open something like this.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/3/tunel-1-en.png" alt=""></p>

<p>And once we select the domain we created a few moments ago, this window will pop up.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/3/tunel-2-en.png" alt=""></p>

<p>Once we click the Authorize button, we can close the browser. And now we can create the tunnel to make it an automatic service. For that, we will run the next command:</p>

<pre><code class="language-bash">cloudflared tunnel create [Name you want to give the tunnel]
</code></pre>

<p>And it should give you an output similar to this one.</p>

<pre><code>Tunnel credentials written to /home/vo/.cloudflared/[Long UUID].json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.

Created tunnel [Tunnel name] with id [Long UUID]
</code></pre>

<p>Now, let&#39;s create the configuration file for Cloudflared with the tunnel information.</p>

<pre><code class="language-bash">sudo nano ~/.cloudflared/config.yml
</code></pre>

<p>And we&#39;re going to put this text on that file:</p>

<pre><code class="language-yaml">tunnel: [Long UUID]
credentials-file: /home/[your user]/.cloudflared/[Long UUID].json

ingress:
  - hostname: [Porkbun domain]
    service: http://localhost:80
  - service: http_status:404
</code></pre>

<p>Once we have created this text file, now let&#39;s create the DNS records. We&#39;re almost there.</p>

<h4 id="create-the-dns-records-to-point-to-your-equipment">Create the DNS records to point to your equipment</h4>

<p>There are two ways to create them. By hand and directly from Cloudflared. I honestly don&#39;t know how to do it by hand, so let&#39;s let Cloudflare do the job for us with the next command:</p>

<pre><code class="language-bash">cloudflared tunnel route dns [Long UUID] [Domain]
</code></pre>

<p>And just like that, on our Cloudflare control center, the DNS records already appear for them to point to our equipment.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/4/dns-en.png" alt=""></p>

<p>Now, on the top left on the screen, next to our email address, is the &#39;back&#39; arrow. We click on it, and then, on that same side, more in the middle, the Zero Trust option is located.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/4/cf-home-en.png" alt=""></p>

<p>On this new screen, let&#39;s go to the Networks menu. We should see this.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/4/one-tunnels-en.png" alt=""></p>

<p>If it appears the tunnel we just created a few moments ago, we&#39;re going a good way. We click on that, and we will be starting the migration to a new control panel specific for Zero Trust. You just need to follow the presented instructions (you know, next, next, finish), <strong>taking in account you can only do this process once</strong>. And this screen must appear.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/4/tunnel-daemon-en.png" alt=""></p>

<p>The highlighted command is the one we&#39;re most interested in, to install the service once and for all. The full command is not shown, so you have to click it to copy it, and paste it directly on the command line. Once we run the command, the service will be installed and running. Which will allow us to access our test page. Which in my case, I modified it a little.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/5/4/sitio-prueba-en.png" alt=""></p>

<p>Now we can forget entirely about Cloudflare and domains. Let&#39;s go to the next part of the process.</p>

<h3 id="let-s-create-the-writefreely-blog">Let&#39;s create the WriteFreely blog!</h3>

<p>With all things ready, finally, for everything y&#39;all came for. How to download and setup WriteFreely. Let&#39;s start with the download.</p>

<h4 id="download-and-install-writefreely">Download and install WriteFreely</h4>

<p>Do you remember the <code>uname</code> output? Now it&#39;s going to be useful to download the appropriate WriteFreely version.</p>

<p>If your architecture is <code>amd64</code>:</p>

<pre><code class="language-bash">wget &#34;https://github.com/writeas/writefreely/releases/latest/download/writefreely_0.15.1_linux_amd64.tar.gz&#34;
tar -xvzf writefreely_0.15.1_linux_amd64.tar.gz
rm writefreely_0.15.1_linux_amd64.tar.gz
</code></pre>

<p>If your architecture is <code>arm64</code>:</p>

<pre><code class="language-bash">wget &#34;https://github.com/writeas/writefreely/releases/latest/download/writefreely_0.15.1_linux_arm64.tar.gz&#34;
tar -xvzf writefreely_0.15.1_linux_arm64.tar.gz
rm writefreely_0..15.1_linux_arm64.tar.gz
</code></pre>

<p>If your architecture is <code>armhf</code>:</p>

<pre><code class="language-bash">wget &#34;https://github.com/writeas/writefreely/releases/latest/download/writefreely_0.15.1_linux_arm7.tar.gz&#34;
tar -xvzf writefreely_0..15.1_linux_arm7.tar.gz
rm writefreely_0..15.1_linux_arm7.tar.gz
</code></pre>

<p>Now, let&#39;s configure permissions for the server folders, and move the WriteFreely installation files to the server folder.</p>

<p>On Arch:</p>

<pre><code class="language-bash">sudo chmod 755 -R /srv/http/
sudo mv writefreely/ /srv/http/
cd /srv/http/writefreely/
chmod +x writefreely
</code></pre>

<p>On Debian:</p>

<pre><code class="language-bash">sudo chmod 755 -R /var/www/html/
sudo mv writefreely/ /var/www/html/
cd /var/www/html/writefreely/
chmod +x writefreely
</code></pre>

<p>Done. WriteFreely is now installed on our server. But it&#39;s not configured yet.</p>

<h4 id="database-initialization-and-writefreely-setup">Database initialization and WriteFreely setup</h4>

<p>First, let&#39;s fo through the WriteFreely initial setup.</p>

<pre><code class="language-bash">./writefreely --config
</code></pre>

<p>This command is interactive, so let&#39;s go step by step through the configurations.</p>

<p>On <code>Server setup</code>, with the <code>[↑]</code> and <code>[↓]</code> let&#39;s select <code>Production, behind reverse Proxy</code>, and let&#39;s press <code>[Enter]</code>– It will ask us for a port, and we can use whichever we want, although for purposes of this tutorial, I will use <code>8080</code>.</p>

<p>On <code>Database Setup</code>, let&#39;s select <code>MySQL</code>. It will immediately ask u for the database user, where we will put <code>writefreely</code>, and the password we chose when we created the database when se set up MariaDB. Then, we will put the database name, which is also <code>writefreely</code>. We&#39;ll leave Host and Port as they are.</p>

<p>For <code>App setup</code> it&#39;s completely up to you. Whether you want a glog just for you, you want to create two or more blogs, or you want to create a small writer community. For purposes of this tutorial, I&#39;ll leave it on <code>Single User Blog</code>. If that&#39;s the case, you&#39;ll be asked to create the username, password and the name of the blog. In a few moments I&#39;ll also cover the configuration for multiple users.</p>

<p>Next, you&#39;ll be asked the public address, which is the domain we acquiredm preceded by <code>https://</code>.</p>

<p>The next question is important, because it ask us if we want to enable federation, for our posts to be propagated on the fediverse. I already talked about it <a href="https://val-vgms.gay/vo/opinion-traditional-vs-alternative-or-decentralized-social-networks" rel="nofollow">on another post</a>, so I think it would be worth it. I&#39;m gonna enable it for this tutorial.</p>

<p>The next questions are about public usage stats. This doesn&#39;t affect the blog functionality per se, but allows services that monitor fediverse activity to access to them. I&#39;ll leave that to you.</p>

<p>After finishing this step, we finished the initial setup for a single blog instance, and part of the general configuration.</p>

<p>If we set up the instance for multiple users, there are a few additional steps we must follow. Let&#39;s run the next two commands:</p>

<pre><code class="language-bash">./writefreely --init-db
./writefreely --create-admin [Blog username]:[Blog password]
</code></pre>

<p>And now, eeryone will run the next command to generate the certificate keys.</p>

<pre><code class="language-bash">./writefreely --gen-keys
</code></pre>

<p>Before creating the WriteFreely service, let&#39;s finish the reverse proxy setup for the Apache server.</p>

<p>On Arch:</p>

<pre><code class="language-bash">sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf 
</code></pre>

<p>On Debian:</p>

<pre><code>sudo nano /etc/apache2/sites-enabled/000-default.conf
</code></pre>

<p>The files already there really are preview files we can modify, so let&#39;s erase all of the content on these files, and we&#39;ll paste the next content.</p>

<p>On Arch:</p>

<pre><code class="language-xml">&lt;VirtualHost *:80&gt;
        ProxyPreserveHost On
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
        ServerName [Acquired domain]
        ServerAdmin [Personal email, opcional]
        DocumentRoot /srv/http
        ErrorLog /var/log/httpd/error.log
        CustomLog /var/log/httpd/access.log combined
&lt;/VirtualHost&gt;
</code></pre>

<p>On Debian:</p>

<pre><code class="language-xml">&lt;VirtualHost *:80&gt;
        ProxyPreserveHost On
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
        ServerName [Acquired domain]
        ServerAdmin [Personal email, opcional]
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/VirtualHost&gt;
</code></pre>

<p>Let&#39;s save the file, and restart the Apache service.</p>

<p>On Arch:</p>

<pre><code class="language-bash">sudo systemctl restart httpd
</code></pre>

<p>On Debian:</p>

<pre><code class="language-bash">sudo systemctl restart apache2
</code></pre>

<p>Now, let&#39;s create the WriteFreely service for it to run all the time. We&#39;ll do it with this command.</p>

<pre><code class="language-bash">sudo nano /etc/systemd/system/writefreely.service
</code></pre>

<p>Now, it should show an empty file. Let&#39;s fill it out, depending on the system.</p>

<p>On Debian:</p>

<pre><code class="language-ini">[Unit]
Description=WriteFreely Instance
After=syslog.target network.target mariadb.service

[Service]
Type=simple
StandardOutput=syslog
StandardError=syslog
WorkingDirectory=/var/www/html/writefreely
ExecStart=/var/www/html/writefreely/writefreely
Restart=always

[Install]
WantedBy=multi-user.target
</code></pre>

<p>On Arch:</p>

<pre><code class="language-ini">[Unit]
Description=WriteFreely Instance
After=syslog.target network.target mariadb.service

[Service]
Type=simple
StandardOutput=syslog
StandardError=syslog
WorkingDirectory=/srv/http/writefreely
ExecStart=/srv/http/writefreely/writefreely
Restart=always

[Install]
WantedBy=multi-user.target
</code></pre>

<p>Now, we just have to enable the WriteFreely service.</p>

<pre><code class="language-bash">sudo systemctl enable --now writefreely
</code></pre>

<p>And if everything went perfect, we should get something like this when we go to our domain.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/2/wf-done-en.png" alt=""></p>

<p>Now, let&#39;s login with our blog username, which will immeditely take us to the writing screen.</p>

<h4 id="write-your-first-post">Write your first post</h4>

<p>The edition screen is rather simple.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/3/writer.png" alt=""></p>

<p>As is, there are not many edition options. So let&#39;s explain how it works.</p>

<p>The first line is always the title line. So to give a name to our post, just write something, and press <code>[Enter]</code> twice.</p>

<p>For the post body, we have several text format options. We can write using HTML and Markdown, even interchangeabily. I&#39;ll leave a comparative table for what you can do with the different available codes.</p>

<table>
<tr>
<td></td>
<th>HTML</th>
<th>Markdown</th>
</tr>
<tr>
<th>Headers</th>
<td>
<pre>
<code class="language-html hljs">
&lt;h1&gt;Header&lt;/h1&gt;
&lt;h2&gt;Header&lt;/h2&gt;
&lt;h3&gt;Header&lt;/h3&gt;
&lt;h4&gt;Header&lt;/h4&gt;
&lt;h5&gt;Header&lt;/h5&gt;
&lt;h6&gt;Header&lt;/h6&gt;
</code>
</pre>
</td>
<td>
<pre>
<code class="language-markdown hljs">
# Header
## Header
### Header
#### Header
##### Header
###### Header
</code>
</pre>
</td>
</tr>
<tr>
<th>Text formatting</th>
<td>
<pre>
<code class="language-html hljs">
&lt;strong&gt;Bold&lt;/strong&gt;
&lt;b&gt;Bold&lt;/b&gt;
&lt;em&gt;Italics&lt;/em&gt;
&lt;i&gt;Italics&lt;/i&gt;
</code>
</pre>
</td>
<td>
<pre>
<code class="language-markdown hljs">
**Bold**
__Bold__
*Italics*
_Italics_
</code>
</pre>
</td>
</tr>
<tr>
<th>Lists</th>
<td>
<pre>
<code class="language-html hljs">
&lt;ul&gt;
&lt;li&gt;Simple list&lt;/li&gt;
&lt;li&gt;Simple list&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Sub-element&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
 
&lt;ol&gt;
&lt;li&gt;Numbered list&lt;/li&gt;
&lt;li&gt;Numbered list&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Numbered lit&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
</code>
</pre>
</td>
<td>
<pre>
<code class="language-markdown hljs">
* Simple list
* Simple list
  * Sub-element

1. Numbered list
2. Numbered list
  1. Numbered list
</code>
</pre>
</td>
</tr>
<tr>
<th>Links</th>
<td>
<pre>
<code class="language-html hljs">
&lt;a href=&#34;https://val-vgms.gay/vo&#34;&gt;World&#39;s best blog&lt;/a&gt;
&lt;a href=&#34;mailto:someone@example.com&#34;&gt;Send an email&lt;/a&gt;
</code>
</pre>
</td>
<td>
<pre>
<code class="language-markdown hljs">
[World&#39;s best blog](https://val-vgms.gay/vo)
[Send an email](mailto:someone@example.com)
</code>
</pre>
</td>
</tr>
<tr>
<th>Images</th>
<td>
<pre>
<code class="language-html hljs">
&lt;img src=&#34;https://i.snap.as/T05UTpx.jpg&#34; alt=&#34;Cosmic radiation&#34; /&gt;
</code>
</pre>
</td>
<td>
<pre>
<code class="language-markdown hljs">
![Cosmic radiation](https://i.snap.as/T05UTpx.jpg)
</code>
</pre>
</td>
</tr>
<tr>
<th>Quoted text</th>
<td>
<pre>
<code class="language-html hljs">
&lt;blockquote&gt;The quick brown fox
jumps over the lazy dog.

&lt;i&gt;Microsoft on its font face viewer software&lt;/i&gt;
&lt;/blockquote&gt;
</code>
</pre>

</td>
<td>
<pre>
<code class="language-markdown hljs">
&gt; The quick brown fox
&gt; jumps over the lazy dog.
&gt; 
&gt; _Microsoft on its font face viewer software_
</code>
</pre>

</td>
</tr>
<tr>
<th>Code blocks</th>
<td>
<pre>
<code class="language-html hljs">
&lt;pre&gt;
&lt;code class=&#34;language-ini hljs&#34;&gt;
[Section]
; Comment
Key = Value 1
Another_key = Value 2
&lt;/code&gt;
&lt;/pre&gt;
</code>
</pre>
</td>
<td>
<pre>
<code class="language-markdown hljs">
```ini
[Section]
; Comment
Key = Value 1
Another_key = Value 2
```
</code>
</pre>
</td>
</tr>
</table>

<p>There are also things you can&#39;t do with Markdown, but you can do with HTML. More specifically, the tags <code>&lt;iframe&gt;</code>, <code>&lt;audio&gt;</code> and <code>&lt;video&gt;</code>.</p>

<p>And once you have entered some text, and clicked the Publish button...</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/3/post-pre-en.png" alt=""></p>

<p>...it will appear to share it with the world.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/3/post-en.png" alt=""></p>

<p>Once we have made our first post, let&#39;s customize our blog.</p>

<h4 id="configuring-your-blog-options">Configuring your blog options</h4>

<p>We have several options for our blog. For that, let&#39;s go to the menu on the top left on the screen.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/4/menu.png" alt=""></p>

<p>Now, on this new screen, we&#39;re going to see several options. Let&#39;s explain them all.</p>

<p>The first two text fields are the blog name and description. Completely personal, so I can&#39;t guide you on that.</p>

<p>On the URL section, we can see the public address, and if we enabled federation, we will alsoo see our fediverse handle. Useful if we want to be followed on Mastodon, Friendica, Pixelfed, and other fediverse platforms.</p>

<p>On the Visibility section, you can say if you want your posts to be visible for anyone, people with the link, only you when you login, or anyone with a password you define.</p>

<p>For the updates, The RSS feed and federation through activityPub are active, so people can follow your blog from their favourite RSS reader, or even from their Mastodon account, to say something.</p>

<p>The display format allows three options. The traditional blog format shows the most resent posts first, and also displays dates. The novel format hides dates and shows the oldest posts first, so you can read them by chronological order. And the notebook format hides the dates, but shows the most recent posts first.</p>

<p>The text render allows us to enable Mathjax to parse mathematic formulas so these can be correctly visualized. Markdown is enabled by default.</p>

<p>The Custom CSS section allows you to change your blog appearance. There are diverse themes on <a href="https://write.as/themes" rel="nofollow">write.as</a> so you can study how they are made, and even copy them in full. And actually, I just changed a little this blog&#39;s CSS for it to use more the screen width, without really changing the appearance (I&#39;ll do that later). I&#39;ll leave you the CSS:</p>

<pre><code class="language-css">body#post article{
    max-width: 75rem;
}

article img{
    display: block;
    margin-left: auto;
    margin-right: auto;
}
</code></pre>

<p>On the Post signature section, you can enter any text you want to be added to the ending on all of your posts.</p>

<p>And finally, on the Verification section, you can put the address of another website you interact with on the open web or the fediverse. Like your Mastodon profile.</p>

<p>But those are not all of the options we can modify. Because if we go to the submenu on the name of our instance, we&#39;re ginna find several more links.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/4/custom-menu.png" alt=""></p>

<p>For now, we&#39;re gonna focus on the Admin options.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/4/admin1.png" alt=""></p>

<p>On this first screen we don&#39;t see much information, besides post stats. But precisely where we see the submenu for this screen, there are three tabs, and the one we&#39;re really interested in is the second one, Configurations.</p>

<p>The Host tells us our WriteFreely instance address. Not editable.</p>

<p>The Community mode allows you to know if the instance is set up for single user, or vaious. As we set up on the WriteFreely initialization.</p>

<p>If we setup our instance for ultiple users, we have five more options.</p>

<p>The first option is the landing page for not registered visitors. By hosting several blogs, there might be several pages, and even a general feed for all of the registered blogs (in fact, that&#39;s how this instance is configured, by having one user for <a href="https://val-vgms.gay/vo" rel="nofollow">the English blog</a> and another one for <a href="https://val-vgms.gay/val" rel="nofollow">the Spanish blog</a>, and the landing page is that feed).</p>

<p>The option for Open registrations allows you to decide if you want to allow external people to register to your instance.</p>

<p>The Allow account deletion option let&#39;s you decide if you want users to delete their account (and blogs) whenever they wish, or if only the administration can delete users.</p>

<p>the allow invites option is useful when the registration is closed, because it allows you to decide ig the registered users can invite people, if only the admins can invite, or if invites are locked.</p>

<p>And finishing with the multiuser instance options, the Reader allows you to enable or disable the blog feed for the instance.</p>

<p>Going back to the general options, the Private instance option limits access to the blogs to people who has an account within the instance. This may be useful for, let&#39;s say, private communities like reporters for a local newspaper.</p>

<p>The federation option allows your blog to be searched from the fediverse. For example, I coould search the profile for the instance for this tutorial from my Mastodon profile.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/4/mastodon-search.png" alt=""></p>

<p>The Public stats options allows the instance stats to be monitored by services like <a href="https://fediverse.observer/" rel="nofollow">Fediverse Observer</a>.</p>

<p>The Web monetization option allows you to receive micropayments from visitors to your blog. But I haven&#39;t explored this option in depth because I donestly don&#39;t care about receiving earnings for this blog. But if you&#39;re an independent reporter, exploring this feature may be useful for you.</p>

<p>And finally, the username length allows you to configure how short can be a username. You can set username as short as one character, or as long as you wish.</p>

<p>These are the basic but most importan options you can configure from your browser interface. But there are more options you can modify on the WriteFreely configuration file, located next to the executable (<code>/srv/http/writefreely/config.ini</code> on Arch, and <code>/var/www/html/writefreely/config.ini</code> on Debian). And the WriteFreely project has <a href="https://writefreely.org/docs/v0.15.1/admin/config" rel="nofollow">a page dedicated to explain the editable options in further detail</a>.</p>

<h4 id="translating-most-of-the-user-interface">Translating (most of) the User Interface</h4>

<p>So far, we have seen the WriteFreely interface in English. But can we really change the blog interface to Spanish (or any other language)? Honestly, no. There are things that must be changes from the source code to acomplish a fully translated interface. And I don&#39;t know enough about the <code>go</code> language (to not say I don&#39;t know a thing) to modify <a href="https://github.com/writefreely/writefreely" rel="nofollow">the WriteFreely source code</a>. What I do know is enough HTML to modify the template files the software uses for the interface in Spanish.</p>

<p>In fact, I already modified the templates for this instance. I&#39;ll leave a comparison for how would look the Customize page for both the tutorial instance without modifications, and this instance already modified.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/5/comp.png" alt=""></p>

<p>And if you want to download the Spanish modified templates (for some reason lol), I conveniently have a zip file you can download <a href="https://val-vgms.gay/img/media/20250217/wf-es.zip" rel="nofollow">by clicking here</a>. Once you have this file, you just have to extract them and replace the folders in the server.</p>

<p>You must take in account these files are for version 0.15.1, which at the time of this writing, is the latest version. I might update the files for every new release, but knowing myself, I&#39;m gonna forget at some point.</p>

<h4 id="enable-email-subscriptions">Enable email subscriptions</h4>

<p>Really nice for people to be able to follow you on the Fediverse, and all. But what about people without an account around these parts? Well, besides the RSS feed, we have the option to enable email subscriptions and password recovery. However, it&#39;s not integrated into WriteFreely per se, but we have to rely on <a href="https://www.mailgun.com/" rel="nofollow">Mailgun</a>, an external free service, but with additional paid features. Let&#39;s review the account setup to add it to WriteFreely.</p>

<p>The registration page for Mailgun is really easy and direct, even more than the one from Porkbun.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-reg.png" alt=""></p>

<p>And once we fill the form, the account is created, but not active yet. It must be verified first, as indicated in the panel on the top.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-dash-pre.png" alt=""></p>

<p>To validate our account, we must enter our phone number, selecting the country.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-activ.png" alt=""></p>

<p>Once you enter your number, you&#39;ll receive a text message to complete the validation. We introduce it, and our account will be verified.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-dash-mid.png" alt=""></p>

<p>Now, we&#39;ll fo to the Get Started tab to start the configuration.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-get-started.png" alt=""></p>

<p>We will even have our next step highlighted on this control center. Which will the Mailgun configuration easier for us. Let&#39;s go with the API key creation.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-main-api.png" alt=""></p>

<p>We will just give a name we just created. It must not be something elaborated. And once we have our name, the key will be created.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-main-ready.png" alt=""></p>

<p>Copy and save it in a safe place.</p>

<p>For the next step, which is sending a test email, we have two options. Via API, or with a SMTP client.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-send-test.png" alt=""></p>

<p>For API, we have codes for different languages to integrate in the projects.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-send-api.png" alt=""></p>

<p>And with SMTP is more on the line on what we have always used with any email app. Login and all that.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-send-smtp.png" alt=""></p>

<p>But for now, we will ignore the test email. :P</p>

<p>What interests us is the next part, which is adding a custom domain.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-new-domain.png" alt=""></p>

<p>On the Domain name field, we will enter the domain, and click the blue button. Which will take us to the next screen.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-dns-1.png" alt=""></p>

<p>This information will be useful to enter into <a href="https://dash.cloudflare.com/" rel="nofollow">our Cloudflare control panel</a> into the DNS records for our domain. To enter it, let&#39;s go to the account home, let&#39;s click into our domain, and on the left panel, we click on the DNS option. We should be here.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-dns-cf.png" alt=""></p>

<p>And to add the Mailgun records to Cloudflare, we just press the Add record button, which will open these fields.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/cf-dns-add.png" alt=""></p>

<p>Now, we select the type given by Mailgun, and copy the Mailgun host and paste it on the Name on Cloudflare, and the Value in Mailgun goes into Content in cloudflare. Let&#39;s do this on each Mailgun providedentry, and in the <code>CNAME</code> entry, we will disable the Proxy switch.</p>

<p>Optionally, we can write into the Cloudflare comment to indicate these are the Mailgun records. I did it for organization, but it&#39;s not necessary.</p>

<p>Once we have finished to add every entry, on Mailgun we will press the Verify button located at the top. If we did it right, we will even receive an email indicating the setup was successful.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-dns-2.png" alt=""></p>

<p>Now, on Mailgun, let&#39;s generate the new email send API for our domain going to the Sending keys tab.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-send-keys-1.png" alt=""></p>

<p>By pressing the Add sending key button, we will set up a new API key, this one for profuction for our blog. We will give a new name, and we will be given a new generated key <strong>only once</strong>. It&#39;s important to copy it, because we will use it later.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/mg-send-keys-2.png" alt=""></p>

<p>Now, let&#39;s configure the keys directly on WriteFreely. For that, let&#39;s open the configuration file.</p>

<p>On Arch:</p>

<pre><code class="language-bash">nano /srv/http/writefreely/config.ini
</code></pre>

<p>On Debian:</p>

<pre><code class="language-bash">nano /var/www/html/writefreely/config.ini
</code></pre>

<p>And on this file, let&#39;s sear these lines.</p>

<pre><code class="language-ini">[email]
domain          = 
mailgun_private = 
</code></pre>

<p>On <code>domain</code> let&#39;s write our domain, and on <code>mailgun_private</code> the key we just generated.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/wf-mail-setup-1.png" alt=""></p>

<p>Save the file, and restart the WriteFreely service.</p>

<pre><code class="language-bash">sudo systemctl restart writefreely
</code></pre>

<p>And now, if we go to the Customize options on our blog, on the Updates section, we will see a new option to enable email subscription.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/wf-mail-setup-2.png" alt=""></p>

<p>Once enabled, on the main page for your blog, right at the bottom, external users will be able to enter their email to begin the subscription.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/wf-home-mail.png" alt=""></p>

<p>Once they enter it, they will need to confirm their subscription from their inbox.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/wf-mail-setup-3.png" alt=""></p>

<p>The confirmation message looks something like this.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/wf-mail-setup-4.png" alt=""></p>

<p>And once our subscribers confirm their subscription, and we send a post, our subscribers will receive the posts via email 15 minutes after posting them. For example, I&#39;m going the copy the text of a <a href="https://lipsum.com/" rel="nofollow">Lorem Ipsum text generator</a> just for email demonstration purposes. And after a while, we will have it available both in the Fediverse and sent via email.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/6/6/lorem-ipsum.png" alt=""></p>

<p>We finally have completed the WriteFreely installation and configuration, and now we can share our thoughts over the internet! However, it&#39;s not everything we can do with the server, taking advantage of the reverse proxy.</p>

<h3 id="additional-web-applications">Additional web applications</h3>

<p>If at some point you decide you want to make another website apart of WriteFreely, you can create another directory to point to a subdomain you can create, without the need to purchase another one. and actually, I already did a subdomain for <em>another</em> project I want to do. This one is less important than the one for the domain purchased for this tutorial, so for this one I can say I plan to do a dynamic guide for commands, abilities, combat styles and finish commands for Kingdom Hearts Birth by Sleep Final Mix. I&#39;m aware <a href="https://bbsmeldguide.lol/" rel="nofollow">there&#39;s already a similar website</a> (very good, by the way), but it&#39;s not complete with what I want to integrate, besides lacking option to visualize the commands on different languages. For example, change freely between English, Spanish, Japanese, Italian, French and German. But I&#39;m deviating from the topic.</p>

<p>I will do this process from my main server, and not from the tutorial server anymore. For it to be ready from now. My server is on a Raspberry Pi OS system (based on Debian), but I will still provide instructions for Arch.</p>

<p>First, I recommend creating a folder next to the main WriteFreely folder. In my case, it would be on <code>/var/www/bbs</code>, and place there your files for the additional site. For now, I just have the test page.</p>

<p>Once created the folder and placed the files, let&#39;s enable a new port and reverse proxy host for our subdomain.</p>

<p>For the first part, we&#39;re gonna modify the Apache configuration files to pass the traffic through more ports.</p>

<p>On Arch we will modify the main configuration file.</p>

<pre><code class="language-bash">sudo nano /etc/httpd/conf/httpd.conf 
</code></pre>

<p>On Debian, the port file.</p>

<pre><code class="language-bash">sudo nano /etc/apache2/ports.conf
</code></pre>

<p>Let&#39;s sear for the line <code>Listen 80</code>, and just below it, we will put a new line with a new port. In my case, I used the port <code>8084</code>.</p>

<pre><code>Listen 80
Listen 8084
</code></pre>

<p>Save the file, and now let&#39;s modify the virtual host file for the reverse proxy.</p>

<p>On Arch:</p>

<pre><code class="language-bash">sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf 
</code></pre>

<p>On Debian:</p>

<pre><code class="language-bash">sudo nano /etc/apache2/sites-enabled/000-default.conf
</code></pre>

<p>And below the content we added before, we would put the next content:</p>

<pre><code class="language-xml">&lt;Directory /path/to/the/created/folder&gt;
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
&lt;/Directory&gt;

&lt;VirtualHost *:8084&gt;
	DocumentRoot /path/to/the/created/folder
&lt;/VirtualHost&gt;
</code></pre>

<p>Once the virtual host has been created, let&#39;s restart the Apache service.</p>

<p>On Arch:</p>

<pre><code class="language-bash">sudo systemctl restart httpd
</code></pre>

<p>On Debian:</p>

<pre><code class="language-bash">sudo systemctl restart apache2
</code></pre>

<p>Now, let&#39;s go to the <a href="https://one.dash.cloudflare.com" rel="nofollow">Cloudflare Zero Trust control panel</a> to create the subdomain.</p>

<p>Once there, let&#39;s go to the Networks link on the left panel, and once there, in the middle, we&#39;re gonna see our tunnel.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/cf-sub-1-es.png" alt=""></p>

<p>We click on our tunnel, and on the panel on the right, click on the Edit button. On this new panel, we click on the second tab, Public host name. We should be on this panel.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/cf-sub-2-es.png" alt=""></p>

<p>If we click on the Add a public host name button, we will advance to this screen. Which I conveniently I already filled with my subdomain data as a demonstration. It&#39;s important that on Service type, we select <code>HTTP</code>, and <strong>not</strong> <code>HTTPS</code>.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/cf-sub-3-es.png" alt=""></p>

<p>And when we click on the Save hostname button, it will appear automatically on our tunnel.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/cf-sub-4.png" alt=""></p>

<p>And we can also see our separate site as well.</p>

<p><img src="https://val-vgms.gay/img/media/20250217/bbs-test.png" alt=""></p>

<h3 id="final-notes">Final notes</h3>

<p>We have finally finished with this journey to configure our whole new server from scratch to have a WriteFreely instance to have a fully functioning blog, and potentially extend the capacities of our server to offer more services.</p>

<p>It was an experience on which I learned a lot, both to configure this server and even writing this tutorial. I know it&#39;s a really extended post, but I think that, by covering every point in great detail, it can help a lot of people to not have to do this process by looking separate tutorials to be able to fulfil this task. Because, let&#39;s be honest. The tutorial found in the WriteFreely official page doesn&#39;t explain a lot of things in depth, and even this post may generate a few questions.</p>

<p>That&#39;s why I make myself available to assist you in every way I can. Both on <a href="https://tkz.one/@val_vgms/" rel="nofollow">my Mastodon profile</a> and via <a href="https://signal.me/#eu/bPKuSbcNILzG7IS2_7r7spf_Et-zgf3Sok0K7DdvDtkTKu9mHA5NQJ-4CjOKvRm4" rel="nofollow">Signal messaging</a>.</p>

<p>See ya on the next post!</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/create-your-writefreely-instance-without-suffering-too-much-in-the-process</guid>
      <pubDate>Sun, 02 Mar 2025 09:46:11 -0600</pubDate>
    </item>
    <item>
      <title>(Some of) The Fediverse platforms</title>
      <link>https://val-vgms.gay/vo/some-of-the-fediverse-platforms</link>
      <description>&lt;![CDATA[In a href=&#34;https://val-vgms.gay/vo/opinion-traditional-vs-alternative-or-decentralized-social-networks&#34; title=&#34;[Opinion] Traditional vs alternative or decentralized social networks. - Val (En)&#34;my previous post/a, I talked a bit about the existence of alternative social networks, giving special emphasis on the Fediverse, but I didn&#39;t really get into detail about which are those. So, in this kind of sequel, I&#39;ll mention some of the platforms I know, both the ones I have personally tried, and the ones I&#39;ve been interested, but have not tried yet.&#xA;&#xA;!--more--&#xA;&#xA;h3Contents/h3&#xA;&#xA;ol&#xA;lia href=#triedThe ones I&#39;ve had the pleasure of try/a/li&#xA;ol&#xA;lia href=#diasporaDiaspora, alternative to Facebook/a/li&#xA;lia href=#mastodonMastodon, alternative to X/a/li&#xA;lia href=#blueskyBluesky, (another) alternative to X/a/li&#xA;lia href=#pixelfedPixelfed, alternative to Instagram/a/li&#xA;lia href=#writefreelyWriteFreely, alternative to Tumblr?/a/li&#xA;lia href=#signalBonus: Signal, alternative to WhatsApp and Telegram/a/li&#xA;/ol&#xA;lia href=#otherThe ones I&#39;ve been interested in/a/li&#xA;ol&#xA;lia href=#peertubePeerTube, alternative to YouTube and Dailymotion/a/li&#xA;lia href=#friendicaFriendica, (another) alternative to Facebook/a/li&#xA;lia href=#lemmyLemmy, alternative to Reddit/a/li&#xA;/ol&#xA;lia href=#extrasAnd so much more/a/li&#xA;/ol&#xA;&#xA;h3 id=&#34;tried&#34;The ones I&#39;ve had the pleasure of try/h3&#xA;&#xA;Obviously I wouldn&#39;t have done any of these two posts if I weren&#39;t already in this world. I have even formed communities in some of these platforms. Let&#39;s start with the platforms on which I have already had an account, and listen first hand from me what I think of these platforms.&#xA;&#xA;h4 id=diaspora&#34;Diaspora, alternative to Facebook/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Diaspora.png&#34; /&#xA;&#xA;To say the truth, I tried this project back in 2018, and it really didn&#39;t convince me, and I abandoned my account.&#xA;&#xA;The idea of decentralization seemed really good to me back then, however, I thought the idea of having to choose who the posts were directed to without a completely defined friend/follower system was pretty incomplete to me. Although this really precise focus for privacy may be okay for people really looking to protect their data from organizations or other malicious people, so it&#39;s an option to consider. Also, as I said, several years have passed, so things may have really evolved, so don&#39;t just take my word, and better try it yourself.&#xA;&#xA;Link to the project: a href=&#34;https://diasporafoundation.org/&#34;The Diaspora* Project/a&#xA;&#xA;h4 id=&#34;mastodon&#34;Mastodon, alternative to X/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Mastodon.png&#34; /&#xA;&#xA;I dare to say that, from this list, this one is the most known one, to the point of becoming a representative of the Fediverse.&#xA;&#xA;This microblogging platform is powered with enhanced options for content warnings, custom emojis by instance, different visualization options on PC, adding extra info to your profile (I use it for links, but I have seen other people use it to add their pronouns or skills, to say something), and verification options for content you write on the rest of the internet, among several others. Also, the options for different types of timelines (followers, instance and federated) give more freedom for what you see. And speaking purely from my personal experience, it&#39;s easier to form communities once you settle in your instance. And in case you decide the instance you chose is not your place, account migration is relatively easy, although posts (for now) stay on the instance of origin.&#xA;&#xA;Also, the different apps available to interact with this network are wonderful, or at least the ones I&#39;ve tried on Android and on PC. Sadly, I haven&#39;t tried on iOS, and I don&#39;t plan to do it soon, so you&#39;ll have to live with that doubt... unless you have an Apple device.&#xA;&#xA;Link to the project: a href=&#34;https://joinmastodon.org/&#34;Mastodon - Decentralized Social Media/a&#xA;&#xA;h4 id=&#34;bluesky&#34;Bluesky, (another) alternative to X/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/BlueSky.png&#34; /&#xA;&#xA;Basically Twitter 2.0, although (for now) without all the toxicity, and what personally hurts me the most, without the option to receive notifications from a specific profile.&#xA;&#xA;Born at first as an internal Twitter project in 2019, wanting to experiment with decentralization and open source, I really consider it a good platform if you&#39;re really used to Twitter (or X). Recently, it has evolved pretty much in their moderation politics, and although it technically is a decentralized project, I haven&#39;t really heard of another server beyond the main one. However, you can male your username to be your own domain, but honestly, I haven&#39;t tinkered that much with that. Although the documentation for mounting your own server is pretty well explained, that&#39;s more oriented towards small communities.&#xA;&#xA;It also has its official apps for Android and iOS, and, as they say, they also want to launch image sharing and short videos services.&#xA;&#xA;Link to the project: a href=&#34;https://bsky.social/&#34;Bluesky/a&#xA;&#xA;h4 id=&#34;pixelfed&#34;Pixelfed, alternative to Instagram/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Pixelfed.png&#34; /&#xA;&#xA;Image and video sharing platform simple and to the point.&#xA;&#xA;From my humble point of view, this platform doesn&#39;t really offer something new, which in fact is not a negative point, because it allows you to adapt really quickly to the platform. It also has functions for posting stories, post collections (that work as albums), edition filters inside the service itself, and something I do consider interesting, the option to add descriptive texts to pictures. Particularly useful for its interconnection with the Fediverse.&#xA;&#xA;It has official apps for iOS and Android, although they are in beta phase and not all functions are available. Although there are more complete third-party apps. And I do really consider it&#39;s worth it.&#xA;&#xA;Link to the project: a href=&#34;https://pixelfed.org/&#34;Pixelfed - Decentralized social media/a&#xA;&#xA;h4 id=&#34;writefreely&#34;WriteFreely, alternative to Tumblr?/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/WriteFreely.png&#34; /&#xA;&#xA;This is a very simplistic blog platform, and it allows text formatting using Markdown and HTML interchangeably, besides in blog configurations you can customize your blog theme using CSS, which makes it somewhat complex to modify, butt the default appearance is really nice to the eye (although I maybe should work in a gray or dark theme so it doesn&#39;t hurt the eyes so much xd).&#xA;&#xA;The default editor doesn&#39;t really provide the option to upload pictures to the server, so iin theory/i you should host your pictures in an external server , and link them to your blog with the image tags. But here, yours truly hosts her own instance (in fact, a href=&#34;https://val-vgms.gay/vo&#34;this blog/a is powered by WriteFreely, and I will soon post a storytime about how I prepared my own server for that), and I&#39;m hosting the pictures directly on the image folder on the server.&#xA;&#xA;Still, there are several good options out there if you can&#39;t or don&#39;t want to host your own server.&#xA;&#xA;Link to the project: a href=&#34;https://writefreely.org/&#34;WriteFreely/a&#xA;&#xA;h4 id=&#34;signal&#34;Bonus: Signal, alternative to WhatsApp and Telegram/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Signal.png&#34; /&#xA;&#xA;This is not a decentralized social network per se, but a private messaging open source app, which means, besides not being under a corporate organization, it can be studied, improved and distributed if you have the knowledge for it.&#xA;&#xA;It has practically everything you&#39;d want from a messaging app. End-to-end encryption, groups, stories, message formatting, pictures, videos, voice messages, and hide a text until you tap on it (spoiler alert, anyone?). As for message backup, you have to manually do it, and these backups are not stored automatically in a server. They are stored on your device as an option to recover it on another one later.&#xA;&#xA;It&#39;s worth mentioning that you must first install the app on your phone, with apps for Android and iOS, and then you can sync it with a PC, with clients for Windows, Mac OS and Linux.&#xA;&#xA;And although you do require a phone number to register, this is protected for other people through a username that you share with a link to your profile. Another really good project... if you have more than one contact.&#xA;&#xA;Link to the project: a href=&#34;https://signal.org/&#34;Signal     Home/a&#xA;&#xA;h3 id=&#34;otras&#34;The ones I&#39;ve been interested in/h3&#xA;&#xA;Obviously this is just the tip of the iceberg. There are plenty of platforms to explore, with different purposes, that I&#39;ve also been interested in, but I haven&#39;t tried yet. Let&#39;s mention some of them and their main features without going too much into detail.&#xA;&#xA;h4 id=&#34;peertube&#34;PeerTube, alternative to YouTube and Dailymotion/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/PeerTube.png&#34; /&#xA;&#xA;Platform to play and share video and streaming. Videos can easily be downloaded, and playback uses P2P protocols so the workload of small servers is reduced, and to improve the experience for everyone in general.&#xA;&#xA;Link to the project: a href=&#34;https://joinpeertube.org/&#34;What is PeerTube? | JoinPeerTube/a&#xA;&#xA;h4 id=&#34;friendica&#34;Friendica, (another) alternative to Facebook/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Friendica.jpg&#34; /&#xA;&#xA;Besides the common functions of macroblogging platforms, you can also follow profiles on Diaspora, ActivityPub and Bluesky, directly from your Friendica account. You can also post directly to WordPress and Tumblr.&#xA;&#xA;Link to the project: a href=&#34;https://friendi.ca/&#34;Friendica - A Decentralized Social Network/a&#xA;&#xA;h4 id=&#34;lemmy&#34;Lemmy, alternative to Reddit/h4&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Lemmy.png&#34; /&#xA;&#xA;It has the capability to post threads with images and links, besides upvote and downvote comments. Although the communities you can create are limited to the instance you join to, you can always comment and follow communities and people in other instances.&#xA;&#xA;Link to the project: a href=&#34;https://join-lemmy.org/&#34;Lemmy - A link aggregator for the fediverse/a&#xA;&#xA;h3 id=&#34;extras&#34;And so much more/h3&#xA;&#xA;Evidently, by being an open space on the internet, there are so many platforms that have been born and perished, and many others still standing. Precisely there&#39;s a Wikipedia article listing a href=&#34;https://en.wikipedia.org/wiki/Comparisonofsoftwareandprotocolsfordistributedsocialnetworking&#34;the existing platforms and protocols for decentralized networks/a, so we have several options. But I consider the ones on my list to be the most common we can find, making it easier to find communities.&#xA;&#xA;But I insist, not all of these spaces are for everyone, for diverse reasons. So if you decide to stay on the traditional networks, it&#39;s okay. Here we don&#39;t judge anyone. :P&#xA;&#xA;Officially, I have overexplained this topic, so I better say goodbye, hoping you like these posts. See ya later!]]&gt;</description>
      <content:encoded><![CDATA[<p>In <a href="https://val-vgms.gay/vo/opinion-traditional-vs-alternative-or-decentralized-social-networks" title="[Opinion] Traditional vs alternative or decentralized social networks. - Val (En)" rel="nofollow">my previous post</a>, I talked a bit about the existence of alternative social networks, giving special emphasis on the Fediverse, but I didn&#39;t really get into detail about which are those. So, in this kind of sequel, I&#39;ll mention some of the platforms I know, both the ones I have personally tried, and the ones I&#39;ve been interested, but have not tried yet.</p>



<h3>Contents</h3>

<ol><li><a href="#tried" rel="nofollow">The ones I&#39;ve had the pleasure of try</a></li>
<ol><li><a href="#diaspora" rel="nofollow">Diaspora, alternative to Facebook</a></li>
<li><a href="#mastodon" rel="nofollow">Mastodon, alternative to X</a></li>
<li><a href="#bluesky" rel="nofollow">Bluesky, (another) alternative to X</a></li>
<li><a href="#pixelfed" rel="nofollow">Pixelfed, alternative to Instagram</a></li>
<li><a href="#writefreely" rel="nofollow">WriteFreely, alternative to Tumblr?</a></li>
<li><a href="#signal" rel="nofollow">Bonus: Signal, alternative to WhatsApp and Telegram</a></li></ol>
<li><a href="#other" rel="nofollow">The ones I&#39;ve been interested in</a></li>
<ol><li><a href="#peertube" rel="nofollow">PeerTube, alternative to YouTube and Dailymotion</a></li>
<li><a href="#friendica" rel="nofollow">Friendica, (another) alternative to Facebook</a></li>
<li><a href="#lemmy" rel="nofollow">Lemmy, alternative to Reddit</a></li></ol>
<li><a href="#extras" rel="nofollow">And so much more</a></li></ol>

<h3 id="tried">The ones I&#39;ve had the pleasure of try</h3>

<p>Obviously I wouldn&#39;t have done any of these two posts if I weren&#39;t already in this world. I have even formed communities in some of these platforms. Let&#39;s start with the platforms on which I have already had an account, and listen first hand from me what I think of these platforms.</p>

<h4 id="diaspora&#34;">Diaspora, alternative to Facebook</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/Diaspora.png"/></p>

<p>To say the truth, I tried this project back in 2018, and it really didn&#39;t convince me, and I abandoned my account.</p>

<p>The idea of decentralization seemed really good to me back then, however, I thought the idea of having to choose who the posts were directed to without a completely defined friend/follower system was pretty incomplete to me. Although this really precise focus for privacy may be okay for people really looking to protect their data from organizations or other malicious people, so it&#39;s an option to consider. Also, as I said, several years have passed, so things may have really evolved, so don&#39;t just take my word, and better try it yourself.</p>

<p>Link to the project: <a href="https://diasporafoundation.org/" rel="nofollow">The Diaspora* Project</a></p>

<h4 id="mastodon">Mastodon, alternative to X</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/Mastodon.png"/></p>

<p>I dare to say that, from this list, this one is the most known one, to the point of becoming a representative of the Fediverse.</p>

<p>This microblogging platform is powered with enhanced options for content warnings, custom emojis by instance, different visualization options on PC, adding extra info to your profile (I use it for links, but I have seen other people use it to add their pronouns or skills, to say something), and verification options for content you write on the rest of the internet, among several others. Also, the options for different types of timelines (followers, instance and federated) give more freedom for what you see. And speaking purely from my personal experience, it&#39;s easier to form communities once you settle in your instance. And in case you decide the instance you chose is not your place, account migration is relatively easy, although posts (for now) stay on the instance of origin.</p>

<p>Also, the different apps available to interact with this network are wonderful, or at least the ones I&#39;ve tried on Android and on PC. Sadly, I haven&#39;t tried on iOS, and I don&#39;t plan to do it soon, so you&#39;ll have to live with that doubt... unless you have an Apple device.</p>

<p>Link to the project: <a href="https://joinmastodon.org/" rel="nofollow">Mastodon – Decentralized Social Media</a></p>

<h4 id="bluesky">Bluesky, (another) alternative to X</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/BlueSky.png"/></p>

<p>Basically Twitter 2.0, although (for now) without all the toxicity, and what personally hurts me the most, without the option to receive notifications from a specific profile.</p>

<p>Born at first as an internal Twitter project in 2019, wanting to experiment with decentralization and open source, I really consider it a good platform if you&#39;re really used to Twitter (or X). Recently, it has evolved pretty much in their moderation politics, and although it technically is a decentralized project, I haven&#39;t really heard of another server beyond the main one. However, you can male your username to be your own domain, but honestly, I haven&#39;t tinkered that much with that. Although the documentation for mounting your own server is pretty well explained, that&#39;s more oriented towards small communities.</p>

<p>It also has its official apps for Android and iOS, and, as they say, they also want to launch image sharing and short videos services.</p>

<p>Link to the project: <a href="https://bsky.social/" rel="nofollow">Bluesky</a></p>

<h4 id="pixelfed">Pixelfed, alternative to Instagram</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/Pixelfed.png"/></p>

<p>Image and video sharing platform simple and to the point.</p>

<p>From my humble point of view, this platform doesn&#39;t really offer something new, which in fact is not a negative point, because it allows you to adapt really quickly to the platform. It also has functions for posting stories, post collections (that work as albums), edition filters inside the service itself, and something I do consider interesting, the option to add descriptive texts to pictures. Particularly useful for its interconnection with the Fediverse.</p>

<p>It has official apps for iOS and Android, although they are in beta phase and not all functions are available. Although there are more complete third-party apps. And I do really consider it&#39;s worth it.</p>

<p>Link to the project: <a href="https://pixelfed.org/" rel="nofollow">Pixelfed – Decentralized social media</a></p>

<h4 id="writefreely">WriteFreely, alternative to Tumblr?</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/WriteFreely.png"/></p>

<p>This is a very simplistic blog platform, and it allows text formatting using Markdown and HTML interchangeably, besides in blog configurations you can customize your blog theme using CSS, which makes it somewhat complex to modify, butt the default appearance is really nice to the eye (although I maybe should work in a gray or dark theme so it doesn&#39;t hurt the eyes so much xd).</p>

<p>The default editor doesn&#39;t really provide the option to upload pictures to the server, so <i>in theory</i> you should host your pictures in an external server , and link them to your blog with the image tags. But here, yours truly hosts her own instance (in fact, <a href="https://val-vgms.gay/vo" rel="nofollow">this blog</a> is powered by WriteFreely, and I will soon post a storytime about how I prepared my own server for that), and I&#39;m hosting the pictures directly on the image folder on the server.</p>

<p>Still, there are several good options out there if you can&#39;t or don&#39;t want to host your own server.</p>

<p>Link to the project: <a href="https://writefreely.org/" rel="nofollow">WriteFreely</a></p>

<h4 id="signal">Bonus: Signal, alternative to WhatsApp and Telegram</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/Signal.png"/></p>

<p>This is not a decentralized social network per se, but a private messaging open source app, which means, besides not being under a corporate organization, it can be studied, improved and distributed if you have the knowledge for it.</p>

<p>It has practically everything you&#39;d want from a messaging app. End-to-end encryption, groups, stories, message formatting, pictures, videos, voice messages, and hide a text until you tap on it (spoiler alert, anyone?). As for message backup, you have to manually do it, and these backups are not stored automatically in a server. They are stored on your device as an option to recover it on another one later.</p>

<p>It&#39;s worth mentioning that you must first install the app on your phone, with apps for Android and iOS, and then you can sync it with a PC, with clients for Windows, Mac OS and Linux.</p>

<p>And although you do require a phone number to register, this is protected for other people through a username that you share with a link to your profile. Another really good project... if you have more than one contact.</p>

<p>Link to the project: <a href="https://signal.org/" rel="nofollow">Signal &gt;&gt; Home</a></p>

<h3 id="otras">The ones I&#39;ve been interested in</h3>

<p>Obviously this is just the tip of the iceberg. There are plenty of platforms to explore, with different purposes, that I&#39;ve also been interested in, but I haven&#39;t tried yet. Let&#39;s mention some of them and their main features without going too much into detail.</p>

<h4 id="peertube">PeerTube, alternative to YouTube and Dailymotion</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/PeerTube.png"/></p>

<p>Platform to play and share video and streaming. Videos can easily be downloaded, and playback uses P2P protocols so the workload of small servers is reduced, and to improve the experience for everyone in general.</p>

<p>Link to the project: <a href="https://joinpeertube.org/" rel="nofollow">What is PeerTube? | JoinPeerTube</a></p>

<h4 id="friendica">Friendica, (another) alternative to Facebook</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/Friendica.jpg"/></p>

<p>Besides the common functions of macroblogging platforms, you can also follow profiles on Diaspora, ActivityPub and Bluesky, directly from your Friendica account. You can also post directly to WordPress and Tumblr.</p>

<p>Link to the project: <a href="https://friendi.ca/" rel="nofollow">Friendica – A Decentralized Social Network</a></p>

<h4 id="lemmy">Lemmy, alternative to Reddit</h4>

<p><img src="https://val-vgms.gay/img/media/20250203/Lemmy.png"/></p>

<p>It has the capability to post threads with images and links, besides upvote and downvote comments. Although the communities you can create are limited to the instance you join to, you can always comment and follow communities and people in other instances.</p>

<p>Link to the project: <a href="https://join-lemmy.org/" rel="nofollow">Lemmy – A link aggregator for the fediverse</a></p>

<h3 id="extras">And so much more</h3>

<p>Evidently, by being an open space on the internet, there are so many platforms that have been born and perished, and many others still standing. Precisely there&#39;s a Wikipedia article listing <a href="https://en.wikipedia.org/wiki/Comparison_of_software_and_protocols_for_distributed_social_networking" rel="nofollow">the existing platforms and protocols for decentralized networks</a>, so we have several options. But I consider the ones on my list to be the most common we can find, making it easier to find communities.</p>

<p>But I insist, not all of these spaces are for everyone, for diverse reasons. So if you decide to stay on the traditional networks, it&#39;s okay. Here we don&#39;t judge anyone. :P</p>

<p>Officially, I have overexplained this topic, so I better say goodbye, hoping you like these posts. See ya later!</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/some-of-the-fediverse-platforms</guid>
      <pubDate>Tue, 11 Feb 2025 07:55:53 -0600</pubDate>
    </item>
    <item>
      <title>[Opinion] Traditional vs alternative or decentralized social networks.</title>
      <link>https://val-vgms.gay/vo/opinion-traditional-vs-alternative-or-decentralized-social-networks</link>
      <description>&lt;![CDATA[Let&#39;s face the reality. The changes in social politics in United States has caused that social networks adopt guidelines that further seek to affect the rights of vulnerable people, like women, people of color, migrants in USA, and LGBTIQPA+ people. And that&#39;s why a lot of people search alternatives in other networks. But what are our options? Well, I&#39;ll share some of my experience.&#xA;&#xA;!--more--&#xA;&#xA;h3Contents/h3&#xA;&#xA;ol&#xA;lia href=#backgroundA little bit of background/a/li&#xA;lia href=#fediverseHow do alternative networks work/a/li&#xA;lia href=#troubleTroubles in the paradise: Not everything is so perfect/a/li&#xA;lia href=#fedipactBlocking the big corporations/a/li&#xA;lia href=#valPersonal comments: What are my plans?/a/li&#xA;lia href=#endFinal comments: What can I suggest you to do?/a/li&#xA;/ol&#xA;&#xA;h3 id=&#34;background&#34;A little bit of background/h3&#xA;&#xA;It&#39;s not that everything went downhill overnight. In fact, one of the first times I saw a migration from a social network was when Elon Musk bought what used to be Twitter back then in the now distant year of 2022, and a lot of people decided to look for alternatives. The ones that resonated the most were Tumblr and Mastodon.&#xA;&#xA;And now, recently, in mid-January 2025, Meta (owners of Facebook, Instagram, Threads and WhatsApp) changed their moderation guidelines i&#34;in favor of a greater freedom of speech&#34;/i, but that now they allow certain dehumanization to the vulnerable groups mentioned above, distorting the rules of such speech. And this time, several movements have organized to migrate to these alternative networks, such #VámonosJuntas and #GlobalSwitchDay to migrate to Mastodon. But not everyone is aware of this platform, or others like BlueSky, Pixelfed, Friendica or the ones you can think about.&#xA;&#xA;But these networks have something special that separates them from networks managed by corporations like Meta, X corp, Microsoft and others. Most of them are managed by individuals like you and me. But how do they do it?&#xA;&#xA;h3 id=&#34;fediverse&#34;How do alternative networks work/h3&#xA;&#xA;Now, the good stuff on this matter. The interesting point is that most of the networks mentioned on this post is that they don&#39;t rely only on one server, but on several servers speaking the same language, interconnected between them, located in several places all around the world. This is known as bdecentralization/b. Because, unlike these networks, traditional networks have their servers on one bcentral/b location, and they depend on only one organization.&#xA;&#xA;And platforms like Mastodon, Pixelfed, or even BlueSky don&#39;t rely only on a single person. Anyone with the knowledge and will can create a server to extend the platform of their preference, or register on the server of anyone else. There are several ways to make the decentralized networks grow.&#xA;&#xA;The first one that I knew was based on this principle was a href=&#34;https://diasporafoundation.org&#34; title=&#34;The Diaspora* Project&#34;Diaspora/a, and this one uses its own protocol, called Diaspora protocol (yeah, they didn&#39;t want to think too much with this) to communicate with all of the servers of this network.&#xA;&#xA;BlueSky also uses its own protocol, this time called Authenticated Transfer Protocol. This one basically does the same thing as the Diaspora one, but this seems to be exclusive (at the moment) for BlueSky. Although I don&#39;t doubt that it will soon be available to interact with the apps they will create.&#xA;&#xA;And a href=&#34;https://joinmastodon.org/es&#34;Mastodon/a, a href=&#34;https://pixelfed.org&#34;Pixelfed/a and a href=&#34;https://writefreely.org&#34;WriteFreely/a, among others, use the ActivityPub protocol to interact between them. This protocol was created by the a href=&#34;https://www.w3.org/&#34;W3C/a, or the consortium that defines the used standards around all of the internet back then in 2018, however, the concept of Fediverse was created, as they say, in 2016. Which is based, as the name says, in the federation between servers.&#xA;&#xA;What do I mean with federation? Simple. Each server, or instance, can decide to federate (or share and receive content) with another instance. For example, let&#39;s say that Emily, Rain and Chiaki are good friends, and they all chat between them. Chiaki also befriends Nagisa and Theo. Eventually, Theo befriends Emily and Rain, too. At some point, Emily decides she doesn&#39;t want to be friends with Theo, but still wants to talk to Chiaki and Nagisa, and Theo still talks to Nagisa, Chiaki and Rain. Theo cannot communicate with Emily anymore.&#xA;&#xA;Illustrated, it would be more or less like this, with the colored lines indicating who can communicate with who.&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Rainverse.png&#34; /&#xA;&#xA;This was the first rough example that I could think of, but I hope it can serve as an illustrative point of what the federation is.&#xA;&#xA;Going back to the topic of servers, we can see that each person here acts as an instance of one of these platforms.&#xA;&#xA;And all of these networks are part of this magical world of The Fediverse. I&#39;ll leave this illustration of some of the platforms that are part of it.&#xA;&#xA;img src=&#34;https://val-vgms.gay/img/media/20250203/Fediverse.png&#34; /&#xA;&#xA;As you can see, there are platforms speaking more than one protocol, and that&#39;s why even networks not speaking the ActivityPub protocol bdo/b form part of the Fediverse. As a person that you may know that speaks two or even three languages (yours truly, for example, also has a href=&#34;https://val-vgms.gay/val&#34; title=&#34;Val&#34;the Spanish version of this blog/a, but that&#39;s not the point :P).&#xA;&#xA;Speaking a little bit more in depth about instances, there are obviously all kinds of instances. Both for general purposes like the ones we&#39;re used to, and for specific purposes or for certain communities. For example, my current Mastodon profile is in an geek-themed instance, more focused in videogames, comics and tech (and it&#39;s a coincidence that I fill the profile, although I also share my personal drama), my Pixelfed profile is in a general purpose instance, but with preference for the Spanish language, and obviously my WriteFreely instance is completely closed to, well, basically being a monument to my ego. Also, there are instances dedicated to Train fans, or to be feminist transinclusive spaces, or why not? Furry communities for the Fediverse.&#xA;&#xA;I&#39;m generally well settled with my presence in the Fediverse, but of course there are not so pretty stuff in there. Allow me to explain myself.&#xA;&#xA;h3 id=&#34;trouble&#34;Troubles in the paradise: Not everything is so perfect/h3&#xA;&#xA;By being an open space where every kind of people can enter, and all kinds of communities can exist, obviously there are undesirable communities. From far-right communities to entire instances dedicated to sharing adult content (sadly, not necessarily with adults. I don&#39;t want to explicitly say it, but you get me). And even idecent/i communities can have troubles, more likely related with content moderation. For example, on really big instances, moderators can&#39;t handle too many people, and a lot of shady things end up seeing the light. And on really small instances, you can have issues with the people over there. In fact, a few days ago I migrated from a small Mastodon instance to a somewhat bigger but well administered one, due to personal issues I had with someone over there. I won&#39;t spill my personal life (that much xd), but I do say I don&#39;t feel like walking on eggshells anymore.&#xA;&#xA;With that said, several people whom I have interacted with say they&#39;re really well in the Fediverse, and don&#39;t tend to find that kind of inappropriate content. However, we must thank moderators and administrators of the instances for that, who are in charge of overseeing the content and defederate (or stop communication) and blocking those kinds of instances. That&#39;s why it&#39;s important to go to an instance with a good moderation team that it&#39;s present and interacts with the instance.&#xA;&#xA;Furthermore, there have been efforts by corporations, wanting to integrate with the Fediverse, like Meta with Threads and Automattic with Tumblr. Honestly, at first I thought it could be a good idea so more people could know this world. But as you may know, these corporations like to collect data and sell it to announcers, besides being able to be used for politic manipulation (as, some people say, it happened with X in the 2024 USA elections). That&#39;s why they represent big threats to the privacy of people in the Fediverse that precisely seek to escape those networks.&#xA;&#xA;h3 id=&#34;fedipact&#34;Blocking the big corporations/h3&#xA;&#xA;With this, there are some initiatives to stop communicating with the servers of these corporations. The most important ones, the a href=&#34;https://fedipact.online/&#34; title=&#34;ANTI-META FEDI PACT&#34;FediPact/a for Meta, and the a href=&#34;https://fedipact2.online/&#34; title=&#34;The Anti-Automattic ActivityPub Accord&#34;FediPact 2/a for Automattic, both initiatives organized by a href=&#34;https://vantaa.black/&#34; title=&#34;v a n t a b l a c k&#34;Vanta Rainbow Black/a. These initiatives show a great feeling of anger and fighting against corporations so they don&#39;t contaminate these spaces with their toxicity. Or at least, that&#39;s how I see it.&#xA;&#xA;These are initiatives that instance administrators sign to compromise to block these corporations, and accessing the links of these FediPacts, you can see the instances that have already signed them. Although I&#39;ll be honest. These sites are very fuck my eyes, so I recommend that, if you&#39;re able to, reduce your screen brightness before entering. ^^;&#xA;&#xA;Fun fact: As creator of this space connected with the Fediverse, I also wanted to sign these pacts and block these servers. But it seems that, as WriteFreely doesn&#39;t have a federated timeline, I think the software developers didn&#39;t think of adding the option to defederate from WriteFreely, so, in the meantime, I have my hands tied.&#xA;&#xA;With that said, there are sites like a href=&#34;https://fediverse.observer/&#34; Fediverse Observer/a and a href=&#34;https://fedi.garden/&#34;Fedi Garden/a that can help you locate an instance of the type of platform of your preference, under certain parameters. Like language, location, size, platform, and topics. And in the particular case of Fedi Garden, it only shows instances that have signed the FediPact.&#xA;&#xA;h3 id=&#34;val&#34;Personal comments: What are my plans?/h3&#xA;&#xA;Obviously I&#39;m writing this post mentioning these alternative networks for a particular reason. As user of social media and free software enthusiast, my plan is to slowly move to these alternative networks. Actually, this process has already started. My main social network where I publish advances of my translations and interact with people is Mastodon, and my X profile has already been deleted since December 2024. Even my Instagram profile and my public Facebook page are being discontinued, and eventually I&#39;m gonna end up deleting those profiles too, keeping only my personal Facebook profile only to keep communicating with my family and friends who don&#39;t want to switch to the Fediverse. Because it&#39;s also valid not wanting to do it. It&#39;s not an obligation, but a recommendation from the bottom of my heart&#xA;&#xA;h3 id=&#34;end&#34;Final comments: What can I suggest you to do?/h3&#xA;&#xA;Short answer: Nothing xd.&#xA;&#xA;This post is actually more informative to make known this digital world with more freedom. Although I&#39;d personally like that more people were interested in this, I know it&#39;s not for everyone. And if you try some of the projects of the Fediverse, and decide it&#39;s not for you, it&#39;s okay. I&#39;d simply like to see this as a way to expand people&#39;s horizons, and if this may sound too idealist, well, maybe I am. In the end, this is merely my personal opinion.&#xA;&#xA;And if you decide to stay, well, please follow me on a href=&#34;https://tkz.one/@val_vgms&#34; title=&#34;Val - TKZ.One&#34;Mastodon/a and a href=&#34;https://pixelfed.es/val.vgms&#34;Pixelfed/a.&#xA;&#xA;hr /&#xA;&#xA;This post is kind of long on its own, and I haven&#39;t covered in detail the existing platforms. That&#39;s why, I have a href=&#34;https://val-vgms.gay/vo/some-of-the-fediverse-platforms&#34; title=&#34;(Some of) The Fediverse platforms&#34;a second part/a, dedicated only and exclusively to mention in more detail the existing Fediverse platforms and their main features.&#xA;&#xA;And if you got here, thanks a lot for reading. See ya! :D]]&gt;</description>
      <content:encoded><![CDATA[<p>Let&#39;s face the reality. The changes in social politics in United States has caused that social networks adopt guidelines that further seek to affect the rights of vulnerable people, like women, people of color, migrants in USA, and LGBTIQPA+ people. And that&#39;s why a lot of people search alternatives in other networks. But what are our options? Well, I&#39;ll share some of my experience.</p>



<h3>Contents</h3>

<ol><li><a href="#background" rel="nofollow">A little bit of background</a></li>
<li><a href="#fediverse" rel="nofollow">How do alternative networks work</a></li>
<li><a href="#trouble" rel="nofollow">Troubles in the paradise: Not everything is so perfect</a></li>
<li><a href="#fedipact" rel="nofollow">Blocking the big corporations</a></li>
<li><a href="#val" rel="nofollow">Personal comments: What are my plans?</a></li>
<li><a href="#end" rel="nofollow">Final comments: What can I suggest you to do?</a></li></ol>

<h3 id="background">A little bit of background</h3>

<p>It&#39;s not that everything went downhill overnight. In fact, one of the first times I saw a migration from a social network was when Elon Musk bought what used to be Twitter back then in the now distant year of 2022, and a lot of people decided to look for alternatives. The ones that resonated the most were Tumblr and Mastodon.</p>

<p>And now, recently, in mid-January 2025, Meta (owners of Facebook, Instagram, Threads and WhatsApp) changed their moderation guidelines <i>“in favor of a greater freedom of speech”</i>, but that now they allow certain dehumanization to the vulnerable groups mentioned above, distorting the rules of such speech. And this time, several movements have organized to migrate to these alternative networks, such <a href="/vo/tag:V%C3%A1monosJuntas" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">VámonosJuntas</span></a> and <a href="/vo/tag:GlobalSwitchDay" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">GlobalSwitchDay</span></a> to migrate to Mastodon. But not everyone is aware of this platform, or others like BlueSky, Pixelfed, Friendica or the ones you can think about.</p>

<p>But these networks have something special that separates them from networks managed by corporations like Meta, X corp, Microsoft and others. Most of them are managed by individuals like you and me. But how do they do it?</p>

<h3 id="fediverse">How do alternative networks work</h3>

<p>Now, the good stuff on this matter. The interesting point is that most of the networks mentioned on this post is that they don&#39;t rely only on one server, but on several servers speaking the same language, interconnected between them, located in several places all around the world. This is known as <b>decentralization</b>. Because, unlike these networks, traditional networks have their servers on one <b>central</b> location, and they depend on only one organization.</p>

<p>And platforms like Mastodon, Pixelfed, or even BlueSky don&#39;t rely only on a single person. Anyone with the knowledge and will can create a server to extend the platform of their preference, or register on the server of anyone else. There are several ways to make the decentralized networks grow.</p>

<p>The first one that I knew was based on this principle was <a href="https://diasporafoundation.org" rel="nofollow">Diaspora</a>, and this one uses its own protocol, called Diaspora protocol (yeah, they didn&#39;t want to think too much with this) to communicate with all of the servers of this network.</p>

<p>BlueSky also uses its own protocol, this time called Authenticated Transfer Protocol. This one basically does the same thing as the Diaspora one, but this seems to be exclusive (at the moment) for BlueSky. Although I don&#39;t doubt that it will soon be available to interact with the apps they will create.</p>

<p>And <a href="https://joinmastodon.org/es" rel="nofollow">Mastodon</a>, <a href="https://pixelfed.org" rel="nofollow">Pixelfed</a> and <a href="https://writefreely.org" rel="nofollow">WriteFreely</a>, among others, use the ActivityPub protocol to interact between them. This protocol was created by the <a href="https://www.w3.org/" rel="nofollow">W3C</a>, or the consortium that defines the used standards around all of the internet back then in 2018, however, the concept of Fediverse was created, as they say, in 2016. Which is based, as the name says, in the federation between servers.</p>

<p>What do I mean with federation? Simple. Each server, or instance, can decide to federate (or share and receive content) with another instance. For example, let&#39;s say that Emily, Rain and Chiaki are good friends, and they all chat between them. Chiaki also befriends Nagisa and Theo. Eventually, Theo befriends Emily and Rain, too. At some point, Emily decides she doesn&#39;t want to be friends with Theo, but still wants to talk to Chiaki and Nagisa, and Theo still talks to Nagisa, Chiaki and Rain. Theo cannot communicate with Emily anymore.</p>

<p>Illustrated, it would be more or less like this, with the colored lines indicating who can communicate with who.</p>

<p><img src="https://val-vgms.gay/img/media/20250203/Rainverse.png"/></p>

<p>This was the first rough example that I could think of, but I hope it can serve as an illustrative point of what the federation is.</p>

<p>Going back to the topic of servers, we can see that each person here acts as an instance of one of these platforms.</p>

<p>And all of these networks are part of this magical world of The Fediverse. I&#39;ll leave this illustration of some of the platforms that are part of it.</p>

<p><img src="https://val-vgms.gay/img/media/20250203/Fediverse.png"/></p>

<p>As you can see, there are platforms speaking more than one protocol, and that&#39;s why even networks not speaking the ActivityPub protocol <b>do</b> form part of the Fediverse. As a person that you may know that speaks two or even three languages (yours truly, for example, also has <a href="https://val-vgms.gay/val" title="Val" rel="nofollow">the Spanish version of this blog</a>, but that&#39;s not the point :P).</p>

<p>Speaking a little bit more in depth about instances, there are obviously all kinds of instances. Both for general purposes like the ones we&#39;re used to, and for specific purposes or for certain communities. For example, my current Mastodon profile is in an geek-themed instance, more focused in videogames, comics and tech (and it&#39;s a coincidence that I fill the profile, although I also share my personal drama), my Pixelfed profile is in a general purpose instance, but with preference for the Spanish language, and obviously my WriteFreely instance is completely closed to, well, basically being a monument to my ego. Also, there are instances dedicated to Train fans, or to be feminist transinclusive spaces, or why not? Furry communities for the Fediverse.</p>

<p>I&#39;m generally well settled with my presence in the Fediverse, but of course there are not so pretty stuff in there. Allow me to explain myself.</p>

<h3 id="trouble">Troubles in the paradise: Not everything is so perfect</h3>

<p>By being an open space where every kind of people can enter, and all kinds of communities can exist, obviously there are undesirable communities. From far-right communities to entire instances dedicated to sharing adult content (sadly, not necessarily with adults. I don&#39;t want to explicitly say it, but you get me). And even <i>decent</i> communities can have troubles, more likely related with content moderation. For example, on really big instances, moderators can&#39;t handle too many people, and a lot of shady things end up seeing the light. And on really small instances, you can have issues with the people over there. In fact, a few days ago I migrated from a small Mastodon instance to a somewhat bigger but well administered one, due to personal issues I had with someone over there. I won&#39;t spill my personal life (that much xd), but I do say I don&#39;t feel like walking on eggshells anymore.</p>

<p>With that said, several people whom I have interacted with say they&#39;re really well in the Fediverse, and don&#39;t tend to find that kind of inappropriate content. However, we must thank moderators and administrators of the instances for that, who are in charge of overseeing the content and defederate (or stop communication) and blocking those kinds of instances. That&#39;s why it&#39;s important to go to an instance with a good moderation team that it&#39;s present and interacts with the instance.</p>

<p>Furthermore, there have been efforts by corporations, wanting to integrate with the Fediverse, like Meta with Threads and Automattic with Tumblr. Honestly, at first I thought it could be a good idea so more people could know this world. But as you may know, these corporations like to collect data and sell it to announcers, besides being able to be used for politic manipulation (as, some people say, it happened with X in the 2024 USA elections). That&#39;s why they represent big threats to the privacy of people in the Fediverse that precisely seek to escape those networks.</p>

<h3 id="fedipact">Blocking the big corporations</h3>

<p>With this, there are some initiatives to stop communicating with the servers of these corporations. The most important ones, the <a href="https://fedipact.online/" title="ANTI-META FEDI PACT" rel="nofollow">FediPact</a> for Meta, and the <a href="https://fedipact2.online/" title="The Anti-Automattic ActivityPub Accord" rel="nofollow">FediPact 2</a> for Automattic, both initiatives organized by <a href="https://vantaa.black/" title="v a n t a b l a c k" rel="nofollow">Vanta Rainbow Black</a>. These initiatives show a great feeling of anger and fighting against corporations so they don&#39;t contaminate these spaces with their toxicity. Or at least, that&#39;s how I see it.</p>

<p>These are initiatives that instance administrators sign to compromise to block these corporations, and accessing the links of these FediPacts, you can see the instances that have already signed them. Although I&#39;ll be honest. These sites are very fuck my eyes, so I recommend that, if you&#39;re able to, reduce your screen brightness before entering. ^^;</p>

<p>Fun fact: As creator of this space connected with the Fediverse, I also wanted to sign these pacts and block these servers. But it seems that, as WriteFreely doesn&#39;t have a federated timeline, I think the software developers didn&#39;t think of adding the option to defederate from WriteFreely, so, in the meantime, I have my hands tied.</p>

<p>With that said, there are sites like <a href="https://fediverse.observer/" rel="nofollow"> Fediverse Observer</a> and <a href="https://fedi.garden/" rel="nofollow">Fedi Garden</a> that can help you locate an instance of the type of platform of your preference, under certain parameters. Like language, location, size, platform, and topics. And in the particular case of Fedi Garden, it only shows instances that have signed the FediPact.</p>

<h3 id="val">Personal comments: What are my plans?</h3>

<p>Obviously I&#39;m writing this post mentioning these alternative networks for a particular reason. As user of social media and free software enthusiast, my plan is to slowly move to these alternative networks. Actually, this process has already started. My main social network where I publish advances of my translations and interact with people is Mastodon, and my X profile has already been deleted since December 2024. Even my Instagram profile and my public Facebook page are being discontinued, and eventually I&#39;m gonna end up deleting those profiles too, keeping only my personal Facebook profile only to keep communicating with my family and friends who don&#39;t want to switch to the Fediverse. Because it&#39;s also valid not wanting to do it. It&#39;s not an obligation, but a recommendation from the bottom of my heart</p>

<h3 id="end">Final comments: What can I suggest you to do?</h3>

<p>Short answer: Nothing xd.</p>

<p>This post is actually more informative to make known this digital world with more freedom. Although I&#39;d personally like that more people were interested in this, I know it&#39;s not for everyone. And if you try some of the projects of the Fediverse, and decide it&#39;s not for you, it&#39;s okay. I&#39;d simply like to see this as a way to expand people&#39;s horizons, and if this may sound too idealist, well, maybe I am. In the end, this is merely my personal opinion.</p>

<p>And if you decide to stay, well, please follow me on <a href="https://tkz.one/@val_vgms" title="Val - TKZ.One" rel="nofollow">Mastodon</a> and <a href="https://pixelfed.es/val.vgms" rel="nofollow">Pixelfed</a>.</p>

<hr/>

<p>This post is kind of long on its own, and I haven&#39;t covered in detail the existing platforms. That&#39;s why, I have <a href="https://val-vgms.gay/vo/some-of-the-fediverse-platforms" title="(Some of) The Fediverse platforms" rel="nofollow">a second part</a>, dedicated only and exclusively to mention in more detail the existing Fediverse platforms and their main features.</p>

<p>And if you got here, thanks a lot for reading. See ya! :D</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/opinion-traditional-vs-alternative-or-decentralized-social-networks</guid>
      <pubDate>Mon, 10 Feb 2025 08:40:50 -0600</pubDate>
    </item>
    <item>
      <title>Congratulations, Valeria. You&#39;re excellent at losing friendships</title>
      <link>https://val-vgms.gay/vo/congratulations-valeria</link>
      <description>&lt;![CDATA[Bravo! I’m really impressed with you for your great ability to lose your last three best friends, every consecutive year without failing. And even more because you have lost the three of them for issues that were clearly your fault and by wanting to fix things, you just were able to make everything worse. I don’t know why you keep making an effort in wanting to keep relationships with people when obviously you can not. You’re always scared of being wrong with people, and you just don’t grow up as much as you tell people. Of course you deserve to be alone. I don’t know how you still have that spark of hope of things changing one day and you can have more stable interpersonal relationships. It’s evident you have way too many troubles, and you surely won’t be able to fix them. As much as you want to, that’s your nature. Just give up. It will be less tiring for you, and easier for everyone else to not reject you in the face. Although maybe they don’t even do it as discretely as you think. Why do you think nobody ever invites you to meet up? Why do you think you don’t fit in any group of people? Even your family barely tolerates you, even if you don’t realize it. You can put up the face of being stronger, but you know you’re weak. And this is too much for you.&#xA;&#xA;Sincerely, your inner demons.]]&gt;</description>
      <content:encoded><![CDATA[<p>Bravo! I’m really impressed with you for your great ability to lose your last three best friends, every consecutive year without failing. And even more because you have lost the three of them for issues that were clearly your fault and by wanting to fix things, you just were able to make everything worse. I don’t know why you keep making an effort in wanting to keep relationships with people when obviously you can not. You’re always scared of being wrong with people, and you just don’t grow up as much as you tell people. Of course you deserve to be alone. I don’t know how you still have that spark of hope of things changing one day and you can have more stable interpersonal relationships. It’s evident you have way too many troubles, and you surely won’t be able to fix them. As much as you want to, that’s your nature. Just give up. It will be less tiring for you, and easier for everyone else to not reject you in the face. Although maybe they don’t even do it as discretely as you think. Why do you think nobody ever invites you to meet up? Why do you think you don’t fit in any group of people? Even your family barely tolerates you, even if you don’t realize it. You can put up the face of being stronger, but you know you’re weak. And this is too much for you.</p>

<p>Sincerely, your inner demons.</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/congratulations-valeria</guid>
      <pubDate>Fri, 31 Jan 2025 14:20:56 -0600</pubDate>
    </item>
    <item>
      <title>I present you my blog</title>
      <link>https://val-vgms.gay/vo/i-present-you-my-blog</link>
      <description>&lt;![CDATA[Hello, people from WriteFreely and the known fediverse! My name is Valeria, Val for short. I’m a trans woman born in 1994, born in Mexico city and living in the metropolitan area of the mentioned one. And this is the first entry of I hope a lot in my little personal space. Welcome, everyone.&#xA;&#xA;!--more--&#xA;&#xA;Among many other things, I’m a queer webcomic translator, occasional gamer, enthusiast for the popularization of the Linux Desktop, and now apparently starting in the world of blog writing. You can see basically everything I do on my social media links, located on the contact page of the instance.&#xA;&#xA;This project is stored in a small server I have in my house, and really it is a personal whim which I had fantasized about for a long time. Since a few years ago I have wanted to deploy this little server just for the pleasure of doing it, and I originally wanted all of the backend (or the wires connecting what you don’t see) to be done completely from scratch by me, for the simple experience of learning how to do build and maintain it. But in the end, I choose WriteFreely for its interconnection with the fediverse, which provides more flexibility to connect with what I write.&#xA;&#xA;Also a thing that I tried for blogging was from when I had my Mastodon account on the TKZ instance, since Trankten did a great job linking the posts from his instance to a rudimentary blogging system. But I personally think it’s a little limited for what I intent to do, so I said, «better not».&#xA;&#xA;And what do I plan to post over here? Well, not much, really. Honestly, I think this blog may be useful for me to vent big thoughts that I can’t write in a standard post on a traditional social network. So I even consider it somewhat therapeutic.&#xA;&#xA;But it’s not the only thing I’d post. I’d also post tutorials for the things I like to do, or simple help posts. I may not be the most intelligent, but if it can be helpful to someone, I’ll gladly do it. I think the knowledge must not be privative, but shared.&#xA;&#xA;I’d also like to leave here a somewhat recent photo of the admin in the workplace restroom. This with the purpose of making this more human and personal.&#xA;&#xA;Photo of Val taking a selfie in front of a mirror. Long, semiwavy hair, dark brown hair. Black blouse, short sleeves, design of butterfly in rhinestones. Blue jeans.&#xA;&#xA;So I hope you enjoy this little space from my heart. See you later.]]&gt;</description>
      <content:encoded><![CDATA[<p>Hello, people from WriteFreely and the known fediverse! My name is Valeria, Val for short. I’m a trans woman born in 1994, born in Mexico city and living in the metropolitan area of the mentioned one. And this is the first entry of I hope a lot in my little personal space. Welcome, everyone.</p>



<p>Among many other things, I’m a queer webcomic translator, occasional gamer, enthusiast for the popularization of the Linux Desktop, and now apparently starting in the world of blog writing. You can see basically everything I do on my social media links, located on <a href="https://val-vgms.gay/contact" title="Links - Val" rel="nofollow">the contact page of the instance</a>.</p>

<p>This project is stored in a small server I have in my house, and really it is a personal whim which I had fantasized about for a long time. Since a few years ago I have wanted to deploy this little server just for the pleasure of doing it, and I originally wanted all of the backend (or the wires connecting what you don’t see) to be done completely from scratch by me, for the simple experience of learning how to do build and maintain it. But in the end, I choose WriteFreely for its interconnection with the fediverse, which provides more flexibility to connect with what I write.</p>

<p>Also a thing that I tried for blogging was from when I had my Mastodon account on <a href="https://tkz.one" title="TKZ.One" rel="nofollow">the TKZ instance</a>, since <a href="https://tkz.one/@trankten/" title="Trankten - TKZ.One" rel="nofollow">Trankten</a> did a great job linking the posts from his instance to a rudimentary blogging system. But I personally think it’s a little limited for what I intent to do, so I said, «better not».</p>

<p>And what do I plan to post over here? Well, not much, really. Honestly, I think this blog may be useful for me to vent big thoughts that I can’t write in a standard post on a traditional social network. So I even consider it somewhat therapeutic.</p>

<p>But it’s not the only thing I’d post. I’d also post tutorials for the things I like to do, or simple help posts. I may not be the most intelligent, but if it can be helpful to someone, I’ll gladly do it. I think the knowledge must not be privative, but shared.</p>

<p>I’d also like to leave here a somewhat recent photo of the admin in the workplace restroom. This with the purpose of making this more human and personal.</p>

<p><img src="https://val-vgms.gay/img/media/20250125/vo.jpg" alt="Photo of Val taking a selfie in front of a mirror. Long, semiwavy hair, dark brown hair. Black blouse, short sleeves, design of butterfly in rhinestones. Blue jeans."></p>

<p>So I hope you enjoy this little space from my heart. See you later.</p>
]]></content:encoded>
      <guid>https://val-vgms.gay/vo/i-present-you-my-blog</guid>
      <pubDate>Tue, 28 Jan 2025 04:14:19 -0600</pubDate>
    </item>
  </channel>
</rss>