<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>The Code Wanderer - privacy</title>
    <subtitle>Wandering through OpenBSD, privacy, security, programming, and data science. Powered by open source.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://hervyqa.srht.site/categories/privacy/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://hervyqa.srht.site"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-06-05T00:00:00+00:00</updated>
    <id>https://hervyqa.srht.site/categories/privacy/atom.xml</id>
    <entry xml:lang="en">
        <title>SourceHut: An Open Source Git Forge Alternative to GitHub</title>
        <published>2024-04-02T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            Hervy Qurrotul
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://hervyqa.srht.site/blog/sourcehut-open-source-git-forge/"/>
        <id>https://hervyqa.srht.site/blog/sourcehut-open-source-git-forge/</id>
        
        <content type="html" xml:base="https://hervyqa.srht.site/blog/sourcehut-open-source-git-forge/">&lt;p&gt;As a software developer, you are certainly familiar with GitHub
as a git repository hosting provider, also known as a &lt;em&gt;git forge&lt;&#x2F;em&gt;.
Besides GitHub, there are other alternatives such as Gitlab, Codeberg,
SourceForge, and Bitbucket. I have used all of them, but I will not
discuss them here.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;benefits-of-using-git-forge&quot;&gt;Benefits of using Git Forge&lt;a class=&quot;post-anchor&quot; href=&quot;#benefits-of-using-git-forge&quot; aria-label=&quot;Anchor link for: benefits-of-using-git-forge&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Before using a &lt;em&gt;git forge&lt;&#x2F;em&gt; such as SourceHut, it is important to
understand the general benefits of using a &lt;em&gt;git forge&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Facilitates code collaboration. If you are working with a team, it
is recommended to use a &lt;em&gt;git forge&lt;&#x2F;em&gt; because of the many features it
offers.&lt;&#x2F;li&gt;
&lt;li&gt;Monitors code changes before they are merged into the main branch.
Monitoring code results is very important for project managers who
need to check code quality.&lt;&#x2F;li&gt;
&lt;li&gt;Serves as a portfolio for developers. Various projects that have been
worked on can be made into a public portfolio that can be used as
a reference.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;With the various benefits mentioned above, developers should have one of
these &lt;em&gt;git forge&lt;&#x2F;em&gt; institutions.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-sourcehut&quot;&gt;Why SourceHut?&lt;a class=&quot;post-anchor&quot; href=&quot;#why-sourcehut&quot; aria-label=&quot;Anchor link for: why-sourcehut&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;sourcehut.org&quot;&gt;SourceHut&lt;&#x2F;a&gt; is a cloud-based git repository hosting provider
for managing project code. Of course, SourceHut is also open source
software that can be customized by its users.&lt;&#x2F;p&gt;
&lt;p&gt;So, what are the benefits of using SourceHut over other git forges? There are
several interesting facts that have been discovered.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;free-and-open-source-software&quot;&gt;Free and open source software&lt;a class=&quot;post-anchor&quot; href=&quot;#free-and-open-source-software&quot; aria-label=&quot;Anchor link for: free-and-open-source-software&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;sourcehut.org&quot;&gt;SourceHut&lt;&#x2F;a&gt; is a free and open source &lt;em&gt;git forge&lt;&#x2F;em&gt; software
under the &lt;em&gt;GNU Affero General Public License&lt;&#x2F;em&gt; (AGPL 3.0). Unlike GitHub
or GitLab, SourceHut is 100% open source. You can view, access, and
modify the sourcehut source code at 

