<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title>SysAdmin Journal · Linux</title>
        <link>https://sysadmin-journal.com/tag/linux</link>
        <description>Posts tagged with Linux</description>
        <language>en</language>
        <lastBuildDate>Fri, 01 Dec 2023 16:15:13 +0000</lastBuildDate>
        <atom:link href="https://sysadmin-journal.com/tag/linux/rss" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        <item>
            <title>Installing MySQL Community Server version 8 on openSUSE Leap 15</title>
            <link>https://sysadmin-journal.com/installing-mysql-community-server-version-8-on-opensuse</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/installing-mysql-community-server-version-8-on-opensuse</guid>
            <pubDate>Fri, 01 Dec 2023 16:15:13 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>MySQL</category>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>The MySQL repository for SUSE Linux provides a simple and convenient way to install and update MySQL products with the latest software packages using the Zypper package management tool.</description>
            <content:encoded><![CDATA[<p>To begin the installation, visit <a href="https://dev.mysql.com/downloads/repo/suse/">MySQL Community Downloads</a> page and download the RPM package for openSUSE Leap 15.</p><h3 id="install-the-rpm">Install the RPM</h3><pre><code>sudo rpm -Uvh mysql80-community-release-sles12-8.noarch.rpm</code></pre><h3 id="import-the-mysql-gnupg-key">Import the MySQL GnuPG Key</h3><pre><code>sudo rpm --import /etc/RPM-GPG-KEY-mysql</code></pre><h3 id="install-mysql-with-zypper">Install MySQL with Zypper</h3><pre><code>sudo zypper install mysql-community-server</code></pre><p>A superuser account <code>'root'@'localhost'</code> is created. A password for the superuser is set and stored in the error log file. To reveal it, use the following command:</p><pre><code>sudo grep 'temporary password' /var/log/mysql/mysqld.log</code></pre><p>Change the root password as soon as possible by logging in with the generated, temporary password and set a custom password for the superuser account:</p><pre><code>mysql -u root -p</code></pre><pre><code>ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';</code></pre>]]></content:encoded>
        </item>
        <item>
            <title>Setting up a TLS certificate for the Cockpit web service</title>
            <link>https://sysadmin-journal.com/setting-up-a-tls-certificate-for-the-cockpit-web-service</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/setting-up-a-tls-certificate-for-the-cockpit-web-service</guid>
            <pubDate>Fri, 01 Dec 2023 16:13:17 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Linux</category>
            <description>Cockpit is a web-based graphical interface that enables you to manage most of the Linux administration tasks from one place by using plugins.</description>
            <content:encoded><![CDATA[<p>The Cockpit web service runs on TCP port 9090 and uses a self-signed TLS certificate if none is provided. In order to specify a TLS certificate for the web service, simply drop the certificate with the extension <code>.cert</code> in the <code>/etc/cockpit/ws-certs.d</code> and the corresponding key file having same name but with the <code>.key</code> extension.</p><p>The key should not be encrypted, i.e protected by a passphrase.</p><p>If there are multiple certificate files in the directory, then the one with the highest priority is chosen after sorting.</p><p>The <code>.cert</code> file can also contain two OpenSSL style PEM blocks. The first block containing the <code>BEGIN CERTIFICATE</code> for the server certificate and intermediate certificate authorities, and the second block containing <code>BEGIN PRIVATE KEY</code> to hold the corresponding private key.</p>]]></content:encoded>
        </item>
        <item>
            <title>A summary of my presentation at DevFest Mauritius 2023, on PHP, SUSE Base Container Image and Google Kubernetes Engine</title>
            <link>https://sysadmin-journal.com/gdg-devfest2023-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/gdg-devfest2023-mauritius</guid>
            <pubDate>Mon, 30 Oct 2023 19:24:00 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>DevFest</category>
            <category>Conference</category>
            <category>Kubernetes</category>
            <category>Laravel</category>
            <category>Linux</category>
            <description>GDG DevFest Mauritius is the annual, community-led “Developers Festival” organized by GDG Mauritius (Google Developer Group). It’s a one‑day, multi-track event designed for developers and tech enthusiasts to dive into Google’s technology stack while connecting with peers in the local ecosystem.</description>
            <content:encoded><![CDATA[
<!--kg-card-begin: html-->
<div class="p-4 bg-teal-600 text-white text-md">
  This article is a re-production from my <a href="https://www.linkedin.com/pulse/summary-my-presentation-devfest-mauritius-2023-php-suse-ish-sookun-txc9f/" class="underline text-white hover:text-gray-200" target="_blank">LinkedIn article</a> with the same title.
</div>
<!--kg-card-end: html-->
<p>After many years, I participated in an event organised in collaboration with the University of Mauritius. Ten years ago, around this time of the year the Linux User Group of Mauritius and the UoM Computer Club (2013) organised a <a href="https://legacy.hacklog.in/post/linuxfest-2013-highlights/" rel="noopener noreferrer">Linux Festival</a> at the Paul Octave Wiehe Auditorium. Last Saturday's Google Developers Festival (DevFest) 2023, being held on the campus of the University of Mauritius, brought back memories of those days. It also reminded me that it's been a decade since I am actively contributing to the tech community. 🎊🤓</p><p><em>Some happy tears flow down the cheek. Sniff!</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2025/07/1698604861977.jpeg" class="kg-image" alt="Presenting Laravel/PHP, SUSE Base Container Image and Google Kubernetes Engine at DevFest 2023. Photo courtesy of Arwin Neil Baichoo." loading="lazy" width="960" height="720" srcset="/content/images/size/w600/2025/07/1698604861977.jpeg 600w, /content/images/2025/07/1698604861977.jpeg 960w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Presenting Laravel/PHP, SUSE Base Container Image and Google Kubernetes Engine at DevFest 2023. Photo courtesy of Arwin Neil Baichoo.</span></figcaption></figure><p>Okay, let's talk about DevFest 2023. DevFest is an annual tech conference organised globally by the Google Developer Groups (GDG) community. This year marked the 5th edition of DevFest Mauritius. It was hosted by GDG Mauritius and the University of Mauritius (UoM). The Google Student Developer Clubs of UoM, University of Technology, Polytechnics Mauritius and the African Leadership College helped in spreading the word.</p><p>Registration for the event was done through the <a href="https://gdg.community.dev/gdg-mauritius/" rel="noopener noreferrer">GDG Mauritius</a> chapter page on the Google Developer Groups Bevy platform, while information about the event, the agenda and the speakers was also available at <a href="http://devfest.mscc.mu/" rel="noopener noreferrer">devfest.mscc.mu</a>.</p><p>We had 20 speakers from different tech backgrounds — web development, mobile application development and systems/cloud engineering.</p><p>My presentation was scheduled at 11:30 a.m. in the G2 room of the Faculty of Law &amp; Management. I started the presentation sharp on time to be able to stay both on track and on time, as for the next 45 mins, I had planned a whole journey of writing code to deploying the same on a cluster of servers.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698603509640.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698603509640.png 600w, /content/images/size/w1000/2025/07/1698603509640.png 1000w, /content/images/2025/07/1698603509640.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>PHP is still relevant in 2023. It still powers a lot of websites on the Internet. Even Facebook started on PHP and later created the <a href="https://hhvm.com/" rel="noopener noreferrer">HipHop Virtual Machine (HHVM)</a> to compile PHP source code to HipHop bytecode for faster execution and then they created the <a href="https://hacklang.org/" rel="noopener noreferrer">Hack programming language</a>.</p><p>I started the presentation by talking about PHP.</p><p>If you are just starting with PHP development, I suggest that you closely follow the works of a PHP framework, like Laravel or Symfony. I use Laravel a lot — in fact most of my web related work is now on <a href="https://laravel.com/" rel="noopener noreferrer">Laravel</a>. During the presentation I mentioned how <a href="http://lexpress.mu/" rel="noopener noreferrer">lexpress.mu</a> moved from Drupal to Laravel.</p><p>My next slide had a few commands needed to create a Laravel project and to run it locally (assuming that PHP and composer are already installed on that machine).</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698604459198.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698604459198.png 600w, /content/images/size/w1000/2025/07/1698604459198.png 1000w, /content/images/2025/07/1698604459198.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>Now, that we had a codebase and we made our desired modifications to the Laravel code, it was time that we thought about packaging it and shipping it to the cloud. The easy way — containers!</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698605629685.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698605629685.png 600w, /content/images/size/w1000/2025/07/1698605629685.png 1000w, /content/images/2025/07/1698605629685.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>SUSE Base Container Image (SUSE BCI) enters the scene. We can of course find plenty of PHP based containers to ship the code, then why SUSE BCI? The short anwser is compliance. Very often if you are working for a big company, there are rules to use software that have enterprise support. SUSE BCIs are enterprise-ready container images based on the SUSE Linux Enterprise Server (SLES). One can purchase a support subscription for the container or inherit an existing subscription from a host SUSE Linux Enterprise Server.</p><p>I talked about the Base Images and the Language Container Images. For our need to ship the Laravel codebase, we looked at the three SUSE BCIs that support PHP.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698605796663.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698605796663.png 600w, /content/images/size/w1000/2025/07/1698605796663.png 1000w, /content/images/2025/07/1698605796663.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>The ideal candidate was the SUSE BCI PHP-Apache 8 image. Our Laravel code is actually this year's DevFest Mauritius website. We do not require a database. The conference schedule and speakers details are pulled from a <a href="http://sessionize.com/" rel="noopener noreferrer">Sessionize.com</a> API and kept as JSON locally. Therefore, a single container to run the PHP code and serve the HTTP content would be fine.</p><p>I spoke about the three SUSE BCIs for PHP and possible use cases on different types of PHP scripts or applications we may run.</p><p>Okay, it's good that we have a container to run PHP code but it's not great, yet — because it cannot run "our" PHP code. Laravel 10 requires PHP version 8.2 to run whereas the SUSE BCI has PHP version 8.0.30 as latest version.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698606527692.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698606527692.png 600w, /content/images/size/w1000/2025/07/1698606527692.png 1000w, /content/images/2025/07/1698606527692.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>Most Enterprise Linux distributions support packages for as long as security fixes remain available for the package. That is the case with SLES and PHP 8 here. The latest version of PHP available from the official SLE_BCI repo is PHP version 8.0.30 which will continue to receive security fixes until the end of November this year, then the package will be upgraded to version 8.1.x which will receive security fixes until November 2024.</p><p>Then, how can we use the SUSE Linux Enterprise container but with PHP version 8.2?</p><p>Comes into the scene, SUSE's own <a href="https://openbuildservice.org/" rel="noopener noreferrer">Open Build Service</a>.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/obs.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/obs.png 600w, /content/images/size/w1000/2025/07/obs.png 1000w, /content/images/2025/07/obs.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>I explained how Open Build Service (OBS) allows one to compile software and package the latter for different Linux distributions and different CPU architectures. Then, I mentioned <a href="http://build.opensuse.org/" rel="noopener noreferrer">build.opensuse.org</a> where SUSE upstream projects reside. Recently, the Linux Foundation decided to <a href="https://www.suse.com/c/suse-open-build-service-now-adopted-by-the-kubernetes-to-generate-its-official-packages/" rel="noopener noreferrer">build Kubernetes packages using OBS</a> too. I talked about how openSUSE Leap and SUSE Linux Enterprise share a 1:1 binary compatible codebase.</p><p>One could build PHP v8.2.12 packages using <a href="http://build.opensuse.org/" rel="noopener noreferrer">build.opensuse.org</a> but... there is actually no need — because v8.2.12 is already built for SLE 15 SP5. 😎 We can simply add the OBS repo to our SLE BCI Apache-PHP container and install the latest version of PHP.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698612144212.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698612144212.png 600w, /content/images/size/w1000/2025/07/1698612144212.png 1000w, /content/images/2025/07/1698612144212.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>Huh! So, by this time we have a codebase, we have chosen a BCI and we know how to get the latest version of PHP running which is required for our application (i.e the website of DevFest Mauritius 2023). What's next? We need to build a container image that will hold our codebase and be ready for shipping.</p><p>So... Let's build it!</p><p>Before talking about building containers though, I mentioned that I don't like the idea of simply copying Dockerfiles from the Internet and start using. Writing a Dockerfile is not difficult and a lot of times it requires just a few lines. It also helps us keep things clean and we know what we are doing.</p><p>Let's write a Dockerfile then.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/dockerfile.gif" class="kg-image" alt="" loading="lazy" width="1080" height="608" srcset="/content/images/size/w600/2025/07/dockerfile.gif 600w, /content/images/size/w1000/2025/07/dockerfile.gif 1000w, /content/images/2025/07/dockerfile.gif 1080w" sizes="(min-width: 720px) 720px"></figure><p>During the presentation, I explained what each line does. Especially, why I chained the RUN commands in one line instead of multiple RUN commands. Each RUN command creates an OverlayFS layer and takes up a little more space. In this example, it would have taken an additional 8MB if we had used multiple RUN commands for every CLI command specified.</p><pre><code>FROM registry.suse.com/bci/php-apache:8</code></pre><p>In the first line, we pull the SUSE BCI PHP-Apache 8 image. Then, we copy our project directory inside the container image at a specific path which we have specified in an Apache configuration. I talked briefly about Apache VirtualHosts.</p><pre><code>COPY ./devfest2023 /srv/www/vhosts/devfest2023
COPY ./devfest2023.conf /etc/apache2/vhosts.d/devfest2023.conf</code></pre><p>Next, we copy a "repo" configuration file that contains information about the OBS repository.</p><pre><code>COPY ./obs_php.repo /etc/zypp/repos.d</code></pre><p>The content of the .repo file is available from the PHP package project on <a href="http://build.opensuse.org/" rel="noopener noreferrer">build.opensuse.org</a>.</p><p>We run the zypper ref command to update the repo database. We update the packages with the --allow-vendor-change option. Without this option, it will not upgrade PHP because the currently installed PHP package by vendor SUSE is the highest version available. By allowing vendor change, the package will be upgraded using newer packages from the OBS repository.</p><pre><code>RUN zypper ref; zypper up -y --allow-vendor-change; \
zypper in -y php8-tokenizer php8-iconv php8-intl php8-bcmath \
php8-bz2 php8-ctype php8-gd php8-posix php8-readline</code></pre><p>We install a few other PHP libraries that will be required by our Laravel application.</p><p>Laravel writes to a log file stored at the storage/laravel.log path. Therefore, ownership of the directory is changed to the user wwwrun which is the user that owns the Apache child processes.</p><pre><code>chown -R wwwrun:wwwrun /srv/www/vhosts/devfest2023; \</code></pre><p>We enable the mod_rewrite module in Apache because we have a Rewrite Rule in our Apache configuration that forwards all requests to the index.php file.</p><pre><code>a2enmod rewrite</code></pre><p>Lastly, we make the container reachable on port 80.</p><pre><code>EXPOSE 80</code></pre><p>Our Dockerfile is ready. We can build the container image.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698608690191.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698608690191.png 600w, /content/images/size/w1000/2025/07/1698608690191.png 1000w, /content/images/2025/07/1698608690191.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>I explained what each of the options does in the docker build command. After building the image, we can run a container locally to test the application.</p><pre><code>docker run —-rm -p 8080:80 devfest:2023</code></pre><p>Once again, I explained what each of the option in the above command does.</p><p>So, we've built a container image successfully, we've tested our application running inside a container, what do we do next? Deploy to Google Kubernetes Engine (GKE)? Not, yet. We need to push this container image to a registry, from which GKE will be able to pull and deploy.</p><p>Hereon, we started talking about the <a href="https://cloud.google.com/" rel="noopener noreferrer">Google Cloud Platform</a>. We needed to enable two services on GCP before we can ship a container and deploy our application. The services are:</p><ul><li>Artifact Registry API</li><li>Kubernetes Engine API</li></ul><p>I explained that previously we would use the Container Registry API but that was only limited to Docker container images. The Artifact Registry can hold repos for container images, npm packages, python, etc.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698609219546.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698609219546.png 600w, /content/images/size/w1000/2025/07/1698609219546.png 1000w, /content/images/2025/07/1698609219546.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>We created a repository in the Artifact Registry, we specified the format as Docker and we selected a region. We discussed about this choice (i.e region) for a while. My usual trick for obtaining the best latency to a "region" is to understand how our submarine fiber cables connect us to the rest of the world. Since, the SAFE/SAT-3/WASC submarine cable connects us to the west side of the European continent, for this example we chose the europe-west1 region, which is in Belgium. Not too far from the landing point in Portugal? 🤔 Anyway, let's continue...</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698609615679.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698609615679.png 600w, /content/images/size/w1000/2025/07/1698609615679.png 1000w, /content/images/2025/07/1698609615679.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>After creating the repository, the GCP console redirects to the repository details page. I encircled the path which we need when pushing the container image to the registry.</p><p>Oh... wait. Before pushing our container image to the Google Artifact Registry we need to setup authentication for Docker. Read the instructions <a href="https://cloud.google.com/artifact-registry/docs/docker/authentication" rel="noopener noreferrer">here</a>. During the presentation I did not elaborate on the Docker/GCP authentication part as it is purely textbook instruction.</p><p>We're almost there. We have built our container, we have set up our repository on Google Cloud, so now let's do the next step.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698609983709.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698609983709.png 600w, /content/images/size/w1000/2025/07/1698609983709.png 1000w, /content/images/2025/07/1698609983709.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>We tag the local image devfest:2023 (which we built earlier) using the path we saw on the repository page. I explained each item in the command for clarity.</p><p>Then, we run:</p><pre><code>docker push europe-west1-docker.pkg.dev/devfest2023-403313/mscc/devfest:2023</code></pre><p>You can see the progress as each layer is being copied to the registry. When completed, refresh the registry page on the cloud console.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698610296926.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698610296926.png 600w, /content/images/size/w1000/2025/07/1698610296926.png 1000w, /content/images/2025/07/1698610296926.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>Hereon, we started talking about Kubernetes and its complexity. However, Google (and other cloud providers) offer a Managed Kubernetes Service. Managed meaning — the implementation and related complexities are obsfuscated. Thus, as a developer you should be able to deploy your application in a cluster with minimal effort. That's exactly what Google Kubernetes Engine is about.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698610486453.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698610486453.png 600w, /content/images/size/w1000/2025/07/1698610486453.png 1000w, /content/images/2025/07/1698610486453.png 1488w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698610501133.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698610501133.png 600w, /content/images/size/w1000/2025/07/1698610501133.png 1000w, /content/images/2025/07/1698610501133.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>You click on the three dots and select "Deploy to GKE".</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698610551496.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698610551496.png 600w, /content/images/size/w1000/2025/07/1698610551496.png 1000w, /content/images/2025/07/1698610551496.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>The first option is to select a container, but here the devfest:2023 container is pre-selected. You can add environment variables which you usually do through the .env file of a Laravel application. Since, we are not using a database or require any other specific info to pass on, we can skip this part.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698610679358.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698610679358.png 600w, /content/images/size/w1000/2025/07/1698610679358.png 1000w, /content/images/2025/07/1698610679358.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>GKE creates a deployment configuration which defines the state of the cluster. It uses defaults here, e.g the replicas (i.e no. of nodes in the cluster) to 3. All of this information can viewed in the YAML file which is accessible from the page.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698610816292.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698610816292.png 600w, /content/images/size/w1000/2025/07/1698610816292.png 1000w, /content/images/2025/07/1698610816292.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>The YAML file is read-only at this point. We cannot edit the deployment configuration but we can do so once the cluster is created. Then, we can edit the YAML config to adjust it to our needs or use other "buttons" in the console to scale the cluster up/down, horizontally or vertically.</p><p>After the configuration part, the last step is to select whether we want to create a service to expose the cluster. Since, we want our application to be available on the Internet, we expose the cluster on port 80.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698611005292.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698611005292.png 600w, /content/images/size/w1000/2025/07/1698611005292.png 1000w, /content/images/2025/07/1698611005292.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>After we hit "DEPLOY", GKE starts building the cluster.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698611048564.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698611048564.png 600w, /content/images/size/w1000/2025/07/1698611048564.png 1000w, /content/images/2025/07/1698611048564.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>For this example, the cluster was ready in less than 5 mins.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698611089697.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698611089697.png 600w, /content/images/size/w1000/2025/07/1698611089697.png 1000w, /content/images/2025/07/1698611089697.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>Once the cluster is ready, the deployment details page will display information regarding the availability and health of the cluster nodes. At the bottom of the page, the <strong>endpoint</strong> in the Expose services show the Public IP Address for the deployment. Click on that and you can access your application. In our case, we were able to see the DevFest Mauritius 2023 site hosted on the IP address.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/07/1698611292237.png" class="kg-image" alt="" loading="lazy" width="1488" height="837" srcset="/content/images/size/w600/2025/07/1698611292237.png 600w, /content/images/size/w1000/2025/07/1698611292237.png 1000w, /content/images/2025/07/1698611292237.png 1488w" sizes="(min-width: 720px) 720px"></figure><p>That was my share of contribution to DevFest Mauritius 2023, as speaker this year. I hope everybody who attended the session enjoyed it and learned at least a thing or two. 😊</p>]]></content:encoded>
        </item>
        <item>
            <title>Ubuntu Ports mirror for Mauritius officialised</title>
            <link>https://sysadmin-journal.com/ubuntu-ports-mirror-for-mauritius-officialised</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/ubuntu-ports-mirror-for-mauritius-officialised</guid>
            <pubDate>Sun, 12 Feb 2023 07:43:02 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Ubuntu</category>
            <category>Linux</category>
            <description>ARM64 Linux users in Mauritius, rejoice! Ubuntu Ports mirror has been officialised.</description>
            <content:encoded><![CDATA[<p>Last year, we set up an Ubuntu mirror in Mauritius, but the latter catered only for the Intel &amp; AMD CPU architectures. Devices with the ARM64 chipset or bigger machines such as mainframes having the s390x or the PowerPC CPU would not benefit from this mirror. Thos CPU architectures are served by the Ubuntu Ports mirrors.</p><p>A few months ago, I <a href="https://sysadmin-journal.com/ubuntu-22-04-lts-arm64-mirror-in-mauritius/">experimented with Ubuntu ARM64</a> and set up a mirror for some tests. The mirror was limited to the ARM64 architecture.</p><p>Then, this week, I was able to set up and synchronise the whole Ubuntu Ports repository, after David, the Director of cloud.mu, provisionned additional storage on the Ubuntu mirror server for an upgrade. I submitted the Ubuntu Ports mirror for review and that was completed the same day.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2023/02/ubuntu-ports-mirror.png" class="kg-image" alt loading="lazy" width="2000" height="834" srcset="/content/images/size/w600/2023/02/ubuntu-ports-mirror.png 600w, /content/images/size/w1000/2023/02/ubuntu-ports-mirror.png 1000w, /content/images/size/w1600/2023/02/ubuntu-ports-mirror.png 1600w, /content/images/size/w2400/2023/02/ubuntu-ports-mirror.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>The mirror supports the following CPU architectures: arm64, armhf, ppc64el and s390x. When users in Mauritius install an Ubuntu server for one of these <a href="https://ubuntu.com/download/server#architectures">architectures</a> the mirror is set to <a href="https://mu.ports.ubuntu.com/ubuntu-ports/">mu.ports.ubuntu.com</a> in the <code>/etc/apt/sources.list</code> file. Being a primary mirror for Mauritius, all requests on that domain are handled by <a href="http://ubuntu-mirror.cloud.mu/ubuntu-ports/">ubuntu-mirror.cloud.mu</a>.</p><p>If you are looking for the Ubuntu ARM 64 Desktop version, then you can download it from <a href="https://cdimage.ubuntu.com/jammy/daily-live/current/">cdimage.ubuntu.com</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title>Containers — why do we need multi-stage builds?</title>
            <link>https://sysadmin-journal.com/containers-why-do-we-need-multi-stage-builds</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/containers-why-do-we-need-multi-stage-builds</guid>
            <pubDate>Sat, 17 Dec 2022 15:27:02 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Kubernetes</category>
            <category>Laravel</category>
            <category>Linux</category>
            <description>Docker is a platform designed to help developers build, share, and run modern applications. Docker Inc. was founded by Kamel Founadi, Solomon Hykes, and Sebastien Pahl in 2010. The company released Docker as an open-source software in 2013.</description>
            <content:encoded><![CDATA[<p>Last week, during my <a href="https://sysadmin-journal.com/google-devfest-2022-mauritius/">talk about Laravel &amp; Kubernetes</a> at the DevFest 2022, I built a containerised Laravel application using Docker and deployed it on the Google Kubernetes Engine (GKE). I briefly touched on the the multi-stage build process but did not provide a thorough explanation on why it is needed.</p><pre><code>FROM composer:latest AS build
WORKDIR /app
COPY . /app
RUN composer install --prefer-dist --no-dev --optimize-autoloader --no-interaction

FROM php:8.2-apache-bullseye AS production

ENV APP_ENV=production
ENV APP_DEBUG=false

RUN docker-php-ext-configure opcache --enable-opcache &amp;&amp; \
    docker-php-ext-install pdo pdo_mysql
RUN pecl install redis &amp;&amp; docker-php-ext-enable redis

COPY --from=build /app /app
COPY vhost.conf /etc/apache2/sites-available/000-default.conf
COPY .env.prod /app/.env

RUN cd /app &amp;&amp; php artisan config:cache &amp;&amp; \
    php artisan route:cache &amp;&amp; \
    chmod 777 -R /app/storage/ &amp;&amp; \
    chown -R www-data:www-data /app/ &amp;&amp; \
    a2enmod rewrite</code></pre><p>I used the above Dockerfile to build the Laravel container. There are two stages in this build process —</p><ul><li>First, a <code>composer:latest</code> container is used to install the project dependencies.</li><li>Then, a <code>php:8.2-apache-bullseye</code> container is used to run the Laravel application in production.</li></ul><p>To be honest, I should have added one more build stage to use NPM to compile the front-end stack... but... well, to better understand the reasons for multi-stage builds, let us look at something simpler.</p><pre><code class="language-Rust">fn main() {
    println!("Namaste, world! 🙏");
}</code></pre><p>The above Rust code does nothing fancy, it just prints "Namaste, world!" with the folded hands emoji, to the terminal. We could pull a Rust container image, e.g <code>rust:1.66.0-alpine3.17</code> to build and then run the application. It would work, right?</p><p>The <code>rust:1.66.0-alpine3.17</code> container image is 787MB in size. Would you want to deploy a small binary along with a 100 times bigger container to your production environment? Probably, no. That is why we need to build the production container in multiple stages.</p><pre><code>FROM rust:1.66.0-alpine3.17 AS build
WORKDIR /app/
COPY . .
RUN cargo build --release

FROM scratch
COPY --from=build /app/target/release/namaste-world /app/namaste-world
CMD ["/app/namaste-world"]
</code></pre><p>We use <code>rust:1.66.0-alpine3.17</code> to compile the application and then we copy the binary to another smaller (very small) container, called <code>scratch</code>.</p><pre><code>$ docker build . -t namaste-world:latest
[+] Building 0.1s (10/10) FINISHED                                                                                      
 =&gt; [internal] load build definition from Dockerfile                                                               0.0s
 =&gt; =&gt; transferring dockerfile: 74B                                                                                0.0s
 =&gt; [internal] load .dockerignore                                                                                  0.0s
 =&gt; =&gt; transferring context: 2B                                                                                    0.0s
 =&gt; [internal] load metadata for docker.io/library/rust:1.66.0-alpine3.17                                          0.0s
 =&gt; [internal] load build context                                                                                  0.0s
 =&gt; =&gt; transferring context: 7.29kB                                                                                0.0s
 =&gt; [build 1/4] FROM docker.io/library/rust:1.66.0-alpine3.17                                                      0.0s
 =&gt; CACHED [build 2/4] WORKDIR /app/                                                                               0.0s
 =&gt; CACHED [build 3/4] COPY . .                                                                                    0.0s
 =&gt; CACHED [build 4/4] RUN cargo build --release                                                                   0.0s
 =&gt; CACHED [stage-1 1/1] COPY --from=build /app/target/release/namaste-world /app/namaste-world                    0.0s
 =&gt; exporting to image                                                                                             0.0s
 =&gt; =&gt; exporting layers                                                                                            0.0s
 =&gt; =&gt; writing image sha256:44c98d7123b596ef4b90388ce73ee66391f5f38a04e75440dfb0a4399b436e94                       0.0s
 =&gt; =&gt; naming to docker.io/library/namaste-world:latest                                                            0.0s</code></pre><p>Once the container is built, let's run it.</p><pre><code>$ docker run --rm namaste-world
Namaste, world! 🙏
</code></pre><p>Now, let's have a look at the size of the container images.</p><pre><code>$ docker images
REPOSITORY      TAG                 IMAGE ID       CREATED        SIZE
namaste-world   latest              44c98d7123b5   2 hours ago    4.57MB
rust            1.66.0-alpine3.17   87eecbd0d066   38 hours ago   787MB</code></pre><p>See, the <code>scratch</code> container image holding the <code>namaste-world</code> binary is below <strong>5MB</strong> while the <code>rust:1.66.0-alpine3.17</code>  container image is <strong>787MB</strong>. When deploying to production it is best practice to use smaller images for less memory footprint.</p><hr><p><a href="https://twitter.com/renghenKornel">Renghen</a> and I talked after I published this post on Twitter &amp; LinkedIn. He shared his views about having a multi-stage build process. It makes more sense if it is part of a pipeline. He does not advise compiling applications using containers. He refers to an example where the compiler requires the GPU and such compilation won't be possible using a container. However, he stated that multi-stage builds makes sense in cases where certain languages have deprecated some features and one might still need those to run an application.</p>]]></content:encoded>
        </item>
        <item>
            <title>openSUSE Board Election 2022 campaign has begun</title>
            <link>https://sysadmin-journal.com/opensuse-board-election-2022-campaign</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/opensuse-board-election-2022-campaign</guid>
            <pubDate>Tue, 08 Nov 2022 18:00:22 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>The electronic voting for the openSUSE Board Election is scheduled to begin on 1 December and ballots will close on 15 December. Six candidates are running for three seats on the Board.</description>
            <content:encoded><![CDATA[<p>The candidates list for this year's openSUSE Board Election is as follows:</p><ul><li><a href="https://en.opensuse.org/User:Ddemaio">Douglas Demaio</a></li><li><a href="https://en.opensuse.org/User:Pfitzgerald">Patrick Fitzgerald</a></li><li><a href="https://en.opensuse.org/User:Futureboy">Nathan Wolf</a></li><li><a href="https://en.opensuse.org/openSUSE:Board_election_2022_platform_-_Neal_Gompa">Neal Gompa</a></li><li><a href="https://en.opensuse.org/User:Terrorpup">Chuck Payne</a></li><li><a href="https://en.opensuse.org/openSUSE:Board_election_2022_platform_Knurpht">Gertjan Lettink</a></li></ul><p>openSUSE members can also ask questions to the candidates on the <a href="https://lists.opensuse.org/archives/list/project@lists.opensuse.org/">project mailing list</a>. Vojtěch Zeisek <a href="https://lists.opensuse.org/archives/list/project@lists.opensuse.org/message/4K7KE6HVBKO2CRCZZUSPW7FLU6AVOQ7A/">asked the candidates</a> about their plans and what they want to achieve with the project.</p><p>Douglas had an interesting <a href="https://lists.opensuse.org/archives/list/project@lists.opensuse.org/message/MUNWRBLYJZFBN6U6UFCV6GURE2JZATYK/">answer</a>. He stated that he would like to see that the openSUSE Project adopts the blockchain technology. He cited the election as an example where a smart contract could facilitate the task of running elections and maintaining an updated members list based on whether members' tokens have been used in (x) number of years.</p><p>He also mentioned NFT as something that could be explored to create a sort of badge system like the <a href="https://badges.fedoraproject.org/">Fedora project</a> has and member contributions could be rewarded with NFTs.</p><p>On the question about what he wishes to do, he answered that he would focus on getting the project either becoming a Foundation or transition to a decentralised autonomous organisation. Discussions about creating an <a href="https://en.opensuse.org/openSUSE:Foundation_Proposal_-_First_Discussion_Draft">openSUSE Foundation</a> started in 2019 but it hasn't progressed much since.</p><p>I will write more about the candidates Q&amp;A with members as they happen. If you would like to ask a question or follow the discussions, then feel free to subscribe to the project's <a href="https://lists.opensuse.org/archives/list/project@lists.opensuse.org/">mailing list</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title>Fedora Linux mirror in Mauritius 🎉</title>
            <link>https://sysadmin-journal.com/fedora-linux-mirror-in-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/fedora-linux-mirror-in-mauritius</guid>
            <pubDate>Tue, 11 Oct 2022 14:38:43 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Linux</category>
            <description>Users of Fedora Linux in Mauritius will experience faster speed next time they update their system, thanks to a new Linux mirror closer to home.</description>
            <content:encoded><![CDATA[<p>I didn't realise that we have a number of Fedora Linux users on the island until I saw some tweets about the upcoming Fedora 37 and GNOME 43. Setting up a Fedora Linux mirror was in my todo list and after reading the tweets, I thought let's do it now.</p><p>Therefore, I had a quick chat with David Venter about it. For those who don't know, David is the Founder and Director of <a href="https://cloud.mu">cloud.mu</a>. His company has sponsored resources which helped me build a few Linux mirrors in Mauritius. Upon discussing about Fedora, he gave green light to set up the mirror. I peeked into the project's documentation. What we actually needed was a mirror for Fedora Linux and EPEL. The latter stands for Extra Packages for Enterprise Linux which is a Fedora Special Interest Group (SIG) that creates, maintains and manages additional packages for Enterprise Linux (comprising of RHEL, CentOS, Oracle Linux, AlmaLinux and Rocky Linux).</p><p>The Fedora Linux and EPEL mirrors became operational last week. You can see them listed at <a href="https://admin.fedoraproject.org/mirrormanager/mirrors">mirrors.fedoraproject.org</a>.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2022/10/cloudmu-fedora-mirrors.png" class="kg-image" alt loading="lazy" width="2000" height="309" srcset="/content/images/size/w600/2022/10/cloudmu-fedora-mirrors.png 600w, /content/images/size/w1000/2022/10/cloudmu-fedora-mirrors.png 1000w, /content/images/size/w1600/2022/10/cloudmu-fedora-mirrors.png 1600w, /content/images/size/w2400/2022/10/cloudmu-fedora-mirrors.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>The coolest part though is Mauritius showing up in the mirrors map. 😎</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2022/10/fedora-mirror-in-mauritius.png" class="kg-image" alt loading="lazy" width="2000" height="1191" srcset="/content/images/size/w600/2022/10/fedora-mirror-in-mauritius.png 600w, /content/images/size/w1000/2022/10/fedora-mirror-in-mauritius.png 1000w, /content/images/size/w1600/2022/10/fedora-mirror-in-mauritius.png 1600w, /content/images/size/w2400/2022/10/fedora-mirror-in-mauritius.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>If you head to <a href="https://get.fedoraproject.org">get.fedoraproject.org</a> now and download an image it will pull it from the closest mirror, which is <a href="https://fedora-mirror.cloud.mu">fedora-mirror.cloud.mu</a>. In order to enable EPEL, you can follow these <a href="https://docs.fedoraproject.org/en-US/epel/">instructions</a>.</p><p>Users of Fedora Linux do not need to configure anything in order to use the mirror. Fedora's mirror manager will automatically redirect requests from Mauritius to <a href="https://fedora-mirror.cloud.mu">fedora-mirror.cloud.mu</a> and <a href="https://fedora-epel-mirror.cloud.mu">fedora-epel-mirror.cloud.mu</a> when they update their system.</p>]]></content:encoded>
        </item>
        <item>
            <title>AlmaLinux mirror in Mauritius 🐧</title>
            <link>https://sysadmin-journal.com/almalinux-mirror-in-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/almalinux-mirror-in-mauritius</guid>
            <pubDate>Sat, 01 Oct 2022 14:56:37 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Linux</category>
            <category>Mauritius</category>
            <description>AlmaLinux is a Linux distribution which is binary compatible with Red Hat Enterprise Linux (RHEL). It was created by CloudLinux and it is currently maintained by the AlmaLinux OS Foundation, a non-profit to steward ownership and governance of the project.</description>
            <content:encoded><![CDATA[<p>In January 2014, Red Hat <a href="https://www.redhat.com/en/about/press-releases/red-hat-and-centos-join-forces">announced that it is joining forces</a> with CentOS to speed open source innovation. What it meant for the many users of <a href="https://centos.org/">CentOS</a>, was that Red Hat was acquiring the project and it will decide the future of the distribution. Indeed, six years later, in December 2020, Red Hat announced that <a href="https://www.redhat.com/en/blog/centos-stream-building-innovative-future-enterprise-linux">the future of CentOS is CentOS Stream</a>, an upstream project for Red Hat with a rolling-release model.</p><p>There was a lot of discontentment following that announcement. Many users enjoyed the stability of CentOS and its binary compatibility with RHEL and its long term support. The news of turning CentOS into an upstream project for RHEL changed all of that.</p><p><a href="https://www.cloudlinux.com/">CloudLinux</a> is one of many CentOS supporters that was not happy with the news.</p><p>In response to the shift in project direction of CentOS, CloudLinux backed the development of AlmaLinux, a clone of RHEL. CloudLinux has been in the "Linux business" since 2009, providing a customised Linux distribution for hosting companies. Its products were mainly based on RHEL/CentOS. Thus, their commitment to the AlmaLinux project meant they would be heavily invested. In fact, CloudLinux financially backs the AlmaLinux OS Foundation.</p><h2 id="the-almalinux-mirror-%F0%9F%98%8A">The AlmaLinux mirror 😊</h2><p>After that short history lesson, let's come to the present.</p><p>David Venter, the Founder &amp; Director of <a href="https://cloud.mu">cloud.mu</a>, and I were having a usual "Linux mirrors" conversation and David said "we should also really do AlmaLinux". I was like, "I just read their doc, it's the easiest mirror documentation I have seen so far".</p><p>Well, the next day, David provisioned the mirror server and I did the rest of the configuration. Once the server had sync'ed completely, I <a href="https://github.com/AlmaLinux/mirrors/pull/615">submitted</a> it to AlmaLinux for review. Soon after, <a href="https://almalinux-mirror.cloud.mu/">almalinux-mirror.cloud.mu</a> appeared on <a href="https://mirrors.almalinux.org">mirrors.almalinux.org</a>.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2022/10/almalinux-mirror-mauritius.png" class="kg-image" alt loading="lazy" width="1506" height="1018" srcset="/content/images/size/w600/2022/10/almalinux-mirror-mauritius.png 600w, /content/images/size/w1000/2022/10/almalinux-mirror-mauritius.png 1000w, /content/images/2022/10/almalinux-mirror-mauritius.png 1506w" sizes="(min-width: 1200px) 1200px"></figure><p>If you head to almalinux.org and click on the download button, it takes you to the mirrors page and there you can see the list of the closest mirrors to you. Being in Mauritius you should see <strong>almalinux-mirror.cloud.mu</strong> at the top of that list, followed by other mirrors in Africa.</p><h3 id="sponsorship">Sponsorship</h3><p>Improving the Linux updates experience in Mauritius would not be possible without mirrors. I am extremely thankful to <a href="https://cloud.mu">cloud.mu</a> for the server/bandwidth sponsorship and their commitment to make Linux thrive in Mauritius.</p>]]></content:encoded>
        </item>
        <item>
            <title>Ubuntu 22.04 LTS ARM64 mirror in Mauritius</title>
            <link>https://sysadmin-journal.com/ubuntu-22-04-lts-arm64-mirror-in-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/ubuntu-22-04-lts-arm64-mirror-in-mauritius</guid>
            <pubDate>Thu, 22 Sep 2022 06:02:34 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Ubuntu</category>
            <category>Linux</category>
            <description>AArch64 or ARM64 is the 64-bit extension of the ARM architecture family. Ubuntu supports the ARM64 architecture via the ubuntu-ports repository.</description>
            <content:encoded><![CDATA[<p>A few weeks ago, I posted on <a href="https://www.linkedin.com/posts/ishsookun_ive-had-an-experimental-ubuntu-22041-lts-activity-6972443538445725696-bjzS/">LinkedIn</a> that I am experimenting with Ubuntu 22.04 LTS arm64 and I have set up a <a href="http://ubuntu-ports.cloud.mu/">mirror</a> for the Ubuntu ARM 64 bit port. I asked anybody who is also using Ubuntu 22.04 LTS ARM64 to ping me on LinkedIn. I didn't receive any pings.</p><p>Thus, I am assuming that Ubuntu on the ARM 64-bit architecture is not a being widely used in Mauritius. I thought it would, thinking that probably a lot of tinkerers are running experiments on a Raspberry Pi.</p><p>Ubuntu provides desktop images for the ARM 64-bit (ARMv8/AArch64) architecture on its <a href="https://cdimage.ubuntu.com/jammy/daily-live/current/">daily build page</a>.</p><p>I did my experiments with Ubuntu for ARM 64-bit on an Apple M1 MacOS using <a href="https://www.parallels.com/">Parallels Desktop</a> and a mirror server built on a Virtual Private Server (VPS) sponsored by <a href="https://cloud.mu">cloud.mu</a>. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2022/09/ubuntu-arm64-apple-m1.png" class="kg-image" alt loading="lazy" width="1920" height="1200" srcset="/content/images/size/w600/2022/09/ubuntu-arm64-apple-m1.png 600w, /content/images/size/w1000/2022/09/ubuntu-arm64-apple-m1.png 1000w, /content/images/size/w1600/2022/09/ubuntu-arm64-apple-m1.png 1600w, /content/images/2022/09/ubuntu-arm64-apple-m1.png 1920w" sizes="(min-width: 1200px) 1200px"></figure><h2 id="how-to-use-the-mirror">How to use the mirror?</h2><p>At the moment, the server mirrors only Ubuntu 22.04.1 LTS ARM 64-bit. Therefore, if you are using another version of Ubuntu or a different architecture, you won't be able to use the mirror. If there is interest for supporting other architectures, then it would make sense to add them, otherwise not.</p><p>So, right now, if you have an Ubuntu 22.04.1 LTS ARM 64-bit instance running, you can edit your <code>/etc/apt/sources.list</code> file and change all the occurrences of <strong>mu.ports.ubuntu.com</strong> and <strong>ports.ubuntu.com</strong> to <strong>ubuntu-ports.cloud.mu</strong>.</p><pre><code>sudo sed -i 's/mu.ports.ubuntu.com/ubuntu-ports.cloud.mu/g' /etc/apt/sources.list

sudo sed -i 's/ports.ubuntu.com/ubuntu-ports.cloud.mu/g' /etc/apt/sources.list</code></pre><pre><code>sudo apt update &amp;&amp; apt upgrade</code></pre><h2 id="want-to-discuss-more-about-linux-mirrors-in-mauritius">Want to discuss more about Linux mirrors in Mauritius?</h2><p>The <a href="https://conference.mscc.mu">Developers Conference</a> will be held on November 22, 23 and 24 at the Caudan Arts Centre. I will be attending the conference on all three days. There will be plenty of time to meet and discuss about Linux mirrors. Let's grab a coffee there and talk.</p>]]></content:encoded>
        </item>
        <item>
            <title>Ubuntu mirror in Mauritius</title>
            <link>https://sysadmin-journal.com/ubuntu-mirror-in-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/ubuntu-mirror-in-mauritius</guid>
            <pubDate>Mon, 29 Aug 2022 18:33:49 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Ubuntu</category>
            <category>Linux</category>
            <description>Operating system updates when fast and smooth, it is always a pleasure to see. No one ever wants a slow machine because updates are hogging resources. Thanks to cloud.mu who sponsored a server and bandwidth, we now have an Ubuntu mirror in Mauritius.</description>
            <content:encoded><![CDATA[<p>Most of the university students that speak about Linux say that they have used Ubuntu or at least they started with Ubuntu and then experimented with other Linux distributions. Therefore, it made sense to have an Ubuntu mirror in Mauritius in order to improve the speed of updates.</p><p>A few weeks ago, David Venter of <a href="https://cloud.mu">cloud.mu</a> and I were chatting about just that. David gladly provisioned a VM with the specs needed for the mirror. I peeked into some Ubuntu documentation for building the mirror and had a chat on IRC #ubuntu-mirror channel with other mirror admins to understand the disk space requirements.</p><p>Once everything was set up, I submitted the mirror for reviewing. That process was not long. In less than 48 hours, the mirror was approved as an official <a href="https://launchpad.net/ubuntu/+mirror/ubuntu-mirror.cloud.mu-archive">Ubuntu mirror</a>.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2022/08/cloud.mu-ubuntu-mirror-mauritius.png" class="kg-image" alt loading="lazy" width="1157" height="481" srcset="/content/images/size/w600/2022/08/cloud.mu-ubuntu-mirror-mauritius.png 600w, /content/images/size/w1000/2022/08/cloud.mu-ubuntu-mirror-mauritius.png 1000w, /content/images/2022/08/cloud.mu-ubuntu-mirror-mauritius.png 1157w"></figure><p>I also made an <a href="https://lists.ubuntu.com/archives/ubuntu-mirrors-announce/2022-August/000040.html">announcement</a> on the Ubuntu mirrors announce list.</p><p>At the moment, <a href="https://cloud.mu">cloud.mu</a> is the only Ubuntu mirror in Mauritius. About less than a week after submission, the mirror was promoted to country mirror for Mauritius. It means that users do not have to modify their <code>sources.list</code> file to manually add the cloud.mu mirror. During installation, the installer will set the URL for the repo mirror as <code>mu.archive.ubuntu.com</code>. Previously, the sub-domain was pointing to other mirrors. Now, it is now a CNAME for <code>ubuntu-mirror.cloud.mu</code>. Therefore, all requests during Ubuntu updates are sent to the Mauritian mirror.</p><pre><code> &lt;&lt;&gt;&gt; DiG 9.18.1-1ubuntu1.1-Ubuntu &lt;&lt;&gt;&gt; @9.9.9.9 mu.archive.ubuntu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 48158
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mu.archive.ubuntu.com.		IN	A

;; ANSWER SECTION:
mu.archive.ubuntu.com.	600	IN	CNAME	ubuntu-mirror.cloud.mu.
ubuntu-mirror.cloud.mu.	300	IN	A	102.222.106.237

;; Query time: 552 msec
;; SERVER: 9.9.9.9#53(9.9.9.9) (UDP)
;; WHEN: Mon Aug 29 10:52:45 +04 2022
;; MSG SIZE  rcvd: 102</code></pre><p>The above <a href="https://linux.die.net/man/1/dig">dig</a> query result shows the CNAME record in place.</p><h2 id="mauritius-internet-exchange-point-mixp">Mauritius Internet Exchange Point (MIXP)</h2><p>The cloud.mu servers benefit from a 10 Gbps link at the <a href="https://mixp.org">Mauritius Internet Exchange Point</a>. All Internet Services Providers that peer at the MIXP, their clients will gain from this low latency Ubuntu mirror.</p><pre><code>PING ubuntu-mirror.cloud.mu (102.222.106.237): 56 data bytes
64 bytes from 102.222.106.237: icmp_seq=0 ttl=57 time=5.544 ms
64 bytes from 102.222.106.237: icmp_seq=1 ttl=57 time=9.757 ms
64 bytes from 102.222.106.237: icmp_seq=2 ttl=57 time=6.407 ms
64 bytes from 102.222.106.237: icmp_seq=3 ttl=57 time=8.059 ms
64 bytes from 102.222.106.237: icmp_seq=4 ttl=57 time=9.482 ms

--- ubuntu-mirror.cloud.mu ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 5.544/7.850/9.757/1.658 ms</code></pre><h2 id="what-mirrors-are-available-for-ubuntu">What mirrors are available for Ubuntu?</h2><p>Right now, we have <a href="https://launchpad.net/ubuntu/+archivemirrors">archive</a> and <a href="https://mu.releases.ubuntu.com/">release</a> mirrors. I am hoping that we can have a discussion with more Ubuntu users on the island to see whether we require additional mirrors for Ubuntu security and ports. I am experimenting with Ubuntu 22.04.1 LTS arm64 and will probably set up an update mirror for that.</p><h2 id="how-to-join-ubuntu-mauritius">How to join Ubuntu Mauritius?</h2><p>Users can join the Ubuntu Mauritius team on <a href="https://launchpad.net/~ubuntu-mu">Launchpad</a>. The group exists since 2011 but most of the time has remained dormant, with maybe a few <a href="https://jochen.kirstaetter.name/ubuntu-jam-uom/">Ubuntu Jams</a> organised at the University of Mauritius in the past. If you would like to help with organising regular meetings for the group, ping us via the mailing list: <a href="https://lists.launchpad.net/ubuntu-mu/">https://lists.launchpad.net/ubuntu-mu</a>.</p>]]></content:encoded>
        </item>
        <item>
            <title>Announcing the availability of two openSUSE mirrors in Mauritius</title>
            <link>https://sysadmin-journal.com/announcing-the-availability-of-two-opensuse-mirrors-in-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/announcing-the-availability-of-two-opensuse-mirrors-in-mauritius</guid>
            <pubDate>Sun, 07 Aug 2022 14:19:13 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>Until a few months ago, there were only two openSUSE mirrors in the whole African continent — in South Africa and Kenya. Now, Mauritius has joined the list by adding two more openSUSE mirrors in Africa.</description>
            <content:encoded><![CDATA[<p>Yesterday, I attended an open source event organised by <a href="https://twitter.com/OSCAMauritius">OSCA Mauritius</a> and <a href="https://www.oceandba.com/">OceanDBA</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/Lets-talk-Open-Source.jpg" class="kg-image" alt="Open Source event at Flying Dodo, photo by Sandeep Ramgolam" loading="lazy" width="1280" height="720" srcset="/content/images/size/w600/2022/08/Lets-talk-Open-Source.jpg 600w, /content/images/size/w1000/2022/08/Lets-talk-Open-Source.jpg 1000w, /content/images/2022/08/Lets-talk-Open-Source.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Open Source event at Flying Dodo, photo by Sandeep Ramgolam</figcaption></figure><p>I was invited to speak at the event and I chose to explain a little about <a href="https://www.opensuse.org/">openSUSE</a>, its different distributions and how we have managed to set up two mirrors to improve the performance of openSUSE updates in Mauritius.</p><p>Girish is a representative for OSCA Mauritius and he works at OceanDBA. He put all the effort into organising this event. At about 09h30, the conference room at Flying Dodo was almost full. Girish welcomed everyone and introduced the presentation themes for the day.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/girish-mahabir-osca-mauritius-open-source-event.jpeg" class="kg-image" alt="Girish Mahabir presenting the topics of the day" loading="lazy" width="2000" height="1123" srcset="/content/images/size/w600/2022/08/girish-mahabir-osca-mauritius-open-source-event.jpeg 600w, /content/images/size/w1000/2022/08/girish-mahabir-osca-mauritius-open-source-event.jpeg 1000w, /content/images/size/w1600/2022/08/girish-mahabir-osca-mauritius-open-source-event.jpeg 1600w, /content/images/2022/08/girish-mahabir-osca-mauritius-open-source-event.jpeg 2120w" sizes="(min-width: 720px) 720px"><figcaption>Girish Mahabir presenting the topics of the day</figcaption></figure><h2 id="first-presentation-%E2%80%93-linux-kernel-history-by-chittesh-sham">First presentation – Linux Kernel history by Chittesh Sham</h2><p>Chittesh is a DevOps Engineer at Corel Corporation. He did a presentation on the Linux Kernel. He tried to summarise three decades of Linux history in one presentation. It was a very informative and fun prez.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/chittesh-sham-speaking-on-the-linux-kernel-history.jpeg" class="kg-image" alt="Chittesh Sham, DevOps Engineer at Corel Corporation" loading="lazy" width="2000" height="1122" srcset="/content/images/size/w600/2022/08/chittesh-sham-speaking-on-the-linux-kernel-history.jpeg 600w, /content/images/size/w1000/2022/08/chittesh-sham-speaking-on-the-linux-kernel-history.jpeg 1000w, /content/images/size/w1600/2022/08/chittesh-sham-speaking-on-the-linux-kernel-history.jpeg 1600w, /content/images/2022/08/chittesh-sham-speaking-on-the-linux-kernel-history.jpeg 2213w" sizes="(min-width: 720px) 720px"><figcaption>Chittesh Sham, DevOps Engineer at Corel Corporation</figcaption></figure><h2 id="second-presentation-%E2%80%93-bash-scripting-by-shravan-dwarka">Second presentation – Bash Scripting by Shravan Dwarka</h2><p>Shravan is a Linux System Engineer at OceanDBA. He did a presentation on the <a href="https://www.gnu.org/software/bash/">Bourne Again SHell (Bash)</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/shravan-dwarka-linux-system-engineer-oceandba-intro-to-bash.jpeg" class="kg-image" alt="Shravan Dwarka, Linux System Engineer at OceanDBA" loading="lazy" width="2000" height="1121" srcset="/content/images/size/w600/2022/08/shravan-dwarka-linux-system-engineer-oceandba-intro-to-bash.jpeg 600w, /content/images/size/w1000/2022/08/shravan-dwarka-linux-system-engineer-oceandba-intro-to-bash.jpeg 1000w, /content/images/size/w1600/2022/08/shravan-dwarka-linux-system-engineer-oceandba-intro-to-bash.jpeg 1600w, /content/images/2022/08/shravan-dwarka-linux-system-engineer-oceandba-intro-to-bash.jpeg 2272w" sizes="(min-width: 720px) 720px"><figcaption>Shravan Dwarka, Linux System Engineer at OceanDBA</figcaption></figure><p>After explaining about Shells, Shravan gave a scenario where a database administrator had to automate backups and perform backup retention.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/08/db-backup-scenario.jpeg" class="kg-image" alt loading="lazy" width="2000" height="1333" srcset="/content/images/size/w600/2022/08/db-backup-scenario.jpeg 600w, /content/images/size/w1000/2022/08/db-backup-scenario.jpeg 1000w, /content/images/size/w1600/2022/08/db-backup-scenario.jpeg 1600w, /content/images/size/w2400/2022/08/db-backup-scenario.jpeg 2400w" sizes="(min-width: 720px) 720px"></figure><p>He then explained line by line how he wrote a Bash script to execute the backup.</p><h2 id="final-presentation-%E2%80%93-opensuse-mirrors-in-mauritius">Final presentation – openSUSE Mirrors in Mauritius</h2><p>My presentation was last. It's been a while since I set up two <a href="https://mirrors.opensuse.org/">openSUSE mirrors</a> in Mauritius. Any openSUSE user on the island will now benefit from fast updates without having to configure anything on their openSUSE machine.</p><p>This event was an opportunity to make a public announcement about the mirrors and explain the process behind. That is, how I contacted sponsors for server/bandwidth in Mauritius and got in touch with the <a href="https://en.opensuse.org/openSUSE:Heroes">openSUSE Heroes</a> to build the repo mirrors.</p><p>However, first I did a history lesson about S.u.S.E, SUSE and openSUSE. I clarified that openSUSE is a project and the various distributions have names like Leap, Leap Micro, Tumbleweed and MicroOS.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/ish-sookun-opensuse-mauritius-what-is-leap.jpeg" class="kg-image" alt="Ish Sookun talking about openSUSE Leap, photo by Neil Baichoo" loading="lazy" width="1562" height="1172" srcset="/content/images/size/w600/2022/08/ish-sookun-opensuse-mauritius-what-is-leap.jpeg 600w, /content/images/size/w1000/2022/08/ish-sookun-opensuse-mauritius-what-is-leap.jpeg 1000w, /content/images/2022/08/ish-sookun-opensuse-mauritius-what-is-leap.jpeg 1562w" sizes="(min-width: 720px) 720px"><figcaption>Ish Sookun talking about openSUSE Leap, photo by Neil Baichoo</figcaption></figure><p>Then, I showed the tickets that I opened at openSUSE to get the ball rolling. Within a few days we had the mirrors set up. </p><p>I mentioned that the domain <code>opensuse.mu</code> is sponsored by the openSUSE project itself. Then, the Heroes created the records to point the domain &amp; sub-domains to servers in Mauritius, sponsored by <a href="https://cloud.mu">cloud.mu</a> and <a href="https://rogerscapital.mu/technology/">Rogers Capital Technology Services</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/opensue-mauritius-sponsors.jpg" class="kg-image" alt="Sponsors for openSUSE mirror servers in Mauritius" loading="lazy" width="1280" height="720" srcset="/content/images/size/w600/2022/08/opensue-mauritius-sponsors.jpg 600w, /content/images/size/w1000/2022/08/opensue-mauritius-sponsors.jpg 1000w, /content/images/2022/08/opensue-mauritius-sponsors.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Sponsors for openSUSE mirror servers in Mauritius</figcaption></figure><p>While speaking about the mirrors, I explained how <a href="https://mirrorbrain.org/">MirrorBrain</a> works. It is an open source framework to run a content delivery network for mirror servers. The two openSUSE mirrors in Mauritius are <a href="https://mirror.opensuse.mu">mirror.opensuse.mu</a> and <a href="https://mirror.rcts.opensuse.mu">mirror.rcts.opensuse.mu</a>. To show how MirrorBrain works with these two servers, I opened <a href="https://get.opensuse.org">get.opensuse.org </a>to download the latest release of openSUSE Leap 15.4.</p><p>I selected the offline installation image and we checked the URL from which the image was downloading. It was the Rogers Capital Technology Services (RCTS) mirror server.</p><p>I SSH'ed on the cloud.mu mirror server to show how the rsync is done from the restricted rsync server of openSUSE.org. I did not SSH on the RCTS server because it requires a VPN (RCTS engineers take security very seriously 🤓). My VPN setup was on a different machine than the one I was doing my presentation on.</p><p>I explained the difference between <strong>rsync.opensuse.org</strong> and <strong>stage.opensuse.org</strong>, the former being a public rsync server. It can be used by anyone wishing to run a private openSUSE mirror for home or office use.</p><p>The conference room was packed with attendees which is a promising thing for an open source event.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/audience-during-openSUSE-presentation.jpg" class="kg-image" alt loading="lazy" width="1280" height="548" srcset="/content/images/size/w600/2022/08/audience-during-openSUSE-presentation.jpg 600w, /content/images/size/w1000/2022/08/audience-during-openSUSE-presentation.jpg 1000w, /content/images/2022/08/audience-during-openSUSE-presentation.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>Photo by Sandeep Ramgolam</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/08/open-source-event-mauritius-audience.jpeg" class="kg-image" alt loading="lazy" width="1499" height="841" srcset="/content/images/size/w600/2022/08/open-source-event-mauritius-audience.jpeg 600w, /content/images/size/w1000/2022/08/open-source-event-mauritius-audience.jpeg 1000w, /content/images/2022/08/open-source-event-mauritius-audience.jpeg 1499w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/08/opensuse-mauritius-at-flying-dodo-audience.jpeg" class="kg-image" alt loading="lazy" width="1716" height="963" srcset="/content/images/size/w600/2022/08/opensuse-mauritius-at-flying-dodo-audience.jpeg 600w, /content/images/size/w1000/2022/08/opensuse-mauritius-at-flying-dodo-audience.jpeg 1000w, /content/images/size/w1600/2022/08/opensuse-mauritius-at-flying-dodo-audience.jpeg 1600w, /content/images/2022/08/opensuse-mauritius-at-flying-dodo-audience.jpeg 1716w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/08/opensuse-mauritius-presentation-audience.jpeg" class="kg-image" alt loading="lazy" width="1688" height="947" srcset="/content/images/size/w600/2022/08/opensuse-mauritius-presentation-audience.jpeg 600w, /content/images/size/w1000/2022/08/opensuse-mauritius-presentation-audience.jpeg 1000w, /content/images/size/w1600/2022/08/opensuse-mauritius-presentation-audience.jpeg 1600w, /content/images/2022/08/opensuse-mauritius-presentation-audience.jpeg 1688w" sizes="(min-width: 720px) 720px"></figure><p>At the end of the event, Joffrey Michaïe, the founder and CEO of OceanDBA addressed the attendees. He thanked the wonderful audience for showing up to the event. Joffrey explained that OceanDBA's business is built on open source technologies and that they have the open source philosophy at the heart of the company.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/08/joffrey-michaie-ceo-founder-oceandba.jpeg" class="kg-image" alt="Joffrey Michaïe, founder &amp; CEO of OceanDBA" loading="lazy" width="1688" height="947" srcset="/content/images/size/w600/2022/08/joffrey-michaie-ceo-founder-oceandba.jpeg 600w, /content/images/size/w1000/2022/08/joffrey-michaie-ceo-founder-oceandba.jpeg 1000w, /content/images/size/w1600/2022/08/joffrey-michaie-ceo-founder-oceandba.jpeg 1600w, /content/images/2022/08/joffrey-michaie-ceo-founder-oceandba.jpeg 1688w" sizes="(min-width: 720px) 720px"><figcaption>Joffrey Michaïe, founder &amp; CEO of OceanDBA</figcaption></figure><p>He was glad to see a lot of young folks attending the event and said that his company would be keen to sponsor such events again in the future. He mentioned that at the moment there are about fifteen <a href="https://www.oceandba.com/career/">open positions at OceanDBA</a> and anyone wishing to apply could reach out to him directly or talk to any other personnel of the company.</p><p>The Managing Director of Rogers Capital Technology Services, Dev Hurkoo, and the Roshan Patroo, Manager at RCTS, attended the event. We met after my presentation. They both told me that they were impressed by the attendee turn-out for an open source event. Dev expressed his interest to support open source activities in the future too.</p>]]></content:encoded>
        </item>
        <item>
            <title>Obtain a Let&#039;s Encrypt certificate for your domain using acme.sh</title>
            <link>https://sysadmin-journal.com/obtain-lets-encrypt-certificate-for-your-domain-using-acme-sh</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/obtain-lets-encrypt-certificate-for-your-domain-using-acme-sh</guid>
            <pubDate>Mon, 01 Aug 2022 16:40:48 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Internet Community</category>
            <category>Linux</category>
            <description>Let&#039;s Encrypt is a non-profit Certificate Authority (CA) run by Internet Security Research Group that provides X.509 certificates for Transport Layer Security encryption at no charge. Its goal is to make all websites secure using HTTPS.</description>
            <content:encoded><![CDATA[<p><code>acme.sh</code> is a <a href="https://github.com/acmesh-official/acme.sh">Shell script</a> that let's you request SSL certificates from different Certificate Authorities (CAs). At the moment I am writing this blog post, <code>acme.sh</code> supports the following CAs:</p><ul><li>ZeroSSL CA (default)</li><li>Letsencrypt.org CA</li><li>BuyPass.com CA</li><li>SSL.com CA</li><li>Google.com Public CA</li><li>Pebble strict Mode</li><li>Any other RFC8555-compliant CA</li></ul><p>ZeroSSL is the default CA.</p><p>In order to request a Let's Encrypt certificate, one can pass the <code>--server letsencrypt</code> directive to change the CA. The default CA can also be changed by issuing:</p><pre><code>acme.sh --set-default-ca --server letsencrypt</code></pre><p>Let's Encrypt has <a href="https://letsencrypt.org/docs/ipv6-support/">IPv6 support</a>. However, you can pass <code>--listen-v4</code> or <code>--listen-v6</code> to specify whether to use IPv4 or IPv6 to listen.</p><pre><code>acme.sh --server letsencrypt --issue --listen-v4 -d sysadmin-journal.com -w /srv/www/sysadmin-journal.com</code></pre><p>The above command lets you request a certificate through the Let's Encrypt CA, using the <strong>webroot</strong> method. In this method, a verification file is created in the webroot path, inside the <code>/.well-know/acme-challenge</code> directory.</p><p>Once verification is complete, the file is removed and the certificate, the intermediary certificate and the key are deposited at <code>/etc/letsencrypt/domain_name</code>.</p><h2 id="installation">Installation</h2><pre><code>git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh

./acme.sh --install -m name@email.com</code></pre><p>The above will create the <code>.acme.sh</code> directory in your home directory. Hence, the script will be available as <code>~./acme.sh/acme.sh</code>. Else, you could also simply clone the project in the <code>/opt</code> directory and create a symlink to the script <code>/usr/local/bin</code>.</p>]]></content:encoded>
        </item>
        <item>
            <title>openSUSE Leap 15.4 Released, Let&#039;s party 🥳 🍻</title>
            <link>https://sysadmin-journal.com/opensuse-leap-15-4-release-party-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/opensuse-leap-15-4-release-party-mauritius</guid>
            <pubDate>Fri, 10 Jun 2022 17:47:49 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>openSUSE Leap uses source from SUSE Linux Enterprise (SLE), which gives Leap a level of stability unmatched by other Linux distributions, and combines that with community developments to give users, developers and sysadmins the best stable Linux experience available.</description>
            <content:encoded><![CDATA[<p><a href="https://mirror.opensuse.mu/distribution/leap/15.4/iso/">openSUSE Leap 15.4</a> was released on 8th June 2022.</p><p>Leap is binary compatible with SUSE Linux Enterprise (SLE) as it shares the same source. Therefore, you can switch a Leap instance to SLE and benefit from paid support without any hassle. This comes very handy in environments where you build and test on Leap but deploy on SLE — lift &amp; shift can't be any simpler.</p><p>Leap 15.4 is a minor release but coinciding with this release, the openSUSE Project introduced a new version of Leap designed for containers and virtualised workloads. It's called Leap Micro. The current version is 5.2.</p><p>Leap Micro shares same source as <a href="https://links.imagerelay.com/cdn/3404/ql/2b13bc3d87704a3c8209961baec30d6b/suse-linux-enterprise-micro-solution-sheet.pdf">SLE Micro</a>.</p><p>In order to celebrate this release, we organised a virtual openSUSE Beer Party in Mauritius.</p><blockquote>Hello everyone! The openSUSE Mauritius community will host a virtual <a href="https://twitter.com/hashtag/openSUSE?src=hash&amp;ref_src=twsrc%5Etfw">#openSUSE</a> Beer Party TODAY 16h30 — 19h00 to celebrate the Leap 15.4 release. They will do a Leap 15.4 installation live and talk about the openSUSE local mirror. Here is the link to join: <a href="https://t.co/D6DpmheC3D">https://t.co/D6DpmheC3D</a> <a href="https://t.co/SBxiXHrwGA">pic.twitter.com/SBxiXHrwGA</a>— MSCC (@MSCraftsman) <a href="https://twitter.com/MSCraftsman/status/1535166122256961536?ref_src=twsrc%5Etfw">June 10, 2022</a> Embedded JavaScript</blockquote><p>The virtual party was held using the <a href="https://meet.mixp.org">Jitsi Meet</a> platform provided by MIXP. Since it's hosted locally, we expected a smooth quality in video and audio.</p><p>Chittesh &amp; Aditya joined the call early on.‌</p><blockquote>We're at <a href="https://t.co/6oTYOsRycW">https://t.co/6oTYOsRycW</a> doing an <a href="https://twitter.com/hashtag/openSUSE?src=hash&amp;ref_src=twsrc%5Etfw">#openSUSE</a> Leap 15.4 installation &amp; celebrating the recent release. 🍻🥳 <a href="https://t.co/AxUuh18Mg1">pic.twitter.com/AxUuh18Mg1</a>— Ish Sookun (@IshSookun) <a href="https://twitter.com/IshSookun/status/1535242567952257024?ref_src=twsrc%5Etfw">June 10, 2022</a> Embedded JavaScript</blockquote><p>I had to juggle between doing a few things at home, handling the kid and getting back to call. Sandeep &amp; Nirvan joined us too, and by the end, David joined the call, for the geek chat.</p><p>We installed Leap 15.4 in a VM. While chatting with Chittesh &amp; Aditya, I selected the server profile from the installer instead of a GNOME Desktop. Facepalm!</p><p>After the installation, I installed <code>patterns-gnome-gnome</code> to have a full blown GNOME Desktop. Sandeep commented downloading of the packages appeared slow. Yes, indeed. So, here I manually switched the repo to <code>mirror.opensuse.mu</code> the ~700 packages downloaded in ~5 mins.</p><h2 id="opensuse-bar">openSUSE Bar</h2><p>A while later, I joined the openSUSE Bar at <a href="https://meet.opensuse.org/bar">meet.opensuse.org/bar</a>. It was nice to have a catch-up with Gertjan after a long time.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/06/opensuse-bar.png" class="kg-image" alt loading="lazy" width="1024" height="702" srcset="/content/images/size/w600/2022/06/opensuse-bar.png 600w, /content/images/size/w1000/2022/06/opensuse-bar.png 1000w, /content/images/2022/06/opensuse-bar.png 1024w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded>
        </item>
        <item>
            <title>A local mirror for openSUSE users in Mauritius 🥳</title>
            <link>https://sysadmin-journal.com/local-mirror-for-opensuse-users-in-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/local-mirror-for-opensuse-users-in-mauritius</guid>
            <pubDate>Wed, 04 May 2022 20:10:34 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>This is something I had planned since long — a local mirror for openSUSE users. The only hiccup to it was finding a server &amp; bandwidth sponsor. In fact, sponsorship is usually the struggle for open source projects and/or activities, in Mauritius.</description>
            <content:encoded><![CDATA[<p>When I attended the <a href="https://sysadmin-journal.com/opensuse-asia-summit/">openSUSE Asia Summit in 2019</a>, I asked my friends in Indonesia about their experience in setting up the mirror for the Indonesian users.</p><p>Earlier this year, <a href="https://sysadmin-journal.com/linux-user-group-of-mauritius-meets-lubos-kocman/">when Luboš Kocman visited Mauritius</a>, we spoke about it again.</p><p>Then, a few weeks ago, I heard from <a href="https://cloud.mu">cloud.mu</a>, who were willing to sponsor a server for mirror purposes. That was just perfect timing. I had started discussions with an ISP but then <a href="https://cloud.mu">cloud.mu</a> was not just willing to provide the server &amp; bandwidth resources but their speed to deploy and assist was even more commendable.</p><p>Once the server was ready, the next step was to contact openSUSE admins to update the DNS records for <a href="https://opensuse.mu">opensuse.mu</a>. I sent my request to the openSUSE Board for the purchase of the domain a long time ago. Until now I used to run a small blog for openSUSE tips &amp; tutorials on <a href="https://opensuse.mu">opensuse.mu</a>. The domain is owned by SUSE and mananged by the openSUSE admins, i.e the <a href="https://en.opensuse.org/openSUSE:Heroes">Heroes team</a>.</p><p>After a few trials to sync from <code>rsync.opensuse.org</code> and other mirrors closer to Mauritius, I contacted the Heroes to get access to <code>stage.opensuse.org</code>,  the restricted rsync server of openSUSE. Then, it was a matter of a few days to sync all that content.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/05/mirror.opensuse.mu.png" class="kg-image" alt loading="lazy" width="1104" height="516" srcset="/content/images/size/w600/2022/05/mirror.opensuse.mu.png 600w, /content/images/size/w1000/2022/05/mirror.opensuse.mu.png 1000w, /content/images/2022/05/mirror.opensuse.mu.png 1104w" sizes="(min-width: 720px) 720px"></figure><p>Finally, the openSUSE mirror for Mauritius was ready. </p><p>Compared to other regions, where there are several mirrors in the same country, the whole African continent had only two openSUSE mirrors until now. One managed by TENET (Tertiary Education and Research Network) in South Africa and the other one by Liquid Telecom in Kenya. Mauritius joins that list as the third mirror in the African region, thanks to <a href="https://cloud.mu">cloud.mu</a>.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/05/opensuse-mirrors.png" class="kg-image" alt loading="lazy" width="1219" height="872" srcset="/content/images/size/w600/2022/05/opensuse-mirrors.png 600w, /content/images/size/w1000/2022/05/opensuse-mirrors.png 1000w, /content/images/2022/05/opensuse-mirrors.png 1219w" sizes="(min-width: 720px) 720px"></figure><h2 id="how-to-switch-to-the-opensuse-mauritius-mirror">How to switch to the openSUSE Mauritius mirror?</h2><p>Switching to the Mauritian mirror is easy. First, remove the current repos that you have by either running <code>zypper lr</code> to identify them and <code>zypper rr repo-name</code> to remove the repos, or go to <code>/etc/zypp/repos.d</code> and remove the <code>.repo</code> files of the openSUSE repositories. If you have repos for other applications, e.g Google Chrome, VS Code etc, leave them.</p><p>Then, if you're using Leap, you can set up the Leap 15.3 OSS, Non-OSS and Update repositories.</p><pre><code>sudo zypper ar https://mirror.opensuse.mu/distribution/leap/15.3/repo/oss openSUSE-Leap-OSS

sudo zypper ar https://mirror.opensuse.mu/distribution/leap/15.3/repo/non-oss openSUSE-Leap-Non-OSS

sudo zypper ar https://mirror.opensuse.mu/update/leap/15.3/oss openSUSE-Leap-Update-OSS

sudo zypper ar https://mirror.opensuse.mu/update/leap/15.3/non-oss openSUSE-Leap-Update-Non-OSS</code></pre><p>If you're using Tumbleweed, add the following repositories.</p><pre><code>sudo zypper ar https://mirror.opensuse.mu/tumbleweed/repo/oss openSUSE-Tumbleweed-OSS

sudo zypper ar https://mirror.opensuse.mu/tumbleweed/repo/non-oss openSUSE-Tumbleweed-Non-OSS

sudo zypper ar https://mirror.opensuse.mu/update/tumbleweed openSUSE-Tumbleweed-Update-OSS</code></pre><p>The mirror contains files for the x86_64 architecture only. If there is a need for other architectures, I'll do the necessary. Ping me on social media or send a mail to ishwon@opensuse.org.</p>]]></content:encoded>
        </item>
        <item>
            <title>openSUSE Leap 15.4 Beta testing</title>
            <link>https://sysadmin-journal.com/opensuse-leap-15-4-beta-testing</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/opensuse-leap-15-4-beta-testing</guid>
            <pubDate>Sat, 05 Mar 2022 16:30:10 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>The openSUSE Leap 15.4 Beta was released on 2 March 2022. Users can test the beta distribution to hunt and report bugs. The final release of Leap 15.4 is scheduled for 8 June 2022.</description>
            <content:encoded><![CDATA[<p>I tested the Leap 15.4 Beta GNOME Desktop today on a Lenovo ThinkPad X250. The installation went through without any hiccup and I documented every step of the installation in a <a href="https://twitter.com/IshSookun/status/1500063095321808899">Twitter thread</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/03/opensuse-leap-15.4-beta-lenovo-thinkpad-x250.jpg" class="kg-image" alt="Lenovo ThinkPad X250 and a bootable USB drive w/ openSUSE Leap 15.4 Beta" loading="lazy" width="1200" height="674" srcset="/content/images/size/w600/2022/03/opensuse-leap-15.4-beta-lenovo-thinkpad-x250.jpg 600w, /content/images/size/w1000/2022/03/opensuse-leap-15.4-beta-lenovo-thinkpad-x250.jpg 1000w, /content/images/2022/03/opensuse-leap-15.4-beta-lenovo-thinkpad-x250.jpg 1200w" sizes="(min-width: 720px) 720px"><figcaption>Lenovo ThinkPad X250 and a bootable USB drive w/ openSUSE Leap 15.4 Beta</figcaption></figure><p>One thing that I noticed was new in the installer is the icon to change the color theme during installation. This was not present when I tested the Leap 15.4 Alpha distribution.</p><p>On the top-right corner of the installer there is a moon icon which can be clicked to select a different theme for the installer. Five themes are available which contain three dark and two light variants.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/03/opensuse-installer-color-theme.jpg" class="kg-image" alt loading="lazy" width="797" height="118" srcset="/content/images/size/w600/2022/03/opensuse-installer-color-theme.jpg 600w, /content/images/2022/03/opensuse-installer-color-theme.jpg 797w" sizes="(min-width: 720px) 720px"></figure><p>The default theme is set to the <code>installation.qss</code> style sheet.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/03/opensuse-installer-default-theme.jpg" class="kg-image" alt loading="lazy" width="789" height="596" srcset="/content/images/size/w600/2022/03/opensuse-installer-default-theme.jpg 600w, /content/images/2022/03/opensuse-installer-default-theme.jpg 789w" sizes="(min-width: 720px) 720px"></figure><p>The <code>cyan-black</code> , <code>highcontrast</code> and <code>white-black</code> are dark themes while <code>installation</code> and <code>style</code> are light themes.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/03/opensuse-installer-highcontrast.jpg" class="kg-image" alt="highcontrast.qss" loading="lazy" width="795" height="597" srcset="/content/images/size/w600/2022/03/opensuse-installer-highcontrast.jpg 600w, /content/images/2022/03/opensuse-installer-highcontrast.jpg 795w" sizes="(min-width: 720px) 720px"><figcaption>highcontrast.qss</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/03/opensuse-installer-whiteblack.jpg" class="kg-image" alt="white-black.qss" loading="lazy" width="793" height="596" srcset="/content/images/size/w600/2022/03/opensuse-installer-whiteblack.jpg 600w, /content/images/2022/03/opensuse-installer-whiteblack.jpg 793w" sizes="(min-width: 720px) 720px"><figcaption>white-black.qss</figcaption></figure><p>I took the above screenshots using the Leap 15.4 Beta image on VirtualBox to get clear images. In the Twitter thread I took pictures of the installation process and the theme selection on a laptop.</p><!--kg-card-begin: html--><center>
    <blockquote class="twitter-tweet"><p lang="en" dir="ltr">The installer light and dark themes. <a href="https://t.co/uEI6OJ2sIz">pic.twitter.com/uEI6OJ2sIz</a></p>&mdash; Ish Sookun (@IshSookun) <a href="https://twitter.com/IshSookun/status/1500063165811331076?ref_src=twsrc%5Etfw">March 5, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 
</center><!--kg-card-end: html--><p>In either installation I did not encounter any bug while setting up GNOME Desktop with defaults.</p>]]></content:encoded>
        </item>
        <item>
            <title>Linux User Group of Mauritius meets Luboš Kocman</title>
            <link>https://sysadmin-journal.com/linux-user-group-of-mauritius-meets-lubos-kocman</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/linux-user-group-of-mauritius-meets-lubos-kocman</guid>
            <pubDate>Mon, 24 Jan 2022 19:44:32 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>We did not have physical meetups for perhaps longer than a year. So, when Luboš told me that he is visiting Mauritius and will be glad to meet local openSUSE, Linux &amp; FOSS people, I was thrilled. Not to mention he&#039;d bring some openSUSE goodies. 😊 I called up LUGM friends to make this happen.</description>
            <content:encoded><![CDATA[<p>We had a meetup in the conference room of <a href="https://www.instagram.com/flyingdodobrewery/">Flying Dodo</a>, Bagatelle, on Saturday 22 January 2022. Luboš Kocman, the Release Manager for openSUSE, who came to Mauritius on vacation was kind enough to spare a few hours and meet us.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/01/lugm-meets-lubos-kocman.jpg" class="kg-image" alt loading="lazy" width="1200" height="674" srcset="/content/images/size/w600/2022/01/lugm-meets-lubos-kocman.jpg 600w, /content/images/size/w1000/2022/01/lugm-meets-lubos-kocman.jpg 1000w, /content/images/2022/01/lugm-meets-lubos-kocman.jpg 1200w" sizes="(min-width: 720px) 720px"></figure><p>Nirvan Pagooah, the Secretary of the Linux User Group of Mauritius, made the announcement of the meetup on the <a href="https://discuss.lugm.org/pipermail/discuss_discuss.lugm.org/2022-January/005877.html">LUGM discussion list</a>. Due to sanitary restrictions imposed by the government we could not make the meetup public. We had to keep it a private event with a limited number of attendees.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/01/lugm-meetup-attendees.jpg" class="kg-image" alt loading="lazy" width="1200" height="674" srcset="/content/images/size/w600/2022/01/lugm-meetup-attendees.jpg 600w, /content/images/size/w1000/2022/01/lugm-meetup-attendees.jpg 1000w, /content/images/2022/01/lugm-meetup-attendees.jpg 1200w" sizes="(min-width: 720px) 720px"><figcaption>Grateful to everyone who made it despite the short notice</figcaption></figure><p>Luboš told us about some new things that will be coming to Leap in the future. He explained his role as a Release Manager for openSUSE and how the community as a whole is regarded as a SUSE partner. He explained the relationship between SUSE and the openSUSE community. He also talked about <a href="https://www.suse.com/products/suse-liberty-linux/">SUSE Liberty Linux</a>, a new offering by SUSE which offers support for mixed Linux environment, like RHEL, CentOS and SLES.</p><p>Luboš showed us <a href="https://code.opensuse.org/leap/features/issues">code.opensuse.org/leap/features/issues</a> where community members can request the features they want most in openSUSE Leap. Hence, contributing to making openSUSE distributions better.</p><p>I asked whether the feature requests for Leap won't make it such that Leap and Tumbleweed will have different features. Luboš opened <a href="https://opensource.suse.com/legal/policy">opensource.suse.com/legal/policy</a> and explained that the contributions land in Factory first. He talked about the binary compatibility between Leap &amp; SLES and users can test on Leap then migrate to SLES at total ease.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/01/lubos-kocman-explains-factory-first.jpg" class="kg-image" alt loading="lazy" width="1200" height="674" srcset="/content/images/size/w600/2022/01/lubos-kocman-explains-factory-first.jpg 600w, /content/images/size/w1000/2022/01/lubos-kocman-explains-factory-first.jpg 1000w, /content/images/2022/01/lubos-kocman-explains-factory-first.jpg 1200w" sizes="(min-width: 720px) 720px"></figure><p>We talked about contributing to open source. Luboš mentioned non-code contributions and how easy it is to contribute to openSUSE. Ajay Ramjatan, one of the founders and the current President of LUGM, mentioned that for many years this is what he's been telling Linux &amp; FOSS enthusiasts, that contributions can be in any form, like designs, translations, etc.</p><p>On that note Avinash Meetoo added that the Mauritian Creole (kreol morisien) can be an interesting FOSS project if we would consider adding Kreol support to openSUSE. He mentioned that there are people who are well versed on the topic but might not be techie, that is where we can work together and make it happen.</p><p>Renghen Pajanilingum shot a few tech questions, from containers to programming languages &amp; having to compile software using different versions of packages. I know Renghen does not like to spend time fixing the distro problems because he'd rather spend that on actual work. However, he is one of the several Linux people that I have tried to lure to the green side. 😁 Not there yet but I am hopeful that we'll paint his laptop green one day.</p><p>I cannot end this blog without thanking Joffrey Michaïe for sponsoring a round of beer 🍺 (and other drinks) for everyone.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/01/lugm-meetup-beer-sponsored.jpg" class="kg-image" alt loading="lazy" width="1200" height="674" srcset="/content/images/size/w600/2022/01/lugm-meetup-beer-sponsored.jpg 600w, /content/images/size/w1000/2022/01/lugm-meetup-beer-sponsored.jpg 1000w, /content/images/2022/01/lugm-meetup-beer-sponsored.jpg 1200w" sizes="(min-width: 720px) 720px"></figure><p>At around 5 p.m the meetup ended.</p><p>Some of us stayed at Flying Dodo for more beer and to have dinner. Finally, we went to <a href="https://www.facebook.com/MuggAndBeanMauritius/">Mugg &amp; Bean</a> for a coffee and continued chatting about work, life and the balance. At 8:30 p.m, the hotel's taxi came for Luboš.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2022/01/lugm-meetup-w-lubos-kocman-end-the-day-w-coffee.jpg" class="kg-image" alt loading="lazy" width="1200" height="674" srcset="/content/images/size/w600/2022/01/lugm-meetup-w-lubos-kocman-end-the-day-w-coffee.jpg 600w, /content/images/size/w1000/2022/01/lugm-meetup-w-lubos-kocman-end-the-day-w-coffee.jpg 1000w, /content/images/2022/01/lugm-meetup-w-lubos-kocman-end-the-day-w-coffee.jpg 1200w" sizes="(min-width: 720px) 720px"></figure><p>Hoping to be able to meet and greet geekos again.</p>]]></content:encoded>
        </item>
        <item>
            <title>Linux Mint partners with Mozilla and makes some changes to the Firefox package it ships with its distribution</title>
            <link>https://sysadmin-journal.com/linux-mint-partners-with-mozilla-and-makes-some-changes-to-the-firefox-package-it-ships-with-its-distribution</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/linux-mint-partners-with-mozilla-and-makes-some-changes-to-the-firefox-package-it-ships-with-its-distribution</guid>
            <pubDate>Wed, 12 Jan 2022 06:51:44 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Linux</category>
            <category>Internet Community</category>
            <description>I tried to keep the title of this post less ambiguous or misleading as the others that I found in the past two days.</description>
            <content:encoded><![CDATA[<p>Yesterday, <a href="https://blog.linuxmint.com/?p=4244&amp;fbclid=IwAR36KeTzzLOYTXdMElrP8UtUDU-pcRezLcd9Gl3Mr4pBS4v_jHxiyH6lh2M">in a post</a>, the Linux Mint project leader, Clément Lefebvre (Clem), announced a partnership with Mozilla. In a small set of FAQs, Clem tried to address most of the immediately raising questions. He even answered questions in the comments section to make things as clear as possible.</p><p>However, I saw two articles that I would say have misleading titles. One is from betanews.com and the other published by omgubuntu.co.uk. I'm not judging the article authors but I believe the titles should have portrayed the actual Linux Mint announcement.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/01/betanews-linux-mint.png" class="kg-image" alt="betanews.com screenshot taken on 12 Jan 2022" loading="lazy" width="1009" height="834" srcset="/content/images/size/w600/2022/01/betanews-linux-mint.png 600w, /content/images/size/w1000/2022/01/betanews-linux-mint.png 1000w, /content/images/2022/01/betanews-linux-mint.png 1009w" sizes="(min-width: 720px) 720px"><figcaption>betanews.com screenshot taken on 12 Jan 2022</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2022/01/omg-ubuntu-writes-about-linux-mint.png" class="kg-image" alt="OMG! Ubuntu! post on Facebook" loading="lazy" width="700" height="626" srcset="/content/images/size/w600/2022/01/omg-ubuntu-writes-about-linux-mint.png 600w, /content/images/2022/01/omg-ubuntu-writes-about-linux-mint.png 700w"><figcaption>OMG! Ubuntu! post on Facebook</figcaption></figure><p>OMG! Ubuntu! says big changes coming to Firefox on Linux Mint, while the actual changes mean:</p><ul><li>The default start page no longer points to https://www.linuxmint.com/start/</li><li>The default search engines no longer include Linux Mint search partners (Yahoo, DuckDuckGo…) but Mozilla search partners (Google, Amazon, Bing, DuckDuckGo, Ebay…)</li><li>The default configuration switches from Mint defaults to Mozilla defaults.</li><li>Firefox no longer includes code changes or patches from Linux Mint, Debian or Ubuntu.</li></ul><p>The above list of changes are the exact ones posted by Clément Lefebvre and let's be honest these do not look like big changes. Anyone not liking the Firefox defaults can still change them to what they prefer and those who had made changes to the Firefox config previously, their preferences will be preserved and not overwritten.</p><h2 id="firefox-960-released">Firefox 96.0 released</h2><p>Yesterday, <a href="https://www.mozilla.org/en-GB/firefox/new/">Firefox 96.0 was released</a> and in an article, <a href="https://www.phoronix.com/scan.php?page=news_item&amp;px=Firefox-96-Released">Phoronix</a> talks about the browser's performance. In the same article, the author, Michael Larabel mentioned the Linux Mint/Mozilla partnership announcement without any ambiguity. I quote:</p><blockquote>[...] Linux Mint announced on Monday they signed a partnership with Mozilla. Financial details were not disclosed but Linux Mint's Firefox build will be changing its default start page, the default search engines will change to Mozilla search partners, and other modifications for Mozilla.</blockquote>]]></content:encoded>
        </item>
        <item>
            <title>openSUSE Board Election 2021 happening right now</title>
            <link>https://sysadmin-journal.com/opensuse-board-election-2021-happening-right-now</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/opensuse-board-election-2021-happening-right-now</guid>
            <pubDate>Wed, 22 Dec 2021 06:36:31 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>openSUSE</category>
            <category>Linux</category>
            <description>It&#039;s the time of the year when Ariez, Edwin and myself hold our regular meetings and chats to plan the openSUSE Board Election. This year we had a twist with insufficient nominations.</description>
            <content:encoded><![CDATA[<p>The election was <a href="https://lists.opensuse.org/archives/list/project@lists.opensuse.org/thread/O7HVRIVYEA65YHCXDZHY62DCDECHPNOP/">announced on the project mailing list</a> on the 1st of November 2021. The current Election Committee is composed of Ariez Vachha, Mohammad Edwin Zakaria and myself.</p><p>This election is required to fill two seats on the openSUSE Board, as the term for Simon Lees and Vinzenz Vietzke are coming to an end.</p><p>To learn more about openSUSE membership, check out this <a href="https://en.opensuse.org/openSUSE:Members">wiki</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2021/12/opensuse-board-election-2021.jpg" class="kg-image" alt loading="lazy" width="1599" height="1131" srcset="/content/images/size/w600/2021/12/opensuse-board-election-2021.jpg 600w, /content/images/size/w1000/2021/12/opensuse-board-election-2021.jpg 1000w, /content/images/2021/12/opensuse-board-election-2021.jpg 1599w" sizes="(min-width: 720px) 720px"><figcaption>Election poster by Kukuh Syafaat / openSUSE Indonesia</figcaption></figure><p>As the initial nominations/applications phase ended, we had only two members who expressed to run for this election. They are:</p><p>• Attila Pinter<br>• Maurizio Galli</p><p>Since, we had only two candidates for two available seats, we extended the nominations/applications phase for another two weeks, giving other members the chance to toss the names of people who'd they wish to nominate. However, even after the two weeks, we were still left with only two candidates and therefore, as per the <a href="https://en.opensuse.org/openSUSE:Board_election_rules#Insufficient_Nominations:">election rule about insufficient nominations</a>, we started the election and each candidate is required to obtain 50% of votes to be considered a winner.</p><p>The ballots were opened on the 13th of December and openSUSE members received their voting URL/credentials by email. They can vote until the 30th of December at 23h59 UTC. Ballots will close on 31st December at midnight and a few hours later the result will be announced.</p>]]></content:encoded>
        </item>
        <item>
            <title>ubuCon Asia 2021</title>
            <link>https://sysadmin-journal.com/ubucon-asia-2021</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/ubucon-asia-2021</guid>
            <pubDate>Sat, 25 Sep 2021 07:36:31 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Conference</category>
            <category>Linux</category>
            <category>Ubuntu</category>
            <description>Asia has seen a rise in Open Source community groups in the recent years, e.g GNOME.Asia, openSUSE.Asia and FOSSASIA. ubuCon is organised for the first time in Asia.</description>
            <media:content url="https://sysadmin-journal.com/content/images/2021/09/ubuCon_Asia_2021.png" medium="image" />
            <content:encoded><![CDATA[<p>ubuCon Asia is a community event organised by the Ubuntu LoCo teams of the Asian region. It is a virtual conference that started today, 25 September 2021 and will last till tomorrow.</p><p>Attendees need to register on <a href="https://eventyay.com/e/75ac7f83/">eventyay.com</a> and get a conference ticket for free before they can access the meeting rooms. There are two meeting rooms with presentations happening simultaneously like the usual conferences.</p><p>I attended this morning's keynote which was delivered by Ken VanDine, Engineering Manager at Canonical. Ken gave a brief about what's happening with the Ubuntu community. He highlighted the features of the upcoming release of Ubuntu 21.10 Impish Indri scheduled for 14 October, less than a month away.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2021/09/UbuConAsia2021-Keynote-KenVanDine.jpg" class="kg-image" alt="Ken VanDine delivering the ubuCon Asia 2021 Keynote" loading="lazy" width="1200" height="656" srcset="/content/images/size/w600/2021/09/UbuConAsia2021-Keynote-KenVanDine.jpg 600w, /content/images/size/w1000/2021/09/UbuConAsia2021-Keynote-KenVanDine.jpg 1000w, /content/images/2021/09/UbuConAsia2021-Keynote-KenVanDine.jpg 1200w" sizes="(min-width: 720px) 720px"><figcaption>Ken VanDine delivering the ubuCon Asia 2021 Keynote</figcaption></figure><p>He mentioned that in the recent Beta release of Impish Indri users will notice that the Firefox browser is a snap package rather than the usual deb packaged. He explained the choice as being a collaboration between Mozilla and Canonical developers.</p><p>He talked about Ubuntu's choice of Flutter to develop native apps. The current Ubuntu installer is a Flutter application. He showed a demo of how to install the Flutter SDK and Visual Studio Code on Ubuntu using the Software Center. He then installed the Flutter extension and brought up a quick demo app on Flutter.</p><p>It is good to note that there is a <code>yaru-flutter</code> <a href="https://pub.dev/packages/yaru">package</a> that provides the look &amp; feel of the Ubuntu system theme to Flutter apps.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2021/09/yaru-flutter.png" class="kg-image" alt="yaru-flutter package" loading="lazy" width="520" height="809"></figure><p>Canonical has been pushing Flutter as the choice of native app development on Ubuntu since quite some time now and with the demo by Ken VanDine it becomes apparent how effortless Flutter development is on the Ubuntu desktop.</p><p>Some nice sessions are planned today and tomorrow, giving Linux users tips and tricks that they can use daily. Many of the sessions are done in native languages like Bahasa Indonesia or Japanese with English transliteration.</p><p>Tomorrow at 08h45 MUT, <a href="https://twitter.com/cho2MLHC">Kukuh Syafaat</a>, a friend from the openSUSE Indonesia community will present <a href="https://eventyay.com/e/75ac7f83/session/7235">Snap in MicroOS</a>.</p><p>Snap is a package manager for containerised software packages. It is used mainly by Ubuntu derivatives. Kukuh Syafaat will explain how to use Snap in openSUSE MicroOS, a Linux distribution designed mainly for container hosting. However, there has been efforts into having a MicroOS Desktop with an immutable OS concept. MicroOS Desktop comes with Flatpak pre-installed. It'll be nice to see support for Snap as well.</p>]]></content:encoded>
        </item>
        <item>
            <title>Trying GNOME 41</title>
            <link>https://sysadmin-journal.com/trying-gnome-41</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/trying-gnome-41</guid>
            <pubDate>Thu, 23 Sep 2021 17:25:49 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Linux</category>
            <description>GNOME 41 brings new features to improve the desktop experience on Linux. I tried it by running GNOME OS. Three-finger gestures and the new Multitasking panel are what I liked most.</description>
            <media:content url="https://sysadmin-journal.com/content/images/2021/09/Screenshot-from-2021-09-23-16-42-52.png" medium="image" />
            <content:encoded><![CDATA[<p>GNOME 41 was released on 22 September 2021, i.e yesterday. A few major tech blogs spoke about it, some of them lengthily, <a href="https://www.omgubuntu.co.uk/2021/08/gnome-41-features-and-changes">testing and describing</a> the new features.</p><p>I know for sure that GNOME 41 will be available to openSUSE Tumbleweed users in the next few days. However, I wanted to give it a spin ahead of its availability in the Tumbleweed repos. GNOME provides an ISO that bundles its latest version. It's called GNOME OS and it is available at <a href="https://os.gnome.org/">os.gnome.org</a>. The site provides a disclaimer that this is a pre-release software intended for testing and development. It should not be used for production.</p><p><em><strong>Bear in mind that GNOME OS is not a live distribution but an installer. Therefore, if you're just trying out things then you should install it in a virtual machine.</strong></em></p><p>GNOME 41 proposes a quick tour upon the first log in. It's just a couple of image slides that mention some of the new features. One of the hot takes in this version is the three-finger gestures for swiping workspaces.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2021/09/three-finger-horizontal-swipes-2.png" class="kg-image" alt="GNOME 41 tour on GNOME OS" loading="lazy" width="1012" height="772" srcset="/content/images/size/w600/2021/09/three-finger-horizontal-swipes-2.png 600w, /content/images/size/w1000/2021/09/three-finger-horizontal-swipes-2.png 1000w, /content/images/2021/09/three-finger-horizontal-swipes-2.png 1012w" sizes="(min-width: 720px) 720px"><figcaption>GNOME 41 tour on GNOME OS</figcaption></figure><p>The GNOME Control Centre, commonly known as simply <strong>Settings</strong> in most Linux distributions, received updates too. It has a new panel called <strong>Multitasking</strong> which allows the user to configure the behaviour of the screen corner &amp; edges, e.g disabling the Hot Corner.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2021/09/GNOME-Multitasking-Workspaces.png" class="kg-image" alt="Multitasking panel in the GNOME Control Centre" loading="lazy" width="1032" height="739" srcset="/content/images/size/w600/2021/09/GNOME-Multitasking-Workspaces.png 600w, /content/images/size/w1000/2021/09/GNOME-Multitasking-Workspaces.png 1000w, /content/images/2021/09/GNOME-Multitasking-Workspaces.png 1032w" sizes="(min-width: 720px) 720px"><figcaption>Multitasking panel in the GNOME Control Centre</figcaption></figure><p>The Multitasking panel also allows the user to set the workspace as dynamic or set it to a fixed number.</p><p>I like these new features and I am certainly eager to see GNOME 41 land in Tumbleweed. 😊</p>]]></content:encoded>
        </item>
    </channel>
</rss>
