<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>You Just Entered My Secret Cheatbox!</title><link href="https://majid.ninja/" rel="alternate"></link><link href="https://majid.ninja/feeds/all.atom.xml" rel="self"></link><id>https://majid.ninja/</id><updated>2025-03-27T11:52:00+00:00</updated><subtitle>DevOps Enthusiast</subtitle><entry><title>Debian sources.list - All releases.</title><link href="https://majid.ninja/debian-sourceslist-all-releases.html" rel="alternate"></link><published>2025-03-27T11:52:00+00:00</published><updated>2025-03-27T11:52:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2025-03-27:/debian-sourceslist-all-releases.html</id><summary type="html">&lt;p&gt;&lt;strong&gt;APT sources.list entries for every Debian release&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="debian-7-wheezy"&gt;Debian 7 (Wheezy)&lt;a class="headerlink" href="#debian-7-wheezy" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Archived:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;wheezy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;wheezy/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-8-jessie"&gt;Debian 8 (Jessie)&lt;a class="headerlink" href="#debian-8-jessie" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;jessie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://ftp …&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;APT sources.list entries for every Debian release&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="debian-7-wheezy"&gt;Debian 7 (Wheezy)&lt;a class="headerlink" href="#debian-7-wheezy" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Archived:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;wheezy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;wheezy/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-8-jessie"&gt;Debian 8 (Jessie)&lt;a class="headerlink" href="#debian-8-jessie" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;jessie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://ftp.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;jessie-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.debian.org/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;jessie/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Archived:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;jessie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;jessie/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-9-stretch"&gt;Debian 9 (Stretch)&lt;a class="headerlink" href="#debian-9-stretch" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;stretch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;stretch-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.debian.org/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;stretch/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Archived:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;stretch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;stretch-proposed-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;stretch/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-10-buster"&gt;Debian 10 (Buster)&lt;a class="headerlink" href="#debian-10-buster" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.debian.org/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Archived:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster-proposed-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://archive.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;buster/updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-11-bullseye"&gt;Debian 11 (Bullseye)&lt;a class="headerlink" href="#debian-11-bullseye" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;bullseye&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;bullseye-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;bullseye-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-12-bookworm"&gt;Debian 12 (Bookworm)&lt;a class="headerlink" href="#debian-12-bookworm" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;bookworm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free-firmware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;bookworm-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free-firmware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;bookworm-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free-firmware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="debian-13-trixie"&gt;Debian 13 (Trixie)&lt;a class="headerlink" href="#debian-13-trixie" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Original:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-sourceslist"&gt;&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;trixie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free-firmware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://deb.debian.org/debian&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;trixie-updates&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free-firmware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;span class="k"&gt;deb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;http://security.debian.org/debian-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;trixie-security&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;contrib&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free-firmware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;non-free&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="debian"></category><category term="apt"></category><category term="sources"></category></entry><entry><title>Terminating stuck namespaces using kubectl</title><link href="https://majid.ninja/terminating-stuck-namespaces-using-kubectl.html" rel="alternate"></link><published>2025-03-27T11:27:00+00:00</published><updated>2025-03-27T11:27:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2025-03-27:/terminating-stuck-namespaces-using-kubectl.html</id><summary type="html">&lt;h2 id="description"&gt;Description&lt;a class="headerlink" href="#description" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;After installing a helm deployment or testing something and you removed everything, sometimes we faced a stuck namespace, so how to kill it?&lt;/p&gt;
&lt;h2 id="terminating-stuck-namespace"&gt;Terminating stuck namespace&lt;a class="headerlink" href="#terminating-stuck-namespace" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Set the namespace name, then run the command below:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;&lt;span class="nv"&gt;NAMESPACE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;stuck-namespace

kubectl&lt;span class="w"&gt; &lt;/span&gt;get&lt;span class="w"&gt; &lt;/span&gt;namespace&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NAMESPACE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;json&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;s/\&amp;quot;finalizers …&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;</summary><content type="html">&lt;h2 id="description"&gt;Description&lt;a class="headerlink" href="#description" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;After installing a helm deployment or testing something and you removed everything, sometimes we faced a stuck namespace, so how to kill it?&lt;/p&gt;
&lt;h2 id="terminating-stuck-namespace"&gt;Terminating stuck namespace&lt;a class="headerlink" href="#terminating-stuck-namespace" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Set the namespace name, then run the command below:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;&lt;span class="nv"&gt;NAMESPACE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;stuck-namespace