&lt;a href=&quot;https:&#x2F;&#x2F;git.sr.ht&#x2F;~sircmpwn&#x2F;sourcehut&quot;&gt;SourceHut Source&lt;&#x2F;a&gt;. Compared to
other &lt;em&gt;git forges&lt;&#x2F;em&gt; such as GitHub, this is impossible to access because
only authorized personnel within the company know the source code.
Sourcehut can even be installed independently.&lt;&#x2F;p&gt;
&lt;p&gt;Some &lt;em&gt;git forges&lt;&#x2F;em&gt; that have been used along with their source code.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Git Forge&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Source&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;SourceHut&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;git.sr.ht&#x2F;~sircmpwn&#x2F;sourcehut&quot;&gt;Open Source&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;GitLab&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab&quot;&gt;Open Source&lt;&#x2F;a&gt;&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-1&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;GitHub&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Proprietary&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;BitBucket&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Proprietary&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;blockquote class=&quot;markdown-alert-important&quot;&gt;
&lt;p&gt;Open source is software code that is open, while proprietary is closed
program code that is not shared publicly. Only those with
authorization can access it.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Sourcehut was not founded by a large company. It was founded by 

&lt;a href=&quot;https:&#x2F;&#x2F;drewdevault.com&quot;&gt;Drew DeVault&lt;&#x2F;a&gt; as CEO and maintainer of
the 

&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.freedesktop.org&#x2F;wlroots&#x2F;wlroots&quot;&gt;Wlroot&lt;&#x2F;a&gt; project and 

&lt;a href=&quot;https:&#x2F;&#x2F;swaywm.org&quot;&gt;Swaywm&lt;&#x2F;a&gt; projects,
along with 

&lt;a href=&quot;https:&#x2F;&#x2F;emersion.fr&quot;&gt;Simon Ser&lt;&#x2F;a&gt; as release manager of the 

&lt;a href=&quot;https:&#x2F;&#x2F;wayland.freedesktop.org&quot;&gt;Wayland&lt;&#x2F;a&gt; project. In addition, Sourcehut is supported
by the talented engineer 

&lt;a href=&quot;https:&#x2F;&#x2F;bitfehler.srht.site&quot;&gt;Conrad Hoffmann&lt;&#x2F;a&gt;, who contributes to
the 

&lt;a href=&quot;https:&#x2F;&#x2F;kde.org&quot;&gt;KDE&lt;&#x2F;a&gt; project, 

&lt;a href=&quot;https:&#x2F;&#x2F;www.haproxy.org&quot;&gt;HAProxy&lt;&#x2F;a&gt;, and the 

&lt;a href=&quot;https:&#x2F;&#x2F;prometheus.io&quot;&gt;Prometheus ecosystem&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;owned-code-data&quot;&gt;Owned code data&lt;a class=&quot;post-anchor&quot; href=&quot;#owned-code-data&quot; aria-label=&quot;Anchor link for: owned-code-data&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;No party at sourcehut allows for data sharing, whether code data or
user data. Judging from the founders’ track record, they have long been
creating various types of free software that allows for extreme caution
regarding user privacy.&lt;&#x2F;p&gt;
&lt;p&gt;Are you familiar with 

&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;features&#x2F;copilot&quot;&gt;Github Copilot&lt;&#x2F;a&gt;, some of you may have
used it. The code generated by AI is code under the GPL license that is
used as a &lt;em&gt;proprietary&lt;&#x2F;em&gt; product, which of course violates the license
policy itself. At sourcehut, the program code belongs entirely to the
&lt;em&gt;programmer&lt;&#x2F;em&gt; or &lt;em&gt;developer&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;quick-and-lightweight-access&quot;&gt;Quick and lightweight access&lt;a class=&quot;post-anchor&quot; href=&quot;#quick-and-lightweight-access&quot; aria-label=&quot;Anchor link for: quick-and-lightweight-access&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Sourcehut’s performance is faster than other git forges. It’s as light
as opening plain text. Sourcehut’s workflow itself also uses plain text
email to send patches, reviews, replies, or comments. There is no pull
request (PR) feature, but it uses email-based communication similar to
that used in Linux kernel development, which uses plain text email. For
your information, Git itself is basically developed 

&lt;a href=&quot;https:&#x2F;&#x2F;lore.kernel.org&#x2F;git&quot;&gt;based on email&lt;&#x2F;a&gt; to this day, not based on pull requests like
commercial git forges currently do.&lt;&#x2F;p&gt;
&lt;blockquote class=&quot;markdown-alert-tip&quot;&gt;
&lt;p&gt;If you are interested in why &lt;em&gt;plain text email&lt;&#x2F;em&gt; is used instead of
HTML email, we recommend visiting 

&lt;a href=&quot;https:&#x2F;&#x2F;useplaintext.email&quot;&gt;Use Plain Text&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Drew DeVault is also the developer of 

&lt;a href=&quot;https:&#x2F;&#x2F;aerc-mail.org&quot;&gt;Aerc&lt;&#x2F;a&gt;, a TUI-based
&lt;em&gt;email client&lt;&#x2F;em&gt; that supports &lt;em&gt;vim workflow&lt;&#x2F;em&gt;, making it easier for
&lt;em&gt;keyboard centric&lt;&#x2F;em&gt; developers.&lt;&#x2F;p&gt;
&lt;p&gt;Sourcehut even claims to be the fastest of other &lt;em&gt;git forge&lt;&#x2F;em&gt; software
such as Pagure, GitHub, GitLab, Bitbucket, and Codeberg. For more
details, please refer to the link 

&lt;a href=&quot;https:&#x2F;&#x2F;forgeperf.org&quot;&gt;Forgeperf&lt;&#x2F;a&gt; to find out
more detailed differences.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;independent-and-modular&quot;&gt;Independent and modular&lt;a class=&quot;post-anchor&quot; href=&quot;#independent-and-modular&quot; aria-label=&quot;Anchor link for: independent-and-modular&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;SourceHut can be installed independently by users. For installation
instructions, refer to the SourceHut installation section at


&lt;a href=&quot;https:&#x2F;&#x2F;man.sr.ht&#x2F;installation.md&quot;&gt;SourceHut Installation&lt;&#x2F;a&gt;. The &lt;code&gt;sr.ht&lt;&#x2F;code&gt; service requires a 

&lt;a href=&quot;https:&#x2F;&#x2F;www.postgresql.org&quot;&gt;PostgreSQL&lt;&#x2F;a&gt; server, 