kubectl&lt;span class="w"&gt; &lt;/span&gt;get&lt;span class="w"&gt; &lt;/span&gt;namespace&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NAMESPACE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;json&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;s/\&amp;quot;finalizers\&amp;quot;: \[[^]]\+\]/\&amp;quot;finalizers\&amp;quot;: []/&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;replace&lt;span class="w"&gt; &lt;/span&gt;--raw&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/api/v1/namespaces/&lt;/span&gt;&lt;span class="nv"&gt;$NAMESPACE&lt;/span&gt;&lt;span class="s2"&gt;/finalize&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-
&lt;/code&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Or, if you have &lt;code&gt;jq&lt;/code&gt; installed:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;get&lt;span class="w"&gt; &lt;/span&gt;namespace&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$NAMESPACE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;json&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;jq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;.spec.finalizers = []&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;replace&lt;span class="w"&gt; &lt;/span&gt;--raw&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/api/v1/namespaces/&lt;/span&gt;&lt;span class="nv"&gt;$NAMESPACE&lt;/span&gt;&lt;span class="s2"&gt;/finalize&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;-
&lt;/code&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; A namespace usually gets stuck because an API service or a custom resource inside it can no longer be cleaned up. &lt;code&gt;kubectl get namespace "$NAMESPACE" -o yaml&lt;/code&gt; shows the reason under &lt;code&gt;status.conditions&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="misc"></category><category term="kubernetes"></category><category term="namespace"></category><category term="kubectl"></category></entry><entry><title>Installing VMWare WorkStation Pro On Ubuntu/Debian and fix VMware kernel module.</title><link href="https://majid.ninja/installing-vmware-workstation-pro-on-ubuntudebian-and-fix-vmware-kernel-module.html" rel="alternate"></link><published>2025-02-23T23:57:00+00:00</published><updated>2025-02-23T23:57:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2025-02-23:/installing-vmware-workstation-pro-on-ubuntudebian-and-fix-vmware-kernel-module.html</id><summary type="html">&lt;h2 id="downloading-the-software"&gt;Downloading the software&lt;a class="headerlink" href="#downloading-the-software" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1- Login to the Broadcom Support Portal – &lt;a href="https://support.broadcom.com"&gt;https://support.broadcom.com&lt;/a&gt; . If you don’t have an account, create one to proceed.&lt;/p&gt;
&lt;p&gt;2- After successful login, access the VMware Workstation Pro downloads using the link, Download &lt;a href="https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro"&gt;VMware Workstation Pro&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="installing-the-software"&gt;Installing the software&lt;a class="headerlink" href="#installing-the-software" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Executing the below commands:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The …&lt;/p&gt;</summary><content type="html">&lt;h2 id="downloading-the-software"&gt;Downloading the software&lt;a class="headerlink" href="#downloading-the-software" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;1- Login to the Broadcom Support Portal – &lt;a href="https://support.broadcom.com"&gt;https://support.broadcom.com&lt;/a&gt; . If you don’t have an account, create one to proceed.&lt;/p&gt;
&lt;p&gt;2- After successful login, access the VMware Workstation Pro downloads using the link, Download &lt;a href="https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro"&gt;VMware Workstation Pro&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="installing-the-software"&gt;Installing the software&lt;a class="headerlink" href="#installing-the-software" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Executing the below commands:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The kernel headers must be installed &lt;strong&gt;before&lt;/strong&gt; building the VMware modules:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;build-essential&lt;span class="w"&gt; &lt;/span&gt;linux-headers-&lt;span class="k"&gt;$(&lt;/span&gt;uname&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="k"&gt;)&lt;/span&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;bash&lt;span class="w"&gt; &lt;/span&gt;VMware-Workstation-Full-&lt;span class="nv"&gt;$version&lt;/span&gt;.bundle
sudo&lt;span class="w"&gt; &lt;/span&gt;vmware-modconfig&lt;span class="w"&gt; &lt;/span&gt;--console&lt;span class="w"&gt; &lt;/span&gt;--install-all
&lt;/code&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Now application should installed successfully, But if your secure boot enabled you will face the below error when start any vm.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;code class="language-text"&gt;Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon&amp;#39; is loaded.
&lt;/code&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;To solve this issue you need to disable the secure boot OR do the following secure trick (Sign the VMware modules)!&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;openssl&lt;span class="w"&gt; &lt;/span&gt;req&lt;span class="w"&gt; &lt;/span&gt;-new&lt;span class="w"&gt; &lt;/span&gt;-x509&lt;span class="w"&gt; &lt;/span&gt;-newkey&lt;span class="w"&gt; &lt;/span&gt;rsa:2048&lt;span class="w"&gt; &lt;/span&gt;-keyout&lt;span class="w"&gt; &lt;/span&gt;MOK.priv&lt;span class="w"&gt; &lt;/span&gt;-outform&lt;span class="w"&gt; &lt;/span&gt;DER&lt;span class="w"&gt; &lt;/span&gt;-out&lt;span class="w"&gt; &lt;/span&gt;MOK.der&lt;span class="w"&gt; &lt;/span&gt;-nodes&lt;span class="w"&gt; &lt;/span&gt;-days&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;36500&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-subj&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/CN=VMware/&amp;quot;&lt;/span&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;/usr/src/linux-headers-&lt;span class="k"&gt;$(&lt;/span&gt;uname&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="k"&gt;)&lt;/span&gt;/scripts/sign-file&lt;span class="w"&gt; &lt;/span&gt;sha256&lt;span class="w"&gt; &lt;/span&gt;./MOK.priv&lt;span class="w"&gt; &lt;/span&gt;./MOK.der&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;modinfo&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;vmmon&lt;span class="k"&gt;)&lt;/span&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;/usr/src/linux-headers-&lt;span class="k"&gt;$(&lt;/span&gt;uname&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="k"&gt;)&lt;/span&gt;/scripts/sign-file&lt;span class="w"&gt; &lt;/span&gt;sha256&lt;span class="w"&gt; &lt;/span&gt;./MOK.priv&lt;span class="w"&gt; &lt;/span&gt;./MOK.der&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;modinfo&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;vmnet&lt;span class="k"&gt;)&lt;/span&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;mokutil&lt;span class="w"&gt; &lt;/span&gt;--import&lt;span class="w"&gt; &lt;/span&gt;MOK.der&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="c1"&gt;# asks you to set a one-time password&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After running these commands, you'll need to:&lt;/p&gt;
&lt;p&gt;Restart your system.&lt;/p&gt;
&lt;p&gt;A blue screen will appear during boot (MOK management).&lt;/p&gt;
&lt;p&gt;Choose "Enroll MOK".&lt;/p&gt;
&lt;p&gt;Continue with the enrollment.&lt;/p&gt;
&lt;p&gt;Enter the password you set with mokutil.&lt;/p&gt;
&lt;p&gt;Confirm enrollment.&lt;/p&gt;
&lt;p&gt;Your system will continue booting and vmware issue will be over.&lt;/p&gt;</content><category term="misc"></category><category term="debian"></category><category term="kernel"></category><category term="vmware"></category></entry><entry><title>Kubernetes Let’s Encrypt wildcard</title><link href="https://majid.ninja/kubernetes-lets-encrypt-wildcard.html" rel="alternate"></link><published>2024-02-22T17:38:00+00:00</published><updated>2024-02-22T17:38:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2024-02-22:/kubernetes-lets-encrypt-wildcard.html</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The HTTP-01 solver used below issues a certificate per hostname. A true wildcard certificate (&lt;code&gt;*.example.com&lt;/code&gt;) requires a &lt;a href="https://cert-manager.io/docs/configuration/acme/dns01/"&gt;DNS-01 solver&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="1-installing-cert-manager"&gt;1. Installing Cert-Manager&lt;a class="headerlink" href="#1-installing-cert-manager" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There's 2 ways to install cert-manager, by kubectl from the cert-manager source and the other one is by using helm.
Use only one from the 2 …&lt;/p&gt;</summary><content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The HTTP-01 solver used below issues a certificate per hostname. A true wildcard certificate (&lt;code&gt;*.example.com&lt;/code&gt;) requires a &lt;a href="https://cert-manager.io/docs/configuration/acme/dns01/"&gt;DNS-01 solver&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="1-installing-cert-manager"&gt;1. Installing Cert-Manager&lt;a class="headerlink" href="#1-installing-cert-manager" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There's 2 ways to install cert-manager, by kubectl from the cert-manager source and the other one is by using helm.
Use only one from the 2 options.&lt;/p&gt;
&lt;h3 id="installing-cert-manager-by-kubectl"&gt;Installing Cert-Manager by kubectl&lt;a class="headerlink" href="#installing-cert-manager-by-kubectl" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;apply&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.yaml
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;To check the latest cert-manager versions you can visit:
&lt;a href="https://cert-manager.io/docs/installation/"&gt;Cert-manager kubectl Installation guide&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="installing-cert-manager-by-helm-charts"&gt;Installing Cert-Manager by helm charts&lt;a class="headerlink" href="#installing-cert-manager-by-helm-charts" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;helm&lt;span class="w"&gt; &lt;/span&gt;repo&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;jetstack&lt;span class="w"&gt; &lt;/span&gt;https://charts.jetstack.io
helm&lt;span class="w"&gt; &lt;/span&gt;repo&lt;span class="w"&gt; &lt;/span&gt;update
helm&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;cert-manager&lt;span class="w"&gt; &lt;/span&gt;jetstack/cert-manager&lt;span class="w"&gt; &lt;/span&gt;--namespace&lt;span class="w"&gt; &lt;/span&gt;cert-manager&lt;span class="w"&gt; &lt;/span&gt;--create-namespace&lt;span class="w"&gt; &lt;/span&gt;--set&lt;span class="w"&gt; &lt;/span&gt;crds.enabled&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="2-installing-nginx-ingress-controller"&gt;2. Installing Nginx ingress controller&lt;a class="headerlink" href="#2-installing-nginx-ingress-controller" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;helm&lt;span class="w"&gt; &lt;/span&gt;repo&lt;span class="w"&gt; &lt;/span&gt;add&lt;span class="w"&gt; &lt;/span&gt;ingress-nginx&lt;span class="w"&gt; &lt;/span&gt;https://kubernetes.github.io/ingress-nginx
helm&lt;span class="w"&gt; &lt;/span&gt;repo&lt;span class="w"&gt; &lt;/span&gt;update
helm&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;ingress-controller&lt;span class="w"&gt; &lt;/span&gt;ingress-nginx/ingress-nginx
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Or you can check this link for installation from kubectl:
&lt;a href="https://docs.nginx.com/nginx-ingress-controller/installation/installing-nic/installation-with-manifests/"&gt;Nginx Ingress Controller Installation Guide&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="3-configure-the-lets-encrypt-certificate-issuer"&gt;3. Configure The Let's Encrypt Certificate Issuer&lt;a class="headerlink" href="#3-configure-the-lets-encrypt-certificate-issuer" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To finish this you need to create a file for ex. letsencrypt-production.yaml and put the below inside it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-yaml"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;cert-manager.io/v1&lt;/span&gt;
&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;ClusterIssuer&lt;/span&gt;
&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;letsencrypt-production&lt;/span&gt;
&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;acme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;server&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;https://acme-v02.api.letsencrypt.org/directory&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;example@domain.com&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;privateKeySecretRef&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;letsencrypt-production&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;solvers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;http01&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nt"&gt;ingress&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;class&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;nginx&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Then execute the following command:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;create&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;letsencrypt-production.yaml
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;And finally you need to create a file for ex. website.yaml and put the below inside it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-yaml"&gt;&lt;span class="nt"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;networking.k8s.io/v1&lt;/span&gt;
&lt;span class="nt"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;Ingress&lt;/span&gt;
&lt;span class="nt"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;mywebsite-ingress&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;namespace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;default&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;annotations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;cert-manager.io/cluster-issuer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;letsencrypt-production&lt;/span&gt;
&lt;span class="nt"&gt;spec&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;ingressClassName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;nginx&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;tls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;hosts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;example.website.com&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;secretName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;mywebsite-tls&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;example.website.com&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;/&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;pathType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;Prefix&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;backend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="nt"&gt;service&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;wordpress&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# Or the name of the service that you need to put&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="nt"&gt;number&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;80&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Apply it and watch cert-manager issue the certificate (it may take a minute):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;apply&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;website.yaml
kubectl&lt;span class="w"&gt; &lt;/span&gt;get&lt;span class="w"&gt; &lt;/span&gt;certificate&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;default
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="kubernetes"></category><category term="certificate"></category><category term="cert-manager"></category><category term="ingress"></category></entry><entry><title>"The project you were looking for could not be found or you don't have permission to view it."</title><link href="https://majid.ninja/the-project-you-were-looking-for-could-not-be-found-or-you-dont-have-permission-to-view-it.html" rel="alternate"></link><published>2023-11-24T16:26:00+00:00</published><updated>2023-11-24T16:26:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-11-24:/the-project-you-were-looking-for-could-not-be-found-or-you-dont-have-permission-to-view-it.html</id><summary type="html">&lt;p&gt;&lt;strong&gt;The most common errors occur when deploying a Go project from GitLab repositories.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;"golang remote: The project you were looking for could not be found or you don't have permission to view it."&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;"fatal could not read username for 'https //gitlab.com' terminal prompts disabled"&lt;/p&gt;
&lt;p&gt;The main reasons behind …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;The most common errors occur when deploying a Go project from GitLab repositories.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;"golang remote: The project you were looking for could not be found or you don't have permission to view it."&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;"fatal could not read username for 'https //gitlab.com' terminal prompts disabled"&lt;/p&gt;
&lt;p&gt;The main reasons behind that are related to authentication and permissions. To solve that, we need to create the following files and fill them with the suitable credentials with the exact syntax:&lt;/p&gt;
&lt;p&gt;1- .gitconfig&lt;/p&gt;
&lt;p&gt;2- .git-credentials&lt;/p&gt;
&lt;p&gt;3- .netrc&lt;/p&gt;
&lt;p&gt;And, for sure, you need to place these files under the home directory of the user being used.
Ex. moving the files to home directory:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;mv&lt;span class="w"&gt; &lt;/span&gt;.gitconfig&lt;span class="w"&gt; &lt;/span&gt;~/
mv&lt;span class="w"&gt; &lt;/span&gt;.git-credentials&lt;span class="w"&gt; &lt;/span&gt;~/
mv&lt;span class="w"&gt; &lt;/span&gt;.netrc&lt;span class="w"&gt; &lt;/span&gt;~/
chmod&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;600&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;~/.git-credentials&lt;span class="w"&gt; &lt;/span&gt;~/.netrc
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Now, lets start with the content of these files with the exact syntax and make sure editing them to your credentials:&lt;/p&gt;
&lt;p&gt;1- .gitconfig&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-ini"&gt;&lt;span class="k"&gt;[credential]&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="na"&gt;helper&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;store&lt;/span&gt;
&lt;span class="k"&gt;[user]&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;username@domain.com&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;Your name&lt;/span&gt;
&lt;span class="k"&gt;[http]&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="c1"&gt;# Only needed if your GitLab uses a self-signed certificate&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="na"&gt;sslverify&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;2- .git-credentials&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-text"&gt;https://username:TheGeneratedTokenFromGitlab@domainForGitlab.com
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;3- .netrc&lt;/p&gt;
&lt;p&gt;&lt;code&gt;machine&lt;/code&gt; is the hostname of your GitLab server (e.g. &lt;code&gt;gitlab.com&lt;/code&gt;), not the local machine:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-text"&gt;machine domainForGitlab.com
login username
password TheGeneratedTokenFromGitlab
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Finally, tell Go that modules on your GitLab are private so it fetches them directly instead of through the public proxy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;go&lt;span class="w"&gt; &lt;/span&gt;env&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GOPRIVATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;domainForGitlab.com
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="git"></category><category term="golang"></category><category term="gitlab"></category></entry><entry><title>Startup scripts using "/etc/rc.local"</title><link href="https://majid.ninja/startup-scripts-using-etcrclocal.html" rel="alternate"></link><published>2023-10-01T00:04:00+00:00</published><updated>2023-10-01T00:04:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-10-01:/startup-scripts-using-etcrclocal.html</id><summary type="html">&lt;h2 id="how-to-use-etcrclocal-at-boot"&gt;How to use /etc/rc.local at boot&lt;a class="headerlink" href="#how-to-use-etcrclocal-at-boot" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The file name rc refers to Run Control. 
To start, create the file /etc/rc.local using the editor you want and paste these values:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;&lt;span class="ch"&gt;#!/bin/sh -e&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# rc.local&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# This script is executed at the end of each multiuser runlevel.&lt;/span&gt;
&lt;span class="c1"&gt;# Make …&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;</summary><content type="html">&lt;h2 id="how-to-use-etcrclocal-at-boot"&gt;How to use /etc/rc.local at boot&lt;a class="headerlink" href="#how-to-use-etcrclocal-at-boot" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The file name rc refers to Run Control. 
To start, create the file /etc/rc.local using the editor you want and paste these values:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;&lt;span class="ch"&gt;#!/bin/sh -e&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# rc.local&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# This script is executed at the end of each multiuser runlevel.&lt;/span&gt;
&lt;span class="c1"&gt;# Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;/span&gt;
&lt;span class="c1"&gt;# value on error.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# In order to enable or disable this script just change the execution&lt;/span&gt;
&lt;span class="c1"&gt;# bits.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# By default this script does nothing.&lt;/span&gt;
/bin/bash&lt;span class="w"&gt; &lt;/span&gt;/somedirectory/test.sh&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Then give execution to rc.local&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;chmod&lt;span class="w"&gt; &lt;/span&gt;+x&lt;span class="w"&gt; &lt;/span&gt;/etc/rc.local
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Then create the file /etc/systemd/system/rc-local.service and paste these lines:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-ini"&gt;&lt;span class="k"&gt;[Unit]&lt;/span&gt;
&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/etc/rc.local&lt;/span&gt;
&lt;span class="na"&gt;ConditionPathExists&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/etc/rc.local&lt;/span&gt;

&lt;span class="k"&gt;[Service]&lt;/span&gt;
&lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;forking&lt;/span&gt;
&lt;span class="na"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/etc/rc.local start&lt;/span&gt;
&lt;span class="na"&gt;TimeoutSec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;
&lt;span class="na"&gt;StandardOutput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;tty&lt;/span&gt;
&lt;span class="na"&gt;RemainAfterExit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;yes&lt;/span&gt;

&lt;span class="k"&gt;[Install]&lt;/span&gt;
&lt;span class="na"&gt;WantedBy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;multi-user.target&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After that we need to reload systemd and enable rc-local:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;daemon-reload
systemctl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;enable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;rc-local
systemctl&lt;span class="w"&gt; &lt;/span&gt;start&lt;span class="w"&gt; &lt;/span&gt;rc-local
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="rc.local"></category><category term="linux"></category><category term="startup"></category><category term="debian"></category></entry><entry><title>kubectl Copy directories and files.</title><link href="https://majid.ninja/kubectl-copy-directories-and-files.html" rel="alternate"></link><published>2023-09-30T23:30:00+00:00</published><updated>2023-09-30T23:30:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-09-30:/kubectl-copy-directories-and-files.html</id><content type="html">&lt;h2 id="copy-local-file-to-a-specific-pod-in-specific-namespace"&gt;Copy local file to a specific pod in specific namespace&lt;a class="headerlink" href="#copy-local-file-to-a-specific-pod-in-specific-namespace" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;/tmp/foo&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;namespace&amp;quot;&lt;/span&gt;/&lt;span class="s2"&gt;&amp;quot;pod_name&amp;quot;&lt;/span&gt;:/tmp/bar
&lt;/code&gt;&lt;/div&gt;