&lt;a href=&quot;https:&#x2F;&#x2F;redis.io&quot;&gt;Redis&lt;&#x2F;a&gt; server, and
mail server. Since the sourcehut source code is open, it can be
installed as long as you have the infrastructure for CI and CD &lt;span class=&quot;ref-placeholder&quot; data-ref=&quot;parasrah2022&quot;&gt;(&lt;a href=&quot;#ref-parasrah2022&quot;&gt;Parasrah&lt;&#x2F;a&gt;)&lt;&#x2F;span&gt;. Of course, there are no
subscription or licensing fees if you install sourcehut yourself.
Anyone can also contribute to sourcehut for service development &lt;span class=&quot;ref-placeholder&quot; data-ref=&quot;marcin_strus2022&quot;&gt;(&lt;a href=&quot;#ref-marcin_strus2022&quot;&gt;Marcin Struś&lt;&#x2F;a&gt;)&lt;&#x2F;span&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Sourcehut not only provides git repository services, but also many other
services, including.&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Service&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Description&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;builds.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;em&gt;Continuous integration&lt;&#x2F;em&gt; service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;git.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Git repository service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;hg.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Mercurial repository service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;hub.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Project index and organization service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;lists.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Mailing list service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;man.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Project wiki service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;meta.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Authentication and user account service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;pages.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Static web service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;paste.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Code pasting service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;todo.sr.ht&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;Issue and bug tracker service.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;It does require more effort to build the infrastructure, manage
CI&#x2F;CD, ensure stability, and patch system vulnerabilities. It would be
troublesome if that happened. But sourcehut also has several parameters
that can be considered for installation and use in production.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;How much is it tied to third-party agencies?&lt;&#x2F;li&gt;
&lt;li&gt;How good is the code quality?&lt;&#x2F;li&gt;
&lt;li&gt;How many bugs have been found?&lt;&#x2F;li&gt;
&lt;li&gt;How are these bugs resolved?&lt;&#x2F;li&gt;
&lt;li&gt;How many people are involved?&lt;&#x2F;li&gt;
&lt;li&gt;And so on.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Based on these parameters, sourcehut is still in the “safe” category.
In fact, one of the Android-based operating systems called PostMarketOS
is also seriously considering using sourcehut for its independent
infrastructure &lt;span class=&quot;ref-placeholder&quot; data-ref=&quot;postmarketos2022&quot;&gt;(&lt;a href=&quot;#ref-postmarketos2022&quot;&gt;PostMarketOS&lt;&#x2F;a&gt;)&lt;&#x2F;span&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you use a Nix-based operating system, it is very easy to install
sourcehut, because there is already an option to declare it that is
integrated with PostgreSQL and Redis.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;affordable-costs&quot;&gt;Affordable costs&lt;a class=&quot;post-anchor&quot; href=&quot;#affordable-costs&quot; aria-label=&quot;Anchor link for: affordable-costs&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Currently, sourcehut is entering the &lt;em&gt;alpha&lt;&#x2F;em&gt; development stage, where
users can use all available features except the &lt;em&gt;build&lt;&#x2F;em&gt;&#x2F;&lt;em&gt;deploy&lt;&#x2F;em&gt; system
at 

&lt;a href=&quot;https:&#x2F;&#x2F;build.sr.ht&quot;&gt;SourceHut Build&lt;&#x2F;a&gt;. To use this feature, users are required to
pay for the &lt;em&gt;build&lt;&#x2F;em&gt; system service. If anything, this is not a payment,
but rather a contribution or donation to cover living expenses. For
example, to cover the electricity, taxes, and accommodation costs of
sourcehut developers. Uniquely, sourcehut does not have any mandatory
pricing plan categories, meaning that each category has the same
facilities despite having different prices. More details are available
at sourcehut 

&lt;a href=&quot;https:&#x2F;&#x2F;sourcehut.org&#x2F;pricing&quot;&gt;SourceHut Pricing&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Amateur Hacker: 2 USD&#x2F;month or 20 USD&#x2F;year&lt;&#x2F;li&gt;
&lt;li&gt;Typical Hacker: 5 USD&#x2F;month or 50 USD&#x2F;year&lt;&#x2F;li&gt;
&lt;li&gt;Professional Hacker: 10 USD&#x2F;month or 100 USD&#x2F;year&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Converted to Indonesian rupiah at a rate of Rp16,000, this becomes:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Amateur Hacker: Rp320,000&#x2F;year&lt;&#x2F;li&gt;
&lt;li&gt;Typical Hacker: Rp800,000&#x2F;year&lt;&#x2F;li&gt;
&lt;li&gt;Professional Hacker: Rp1,600,000&#x2F;year&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The facilities and features are the same for all three categories. Users
are free to choose the category they want depending on their financial
needs. Payment is also easy via credit card, Stripe, or cryptocurrency.&lt;&#x2F;p&gt;
&lt;p&gt;How can it be so cheap? For example, renting a VPS costs Rp50,000 per
month, or Rp600,000 per year. This is cheaper than Sourcehut, which
costs Rp320,000 (Amateur Hacker), or 46.6% cheaper than renting a VPS
yourself.&lt;&#x2F;p&gt;
&lt;p&gt;Why pay for a CI&#x2F;CD deployment system when other Git forges like GitHub
and GitLab are free? Actually, other Git forges aren’t free. Users don’t
pay because someone else is paying behind the scenes, like many venture
capital firms (investors) sponsoring those Git forge companies. As for
Sourcehut, we all know where it stands.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;no-tracking-and-advertising&quot;&gt;No tracking and advertising&lt;a class=&quot;post-anchor&quot; href=&quot;#no-tracking-and-advertising&quot; aria-label=&quot;Anchor link for: no-tracking-and-advertising&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;So far, since this article was written, no advertisements have been
found on SourceHut. The SourceHut homepage also states that there is no
tracking or advertising displayed on SourceHut. In fact, all features
work without JavaScript.&lt;&#x2F;p&gt;
&lt;p&gt;SourceHut is simple and lightweight. Don’t be fooled by the classic look
of the website, which lacks any artistic flair. Visually (UI), it may
be considered poor because there are no animations, motion, pop-ups,
or other bells and whistles. However, in terms of user experience (UX),
sourcehut is very responsive, although it takes some getting used to
using the email workflow.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-existence-of-hut-as-a-cli-tool-supporting-sourcehut&quot;&gt;The existence of &lt;code&gt;hut&lt;&#x2F;code&gt; as a CLI tool supporting sourcehut&lt;a class=&quot;post-anchor&quot; href=&quot;#the-existence-of-hut-as-a-cli-tool-supporting-sourcehut&quot; aria-label=&quot;Anchor link for: the-existence-of-hut-as-a-cli-tool-supporting-sourcehut&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;

&lt;a href=&quot;https:&#x2F;&#x2F;sr.ht&#x2F;~emersion&#x2F;hut&quot;&gt;Hut&lt;&#x2F;a&gt; is a CLI application for interacting with 

&lt;a href=&quot;https:&#x2F;&#x2F;sourcehut.org&quot;&gt;SourceHut&lt;&#x2F;a&gt;. It functions to monitor system deployment work,
view tickets, patch lists, git repositories, and more. It can even be
specified by name, owner, or URL.&lt;&#x2F;p&gt;
&lt;p&gt;With &lt;code&gt;hut&lt;&#x2F;code&gt;, it is easier to manage sourcehut repositories, eliminating
the need to open the website to access sourcehut. For the first setup,
&lt;code&gt;hut init&lt;&#x2F;code&gt; is required to initialize a token that identifies the user
account.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;$&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; hut&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; help&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;hut is a CLI tool for sr.ht&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Usage:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  hut [command]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Available Commands:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  builds      Use the builds API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  export      Exports your account data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  git         Use the git API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  graphql     Execute a GraphQL query&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  help        Help about any command&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  hg          Use the hg API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  init        Initialize hut&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  lists       Use the lists API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  meta        Use the meta API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  pages       Use the pages API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  paste       Use the paste API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  todo        Use the todo API&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Flags:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      --config string     config file to use&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  -h, --help              help for hut&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      --instance string   sr.ht instance to use&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Use &amp;quot;hut [command] --help&amp;quot; for more information about a command.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;In sourcehut, you can also view repositories with &lt;code&gt;hut&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-entity z-name z-function&quot;&gt;hut&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; git&lt;&#x2F;span&gt;&lt;span class=&quot;z-string&quot;&gt; list&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;website (public)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  Learn about data science and statistics in bahasa.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;swayhome (public)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  Nixos configuration, sway and home-manager.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;oldblog (public)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  Personal blog of Hervy qurrotul&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;dotfire (public)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  Nixos KDE Plasma configuration for data science.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;hosting-websites-with-sourcehut-pages&quot;&gt;Hosting websites with &lt;em&gt;sourcehut pages&lt;&#x2F;em&gt;&lt;a class=&quot;post-anchor&quot; href=&quot;#hosting-websites-with-sourcehut-pages&quot; aria-label=&quot;Anchor link for: hosting-websites-with-sourcehut-pages&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;You can create website pages for free with &lt;em&gt;sourcehut pages&lt;&#x2F;em&gt; using
the domain name &lt;code&gt;username.srht.site&lt;&#x2F;code&gt;. The website whose repository is
located at 

&lt;a href=&quot;https:&#x2F;&#x2F;git.sr.ht&#x2F;~hervyqa&#x2F;termivy&quot;&gt;~hervyqa&amp;#x2F;termivy&lt;&#x2F;a&gt; is also
built using sourcehut pages. Creating sourcehut pages is also very
simple, just by creating a &lt;code&gt;.build.yml&lt;&#x2F;code&gt; file.&lt;&#x2F;p&gt;
&lt;p&gt;For example, deploying a static website with &lt;code&gt;zola&lt;&#x2F;code&gt;. Several other
examples can be found at 

&lt;a href=&quot;https:&#x2F;&#x2F;git.sr.ht&#x2F;~sircmpwn&#x2F;pages.sr.ht-examples&#x2F;tree&#x2F;master&quot;&gt;SourceHut Pages examples&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;yaml&quot; data-name=&quot;.build.yml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;i&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;mage&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; a&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;lpine&#x2F;edge&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;p&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;ackages&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 3&lt;&#x2F;span&gt;&lt;span&gt;  -&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; h&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ut&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 4&lt;&#x2F;span&gt;&lt;span&gt;  -&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; z&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ola&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 5&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;o&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;auth&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; p&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ages.sr.ht&#x2F;PAGES:RW&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 6&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;e&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;nvironment&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 7&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;  s&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;ite&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; w&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ww.example.org&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 8&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;  p&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;kgs&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; s&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ite.tar.gz&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt; 9&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;  b&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;uild_dir&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; p&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ublic&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;10&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;s&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;ources&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;11&lt;&#x2F;span&gt;&lt;span&gt;  -&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt; h&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-plain z-out z-yaml z-string&quot;&gt;ttps:&#x2F;&#x2F;git.sr.ht&#x2F;~your_username&#x2F;my-website&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;12&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;t&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;asks&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;13&lt;&#x2F;span&gt;&lt;span&gt;  -&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt; b&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;uild&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-control&quot;&gt; |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;14&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-block z-yaml z-string&quot;&gt;      cd my-website&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;15&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-block z-yaml z-string&quot;&gt;      zola build&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;16&lt;&#x2F;span&gt;&lt;span&gt;  -&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt; p&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;ackage&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-control&quot;&gt; |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;17&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-block z-yaml z-string&quot;&gt;      cd my-website&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;18&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-block z-yaml z-string&quot;&gt;      tar -czfv $pkgs -C $build_dir ..&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;19&lt;&#x2F;span&gt;&lt;span&gt;  -&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt; u&lt;&#x2F;span&gt;&lt;span class=&quot;z-entity z-name z-tag&quot;&gt;pload&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword z-control&quot;&gt; |&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;giallo-ln&quot;&gt;20&lt;&#x2F;span&gt;&lt;span class=&quot;z-string z-unquoted z-block z-yaml z-string&quot;&gt;      hut pages publish -d $site $pkgs&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Optionally, change the DNS server in your domain provider’s &lt;em&gt;domain
management&lt;&#x2F;em&gt; to support 

&lt;a href=&quot;https:&#x2F;&#x2F;srht.site&#x2F;custom-domains&quot;&gt;custom
domain&lt;&#x2F;a&gt; on sourcehut.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;@ IN A    46.23.81.157&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;@ IN AAAA 2a03:6000:1813:1337::157&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;diverse-continuous-integration-architecture&quot;&gt;Diverse Continuous Integration Architecture&lt;a class=&quot;post-anchor&quot; href=&quot;#diverse-continuous-integration-architecture&quot; aria-label=&quot;Anchor link for: diverse-continuous-integration-architecture&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;SourceHut is equipped with various Linux distribution operating systems
with different architectures for Continuous Integration (CI) needs.
Supported operating systems include BSD and linux-based.&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Alpine linux&lt;&#x2F;li&gt;
&lt;li&gt;Arch linux&lt;&#x2F;li&gt;
&lt;li&gt;Debian&lt;&#x2F;li&gt;
&lt;li&gt;Fedora&lt;&#x2F;li&gt;
&lt;li&gt;FreeBSD&lt;&#x2F;li&gt;
&lt;li&gt;Guix System&lt;&#x2F;li&gt;
&lt;li&gt;NetBSD&lt;&#x2F;li&gt;
&lt;li&gt;OpenBSD&lt;&#x2F;li&gt;
&lt;li&gt;Rocky linux&lt;&#x2F;li&gt;
&lt;li&gt;Ubuntu&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Supported architectures:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;aarch64&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;arm64&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;armel&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;armhf&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;i386&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;ppc64el&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;s390x&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;x86_64&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;x86&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;And many other architectures. If you use the &lt;code&gt;x86_64&lt;&#x2F;code&gt; or &lt;code&gt;amd64&lt;&#x2F;code&gt;
architecture, then that architecture uses &lt;em&gt;native&lt;&#x2F;em&gt; hardware. For
more information, refer to the 

&lt;a href=&quot;https:&#x2F;&#x2F;man.sr.ht&#x2F;builds.sr.ht&#x2F;compatibility.md&quot;&gt;compatibility&lt;&#x2F;a&gt; page.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;a class=&quot;post-anchor&quot; href=&quot;#closing&quot; aria-label=&quot;Anchor link for: closing&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Personally, I think sourcehut is worth using for &lt;em&gt;developers&lt;&#x2F;em&gt;. Several
important personal repositories have been migrated to sourcehut,
including this website’s repository. When I first started using
sourcehut, the repository was still quiet and not very popular at the
time this article was written. But after researching its features and
how sourcehut works, I became interested in some of the advantages that
other &lt;em&gt;git forges&lt;&#x2F;em&gt; don’t have. The initial considerations for choosing
SourceHut were its speed, minimal bugs, the availability of a CLI
application (hut), a well-built system, and of course, its open source
nature.&lt;&#x2F;p&gt;
&lt;p&gt;SourceHut is not a viral and well-known git forge. It does not have
features that make it famous on social media. For example, there is no
star rating or total number of stars in a repository, no special badges,
and no repository banners, so the thumbnail images look elegant. Even
its users don’t have the feature to upload profile photos. But despite
these shortcomings, many large project repositories are on SourceHut,
and the famous button feature is not really needed. By leaving out these
bells and whistles, SourceHut becomes more minimalist and faster. Back
to the concept of &lt;em&gt;less is more&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Paying for the &lt;em&gt;deploy&lt;&#x2F;em&gt; feature on sourcehut still makes sense. First,
the price is still affordable. And second, the money stays within
the realm of FOSS (Free Open Source Software), rather than flowing to
investors. This may be a matter of debate, but it still doesn’t make
sense to argue about it. The simplest logic is, is there such a thing
as free electricity? Even the most free things still require effort. And
effort requires accommodation and supplies.&lt;&#x2F;p&gt;
&lt;p&gt;The word “free” in the principle of &lt;em&gt;free software&lt;&#x2F;em&gt; has a
specific meaning that cannot be generalized. Roughly speaking,
“if it’s &lt;em&gt;free&lt;&#x2F;em&gt;, then it’s &lt;em&gt;free&lt;&#x2F;em&gt; everything” is clearly
impossible. Some features are indeed free, while others are
not, and each has its own limitations. Sourcehut’s business
model is clear and transparent. There are also annual financial
reports, for example for 

&lt;a href=&quot;https:&#x2F;&#x2F;lists.sr.ht&#x2F;~sircmpwn&#x2F;sr.ht-discuss&#x2F;%3CBVRVZEWYB30Q.3HGIC803LDBH7@homura%3E&quot;&gt;2019&lt;&#x2F;a&gt;, 

&lt;a href=&quot;https:&#x2F;&#x2F;sourcehut.org&#x2F;blog&#x2F;2022-04-08-2021-financial-report&quot;&gt;2021&lt;&#x2F;a&gt;, and 

&lt;a href=&quot;https:&#x2F;&#x2F;sourcehut.org&#x2F;blog&#x2F;2023-03-27-2022-financial-report&quot;&gt;2022&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you are accustomed to using an email-based workflow and prioritize
performance, then Sourcehut is worth trying.&lt;&#x2F;p&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-1&quot;&gt;
&lt;p&gt;The source code 

&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab&quot;&gt;Gitlab Source&lt;&#x2F;a&gt; is open source but
not completely open, as there is some proprietary (closed)
code. If you want to use open source code, you can use 

&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;gitlab-org&#x2F;gitlab-foss&quot;&gt;Gitlab Floss&lt;&#x2F;a&gt;. &lt;a href=&quot;#fr-1-1&quot;&gt;↩&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;section&gt;
</content>
        
    </entry>
</feed>