&lt;h2 id="copy-file-from-specific-pod-in-specific-namespace-to-a-local-directory"&gt;Copy file from specific pod in specific namespace to a local directory&lt;a class="headerlink" href="#copy-file-from-specific-pod-in-specific-namespace-to-a-local-directory" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;namespace&amp;quot;&lt;/span&gt;/&lt;span class="s2"&gt;&amp;quot;pod_name&amp;quot;&lt;/span&gt;:/tmp/foo&lt;span class="w"&gt; &lt;/span&gt;/tmp/bar
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="kubernetes"></category><category term="kubectl"></category><category term="pod"></category></entry><entry><title>HTTPS Secure Nginx with Let's Encrypt on Debian.</title><link href="https://majid.ninja/https-secure-nginx-with-lets-encrypt-on-debian.html" rel="alternate"></link><published>2023-09-30T23:18:00+00:00</published><updated>2023-09-30T23:18:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-09-30:/https-secure-nginx-with-lets-encrypt-on-debian.html</id><summary type="html">&lt;p&gt;The first step to using Let's Encrypt to obtain an SSL certificate is to install the Certbot software on your server.&lt;/p&gt;
&lt;h2 id="install-certbot-and-its-nginx-plugin"&gt;Install Certbot and its Nginx plugin&lt;a class="headerlink" href="#install-certbot-and-its-nginx-plugin" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open the terminal and run these commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;certbot&lt;span class="w"&gt; &lt;/span&gt;python3-certbot-nginx
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Confirming Nginx's Configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;nano&lt;span class="w"&gt; &lt;/span&gt;/etc/nginx/sites-available/default
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Find the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The first step to using Let's Encrypt to obtain an SSL certificate is to install the Certbot software on your server.&lt;/p&gt;
&lt;h2 id="install-certbot-and-its-nginx-plugin"&gt;Install Certbot and its Nginx plugin&lt;a class="headerlink" href="#install-certbot-and-its-nginx-plugin" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open the terminal and run these commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;certbot&lt;span class="w"&gt; &lt;/span&gt;python3-certbot-nginx
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Confirming Nginx's Configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;nano&lt;span class="w"&gt; &lt;/span&gt;/etc/nginx/sites-available/default
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Find the existing server_name line. It should look like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-nginx"&gt;&lt;span class="k"&gt;...&lt;/span&gt;
&lt;span class="s"&gt;server_name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;example.com&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;www.example.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Then check the configuration and reload nginx:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;nginx&lt;span class="w"&gt; &lt;/span&gt;-t
systemctl&lt;span class="w"&gt; &lt;/span&gt;reload&lt;span class="w"&gt; &lt;/span&gt;nginx
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;start certbot progress to activate the website by:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;certbot&lt;span class="w"&gt; &lt;/span&gt;--nginx&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;example.com&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;www.example.com
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Now, we are done! Your website is secured. Certbot also installs a timer that renews the certificate automatically; you can test it with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;certbot&lt;span class="w"&gt; &lt;/span&gt;renew&lt;span class="w"&gt; &lt;/span&gt;--dry-run
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="https"></category><category term="nginx"></category><category term="ssl"></category><category term="debian"></category></entry><entry><title>Enable Wireless (Wi-Fi) on Windows Server 2019.</title><link href="https://majid.ninja/enable-wireless-wi-fi-on-windows-server-2019.html" rel="alternate"></link><published>2023-09-30T20:00:00+00:00</published><updated>2023-09-30T20:00:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-09-30:/enable-wireless-wi-fi-on-windows-server-2019.html</id><summary type="html">&lt;h2 id="enable-wi-fi-on-windows-server"&gt;Enable Wi-Fi on windows server&lt;a class="headerlink" href="#enable-wi-fi-on-windows-server" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open the PowerShell console as administrator and run these commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-powershell"&gt;&lt;span class="nb"&gt;Get-WindowsFeature&lt;/span&gt; &lt;span class="p"&gt;*&lt;/span&gt;&lt;span class="n"&gt;Wireless&lt;/span&gt;&lt;span class="p"&gt;*&lt;/span&gt;
&lt;span class="nb"&gt;Install-WindowsFeature&lt;/span&gt; &lt;span class="n"&gt;-Name&lt;/span&gt; &lt;span class="n"&gt;Wireless-Networking&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="Get-WindowsFeature output showing the Wireless LAN Service" src="/images/wifi1.png"&gt;
&lt;img alt="Install-WindowsFeature output for Wireless-Networking" src="/images/wifi2.png"&gt;&lt;/p&gt;
&lt;p&gt;After the installation is complete, reboot the host:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-powershell"&gt;&lt;span class="n"&gt;shutdown&lt;/span&gt; &lt;span class="o"&gt;-f&lt;/span&gt; &lt;span class="n"&gt;-r&lt;/span&gt; &lt;span class="n"&gt;-t&lt;/span&gt; &lt;span class="n"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After the restart, the Wireless LAN Service (WLAN AutoConfig) appears in Windows, but it is disabled by …&lt;/p&gt;</summary><content type="html">&lt;h2 id="enable-wi-fi-on-windows-server"&gt;Enable Wi-Fi on windows server&lt;a class="headerlink" href="#enable-wi-fi-on-windows-server" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open the PowerShell console as administrator and run these commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-powershell"&gt;&lt;span class="nb"&gt;Get-WindowsFeature&lt;/span&gt; &lt;span class="p"&gt;*&lt;/span&gt;&lt;span class="n"&gt;Wireless&lt;/span&gt;&lt;span class="p"&gt;*&lt;/span&gt;
&lt;span class="nb"&gt;Install-WindowsFeature&lt;/span&gt; &lt;span class="n"&gt;-Name&lt;/span&gt; &lt;span class="n"&gt;Wireless-Networking&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="Get-WindowsFeature output showing the Wireless LAN Service" src="/images/wifi1.png"&gt;
&lt;img alt="Install-WindowsFeature output for Wireless-Networking" src="/images/wifi2.png"&gt;&lt;/p&gt;
&lt;p&gt;After the installation is complete, reboot the host:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-powershell"&gt;&lt;span class="n"&gt;shutdown&lt;/span&gt; &lt;span class="o"&gt;-f&lt;/span&gt; &lt;span class="n"&gt;-r&lt;/span&gt; &lt;span class="n"&gt;-t&lt;/span&gt; &lt;span class="n"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After the restart, the Wireless LAN Service (WLAN AutoConfig) appears in Windows, but it is disabled by default. Start the service and change its startup type to automatic:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-powershell"&gt;&lt;span class="nb"&gt;Set-Service&lt;/span&gt; &lt;span class="n"&gt;WlanSvc&lt;/span&gt; &lt;span class="n"&gt;-startuptype&lt;/span&gt; &lt;span class="n"&gt;automatic&lt;/span&gt; &lt;span class="n"&gt;-passthru&lt;/span&gt;
&lt;span class="nb"&gt;Start-Service&lt;/span&gt; &lt;span class="n"&gt;WlanSvc&lt;/span&gt; &lt;span class="n"&gt;-PassThru&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="WLAN AutoConfig service running" src="/images/wifi4.png"&gt;&lt;/p&gt;</content><category term="misc"></category><category term="windows"></category><category term="wifi"></category><category term="server"></category></entry><entry><title>FreeRadius Server with TP-link or any WPA Enterprise authentication.</title><link href="https://majid.ninja/freeradius-server-with-tp-link-or-any-wpa-enterprise-authintication.html" rel="alternate"></link><published>2023-09-30T20:00:00+00:00</published><updated>2023-09-30T20:00:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-09-30:/freeradius-server-with-tp-link-or-any-wpa-enterprise-authintication.html</id><summary type="html">&lt;p&gt;It's all about creating an authentication server for the wireless router.&lt;/p&gt;
&lt;h2 id="installing-freeradius-on-debian-server"&gt;Installing FreeRadius on debian server&lt;a class="headerlink" href="#installing-freeradius-on-debian-server" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open the terminal and run these commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;freeradius
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After the installation is complete, we need to edit client file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;nano&lt;span class="w"&gt; &lt;/span&gt;/etc/freeradius/3.0/clients.conf
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Then add the block …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It's all about creating an authentication server for the wireless router.&lt;/p&gt;
&lt;h2 id="installing-freeradius-on-debian-server"&gt;Installing FreeRadius on debian server&lt;a class="headerlink" href="#installing-freeradius-on-debian-server" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open the terminal and run these commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;freeradius
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After the installation is complete, we need to edit client file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;nano&lt;span class="w"&gt; &lt;/span&gt;/etc/freeradius/3.0/clients.conf
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Then add the block below, which has the TP-Link router IP address, a shared secret used for authentication between the server and the router, and a shortname (any name works).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-text"&gt;client 192.168.0.1 {
    secret    = testing123
    shortname = homewifi
}
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;After that we need to edit users file:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;nano&lt;span class="w"&gt; &lt;/span&gt;/etc/freeradius/3.0/users
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;and add the needed user by pasting this block at the beginning of the users file (the second line must be indented):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-text"&gt;testuser   Cleartext-Password := &amp;quot;password_complex&amp;quot;
           Reply-Message := &amp;quot;Hello, %{User-Name}&amp;quot;
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;Now, enable the freeradius service and restart it so it picks up the new configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;enable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;freeradius
systemctl&lt;span class="w"&gt; &lt;/span&gt;restart&lt;span class="w"&gt; &lt;/span&gt;freeradius
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;You can test the user locally before touching the router:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;freeradius-utils
radtest&lt;span class="w"&gt; &lt;/span&gt;testuser&lt;span class="w"&gt; &lt;/span&gt;password_complex&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;127&lt;/span&gt;.0.0.1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;testing123
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;We are done with the installation and the configuration, now simply go to the TP-Link router, open &lt;strong&gt;Wireless Security&lt;/strong&gt; and select &lt;strong&gt;WPA/WPA2-Enterprise&lt;/strong&gt;. Under &lt;strong&gt;RADIUS Server IP&lt;/strong&gt; put the IP of the RADIUS server, and under &lt;strong&gt;RADIUS Password&lt;/strong&gt; put the secret configured inside clients.conf.&lt;/p&gt;</content><category term="misc"></category><category term="FreeRadius"></category><category term="wifi"></category><category term="Radius"></category><category term="debian"></category></entry><entry><title>Users are unable to execute the script, even though it has the correct permissions.</title><link href="https://majid.ninja/users-are-unable-to-execute-the-script-even-though-it-has-the-correct-permissions.html" rel="alternate"></link><published>2023-09-19T12:20:00+00:00</published><updated>2023-09-19T12:20:00+00:00</updated><author><name>Majid Ali</name></author><id>tag:majid.ninja,2023-09-19:/users-are-unable-to-execute-the-script-even-though-it-has-the-correct-permissions.html</id><content type="html">&lt;h2 id="etcfstab"&gt;/etc/fstab&lt;a class="headerlink" href="#etcfstab" title="Link to this section"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you are ever unable to execute a script even though it already has the right permissions and the execute bit is set, the filesystem is probably mounted with &lt;code&gt;noexec&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="/etc/fstab with the noexec option" src="/images/fstab.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;code class="language-bash"&gt;$&lt;span class="w"&gt; &lt;/span&gt;mount&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;noexec
$&lt;span class="w"&gt; &lt;/span&gt;nano&lt;span class="w"&gt; &lt;/span&gt;/etc/fstab
$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;# remove no exec from the dir&lt;/span&gt;
$&lt;span class="w"&gt; &lt;/span&gt;mount&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;remount&lt;span class="w"&gt; &lt;/span&gt;/home
&lt;/code&gt;&lt;/div&gt;</content><category term="misc"></category><category term="fstab"></category><category term="execute"></category><category term="permissions"></category></entry></feed>